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

EventResource dan payload data
payin.completedstatus completed; id, reference, amount, fee, net, currency, settlement_status.
payin.failedstatus failed; id, reference, reason_code dan message.
payin.expiredstatus expired; id, reference, reason_code PAYMENT_EXPIRED dan message.
payout.completedstatus completed; id, reference, amount, fee, currency, completed_at, transfer_reference nullable.
payout.failedstatus 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.

NilaiArti
completedPembayaran/transfer terkonfirmasi.
failedGagal pasti, ditolak, atau dibatalkan; reason_code membedakan penyebab.
expiredInstruksi 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.