Refund

Buat refund

Kembalikan dana pada pembayaran kartu yang succeeded, seluruhnya atau sebagian.

POST/v1/refunds

Header

Idempotency-Keyheaderopsional

Opsional, maksimal 255 byte. Kirimlah: refund yang diulang dengan key yang sama mengembalikan refund yang asli dan tidak pernah sampai ke pemroses lagi, apa pun isi body kali ini — tidak ada perbandingan body pada refund, jadi tidak ada 409. Tanpanya, setiap retry adalah refund baru. Lihat Idempotency.

Contoh: refund-order-1234

Parameter body

transaction_idstringwajib

Id payreq_* pembayaran kartu yang succeeded. Metode lain ditolak 422 refund_not_supported; status lain 409 not_refundable.

Contoh: payreq_9b2f...

amountintegeropsional

Rupiah utuh, 1 sampai sisa yang belum direfund pada pembayaran itu. Kosongkan untuk seluruh sisanya; 0 eksplisit ditolak 422. Refund sebagian boleh diulang sampai nominal yang dibayar habis — satu rupiah lebih ditolak 422 refund_exceeds_amount.

Contoh: 50000

reasonstringopsional

Teks bebas, maks 255 karakter, disimpan dan dikembalikan. Tidak ditampilkan ke pembeli.

Contoh: Satu barang dikembalikan

Field respons

idstringopsional

Id rfd_*. Baca kembali dengan GET /v1/refunds/{id}.

Contoh: rfd_7c1a...

transaction_idstringopsional

Id payreq_* asal dana yang dikembalikan.

Contoh: payreq_9b2f...

statusstringopsional

succeeded, failed, atau pending. pending adalah refund yang tidak pernah dijawab pemroses: nominalnya ditahan sampai diselesaikan manusia, jadi jangan coba lagi — lihat refund_unresolved.

Contoh: succeeded

amountintegeropsional

Rupiah utuh yang dikembalikan oleh refund ini saja.

Contoh: 50000

reasonstringopsional

Yang Anda kirim, dikembalikan. Tidak ada kalau kosong.

failure_reasonstringopsional

Kata-kata pemroses sendiri saat status failed. Tidak ada selain itu.

created_atstringopsional

ISO-8601 dengan offset +07:00.

Contoh: 2026-08-31T10:12:00+07:00

POST /v1/refunds
curl https://pay.kasera.id/v1/refunds \
  -H "Authorization: Bearer kp_live_..." \
  -H "Idempotency-Key: refund-order-1234" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "payreq_9b2f...",
    "amount": 50000,
    "reason": "Satu barang dikembalikan"
  }'
{
  "id": "rfd_7c1a...",
  "transaction_id": "payreq_9b2f...",
  "status": "succeeded",
  "currency": "IDR",
  "amount": 50000,
  "reason": "Satu barang dikembalikan",
  "created_at": "2026-08-31T10:12:00+07:00",
  "livemode": true
}