# Suppression

Suppression adalah alamat yang tidak akan dikirim pesan oleh workspace Anda, dicatat dengan cakupan tertentu. Bird memblokir pengiriman ke alamat yang di-suppress sebelum mencapai WhatsApp.

Buka halaman [**Suppressions**](https://bird.com/dashboard/w/whatsapp/suppressions) untuk mengelola daftar, atau gunakan API di bawah. Catatan yang dinyatakan penerima ada di tab **Preferences** pada halaman yang sama dan mengikuti [aturan berbeda](/docs/guides/whatsapp/opt-outs/preferences).

![Daftar empat nomor yang diblokir, masing-masing dicakupkan ke semua akun bisnis atau ke satu akun](/images/docs/dashboard-whatsapp-suppressions.png)

## Meng-suppress akun bisnis

Dari tab **Suppressions**, buat suppression untuk nomor telepon dan pilih akun bisnis yang berlaku. Bird memblokir pesan dari akun tersebut, dan akun lain Anda tetap dapat mengirim pesan ke nomor itu. Kolom **Business account** di daftar menampilkan akun yang dicakup suppression, atau bertuliskan **All accounts** jika mencakup seluruh workspace Anda.

`POST /v1/whatsapp/suppressions` mencatat hal yang sama dari kode. `waba` adalah akun yang akan dicakup; hilangkan untuk memblokir alamat di seluruh workspace Anda, termasuk akun yang Anda hubungkan nanti:

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

![Dialog untuk memblokir nomor, dengan cakupan diatur ke satu akun bisnis](/images/docs/dashboard-whatsapp-suppression-new.png)

## Satu cakupan, satu catatan

Sebuah suppression memiliki satu cakupan, jadi alamat yang sama diblokir untuk dua akun berarti dua catatan, bukan satu. Untuk mencakup seluruh workspace, buat satu panggilan tanpa `waba`.

Menambahkan alamat yang sudah di-suppress untuk cakupan tersebut mengembalikan `200` beserta catatan yang ada, bukan membuat catatan kedua. Catatan baru mengembalikan `201`.

Suppression dikunci berdasarkan alamat yang Anda catat. Penerima yang dijangkau melalui nomor telepon dan penerima yang sama yang dijangkau melalui [user ID bercakupan bisnis](/docs/guides/whatsapp/business-scoped-user-ids) adalah dua kunci berbeda, jadi meng-suppress satu tidak meng-suppress yang lain. Catat keduanya jika Anda mengirim ke orang yang sama dengan kedua cara.

## Membaca daftar suppression Anda

`GET /v1/whatsapp/suppressions` mengembalikan suppression yang berlaku, terbaru lebih dulu, sebagai halaman kursor. `address` memfilter berdasarkan prefiks dan mengabaikan huruf besar-kecil: nilai parsial mencocokkan setiap alamat di bawahnya, dan nilai lengkap mencocokkan alamat itu saja. `reason` mempersempit ke kategori, misalnya `manual` untuk yang Anda tambahkan sendiri:

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

Daftar berisi yang sedang berlaku, dan catatan yang sudah berakhir tidak disertakan. Alamat yang tidak ada tidak membuktikan workspace tidak pernah meng-suppress-nya; catatannya mungkin sudah berakhir. Baca berdasarkan ID untuk memastikan.

## Membaca satu catatan

`GET /v1/whatsapp/suppressions/{suppression_id}` menampilkan catatan yang sudah berakhir maupun yang masih berlaku, melaporkan kapan berakhir dan apa yang mengakhirinya:

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

## Mengakhiri suppression

Aksi **Delete** pada baris suppression mengakhiri suppression, bukan menghapusnya. Pemblokiran berhenti. Catatan tetap dapat dibaca dan menunjukkan kapan berakhir serta siapa yang mengakhirinya. `DELETE /v1/whatsapp/suppressions/{suppression_id}` melakukan hal yang sama dan mengembalikan `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](/id-id/dokumentasi/guides/whatsapp/opt-outs/suppressions.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/opt-outs/suppressions.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/opt-outs/suppressions.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/opt-outs/suppressions.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/opt-outs/suppressions.cli.md) · [MCP](/id-id/dokumentasi/guides/whatsapp/opt-outs/suppressions.mcp.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/opt-outs/suppressions.curl.md)

Suppression yang Anda tambahkan sendiri memiliki reason `manual` dan dapat diakhiri. Opt-out dari penerima sendiri hanya dapat dibalik oleh mereka, dan upaya mengakhirinya mengembalikan `422`. Memanggil ini lagi pada suppression yang sudah berakhir berhasil tanpa mengubah apa pun, dan ID yang tidak dimiliki workspace mengembalikan `404`.

Mengakhiri suppression memerlukan ID-nya, jadi cari dulu melalui daftar.

## Memantau suppression baru

`whatsapp_suppression.created` terpicu saat suppression dicatat, sehingga sistem Anda dapat melihat pemblokiran baru tanpa polling. Payload-nya berisi:

- `suppression_id`, identifier catatan.
- `address`, nomor yang di-suppress dalam format E.164.
- `waba`, akun yang dicakup pemblokiran, atau null jika mencakup seluruh workspace.
- `reason` dan `workspace_id`.

Tidak ada event yang terpicu saat suppression berakhir, jadi baca ulang daftar sebelum memercayai salinan yang Anda simpan. Lihat [event WhatsApp](/docs/guides/whatsapp/events) untuk payload lengkap.

## Langkah berikutnya

- [Preferences](/docs/guides/whatsapp/opt-outs/preferences): catatan yang dinyatakan penerima, dan mana yang dapat Anda balik.
- [Event WhatsApp](/docs/guides/whatsapp/events): payload `whatsapp.rejected` yang dihasilkan saat pengiriman diblokir.
- [Mengirim pesan WhatsApp](/docs/guides/whatsapp/sending-whatsapp): API pengiriman dan model pengiriman asinkronnya.

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