1. Request Pay-In (Non-Cashier) (请求代收-非收银台)

POST /pay.html   Content-Type: multipart/form-data

Saran penggunaan dstCode
Tipe dstCodeSaran
VA BankDisarankan jika ingin menampilkan kode VA di halaman sendiri
Scan QRISDisarankan jika ingin menampilkan QR code di halaman sendiri
E-WalletSelain OVO, e-wallet lain disarankan menggunakan cara ini; OVO hanya disarankan saat membuat halaman form submit sendiri
Parameter Request
ParameterTipeWajibKeteranganContoh
memberIdstringYaNomor merchant, diberikan oleh platform10036
orderIdstringYaNomor order merchant, panjang kurang dari 32 karakter, unik22040610424648994332
dstCodestringYaKode metode pembayaranPERMATA
amountintegerYaNominal order, satuan: Rupiah Indonesia, minimal 10000, bilangan bulat180000
dateTimestringYaWaktu pengajuan2022-04-06 10:42:46
notifyUrlstringYaNotifikasi server, alamat callback server (data dikembalikan via POST)http://youdomain/repay-notify-url
namestringYaNama pelanggan, tidak boleh mengandung angka, tidak diverifikasi keasliannya tapi akan ditampilkan ke terminal pelangganSINDINTOWE
phonestringYaTelepon pelanggan; jika dstCode = OVO, kolom ini diisi akun pembayaran OVO yang diajukan088291448849
emailstringYaEmail pelanggan, format email divalidasidongtianhot@gmail.com
versionintegerYaNomor versi2
signstringYaTanda tangan212DC6A96B038EBF4CBCF9053DDCDC9A
Parameter Response
ParameterTipeKeterangan
statusstringStatus; success berarti berhasil, selain itu berarti gagal
msgstringIsi pesan
errCodenullKode error
amountstringNominal pembayaran
vaNumberstringKode VA pembayaran; hanya dikembalikan untuk tipe bank dan market
dateTimestringWaktu pengajuan; format waktu: 2022-01-27 18:18:18
expireDatestringWaktu kedaluwarsa
platOrderIdstringNomor order platform
payUrlstringLink halaman pembayaran; hanya dikembalikan untuk tipe ewallet
qrCodestringQR code untuk qris; hanya dikembalikan untuk tipe qris
Contoh Response Berhasil
{
    "status": "success",
    "msg": "申请成功",
    "errCode": null,
    "amount": "1600000",
    "vaNumber": "1111106779926267198",
    "dateTime": "20220425150748",
    "expireDate": "2022-04-26 15:07:48",
    "platOrderId": "YDchVoDeutjNzy0Okmwn"
    "payUrl": null,
    "qrCode": null
}
Contoh Response Berhasil (QRIS)
{
    "status": "success",
    "msg": "SUCCESS",
    "errCode": null,
    "amount": "10000",
    "vaNumber": null,
    "dateTime": "20241029131448",
    "expireDate": "2024-10-30 13:14:46",
    "platOrderId": "P_241029d7qVnK9NAEpUe4NbUCJu",
    "payUrl": null,
    "qrCode": "00020101021226640017ID.CO.DANAMON.WWW0118936000110000063204021012126070280303UKE51440014ID.CO.QRIS.WWW0215LQ12309846890140303UKE626801090000028050518SP2410292YmocdKCNe0709LI307GXIN9916000200010647721753033605405100006008SIDOARJO520459995915Merchant LinkQu5802ID61056125363047630"
}
Contoh Response Gagal
{
    "status": "error",
    "msg": "申请失败",
    "errCode": 1001
}
2. Buat Order Pay-In (Cashier / 收银台) (创建代收订单-收银台)

POST /pay_counter.html   Content-Type: multipart/form-data

Secara default, jika parameter dstCode tidak dikirim, platform akan mengeluarkan link halaman pembayaran agregat (聚合支付页面). Jika dstCode dikirim untuk menentukan metode pembayaran, maka platform mengeluarkan link untuk metode pembayaran tersebut.

Saran penggunaan dstCode
Tipe dstCodeSaran
VA BankDisarankan jika tidak memiliki halaman tampilan VA sendiri
Scan QRISDisarankan jika tidak memiliki halaman tampilan QR code sendiri
E-WalletHanya e-wallet OVO yang disarankan menggunakan interface ini; e-wallet lain disarankan menggunakan interface non-cashier
Parameter Request
ParameterTipeWajibKeteranganContoh
memberIdstringYaNomor merchant, diberikan oleh platform10036
orderIdstringYaNomor order merchant, panjang kurang dari 32 karakter, unik22061018034648993211
dstCodestringYaKode metode pay-in; jika dipilih maka platform mengeluarkan halaman pembayaran yang ditentukan (DANA dan LINKAJA tidak disarankan menggunakan interface ini, disarankan menggunakan interface non-cashier); jika tidak dipilih maka dikeluarkan halaman utama cashierPERMATA
amountintegerYaNominal order, satuan: Rupiah Indonesia, minimal 10000, bilangan bulat50000
dateTimestringYaWaktu pengajuan, waktu Indonesia, format: 2022-01-26 18:18:182022-04-06 10:42:46
notifyUrlstringYaNotifikasi server, alamat callback server (data dikembalikan via POST)http://youdomain/repay-notify-url
namestringYaNama pelanggan, tidak boleh mengandung angka, tidak diverifikasi keasliannya tapi akan ditampilkan ke terminal pelangganSINDINTOWE
phonestringYaTelepon pelanggan088291448849
emailstringYaEmail pelanggan, format email divalidasidongtianhot@gmail.com
langstringTidakBahasa default cashier: id Bahasa Indonesia, en Bahasa Inggris; tidak wajib, default idid
productInfostringYaInformasi produk isi ulang (recharge), ditampilkan di cashierrecharge
callbackUrlstringTidakRedirect kembali ke halaman yang ditentukanhttps://www.google.com
versionintegerYaNomor versi2
signstringYaTanda tangan212DC6A96B038EBF4CBCF9053DDCDC9A
Parameter Response
ParameterTipeKeterangan
statusstringStatus
msgstringIsi pesan
errCodeintegerKode error
amountstringNominal
dateTimestringWaktu pengajuan; format waktu: 2022-01-27 18:18:18
expireDatestringWaktu kedaluwarsa
payUrlstringLink pembayaran
platOrderIdstringNomor order platform
Contoh Response Berhasil
{
    "status": "success",
    "msg": "申请成功",
    "errCode": null,
    "amount": "180000",
    "payUrl": "http://dev-api.defipay.com/pay_cashier.html?sn=17oFYhCxYJrV5ZCbxoeG",
    "dateTime": "20220426144458"
}
Contoh Response Gagal
{
    "status": "error",
    "msg": "申请失败",
    "errCode": 1001
}
3. Query Order Pay-In (代收订单查询)

POST /pay_trade_query.html   Content-Type: form-data

Parameter Request
ParameterTipeWajibKeteranganContoh
memberIdstringYaNomor merchant10036
orderIdstringYaNomor order merchant22040610424648994338
signstringYaTanda tangan212DC6A96B038EBF4CBCF9053DDCDC9A
Parameter Response
ParameterTipeKeterangan
statusstringStatus; success: request berhasil (tidak mewakili keberhasilan bisnis), error: request gagal
msgnullIsi pesan
errCodenullKode error
memberIdstringNomor merchant
orderIdstringNomor order merchant
amountstringNominal order; satuan: Rupiah Indonesia
coststringNominal biaya; dikembalikan saat status=success
timeEndstringWaktu pembayaran berhasil
platOrderIdstringNomor order platform
refCodeintegerStatus bisnis: 1 = berhasil, 2 = gagal, 3 = sedang diproses
refMsgstringDeskripsi bisnis
signstringTanda tangan MD5
dstCodestringMetode pembayaran
Contoh Response
{
    "status": "success",
    "msg": null,
    "errCode": null,
    "memberId": "10085",
    "orderId": "AB20220425104451B016FB252F560A18",
    "amount": "1600000.00",
    "cost": "11400.00",
    "timeEnd": "",
    "platOrderId": "br-fedD4Jn5FjaApCu5f",
    "refCode": 3,
    "refMsg": "Processing",
    "dstCode": "DANA",
    "sign": "7DFEC0884F2DD5661667AA8E8A91C695"
}
4. Notifikasi Async Pay-In (disediakan oleh merchant) (代收异步通知)

POST /ds_callback_url   Content-Type: application/x-www-form-urlencoded

Interface ini disediakan oleh merchant. Saat pay-in berhasil atau gagal, platform akan me-request interface ini. Saat menerima komunikasi server-ke-server, tampilkan di halaman: “OK” (tanpa tanda kutip, kedua huruf OK kapital).
Parameter yang Dikirim Platform
ParameterTipeWajibKeteranganContoh
statusstringYaStatus request; penanda ini bukan penanda berhasil/gagal bisnis, hanya status requestsuccess
memberIdnumberYaNomor merchant10085
orderIdstringYaNomor order merchantE2021090512312314
amountnumberYaNominal order1000000
costnumberYaNominal biaya layanan (fee)8000
refMsgstringYaDeskripsi bisnis, isi pesansuccess
refCodenumberYaStatus bisnis: 1 = berhasil, 2 = gagal, 3 = sedang diproses1
platOrderIdstringYaNomor order platformL0425736065712345
signstringYaTanda tangan MD5
dstCodestringYaField ini dikirim untuk versi 2DANA
Response yang Harus Dikembalikan Merchant
OK