Cancel Payment
Membatalkan transaksi pending.
POST
cURL
/api/payments/:id/cancel
Membatalkan transaksi yang masih pending.
Jika request berhasil, status transaksi berubah menjadi cancelled dan event payment.cancelled dikirim ke webhook.
Alias endpoint POST /api/transactions/:id/cancel tersedia dengan perilaku yang sama.
Aturan Status
| Status awal | Hasil |
|---|---|
pending | cancelled |
refund_processing | paid, proses refund dibatalkan. |
created, paid, expired, failed, cancelled, settled, refund_failed, refunded | Tidak dapat dibatalkan. |
Path Params
| Param | Type | Wajib | Keterangan |
|---|---|---|---|
id | string | Ya | UUID transaksi atau reference_id. |
Request Example
curl -X POST "<origin>/api/payments/f2b1d5b0-7b1f-4c5d-9c37-93f0c8f6a001/cancel" \ -H "Authorization: Bearer sk_xxx"Response
{
"payment": {
"id": "f2b1d5b0-7b1f-4c5d-9c37-93f0c8f6a001",
"reference_id": "PAY-LXAMPLE",
"merchant_reference_id": "ORDER-1024",
"payment_method_code": "qris",
"currency": "IDR",
"amount": 150000,
"fee_amount": 1050,
"net_amount": 150000,
"total_amount": 151050,
"status": "cancelled",
"cancelled_at": "2026-05-19T10:05:00Z"
}
}HTTP Error Code
| HTTP | Code | Keterangan |
|---|---|---|
400 | payment_cancel_failed | Transaksi tidak dapat dibatalkan dari status saat ini. |
401 | invalid_api_key | Secret key tidak valid. |
403 | merchant_not_approved | Merchant belum aktif. |
403 | api_key_ip_not_allowed | IP request tidak ada di allowlist API key. |
404 | not_found | Transaksi tidak ditemukan. |