Lewati ke konten
OmniChannels.ai

API dan SMPP

Bagaimana cara menerima laporan pengiriman dengan webhook?

Diperbarui

Jawaban singkat

Untuk menerima laporan pengiriman (DLR) lewat webhook, sediakan endpoint HTTPS yang menerima request POST, lalu daftarkan URL-nya ke provider pesan Anda. Simpan setiap event, balas dengan status 2xx secepatnya, dan proses secara asinkron. Cocokkan event dengan data Anda berdasarkan message ID, deduplikasi, dan jangan biarkan status yang terlambat menimpa status akhir.

Siapkan endpoint

Selama pengembangan, tunnel memberi server lokal sebuah URL HTTPS publik.

  1. Sediakan endpoint HTTPS yang menerima request POST dengan body JSON.
  2. Berikan URL tersebut ke provider Anda agar dikonfigurasi pada akun atau sub-akun yang tepat.
  3. Kirim pesan uji ke nomor Anda sendiri dan catat body event mentah di log.
  4. Petakan field yang Anda butuhkan dari event sebenarnya, bukan dari nama field yang diasumsikan.
  5. Simpan contoh payload sebagai test fixture untuk setiap kanal yang Anda gunakan.

Status apa saja yang akan Anda terima?

Provider menerjemahkan tanda terima dari operator dan kanal ke nama status mereka sendiri. Kumpulan status yang dinormalisasi ini digunakan OmniChannels.ai di SMS, WhatsApp, dan kanal lainnya.

StatusArtiStatus akhir?
SUBMITTEDDiterima dan masuk antreanTidak
SENTDiteruskan ke operator atau kanalTidak
DELIVEREDTerkonfirmasi sampai di perangkatBiasanya; READ dapat menyusul
READSudah dibuka, pada kanal yang melaporkan status dibacaYa
FAILEDTidak terkirim, disertai alasan jika tersediaYa
REJECTEDDitolak, misalnya karena Sender ID belum terdaftarYa

Buat handler yang andal

  • Simpan body mentah, lalu kembalikan 2xx. Jika penyimpanan gagal, kembalikan 5xx agar event dapat dicoba ulang.
  • Jalankan proses utama di antrean atau worker, bukan sebelum Anda merespons.
  • Deduplikasi berdasarkan message ID; status yang sama bisa datang dua kali.
  • Beri peringkat pada status agar SENT yang terlambat tidak pernah menimpa DELIVERED.
  • Terima nilai status yang tidak Anda kenali, jangan malah gagal.
  • Jangan pernah mengirim ulang pesan dari dalam handler webhook.

Amankan endpoint dan pulihkan laporan yang terlewat

Terima HTTPS saja, gunakan path yang panjang dan sulit ditebak, validasi bentuk body, dan konfirmasi status lewat panggilan status sebelum tindakan yang tidak dapat dibatalkan, seperti refund. Jika endpoint Anda sempat mati, minta provider mengirim ulang (re-push) laporan untuk periode tersebut, atau baca status dari endpoint pelaporannya.

Pada SMPP, laporan pengiriman datang sebagai deliver_sm di bind, bukan lewat webhook. Sebagian operator mengirim laporan terlambat atau tidak sama sekali, jadi anggap laporan sebagai bukti yang kuat, bukan bukti bahwa pesan sudah dibaca.

Sumber resmi