Skip to content
S SiPesan Docs
ID EN

Webhook

SIPESAN mengirim callback HTTP POST real-time ke server Anda saat status pesan berubah (status pengiriman), dan juga menerima webhook masuk dari channel pesan.

Webhook Status Pengiriman

Terima callback saat status pesan berubah. Atur URL endpoint webhook Anda di dashboard bisnis.

Struktur Payload

Field Tipe Keterangan
messageid string Identifier unik pesan.
status string Status terkini: sent, delivered, read, undelivered, atau failed.
reason string|null Deskripsi error jika gagal. Untuk kanal WhatsApp Web (QR): account_banned (nomor diblokir WhatsApp), channel_disconnected_timeout (kanal terputus melebihi batas waktu), opted_out (pelanggan balas STOP/BERHENTI), channel_missing (kanal tidak ditemukan).
datetime string Timestamp ISO-8601 saat event terjadi.
signature string Hash MD5 untuk memverifikasi keaslian payload.

Contoh Payload

{
  "messageid": "e145f8a2-...",
  "status": "delivered",
  "reason": null,
  "datetime": "2026-06-05T12:00:00+07:00",
  "signature": "9b2c1f3a4d5e6f7a8b9c0d1e2f3a4b5c"
}

Verifikasi Signature

Untuk memastikan webhook benar-benar dari server kami, hitung hash MD5 dari gabungan string: {channelId}{messageId}{status}{datetime}, lalu bandingkan dengan field signature.

Contoh PHP

<?php

$channelId = '8d7c0b1e-...'; // Channel ID Anda
$payload   = json_decode(file_get_contents('php://input'));

$signatureRaw = $channelId
    . $payload->messageid
    . $payload->status
    . $payload->datetime;
$expectedSignature = md5($signatureRaw);

if (hash_equals($expectedSignature, $payload->signature)) {
    // Signature valid — proses webhook di sini.
}

Webhook Channel Masuk

Endpoint yang dipanggil platform pesan ke SIPESAN. Anda tidak perlu memanggilnya sendiri — cukup hubungkan channel di panel bisnis.

Metode Path Verifikasi Catatan
GET / POST /webhooks/whatsapp/{identifier} GET dengan hub.challenge untuk verifikasi Meta; POST untuk pesan masuk. Token verifikasi dikonfigurasi per kanal di panel bisnis.
POST /telegram/webhook/{webhookId} POST untuk update dari Telegram. webhook_id adalah ID kanal Telegram di SIPESAN.
GET / POST /webhooks/instagram GET dengan hub.challenge untuk verifikasi Meta; POST untuk pesan masuk. Token verifikasi dikonfigurasi per kanal Instagram.