Anda dapat melakukan pengembalian dana QR Code/QRIS apabila transaksi sudah berhasil, namun refund QRIS melalui API memiliki beberapa peraturan yakni:
Jika pengembalian dana penuh diminta dalam waktu 24 jam setelah pembayaran selesai, pembayaran asli akan menjadi VOIDED
. Biaya dan PPN asli yang dibebankan akan dikembalikan sepenuhnya.
Jika terdapat permintaan pengembalian dana dalam jumlah sebagian atau jika pengembalian dana dalam jumlah berapa pun diminta setelah 24 jam penyelesaian pembayaran, pembayaran awal akan menjadi REFUNDED
. Biaya dan PPN asli yang dibebankan TIDAK akan dikembalikan sama sekali.
- API Pengembalian Dana ini hanya akan berfungsi untuk pembayaran QR yang berhasil.
- API Pengembalian Dana ini akan mengembalikan status
PENDING
dalam respons API setelah eksekusi. Webhook/callback akan dikirim ke URL sistem Anda ketika pengembalian dana telah berhasil diproses.
Periode validitas hanya untuk refund hanya 30 hari sejak pembayaran. Setelah 30 hari Anda tidak dapat melakukan request refund.
Customer Anda akan segera mendapatkan dana pengembaliannya secara instan setelah Anda mendapatkan sukses callback atas refund tersebut.
Apabila customer Anda membayarkan QRIS menggunakan aplikasi/issuer yang tidak tertera pada tabel dibawah ini, maka Anda tidak dapat menggunakan refund QR Code API (contoh: customer Anda membayarkan melalui GoPay dan request refund, maka refund tidak dapat dilakukan):
Jika Anda ingin refund transaksi QRIS dari aplikasi lain selain yang diatas, mohon untuk menggunakan fitur disbursement kami.
Berikut adalah langkah-langkah cara melakukan refund QR Code melalui API:
1. Membuat secret API Key melalui dashboard Anda
Referensi dapat dilihat di doc berikut.
2. Masukkan callback URL Anda pada Dashboard - Settings - Callbacks di bagian QR Code paid & refunded dan pastikan saat klik "test and save" respon mengembalikan 2XX
3. Membuat Refund QR payment menggunakan endpoint:
POST https://api.xendit.co/qr_codes/payments/:qrpy_id/refunds
Note: {qrpy_id} adalah payment id yang Anda dapatkan dari callback kami setelah pembayaran sukses, Anda dapat mendapatkan id ini pada Transactions Tab dengan klik transaksi tersebut dan/atau callback tab.
4. Masukkan secret API key Anda pada Authorization
5. Pada bagian Body Request Anda dapat kosongkan saja atau masukan parameter "amount" (untuk pengembalian dana yang tidak full) dan "reason".
6. Klik send dan Anda akan mendapatkan respons berikut::
{
"id": "qrrf_3a38022e-7f9a-4ef0-a421-e18d9cb877e3",
"qrpy_id": "qrpy_f3cad64b-5392-499f-99e1-7d60cb615527",
"status": "PENDING",
"currency": "IDR",
"payment_amount": 100,
"refund_amount": 100,
"channel_code": "ID_DANA",
"reason": "",
"failure_code": null,
"refunded_at": null,
"created": "2023-04-04T10:41:33.798952Z",
"updated": "2023-04-04T10:41:33.798952Z"
}
7. Anda kemudian akan mendapatkan callback atas refund yang sukses tersebut dan dapat dilihat pada callback tab.
8. Transaksi tersebut akan muncul pada Transactions Tab sebagai tipe "voided" (jika sebelum 24 jam) atau "refunded" (jika setelah 24 jam)
Informasi lebih lanjut dapat dilihat disini.