AKD Pay Docs
EnglishEN Dashboard
LIVE Dokumentasi ini sama untuk sandbox dan live.

Referensi API

Refund

Cara refund bekerja di v1.0.x, event payment.refunded, dan field refund pada pembayaran.

Meminta refund#

Kirim permintaan dari email owner terdaftar ke partnership@algoritmakitadigital.id dengan menyebut merchant_id, lingkungan (sandbox/live), payment_id atau external_order_id, nominal yang direfund, dan alasannya. Jangan pernah mengirim API key atau signing secret lewat email.

Aturan refund#

  • Hanya pembayaran berstatus PAID yang bisa direfund.
  • Refund boleh sebagian dan berulang; total refund tidak bisa melebihi nominal pembayaran.
  • Status pembayaran tetap PAID. Refund tidak mengubah status pembayaran; kemajuan refund terlihat dari refunded_amount dan refund_status.
  • Refund Virtual Account dilakukan manual: tim AKD mentransfer dana ke pembayar dan mencatat referensinya. Refund QRIS dapat diproses lewat penyedia pembayaran dalam 30 hari setelah pembayaran; tidak semua penerbit QRIS mendukungnya.
  • Biaya layanan transaksi tidak dikembalikan saat refund.

Event payment.refunded#

AKD mengirim payment.refunded setiap kali sebuah refund selesai. Satu pembayaran bisa menghasilkan beberapa event payment.refunded, masing-masing dengan event_id dan refund_id sendiri.

Field Arti
amount nominal refund ini
refunded_amount total refund pembayaran tersebut sejauh ini
payment_amount nominal pembayaran asli
payment_status tetap PAID
refund_status PARTIAL bila masih ada sisa yang bisa direfund, FULL bila seluruh nominal sudah direfund

Contoh body lengkap, header, dan cara verifikasinya ada di Webhook ke server merchant. Deduplikasi dengan X-AKD-Event-ID seperti event lain.

Membaca status refund#

Respons GET /v1/payments/{payment_id} memuat refunded_amount (total refund yang berhasil) dan refund_status: NONE, PARTIAL, atau FULL.

Yang perlu dilakukan server Anda#

  1. Verifikasi signature dan deduplikasi X-AKD-Event-ID.
  2. Catat refund per refund_id; gunakan refunded_amount sebagai total terbaru.
  3. Jangan mengubah status pesanan menjadi "belum dibayar": pembayaran tetap PAID. Tandai pesanan sebagai direfund sebagian atau penuh sesuai refund_status.
  4. Jawab 2xx cepat.