Terima notifikasi real-time dari Mutasiku ke endpoint aplikasi Anda.
Webhook dikirim sebagai HTTP POST dari server Mutasiku ke URL endpoint Anda. Daftarkan endpoint di dashboard.
Setup
Daftarkan webhook di dashboard
Buka Settings → Webhooks di dashboard, klik Add Webhook, dan masukkan URL endpoint Anda.
Pilih events yang ingin diterima
Pilih event spesifik atau subscribe ke semua event.
Implementasikan verifikasi signature
Verifikasi header X-Webhook-Signature di setiap request masuk. Lihat bagian Security di bawah.
Test webhook Anda
Gunakan fitur test di dashboard untuk mengirim event percobaan ke endpoint Anda.
Available Events
Account Events
| Event | Keterangan |
|---|---|
account.created | Akun baru dibuat |
account.updated | Detail akun diperbarui |
Payload account.created
Payload account.updated
Mutations Events
| Event | Keterangan |
|---|---|
mutations.created | Mutasi/transaksi baru terdeteksi |
balance.updated | Saldo akun berubah |
Payload mutations.created
Payload balance.updated
Payment Events
| Event | Keterangan |
|---|---|
payment.created | Pembayaran baru dibuat |
payment.completed | Pembayaran berhasil |
payment.expired | Pembayaran kadaluarsa |
payment.failed | Pembayaran gagal |
Payload payment.completed
Payload payment.expired
Security — Verifikasi Signature
Selalu verifikasi X-Webhook-Signature sebelum memproses payload. Abaikan request tanpa signature valid untuk mencegah pemalsuan event.
Signature dibuat menggunakan HMAC-SHA256 dengan secret webhook Anda sebagai key dan field data (JSON string) sebagai message.
Node.js
PHP
Python
Best Practices
Kembalikan 2xx segera. Jangan tunggu proses selesai — kirim respons 200 lebih dulu, lalu proses event secara asinkron dengan queue/job. Jika endpoint tidak merespons dalam 30 detik, Mutasiku akan retry.
Idempotent handler. Event yang sama bisa dikirim lebih dari sekali. Gunakan field id dari payload sebagai idempotency key untuk mencegah proses duplikat.
Simpan raw payload. Log seluruh payload yang masuk untuk keperluan debugging dan audit.
Troubleshooting
| Masalah | Solusi |
|---|---|
| Webhook tidak diterima | Pastikan URL endpoint dapat diakses dari internet (bukan localhost) |
| Signature tidak valid | Gunakan JSON.stringify(payload.data), bukan seluruh payload |
| Timeout | Kembalikan 200 segera, proses logic secara asinkron |
| Event duplikat | Implementasikan idempotency key menggunakan field id di payload |
© 2026 PT. Cobra Code Indonesia. All rights reserved.
Last updated: 4/11/2026