Integrasi Backend•Webhook Callback
Spesifikasi Callback Refund
Callback Refund dipicu setelah permohonan pengembalian dana selesai dieksekusi di background oleh layanan RefundService atau ReleaseBalanceService Qoin.
HTTP Callback & Headers
CALLBACKPOST {UrlCallback}
HTTP Request Headers
POST {UrlCallback} HTTP/1.1
Content-Type: application/json; charset=utf-8
Accept: application/json
Accept-Charset: utf-8
Signature: {RSA_SIGNATURE_BASE64}Model & Kamus Data Refund
Model C# rujukan: RefundCallback (Models/RefundModels.cs)
Data Field Payload Refund
| Parameter | Tipe Data | Status | Deskripsi & Contoh |
|---|---|---|---|
| ReferenceNo | string | Wajib | Nomor referensi pengajuan refund dari pihak merchant. Contoh: REF-MERCHANT-00123 |
| OrderNo | string / null | Opsional | Nomor order asli transaksi pembayaran. Dapat bernilai null jika tidak disertakan. Contoh: INV-2026-0001 |
| ReceiptNo | string | Wajib | Nomor struk/bukti transaksi resmi proses refund dari sistem Qoin. Contoh: RFD240930000000001 |
| Amount | decimal | Wajib | Nominal dana yang dikembalikan ke saldo pengguna. Contoh: 50000.0 |
| Status | int | Wajib | Kode status numerik proses refund (1 = Sukses, selain 1 = Gagal). Contoh: 1 |
| Description | string | Wajib | Pesan detail/deskripsi status proses refund dalam bentuk string teks biasa. Contoh: Refund success |
Perbedaan Kritis dengan Callback Payment
Perhatikan bahwa field
Description pada Callback Refund bertipe string (teks deskripsi alasan / status), BUKAN array of object seperti pada Callback Payment.Contoh Payload Callback Refund
A. Refund Berhasil (Status 1)
refund_success.json
{
"ReferenceNo": "REF-MERCHANT-00123",
"OrderNo": "INV-2026-0001",
"ReceiptNo": "RFD240930000000001",
"Amount": 50000.0,
"Status": 1,
"Description": "Refund success"
}B. Refund Gagal: Melebihi Transaksi Asli (Status 17)
refund_amount_exceeded.json
{
"ReferenceNo": "REF-MERCHANT-00124",
"OrderNo": null,
"ReceiptNo": "RFD240930000000002",
"Amount": 150000.0,
"Status": 17,
"Description": "Refund amount (150000) exceeds transaction amount (100000)"
}C. Refund Gagal: Member Tidak Ditemukan (Status 10)
refund_member_not_found.json
{
"ReferenceNo": "REF-MERCHANT-00125",
"OrderNo": null,
"ReceiptNo": "",
"Amount": 25000.0,
"Status": 10,
"Description": "Member validation failed: Member data not found"
}