Langsung ke konten utama
POST
curl
Destinasi webhook memungkinkan Anda mengirim event Didit yang berbeda ke URL yang berbeda. Setiap destinasi memiliki secret_shared_key, webhook_version, dan daftar subscribed_events sendiri.

Cara kerja subscribed_events

subscribed_events adalah array wajib berisi nama event yang tepat. Didit hanya mengirimkan webhook ke destinasi ini ketika webhook_type pada payload cocok dengan salah satu nilai dalam array tersebut.
  • Sertakan setidaknya satu event.
  • Gunakan hanya nama event yang didukung di bawah ini.
  • Tambahkan setiap event yang ingin Anda terima; tidak ada nilai wildcard seperti * atau all.
  • Untuk mengarahkan area produk yang berbeda ke sistem yang berbeda, buat beberapa destinasi dengan daftar subscribed_events yang berbeda.

Katalog event

Keluarga event Investigator (investigator.*) dan Authentication (auth.*) juga diterima. Setiap event dan payload-nya tercantum di Webhooks. Kumpulan langganan umum:
Untuk contoh payload dan kode penandatanganan, lihat panduan webhook.

Otorisasi

x-api-key
string
header
wajib

Kunci API aplikasi Anda, dari Developers -> API keys di Business Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat https://docs.didit.me/console/api-keys.

Body

application/json
label
string
wajib

Nama yang mudah dibaca manusia yang ditampilkan di Console → Webhooks. Membantu membedakan tujuan ketika Anda memiliki beberapa (mis. "Prod", "Staging mirror").

Maximum string length: 255
url
string<uri>
wajib

URL HTTPS yang akan menerima permintaan POST. Harus unik di antara tujuan aplikasi. Gunakan endpoint yang stabil dan diperkuat: Didit mencoba lagi pengiriman yang gagal dengan jadwal backoff.

Maximum string length: 2000
enabled
boolean
default:true

Jika false, tujuan disimpan tetapi Didit tidak akan mengirim webhook apa pun ke sana. Berguna untuk konfigurasi staging yang ingin Anda simpan sementara.

webhook_version
enum<string>

Versi skema payload yang akan dikirim oleh Didit. v3 adalah format saat ini/yang direkomendasikan; versi yang lebih lama dipertahankan untuk kompatibilitas mundur dengan integrasi lama.

Opsi yang tersedia:
v1,
v2,
v3
subscribed_events
enum<string>[]

Event untuk dikirimkan. Secara praktis wajib: [] eksplisit ditolak dengan 400, dan tidak menyertakan kolom ini akan membuat tujuan tanpa langganan yang tidak menerima apa pun.

Minimum array length: 1

Nama event webhook yang didukung. Gunakan string persis ini di subscribed_events; nilai yang tidak didukung akan ditolak.

Opsi yang tersedia:
status.updated,
data.updated,
user.status.updated,
user.data.updated,
business.status.updated,
business.data.updated,
activity.created,
transaction.created,
transaction.status.updated,
travel_rule.status.updated,
workflow.compliance_changed,
transaction_rule_suggestions.created,
auth.signup,
auth.login,
auth.login_failed,
auth.password_reset_requested,
auth.password_reset_completed,
auth.mfa_changed,
auth.new_device,
auth.account_locked,
investigator.report.ready,
investigator.decision.automated,
investigator.decision.overridden,
investigator.decision.contested,
investigator.question.raised,
investigator.automation.paused,
investigator.rfi.answered,
investigator.rfi.overdue,
investigator.drift.detected,
investigator.sla.breached,
investigator.qa.failed,
investigator.external.report.ready
Contoh:

Respons

Tujuan dibuat. secret_shared_key adalah rahasia penandatanganan HMAC — simpan sekarang.

uuid
string<uuid>

Pengidentifikasi tujuan yang stabil. Gunakan sebagai {destination_uuid} dalam panggilan berikutnya.

label
string
url
string<uri>
enabled
boolean
webhook_version
enum<string>
Opsi yang tersedia:
v1,
v2,
v3
secret_shared_key
string

Rahasia penandatanganan HMAC yang dibuat secara otomatis dan terikat ke tujuan ini (token 43 karakter yang aman untuk URL). Gunakan ini untuk memverifikasi header tanda tangan pada webhook yang masuk. Selalu dikembalikan lengkap untuk pemanggil dengan kunci API; pengguna Console memerlukan izin read:webhooks, jika tidak, mereka melihat string kosong.

secret_last4
string

Empat karakter terakhir dari rahasia penandatanganan tujuan saat ini, sehingga Anda dapat membedakan rahasia. Tidak cukup untuk memverifikasi tanda tangan.

previous_secret_expires_at
string<date-time> | null

Ditetapkan selama 24 jam setelah rahasia penandatanganan tujuan dirotasi di Business Console. Hingga waktu ini, setiap pengiriman ke tujuan juga membawa X-Signature-Previous, X-Signature-V2-Previous, dan X-Signature-Simple-Previous, yang dibuat dengan rahasia yang diganti (lihat Verifikasi tanda tangan). null jika tidak ada rotasi yang terjadi dalam 24 jam terakhir.

subscribed_events
enum<string>[]

Filter event untuk tujuan webhook ini. Didit hanya mengirimkan webhook yang tipe event-nya sama persis dengan salah satu nilai ini — tidak ada langganan wildcard. Saat dikirim, daftar ini harus berisi setidaknya satu event yang valid ([] eksplisit akan ditolak dengan kode 400); tujuan yang daftarnya kosong (kolom tidak disertakan saat pembuatan) tidak akan menerima apa pun. Saat pembaruan, daftar diganti secara keseluruhan, tidak pernah digabungkan.

Minimum array length: 1

Nama event webhook yang didukung. Gunakan string persis ini di subscribed_events; nilai yang tidak didukung akan ditolak.

Opsi yang tersedia:
status.updated,
data.updated,
user.status.updated,
user.data.updated,
business.status.updated,
business.data.updated,
activity.created,
transaction.created,
transaction.status.updated,
travel_rule.status.updated,
workflow.compliance_changed,
transaction_rule_suggestions.created,
auth.signup,
auth.login,
auth.login_failed,
auth.password_reset_requested,
auth.password_reset_completed,
auth.mfa_changed,
auth.new_device,
auth.account_locked,
investigator.report.ready,
investigator.decision.automated,
investigator.decision.overridden,
investigator.decision.contested,
investigator.question.raised,
investigator.automation.paused,
investigator.rfi.answered,
investigator.rfi.overdue,
investigator.drift.detected,
investigator.sla.breached,
investigator.qa.failed,
investigator.external.report.ready
Contoh:
created_by_email
string | null

Email anggota Business Console yang membuat tujuan. null untuk tujuan yang dibuat dengan kunci API.

created_by_name
string | null

Nama anggota Business Console yang membuat tujuan. Bernilai null untuk tujuan yang dibuat dengan kunci API.

created_at
string<date-time>
updated_at
string<date-time>
health_status
enum<string>

Status pengiriman. failing: 3 event berturut-turut atau lebih gagal pada upaya pengiriman pertamanya sejak tujuan terakhir kali merespons dengan berhasil (lihat failing_streak). degraded: tidak gagal (failing), tetapi upaya pengiriman gagal dalam 24 jam terakhir dan tidak ada upaya berikutnya yang berhasil mengirimkan event tersebut; percobaan ulang atau pengiriman ulang yang berhasil menyelesaikannya akan menghapus status ini. healthy: tidak keduanya. Independen dari enabled. Upaya yang gagal adalah upaya yang direspons dengan HTTP 400 ke atas, atau tidak direspons sama sekali.

Opsi yang tersedia:
healthy,
degraded,
failing
failing_streak
integer

Berapa banyak event berturut-turut yang gagal pada upaya pengiriman pertamanya sejak tujuan terakhir kali merespons dengan berhasil, dalam 30 hari terakhir. Coba lagi tidak dihitung, dan setiap upaya yang berhasil, termasuk coba lagi atau pengiriman ulang, mengakhiri rentetan tersebut. 0 jika tidak ada event yang gagal sejak keberhasilan terakhir.

failing_since
string<date-time> | null

Waktu ketika upaya gagal pertama dari failing_streak saat ini dilakukan. null jika failing_streak bernilai 0.

last_success_at
string<date-time> | null

Waktu ketika tujuan terakhir kali merespons pengiriman dengan status HTTP di bawah 400, dalam 30 hari terakhir. null jika tidak merespons dalam rentang waktu tersebut.

environment
enum<string>

Lingkungan aplikasi yang memiliki tujuan tersebut.

Opsi yang tersedia:
live,
sandbox
summary
object

Metrik pengiriman selama metrics_window_days (30) hari terakhir. last_delivery_at adalah upaya paling baru, kapan pun upaya tersebut dilakukan.

Terakhir diubah pada 7 November 2026