# Suppressions WhatsApp

Une suppression est une adresse que votre espace de travail ne contactera pas, enregistrée avec une portée. Bird bloque un envoi vers une adresse supprimée avant qu'il n'atteigne WhatsApp.

Ouvrez la page [**Suppressions**](https://bird.com/dashboard/w/whatsapp/suppressions) pour gérer la liste, ou utilisez l'API ci-dessous. Les enregistrements déclarés par le destinataire se trouvent dans l'onglet **Preferences** de la même page et suivent des [règles différentes](/docs/guides/whatsapp/opt-outs/preferences).

![Une liste de quatre numéros bloqués, chacun limité à tous les comptes professionnels ou à un seul](/images/docs/dashboard-whatsapp-suppressions.png)

## Supprimer un compte professionnel

Depuis l'onglet **Suppressions**, créez une suppression pour un numéro de téléphone et choisissez le compte professionnel auquel elle s'applique. Bird bloque les messages provenant de ce compte, et vos autres comptes peuvent toujours contacter le numéro. La colonne **Business account** de la liste indique le compte auquel une suppression est associée, ou affiche **All accounts** si elle couvre l'ensemble de votre espace de travail.

`POST /v1/whatsapp/suppressions` enregistre la même chose depuis le code. `waba` est le compte auquel associer la portée ; omettez-le pour bloquer l'adresse dans tout votre espace de travail, y compris les comptes que vous connecterez par la suite :

**TypeScript**

```typescript
// Omit waba to block the address for the whole workspace, whichever account
// sends. With it, your other accounts keep reaching them, and the same
// address for two accounts is two records.
const suppression = await bird.whatsapp.suppressions.add({
  address: "+15550001234",
  waba: "102290129340398",
});
console.log(suppression.id, suppression.applies_to);
```

Examples: [TypeScript](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.curl.md)

![Une boîte de dialogue pour bloquer un numéro, avec la portée définie sur un seul compte professionnel](/images/docs/dashboard-whatsapp-suppression-new.png)

## Une portée, un enregistrement

Une suppression ne porte qu'une seule portée : la même adresse bloquée pour deux comptes correspond donc à deux enregistrements, et non un seul. Pour couvrir tout l'espace de travail, effectuez un seul appel sans `waba`.

Ajouter une adresse déjà supprimée pour cette portée renvoie `200` avec l'enregistrement existant au lieu d'en créer un second. Un nouvel enregistrement renvoie `201`.

Une suppression est indexée sur l'adresse que vous enregistrez. Un destinataire contacté par numéro de téléphone et le même destinataire contacté par un [identifiant utilisateur associé au compte professionnel](/docs/guides/whatsapp/business-scoped-user-ids) constituent deux clés : supprimer l'un ne supprime pas l'autre. Enregistrez les deux si vous contactez la même personne de l'une ou l'autre manière.

## Consulter votre liste de suppressions

`GET /v1/whatsapp/suppressions` renvoie les suppressions en vigueur, les plus récentes en premier, sous forme de page paginée par curseur. `address` filtre par préfixe sans tenir compte de la casse : une valeur partielle correspond à toutes les adresses qui en découlent, et une valeur complète correspond à cette seule adresse. `reason` restreint à une catégorie, par exemple `manual` pour celles que vous avez ajoutées :

**TypeScript**

```typescript
// address is a prefix, so a partial value matches every address under it.
const suppressions = await bird.whatsapp.suppressions.list({ address: "+1555" });
for (const suppression of suppressions.data ?? []) {
  console.log(suppression.address, suppression.waba ?? "every account");
}
```

Examples: [TypeScript](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.curl.md)

La liste ne contient que ce qui est en vigueur ; les enregistrements terminés en sont exclus. L'absence d'une adresse ne prouve pas que l'espace de travail ne l'a jamais supprimée : l'enregistrement a pu être levé. Consultez-le par ID pour confirmer.

## Consulter un enregistrement

`GET /v1/whatsapp/suppressions/{suppression_id}` résout un enregistrement terminé aussi bien qu'un enregistrement en vigueur, en indiquant quand il a pris fin et ce qui l'a levé :

**TypeScript**

```typescript
// Resolves a record that has already ended, which the list leaves out.
const suppression = await bird.whatsapp.suppressions.get("was_01krdgeqcxet5s7t44vh8rt9mg");
console.log(suppression.reason, suppression.ended_at ?? "still in force");
```

Examples: [TypeScript](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.curl.md)

## Lever une suppression

L'action **Delete** sur une ligne de suppression met fin à la suppression au lieu de la supprimer. Le blocage cesse. L'enregistrement reste consultable et indique quand il a pris fin et qui l'a levé. `DELETE /v1/whatsapp/suppressions/{suppression_id}` fait la même chose et renvoie `204` :

**TypeScript**

```typescript
// Only a manual suppression can be ended; a recipient's own opt-out is
// theirs to reverse. The record is kept and still reads back by id.
await bird.whatsapp.suppressions.remove("was_01krdgeqcxet5s7t44vh8rt9mg");
```

Examples: [TypeScript](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/fr-fr/documentation/guides/whatsapp/opt-outs/suppressions.curl.md)

Une suppression que vous avez ajoutée vous-même porte la raison `manual` et peut être levée. Le désabonnement d'un destinataire lui appartient et c'est à lui de l'inverser ; la tentative renvoie `422`. Appeler cela à nouveau sur une suppression déjà terminée réussit sans rien changer, et un ID que l'espace de travail ne détient pas renvoie `404`.

Lever une suppression nécessite son ID : consultez d'abord la liste pour le retrouver.

## Surveiller les nouvelles suppressions

`whatsapp_suppression.created` se déclenche lorsqu'une suppression est enregistrée, afin que votre propre système puisse voir les nouveaux blocages sans interrogation périodique. Son contenu transporte :

- `suppression_id`, l'identifiant de l'enregistrement.
- `address`, le numéro supprimé au format E.164.
- `waba`, le compte auquel le blocage est limité, ou null quand il couvre l'ensemble de l'espace de travail.
- `reason` et `workspace_id`.

Aucun événement ne se déclenche lorsqu'une suppression prend fin : reconsultez la liste avant de vous fier à une copie que vous détenez. Consultez les [événements WhatsApp](/docs/guides/whatsapp/events) pour le contenu complet.

## Étapes suivantes

- [Preferences](/docs/guides/whatsapp/opt-outs/preferences) : les enregistrements déclarés par les destinataires, et lesquels vous pouvez inverser.
- [Événements WhatsApp](/docs/guides/whatsapp/events) : le contenu `whatsapp.rejected` produit par un envoi bloqué.
- [Envoyer des messages WhatsApp](/docs/guides/whatsapp/sending-whatsapp) : l'API d'envoi et son modèle de livraison asynchrone.

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/whatsapp-api) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
