# Tandai pesan sebagai sudah dibaca

Konfirmasi pesan WhatsApp dari kontak saat Anda telah membacanya atau mulai menangani permintaan mereka. Anda juga dapat menampilkan indikator mengetik saat menyiapkan balasan.

## Prasyarat

Anda memerlukan kunci API dengan izin tulis WhatsApp dan ID pesan Bird (`wam_…`) dari pesan yang diterima workspace Anda. Gunakan `data.whatsapp_id` dari [webhook `whatsapp.received`](/docs/guides/whatsapp/receiving-whatsapp), atau `id` pesan dari [log WhatsApp](/docs/guides/whatsapp/message-log).

Ganti contoh ID pesan dengan ID pesan yang diterima workspace Anda. Inisialisasi klien untuk bahasa Anda menggunakan panduan [TypeScript](/docs/sdks/typescript), [Python](/docs/sdks/python), [Go](/docs/sdks/go), atau [PHP](/docs/sdks/php) SDK. Untuk contoh CLI, [instal dan autentikasi CLI](/docs/cli#authenticate) dengan akses tulis WhatsApp. Gunakan host API untuk [region workspace](/docs/api/regions) Anda dalam permintaan cURL.

## 1. Tandai pesan yang diterima sebagai sudah dibaca

Panggil [Tandai pesan sebagai sudah dibaca](/docs/api/reference/send-whatsapp-read-receipt) dengan ID pesan yang diterima. WhatsApp juga menandai pesan sebelumnya dalam percakapan yang sama sebagai sudah dibaca, jadi pilih pesan yang mewakili sejauh mana Anda telah membaca.

**TypeScript**

```typescript
const acknowledgement = await bird.whatsapp.markRead("wam_01krdgeqcxet5s7t44vh8rt9mg", {});
console.log(acknowledgement.typing_indicator);
```

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

Permintaan yang berhasil mengembalikan `202` dengan `typing_indicator: false`. Konfirmasi diterima untuk diproses; respons tidak mengonfirmasi bahwa kontak telah melihatnya. Konfirmasi baca tidak menghasilkan pesan keluar yang ditagih.

## 2. Tampilkan indikator mengetik saat menyiapkan balasan

Untuk menandai pesan sebagai sudah dibaca dan menampilkan indikator mengetik, kirim `typing_indicator: true` dalam permintaan yang sama:

**TypeScript**

```typescript
await bird.whatsapp.markRead("wam_01krdgeqcxet5s7t44vh8rt9mg", {
  typing_indicator: true,
});
```

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

WhatsApp menghapus indikator saat Anda mengirim pesan atau setelah 25 detik. Mengulangi panggilan ini aman. Untuk memperbarui indikator mengetik, hapus `Idempotency-Key` atau gunakan kunci baru; mengulang permintaan sebelumnya tidak memperbarui indikator.

## 3. Periksa pesan yang diterima

[Ambil pesan](/docs/api/reference/get-whatsapp-message) untuk memeriksa `read_at`. Setelah WhatsApp menerima konfirmasi, pesan yang diterima dapat memuat timestamp ini sambil mempertahankan status `received`. Tidak ada resource konfirmasi terpisah atau webhook pengiriman untuk dilacak.

## Pemecahan masalah

- **`404` ([E15071](/docs/api/errors/E15071))**: Periksa ID pesan dan workspace. Bird dapat menemukan pesan untuk konfirmasi selama 15 hari; pesan yang lebih lama tidak dapat ditandai sudah dibaca melalui operasi ini.
- **`422` ([E15074](/docs/api/errors/E15074))**: Gunakan pesan masuk yang dapat dikonfirmasi oleh workspace Anda. Pesan keluar bukan target yang valid.
- **`503` ([E15073](/docs/api/errors/E15073))**: Coba lagi setelah kegagalan sementara dalam menemukan pesan.

## Langkah selanjutnya

- [Kirim balasan](/docs/guides/whatsapp/sending-whatsapp)
- [Bereaksi terhadap pesan yang diterima](/docs/guides/whatsapp/reactions)
- [Terima pesan WhatsApp](/docs/guides/whatsapp/receiving-whatsapp)

## 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](/products/whatsapp) (product)

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