# Soppressioni

Una soppressione è un indirizzo che il tuo spazio di lavoro non contatterà, registrato con un ambito. Bird blocca un invio verso un indirizzo soppresso prima che raggiunga WhatsApp.

Apri la pagina [**Suppressions**](https://bird.com/dashboard/w/whatsapp/suppressions) per gestire la lista, oppure usa l'API qui sotto. I record dichiarati dal destinatario si trovano nella scheda **Preferences** della stessa pagina e seguono [regole diverse](/docs/guides/whatsapp/opt-outs/preferences).

![Un elenco di quattro numeri bloccati, ciascuno con ambito su tutti gli account aziendali o su uno solo](/images/docs/dashboard-whatsapp-suppressions.png)

## Sopprimere un account business

Dalla scheda **Suppressions**, crea una soppressione per un numero di telefono e scegli l'account business a cui si applica. Bird blocca i messaggi da quell'account, e gli altri account possono ancora contattare il numero. La colonna **Business account** della lista indica l'account a cui la soppressione è associata, oppure mostra **All accounts** se copre l'intero spazio di lavoro.

`POST /v1/whatsapp/suppressions` registra la stessa cosa da codice. `waba` è l'account a cui associare l'ambito; omettilo per bloccare l'indirizzo per l'intero spazio di lavoro, compresi gli account che collegherai in seguito:

**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](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.curl.md)

![Una finestra di dialogo per bloccare un numero, con l'ambito impostato su un singolo account aziendale](/images/docs/dashboard-whatsapp-suppression-new.png)

## Un ambito, un record

Una soppressione ha un solo ambito, quindi lo stesso indirizzo bloccato per due account corrisponde a due record e non a uno. Per coprire l'intero spazio di lavoro, effettua una sola chiamata senza `waba`.

Aggiungere un indirizzo già soppresso per quell'ambito restituisce `200` con il record esistente, anziché crearne un secondo. Un nuovo record restituisce `201`.

Una soppressione usa come chiave l'indirizzo registrato. Un destinatario raggiunto tramite numero di telefono e lo stesso destinatario raggiunto tramite un [ID utente con ambito business](/docs/guides/whatsapp/business-scoped-user-ids) sono due chiavi, quindi sopprimere uno non sopprime l'altro. Registra entrambi se contatti la stessa persona in entrambi i modi.

## Leggere la lista delle soppressioni

`GET /v1/whatsapp/suppressions` restituisce le soppressioni in vigore, dalla più recente, come pagina a cursore. `address` filtra per prefisso e ignora maiuscole e minuscole: un valore parziale corrisponde a ogni indirizzo sotto di esso, e un valore completo corrisponde solo a quell'indirizzo. `reason` restringe a una categoria, ad esempio `manual` per quelle aggiunte da te:

**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](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.curl.md)

La lista contiene ciò che è in vigore, e i record terminati sono esclusi. Un indirizzo assente non dimostra che lo spazio di lavoro non lo abbia mai soppresso; il record potrebbe essere terminato. Leggilo per ID per conferma.

## Leggere un singolo record

`GET /v1/whatsapp/suppressions/{suppression_id}` restituisce sia un record terminato sia uno in vigore, indicando quando è terminato e cosa lo ha terminato:

**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](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.curl.md)

## Terminare una soppressione

L'azione **Delete** su una riga di soppressione termina la soppressione anziché rimuoverla. Il blocco si interrompe. Il record resta leggibile e mostra quando è terminato e chi lo ha terminato. `DELETE /v1/whatsapp/suppressions/{suppression_id}` fa lo stesso e restituisce `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](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/it-it/documentazione/guides/whatsapp/opt-outs/suppressions.curl.md)

Una soppressione aggiunta da te ha motivo `manual` e può essere terminata. L'opt-out di un destinatario spetta a lui revocarlo, e il tentativo restituisce `422`. Richiamare questa operazione su una soppressione già terminata ha successo senza cambiare nulla, e un ID non presente nello spazio di lavoro restituisce `404`.

Terminare una soppressione richiede il suo ID, quindi cercalo prima nella lista.

## Monitorare le nuove soppressioni

`whatsapp_suppression.created` si attiva quando viene registrata una soppressione, così il tuo sistema può rilevare nuovi blocchi senza polling. Il suo payload contiene:

- `suppression_id`, l'identificatore del record.
- `address`, il numero soppresso in formato E.164.
- `waba`, l'account a cui il blocco è limitato, o null quando copre l'intero spazio di lavoro.
- `reason` e `workspace_id`.

Nessun evento si attiva quando una soppressione termina, quindi rileggi la lista prima di fidarti di una copia in tuo possesso. Consulta [eventi WhatsApp](/docs/guides/whatsapp/events) per il payload completo.

## Passi successivi

- [Preferences](/docs/guides/whatsapp/opt-outs/preferences): i record dichiarati dai destinatari, e quali di essi puoi revocare.
- [Eventi WhatsApp](/docs/guides/whatsapp/events): il payload `whatsapp.rejected` prodotto da un invio bloccato.
- [Invio di messaggi WhatsApp](/docs/guides/whatsapp/sending-whatsapp): l'API di invio e il suo modello di consegna asincrono.

## 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)
