Webhooks
Panduan setup webhook TransX402 — terima notifikasi pembayaran real-time, verifikasi tanda tangan HMAC-SHA256, dan kebijakan retry.
Ringkasan
Webhook memungkinkan server Anda menerima notifikasi real-time saat pembayaran terjadi. Alih-alih polling API untuk mengecek status pembayaran, TransX402 akan mengirim HTTP POST request ke URL yang Anda tentukan setiap kali ada event pembayaran.
Setup Webhook
1. Konfigurasi URL Webhook
Buka halaman Settings di dashboard TransX402 dan masukkan URL webhook Anda:
Atau via API:
Saat webhookSecret diset ke "auto", sistem akan men-generate secret secara otomatis. Secret ini digunakan untuk menandatangani payload webhook.
2. Implementasi Endpoint Webhook
Buat endpoint di server Anda yang menerima POST request dari TransX402:
Payload Webhook
Format
Tipe Event
| Event | Deskripsi |
|---|---|
payment.confirmed | Pembayaran berhasil dikonfirmasi on-chain |
payment.failed | Pembayaran gagal (transaksi reverted atau error lain) |
Verifikasi Tanda Tangan
Setiap webhook request menyertakan header X-TransX402-Signature yang berisi HMAC-SHA256 dari body request menggunakan webhook secret merchant. Anda harus memverifikasi tanda tangan ini untuk memastikan webhook benar-benar berasal dari TransX402.
Node.js
Python
PHP
Kebijakan Retry
Jika endpoint webhook Anda tidak merespons dengan status 2xx (200-299), TransX402 akan mencoba ulang pengiriman dengan exponential backoff:
| Percobaan | Delay | Total waktu sejak event |
|---|---|---|
| 1 | Langsung | 0 |
| 2 | 1 menit | 1 menit |
| 3 | 5 menit | 6 menit |
| 4 | 15 menit | 21 menit |
| 5 | 1 jam | 1 jam 21 menit |
Setelah 5 percobaan gagal, webhook dianggap gagal dan tidak akan dicoba lagi. Anda bisa melihat status pengiriman webhook di halaman Settings pada dashboard.
Tips untuk Endpoint Webhook
- Respons cepat — Kembalikan 200 sesegera mungkin, proses event secara asinkron jika perlu
- Idempoten — Pastikan endpoint Anda bisa menerima event yang sama lebih dari sekali tanpa efek samping (webhook bisa dikirim ulang)
- Verifikasi tanda tangan — Selalu verifikasi HMAC-SHA256 signature untuk keamanan
- Log semua event — Simpan log webhook yang diterima untuk debugging
Testing Webhook
Kirim Test Event
Anda bisa mengirim test event dari halaman Settings di dashboard dengan mengklik tombol "Send Test Event". Ini akan mengirim payload webhook test ke URL webhook Anda.
Gunakan Sandbox
Semua pembayaran di sandbox juga mengirim webhook. Ini memungkinkan Anda menguji seluruh alur webhook tanpa melakukan pembayaran nyata:
- Set webhook URL di dashboard
- Lakukan pembayaran sandbox
- Periksa apakah webhook diterima dengan benar
- Verifikasi signature validation berfungsi
- Pastikan logika bisnis Anda memproses event dengan benar
Tool Debugging
Untuk testing dan debugging, Anda bisa menggunakan tool seperti:
- webhook.site — Terima dan inspeksi webhook request secara real-time
- ngrok — Ekspos localhost ke internet untuk menerima webhook selama development
Status Pengiriman
Di halaman Settings pada dashboard, Anda bisa melihat statistik pengiriman webhook:
- Total — Jumlah total webhook yang dikirim
- Delivered — Jumlah webhook yang berhasil diterima (respons 2xx)
- Failed — Jumlah webhook yang gagal setelah semua retry
Setiap pengiriman webhook dicatat di database untuk audit trail dan debugging.