Bagian 10
Menerima webhook
Format event, jenis event, dan cara endpoint merchant membalas.
Daftarkan satu endpoint HTTPS pada dashboard integrasi dan simpan webhook secret di backend. Secret webhook berbeda dari API key. AntaraPay mengirim HTTP POST application/json ke endpoint Anda; konfigurasi URL tidak dikirim ulang pada setiap transaksi.
Payload event
payin.completed
{
"event_id": "evt_example_001",
"type": "payin.completed",
"schema_version": 1,
"occurred_at": "2026-10-15T05:02:00Z",
"resource_version": 4,
"data": {
"id": "pin_example_001",
"reference": "ORDER-0001",
"status": "completed",
"amount": "100000",
"fee": "1500",
"net": "98500",
"currency": "IDR",
"settlement_status": "COMPLETED"
}
}Jenis event
| Event | Resource dan payload data |
|---|---|
payin.completed | status completed; id, reference, amount, fee, net, currency, settlement_status. |
payin.failed | status failed; id, reference, reason_code dan message. |
payin.expired | status expired; id, reference, reason_code PAYMENT_EXPIRED dan message. |
payout.completed | status completed; id, reference, amount, fee, currency, completed_at, transfer_reference nullable. |
payout.failed | status failed; id, reference, reason_code (PAYOUT_FAILED, PAYOUT_REJECTED, atau PAYOUT_CANCELLED); message. |
Nilai data.status
data.status pada webhook hanya completed, failed, atau expired, seluruhnya lowercase.
| Nilai | Arti |
|---|---|
completed | Pembayaran/transfer terkonfirmasi. |
failed | Gagal pasti, ditolak, atau dibatalkan; reason_code membedakan penyebab. |
expired | Instruksi payin kedaluwarsa. |
Status proses tetap tersedia melalui GET, bukan webhook final.
resource_version berlaku per data.id; event versi lebih baru dapat mengoreksi expired menjadi completed bila pembayaran terlambat terverifikasi.Balasan endpoint Anda
Endpoint Anda sebaiknya membalas 200/204 setelah event diverifikasi dan disimpan durable, lalu memproses pekerjaan berat asinkron. Jika penyimpanan gagal, kembalikan 5xx agar event dapat dikirim ulang. Event dengan signature salah harus ditolak tanpa mengubah data.