---
title: "Mengelola grup WhatsApp"
description: "Buat grup WhatsApp melalui API, tunggu WhatsApp mengonfirmasinya, bagikan tautan undangannya, putuskan permintaan bergabung, lalu pin, ubah nama, atau hapus grup tersebut."
canonical: "https://bird.com/id-id/dokumentasi/guides/whatsapp/groups/management"
---

# Mengelola grup WhatsApp

Semua yang dilakukan halaman [**Groups**](https://bird.com/dashboard/w/whatsapp/groups) juga bisa dilakukan oleh dua belas operasi di bawah `/v1/whatsapp/groups`, sehingga seluruh siklus hidup grup muat dalam kode: buat grup, tunggu WhatsApp mengonfirmasinya, bagikan tautan undangannya, putuskan siapa yang boleh masuk, perbarui detail dan pin-nya, lalu hapus ketika percakapan selesai.

Dua hal membentuk setiap panggilan di halaman ini. **Tidak ada yang bisa ditambahkan ke grup**, jadi tautan undangan adalah satu-satunya cara masuk, dan mengundang orang dilakukan di luar API. **Sebagian besar perubahan diselesaikan di WhatsApp, bukan di respons**, jadi panggilan yang menerima perubahan bukan panggilan yang memberi tahu Anda bahwa perubahan itu berhasil; [Cara perubahan diselesaikan](#cara-perubahan-diselesaikan) membahasnya sekali untuk setiap operasi yang berlaku.

[Grup WhatsApp](/docs/guides/whatsapp/groups) membahas fungsi grup dan siklus hidup yang sama di dashboard. [Mengirim ke grup WhatsApp](/docs/guides/whatsapp/groups/sending) membahas cara mengirim pesan ke grup.

## Prasyarat

Anda memerlukan kunci API dengan akses `whatsapp_management`: level read untuk pembacaan di halaman ini, level write untuk yang lainnya. [Users, teams, and roles](/docs/guides/users-teams-roles) membahas cara memberikannya.

Anda juga memerlukan nomor bisnis yang memegang status Official Business Account, yang WhatsApp wajibkan dari administrator grup dan dibahas di [Before you create a group](/docs/guides/whatsapp/groups#before-you-create-a-group). `GET /v1/whatsapp/numbers` melaporkannya per nomor sebagai `is_official_business_account`, jadi baca dari sana alih-alih menemukan dari `412`. Flag tersebut sesuai `meta_synced_at` nomor, jadi nomor yang baru terhubung beberapa menit lalu mungkin belum terbaca kembali.

Inisialisasi klien untuk bahasa Anda menggunakan panduan SDK [TypeScript](/docs/sdks/typescript), [Python](/docs/sdks/python), [Go](/docs/sdks/go), atau [PHP](/docs/sdks/php). Untuk contoh CLI, [instal dan autentikasi CLI](/docs/cli#authenticate). Contoh cURL menyebut host US; jika kunci Anda diawali `bk_eu1_`, panggil `https://eu1.platform.bird.com`. SDK membaca region dari kunci Anda, jadi tidak perlu mengatur host.

## 1. Buat grup

Pembuatan menyebutkan nomor yang mengelola dan subjek, tanpa siapa pun lagi. Dua pilihan bersifat tetap seumur hidup grup dan tidak bisa diubah setelahnya: nomor, dan `join_approval_mode`, yang menentukan apakah membuka tautan undangan langsung memasukkan seseorang (`auto_approve`, default) atau mengajukan permintaan yang Anda putuskan (`approval_required`).

> **Note:** creating a group needs a business number with Official Business Account status, the blue check mark WhatsApp puts next to a business name in the chat. [WhatsApp Official Business Account](/docs/knowledge-base/whatsapp/official-business-account) covers what Meta requires and how to request it.

**TypeScript**

```typescript
const group = await bird.whatsapp.groups.create({
  whatsapp_number_id: "wan_01krdgeqcxet5s7t44vh8rt9mg",
  subject: "Norwood Fleet — Tuesday route",
  join_approval_mode: "approval_required",
});
console.log(group.id, group.status); // pending; read it back for the invite link
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

API mengembalikan `202` dengan grup pada `status` `pending` dan tanpa `invite_link`: WhatsApp menerbitkan tautan setelah mengonfirmasi grup. Subjek dapat berisi hingga 128 karakter dan `description` opsional hingga 2.048 karakter, dan keduanya ditampilkan kepada siapa pun yang membuka tautan, jadi beri nama grup sesuai tujuannya, bukan sebagai referensi internal.

## 2. Tunggu WhatsApp mengonfirmasinya

Baca ulang grup sampai `status`-nya meninggalkan `pending`. Pembacaan menjawab `200` apa pun statusnya, jadi percabangan berdasarkan `status`, bukan berdasarkan keberhasilan panggilan.

**TypeScript**

```typescript
const group = await bird.whatsapp.groups.get("wag_01krdgeqcxet5s7t44vh8rt9mg");
console.log(group.status, group.invite_link);
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

Lima status dapat muncul, dan hanya satu di antaranya yang merupakan grup yang bisa Anda gunakan:

| Status      | Artinya                                                                                             |
| ----------- | --------------------------------------------------------------------------------------------------- |
| `pending`   | WhatsApp belum mengonfirmasi grup. `invite_link` bernilai null dan tidak ada yang bisa dibagikan    |
| `active`    | Grup sudah ada, tautan undangannya berfungsi, dan grup menerima pesan serta perubahan               |
| `suspended` | WhatsApp menghentikan aktivitas dalam grup. Hanya WhatsApp yang dapat mencabutnya                   |
| `deleted`   | Grup sudah tidak ada, tetapi tetap dapat dibaca sehingga referensi tersimpan masih dapat diresolusi |
| `failed`    | WhatsApp menolak pembuatan, dan ini bersifat final                                                  |

`failed` adalah jalan keluar lain dari `pending`, dan `last_operation.last_error.description` memuat alasan dari WhatsApp. Jangan pernah mencoba ulang pembuatan yang gagal terhadap grup tersebut: buat yang baru, dengan mengubah apa yang menjadi keberatan penolakan.

## 3. Masukkan orang ke dalam grup

Kirim `invite_link` grup kepada orang yang ingin Anda masukkan, melalui kanal apa pun yang sudah menjangkau mereka. Tidak ada operasi yang menambahkan peserta, jadi tautan adalah satu-satunya cara masuk dan bergabung adalah keputusan mereka. Tautan ini mengizinkan siapa pun yang memilikinya, jadi perlakukan sebagai kredensial: [Grup WhatsApp](/docs/guides/whatsapp/groups#invite-people-to-the-group) membahas sejauh mana Anda sebaiknya menyebarkannya.

Pada grup `auto_approve`, siapa pun yang memiliki tautan langsung masuk dan tidak ada yang perlu diputuskan. Pada grup `approval_required`, membuka tautan memunculkan permintaan bergabung. Tampilkan daftar yang menunggu, lalu putuskan secara berkelompok hingga 50 sekaligus:

**TypeScript**

```typescript
const waiting = [];
for await (const request of bird.whatsapp.groups.joinRequests.list(
  "wag_01krdgeqcxet5s7t44vh8rt9mg",
)) {
  waiting.push(request.id);
}
const result = await bird.whatsapp.groups.joinRequests.approve("wag_01krdgeqcxet5s7t44vh8rt9mg", {
  join_request_ids: waiting.slice(0, 50),
});
console.log(result.decided.length, result.failed.length);
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

WhatsApp memutuskan setiap permintaan secara terpisah, sehingga satu batch dapat diterapkan sebagian: respons memisahkan `decided` dari `failed`, dan setiap kegagalan memuat alasan yang diberikan WhatsApp di `error.description`. Baca respons, bukan kode status. Penolakan sering terjadi karena orang tersebut belum menerima ketentuan terbaru WhatsApp, yang tidak bisa diperbaiki dengan mencoba ulang.

Menyetujui lebih banyak orang daripada kapasitas grup tidak menolak panggilan: permintaan yang muat diputuskan dan sisanya dikembalikan di `failed`, masing-masing menyatakan persetujuan akan membuat grup melewati [batas pesertanya](/docs/guides/whatsapp/groups#what-whatsapp-limits). Penolakan bekerja dengan cara yang sama, melalui `POST /v1/whatsapp/groups/{group_id}/join-requests/batch-reject`. Permintaan juga meninggalkan daftar saat orang tersebut membatalkannya sendiri, sehingga ID yang valid sesaat lalu bisa mengembalikan `422` [`E15051`](/docs/api/errors/E15051) saat Anda menggunakannya.

Angka 50 adalah batas Bird sendiri untuk satu permintaan, bukan batas WhatsApp, sehingga penolakan massal tidak dibatasi oleh kapasitas grup.

### Pantau permintaan masuk saat tiba

Subscribe ke `whatsapp.group.join_request_created` dan `whatsapp.group.join_request_revoked` untuk mengetahui saat seseorang meminta bergabung dan saat mereka membatalkannya, alih-alih melakukan polling pada daftar. Permintaan yang diajukan dan dibatalkan di antara dua pembacaan daftar tidak meninggalkan jejak, jadi event ini adalah satu-satunya cara untuk melihatnya. Setiap event membawa `join_request.id` yang digunakan operasi batch, sehingga Anda dapat langsung memutuskan dari situ. [Webhook grup WhatsApp](/docs/guides/whatsapp/webhooks/groups) menyediakan kedua payload dan setiap field.

### Merotasi tautan undangan

Merotasi menerbitkan tautan baru dan menghentikan semua tautan yang dimiliki grup sebelumnya, sehingga siapa pun yang masih memegang tautan lama tidak dapat bergabung. Rotasi tautan saat tautan sudah tersebar lebih luas dari yang Anda inginkan, atau setelah menghapus seseorang yang tidak ingin Anda terima kembali. Tautan baru dikembalikan langsung pada panggilan itu sendiri, yang menjawab `200`:

**TypeScript**

```typescript
const link = await bird.whatsapp.groups.inviteLink.rotate("wag_01krdgeqcxet5s7t44vh8rt9mg");
console.log(link.invite_link); // every earlier link has stopped working
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

Merotasi bukan cara Anda membaca tautan saat ini. Grup menyimpan `invite_link`-nya, jadi membaca grup adalah cara membacanya.

CLI tidak pernah meminta konfirmasi, jadi perintah destruktifnya menggunakan `--yes` sebagai gantinya: merotasi tautan, menghapus peserta, menghapus grup, melepas pin pesan, dan menolak permintaan bergabung semuanya ditolak dengan `confirmation_required` tanpa parameter tersebut.

## Cara perubahan diselesaikan

WhatsApp mengonfirmasi sebagian perubahan dalam balasannya dan sebagian lagi melalui webhook, dan kode status menunjukkan jenis mana yang Anda lihat:

| Operasi                                      | Menjawab | Tempat hasil akhir diterima                               |
| -------------------------------------------- | -------- | --------------------------------------------------------- |
| Create, update, delete                       | `202`    | `last_operation` grup, setelah WhatsApp melapor kembali   |
| Menghapus peserta                            | `202`    | `last_operation` milik peserta tersebut di `participants` |
| Menyetujui atau menolak permintaan bergabung | `202`    | `decided` dan `failed` pada respons itu sendiri           |
| Rotate, pin, unpin                           | `200`    | Respons, yang merupakan perubahan yang sudah diterapkan   |

Untuk dua baris pertama, `202` berarti permintaan diterima, bukan diterapkan. `last_operation.status` bernilai `pending` hingga WhatsApp melapor kembali, biasanya dalam hitungan detik, lalu berubah menjadi `success` atau `failed`, dengan `last_error.description` membawa alasan jika gagal. Baca ulang grup untuk melihat apa yang diterapkan.

Selagi sebuah operasi berstatus `pending`, perubahan lain pada hal yang sama mengembalikan `409` [`E15054`](/docs/api/errors/E15054). Perubahan tingkat grup berbagi `last_operation` milik grup, sehingga rename yang belum selesai memblokir delete. Setiap peserta memiliki miliknya sendiri, jadi menghapus beberapa orang sekaligus memberi masing-masing state dan kegagalan sendiri, dan hanya penghapusan pending orang tersebut yang memblokir percobaan berikutnya terhadap mereka.

Dua `409` mengawal operasi tulis dan `status` diperiksa lebih dulu, sehingga grup yang bukan `active` mengembalikan [`E15047`](/docs/api/errors/E15047) apa pun nilai `last_operation`-nya. Ini penting untuk grup yang masih dalam proses pembuatan, yang berstatus pending pada kedua hitungan sekaligus.

Setiap operasi tulis juga memerlukan header `Idempotency-Key`. [Idempotency](/docs/guides/idempotency) membahas cara coba lagi dengan aman.

## Mengubah subjek, deskripsi, atau gambar grup

Update mengubah apa yang dilihat peserta di bagian atas grup. Field yang Anda hilangkan dibiarkan apa adanya; kirim `null` untuk menghapus deskripsi atau gambar, karena string kosong adalah `422`, bukan cara kedua untuk menghapus.

**TypeScript**

```typescript
const group = await bird.whatsapp.groups.update("wag_01krdgeqcxet5s7t44vh8rt9mg", {
  subject: "Norwood Fleet — Wednesday route",
});
console.log(group.last_operation?.status); // pending until WhatsApp reports back
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

WhatsApp menerapkan setiap field secara terpisah, sehingga update dapat diterapkan sebagian: satu field ditolak sementara yang lain diterapkan. Saat operasi selesai, `last_operation.results` membawa satu entri per field yang dikirim update, yang memungkinkan Anda mencocokkan penolakan dengan input yang menyebabkannya.

`profile_picture_url` merujuk file di media library workspace Anda, bukan alamat apa pun di internet, dan WhatsApp menerima JPEG persegi berukuran minimal 192 kali 192 piksel dan maksimal 5 MB. Menghapusnya menghapus gambar yang disimpan Bird, tetapi WhatsApp tidak memiliki operasi untuk menurunkan foto grup, sehingga peserta tetap melihat foto saat ini sampai gambar lain menggantikannya. Nomor pengelola dan `join_approval_mode` ditetapkan saat pembuatan dan tidak dapat diubah di sini.

## Menghapus peserta

Penghapusan tidak dapat dibatalkan. WhatsApp memblokir orang yang dihapus agar tidak bergabung kembali ke grup melalui tautan undangan, dan blokir mengikuti orangnya bukan tautannya, sehingga merotasi tautan tidak membuat mereka bisa masuk kembali. Tanpa operasi penambahan yang berpasangan dengan ini, tidak ada yang dapat mengembalikan seseorang ke grup ini setelah mereka keluar, dan menghubungi mereka lagi berarti membuat grup baru dan mengundang mereka ke sana.

Sebutkan orang tersebut menggunakan salah satu identifier yang tercantum di `participants` grup: `bsuid` mereka, yang dimiliki semua orang, atau `phone_number` mereka dalam format E.164, yang ada hanya jika WhatsApp membagikannya. Di URL, percent-encode awalan `+` sebagai `%2B` kecuali klien Anda melakukannya secara otomatis.

**TypeScript**

```typescript
const group = await bird.whatsapp.groups.participants.remove(
  "wag_01krdgeqcxet5s7t44vh8rt9mg",
  "+15550002222",
);
console.log(group.participants?.length);
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

Penghapusan peserta berstatus `pending` pada entri mereka sendiri sampai WhatsApp mengonfirmasinya, dan tidak pernah mencapai `success`: entri yang menghilang dari `participants` adalah tanda bahwa penghapusan berhasil. Nilai yang merujuk seseorang yang tidak ada di grup mengembalikan `422` [`E15050`](/docs/api/errors/E15050).

## Menyematkan pesan

Menyematkan menahan salah satu pesan milik grup di bagian atas chat, sehingga seseorang yang bergabung kemudian tidak perlu menggulir untuk menemukan hal yang terus dirujuk dalam percakapan. Pin berlaku selama `duration_days`, dari 1 hingga 30, dan default-nya 7.

**TypeScript**

```typescript
const pin = await bird.whatsapp.groups.pins.create("wag_01krdgeqcxet5s7t44vh8rt9mg", {
  message_id: "wam_01kya19eknftrs2s6p82asmvnh",
  duration_days: 14,
});
console.log(pin.pinned_until);
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

Pesan harus merupakan pesan yang dimiliki grup ini: pesan di grup lain, atau pesan satu-ke-satu, mengembalikan `422` [`E15053`](/docs/api/errors/E15053). Sebuah grup memiliki [batas jumlah pin sekaligus](/docs/guides/whatsapp/groups#what-whatsapp-limits), dan menyematkan melebihi batas itu akan melepas pin tertua alih-alih gagal; menyematkan pesan yang sudah disematkan mengganti kedaluwarsanya. Pin yang saat ini aktif di grup ada pada grup itu sendiri, sebagai `pinned_messages`.

WhatsApp melepas pin pesan secara otomatis setelah harinya berlalu, jadi lepas pin hanya untuk menurunkannya lebih awal. `DELETE /v1/whatsapp/groups/{group_id}/pinned-messages/{message_id}` menjawab `200`, dan mengulanginya aman: pesan milik grup ini yang tidak disematkan tidak mengubah apa pun dan tetap menjawab `200`.

## Menghapus grup

Menghapus menghilangkan grup di WhatsApp. Semua peserta kehilangan akses, termasuk bisnis Anda, dan tautan undangan berhenti berfungsi. Ini tidak dapat dibatalkan, dan menjalankan percakapan lagi berarti membuat grup baru dan mengirimkan tautannya.

**TypeScript**

```typescript
const group = await bird.whatsapp.groups.delete("wag_01krdgeqcxet5s7t44vh8rt9mg");
console.log(group.last_operation?.status); // pending until WhatsApp confirms it
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

Grup tetap dapat dibaca setelahnya pada `status` `deleted`, sehingga referensi tersimpan tetap dapat di-resolve alih-alih berubah menjadi `404`. Grup `failed` juga dapat dihapus, dan penghapusan itu tidak menjangkau sistem eksternal: pembuatan tidak pernah menghasilkan grup di WhatsApp, jadi membersihkan baris tersebut adalah urusan internal Bird. Setiap status lain menolak dengan `409` [`E15047`](/docs/api/errors/E15047).

## Melihat daftar grup Anda

Daftar mengembalikan grup yang dibuat workspace Anda, terbaru lebih dulu, sebagai halaman kursor. Filter berdasarkan nomor pengelola (`number`, sebagai nomor E.164 atau ID `wan_`), berdasarkan WhatsApp Business Account yang digunakan untuk mengirim (`waba`), atau berdasarkan `status`, dengan mengulang parameter untuk mencocokkan beberapa sekaligus. `q` mencari substring dalam subjek dan deskripsi, tanpa memperhatikan huruf besar-kecil.

**TypeScript**

```typescript
for await (const group of bird.whatsapp.groups.list({ status: ["active"] })) {
  console.log(group.id, group.subject, group.participant_count);
}
```

Examples: [TypeScript](/id-id/dokumentasi/guides/whatsapp/groups/management.ts.md) · [Python](/id-id/dokumentasi/guides/whatsapp/groups/management.py.md) · [Go](/id-id/dokumentasi/guides/whatsapp/groups/management.go.md) · [PHP](/id-id/dokumentasi/guides/whatsapp/groups/management.php.md) · [CLI](/id-id/dokumentasi/guides/whatsapp/groups/management.cli.md) · [cURL](/id-id/dokumentasi/guides/whatsapp/groups/management.curl.md)

Grup yang dihapus tetap ada di daftar dengan `status` `deleted`, jadi filter berdasarkan status untuk melihat hanya grup yang masih bisa Anda kirimi pesan.

## Pemecahan masalah

- **`412` ([E15045](/docs/api/errors/E15045))**: Nomor tersebut tidak memiliki status Official Business Account, sehingga WhatsApp tidak mengizinkannya membuat grup. Keputusan ada di tangan WhatsApp: ajukan status tersebut di WhatsApp Manager pada profil nomor, atau buat grup menggunakan nomor yang sudah memilikinya.
- **`404` ([E15046](/docs/api/errors/E15046))**: ID tersebut tidak merujuk grup mana pun yang dimiliki workspace ini. Grup milik workspace yang membuatnya, jadi ID dari workspace lain tidak ditemukan di sini.
- **`409` ([E15047](/docs/api/errors/E15047))**: Grup berstatus pending, suspended, deleted, atau failed. Hanya grup aktif yang menerima perubahan. Baca grup untuk melihat statusnya.
- **`409` ([E15049](/docs/api/errors/E15049))**: Nomor tersebut sudah mengelola 10.000 grup yang diizinkan WhatsApp. Hapus grup yang percakapannya sudah selesai, atau buat grup ini pada nomor lain.
- **`409` ([E15054](/docs/api/errors/E15054))**: Perubahan pada grup atau peserta yang sama masih belum selesai. Baca `last_operation` dan tunggu hingga selesai.
- **`422` ([E15050](/docs/api/errors/E15050))**: Path tidak merujuk siapa pun di grup. Baca `participants` grup dan gunakan `bsuid` atau `phone_number` sebagaimana dilaporkan.
- **`422` ([E15051](/docs/api/errors/E15051))**: Salah satu ID permintaan bergabung sudah tidak lagi menunggu keputusan. Tampilkan daftar permintaan lagi dan gunakan ID yang dikembalikan.
- **`422` ([E15053](/docs/api/errors/E15053))**: Pesan tersebut milik grup lain atau percakapan satu-ke-satu. `to.group_id` pesan menunjukkan grup mana yang dapat menyematkannya.
- **Grup `pending` yang tidak pernah menjadi aktif**: Bird berhenti menunggu alih-alih membiarkannya pending, dan memindahkan grup ke `failed` dengan alasan pada `last_operation.last_error`. Buat pengganti alih-alih mencoba lagi.

## Referensi

Bentuk request dan respons lengkap ada di referensi API: [create](/docs/api/reference/create-whatsapp-group), [list](/docs/api/reference/list-whatsapp-groups), [get](/docs/api/reference/get-whatsapp-group), [update](/docs/api/reference/update-whatsapp-group), [delete](/docs/api/reference/delete-whatsapp-group), [rotasi tautan undangan](/docs/api/reference/rotate-whatsapp-group-invite-link), [hapus peserta](/docs/api/reference/delete-whatsapp-group-participant), [list](/docs/api/reference/list-whatsapp-group-join-requests), [approve](/docs/api/reference/approve-whatsapp-group-join-requests) dan [reject](/docs/api/reference/reject-whatsapp-group-join-requests) permintaan bergabung, serta [pin](/docs/api/reference/create-whatsapp-group-pinned-message) dan [unpin](/docs/api/reference/delete-whatsapp-group-pinned-message) pesan.

## Langkah berikutnya

- [Grup WhatsApp](/docs/guides/whatsapp/groups): fungsi grup, dan siklus hidup yang sama di dashboard
- [Mengirim ke grup WhatsApp](/docs/guides/whatsapp/groups/sending): mengalamatkan grup, persyaratannya, dan tanda terima per peserta
- [Menerima pesan grup WhatsApp](/docs/guides/whatsapp/groups/receiving): peserta mana yang menulisnya, dan membalas ke grup
- [Business-scoped user IDs](/docs/guides/whatsapp/business-scoped-user-ids): identifier yang digunakan untuk menamai peserta saat Anda tidak memiliki nomor telepon
- [Idempotency](/docs/guides/idempotency): mencoba lagi operasi tulis yang mungkin sudah diterima

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