Skip to content

Terima pesan & webhook

Pasang endpoint HTTPS biar kamu bisa terima pesan real-time, laporan pengiriman, dan update status template dari Wazapin.

Updated View as Markdown

Wazapin pakai webhook buat nge-push event (kayak balasan customer atau laporan pengiriman) ke server kamu real-time. Nggak perlu polling API terus — cukup siapin server yang bisa dengerin HTTP POST yang udah di-sign.

Dapatkan indeks dokumentasi lengkap di: llms.txt

Ikuti langkah-langkah ini buat terima event webhook WhatsApp pertamamu.


Langkah 1: Siapin dulu

Sebelum mulai, pastiin kamu punya:

  1. Nomor WhatsApp yang udah terhubung: Mau WABA resmi atau channel unofficial sama-sama bisa. Cek Hubungkan nomormu.
  2. API key yang aktif: Buat ngatur webhook lewat API kalau dibutuhin. Cek API key.
  3. Endpoint HTTPS: URL publik di server kamu yang bisa nerima HTTP POST. Buat ngulik di lokal, pakai Ngrok atau Localtunnel biar port lokal kamu bisa diakses dari luar.

Langkah 2: Daftarin endpoint webhook kamu

Kamu bisa atur endpoint lewat Dashboard Wazapin di Settings → Developer → Webhooks, atau langsung lewat API:

Aksi Method dan path Deskripsi
Buat endpoint POST /v1/settings/developer/webhooks/endpoints Daftarin URL webhook baru.
Cek daftar pengaturan GET /v1/settings/developer/webhooks Cek endpoint yang udah terdaftar dan langganan yang aktif.
Update endpoint PATCH /v1/settings/developer/webhooks/endpoints/{endpointID} Ganti URL atau jenis event yang kamu subscribe.
Hapus endpoint DELETE /v1/settings/developer/webhooks/endpoints/{endpointID} Hapus endpoint.

Buat referensi OpenAPI lengkapnya, lihat Referensi API Webhook.


Langkah 3: Verifikasi signature

Tiap webhook yang dikirim udah di-sign pakai endpoint signing secret (formatnya whsec_...). Biar nggak ada yang iseng kirim request palsu ke server kamu, verifikasi dulu header signature-nya sebelum kamu baca body JSON-nya.

Cek header ini di tiap request yang masuk:

  • svix-id atau webhook-id
  • svix-timestamp atau webhook-timestamp
  • svix-signature atau webhook-signature

Buat cara verifikasi manual dan helper SDK (Node/Express, Python), cek Panduan verifikasi signature webhook.


Langkah 4: Pilah event sesuai jenisnya

Kalau udah verified, cek jenis event-nya. Event yang kamu subscribe bakal dikirim sebagai JSON simpel (flat object). Pilah di logic aplikasi kamu berdasarkan msg_type atau nama event:

Jenis event Deskripsi Panduan
message.new (msg_type: text) User ngirim balasan teks. Handle teks masuk
message.new (msg_type: image, video, audio, document, sticker) User ngirim foto, voice note, dokumen, dll. Handle media masuk
message.new (msg_type: interactive) User pencet tombol quick-reply atau pilih menu list. Handle balasan interaktif
message.status_update Pesan berubah status jadi sent, delivered, read, atau failed. Handle status pengiriman

Buat daftar lengkap event yang bisa kamu subscribe, lihat Katalog event webhook.


Langkah 5: Jangan proses event dobel (idempotency)

Kadang karena retry jaringan, server kamu bisa dapet event yang sama dua kali.

  • Ambil header svix-id (atau webhook-id) dari request.
  • Simpan ID event yang udah kamu proses di database atau cache (misalnya Redis).
  • Kalau ada request masuk dengan ID yang udah pernah kamu proses, langsung balas 200 OK aja dan skip.

Buat pola desain yang lebih detail, lihat Siklus hidup pesan dan idempotency.


Langkah 6: Langkah selanjutnya

Navigation

Type to search…

↑↓ navigate↵ selectEsc close