Dokumentasi API
Integrasikan layanan kami ke sistem kamu dengan mudah.
API Console (Live Test)
Coba langsung endpoint API tanpa tools tambahan.
Panduan Endpoint API
Cek Saldo User GET
Cek sisa saldo aktif pada akun Anda secara real-time.
Contoh Response:
{
"balance": 100000
}
Membuat Invoice Deposit GET
Buat tagihan/invoice deposit baru untuk menghasilkan QRIS.
pending sampai pembayaran benar-benar terverifikasi — gunakan endpoint Cek Status Invoice di bawah untuk memantau.
Contoh Response:
{
"success": true,
"invoice_id": "64c8d9e...",
"amount": 10000,
"fee": 123,
"total": 10123,
"qris_image": "https://...",
"expired_at": "2025-01-01 12:00:00"
}
Cek Status Invoice GET
Cek status pembayaran invoice (pending, paid, expired).
paid setelah sistem memverifikasi mutasi QRIS asli yang cocok nominal dan waktunya dengan invoice ini. Lakukan polling endpoint ini secara berkala (disarankan setiap 5–10 detik) sampai status berubah dari pending, jangan asumsikan sukses hanya karena invoice berhasil dibuat.
Contoh Response:
{
"invoice_id": "64c8d9e...",
"amount": 10000,
"fee": 123,
"total": 10123,
"status": "pending",
"qris_image": "https://...",
"expired_at": "2025-01-01 12:00:00",
"created_at": "2025-01-01 11:30:00"
}
Batalkan Invoice (Cancel QRIS) POST
Metode: POST — kirim invoice_id via query param atau JSON body
Membatalkan invoice yang statusnya masih pending. Invoice akan berubah menjadi expired. Invoice yang sudah paid tidak bisa dibatalkan.
Contoh Request:
POST /api/v1/invoice/cancel?invoice_id={invoice_id}&apikey={api_key}
Contoh Response (Berhasil):
{
"success": true,
"invoice_id": "64c8d9e...",
"status": "expired",
"message": "Invoice berhasil dibatalkan"
}
Contoh Response (Gagal — sudah paid):
{
"error": "Invoice tidak bisa dibatalkan, status saat ini: paid"
}
Buat Permintaan Withdraw DANA POST
Metode: POST JSON
Body request harus berupa JSON dengan format:
{
"amount": 50000,
"accountNumber": "081234567890",
"accountName": "John Doe"
}
Ajukan permintaan penarikan dana via DANA. Status awal adalah pending. Admin akan menyetujui (status menjadi success) atau menolak (status menjadi rejected).
Contoh Request Body:
{
"amount": 100000,
"accountNumber": "081234567890",
"accountName": "John Doe"
}
Contoh Response (Berhasil):
{
"success": true,
"message": "Permintaan penarikan berhasil diajukan",
"withdraw_id": "65a1b2c3d4e5f6...",
"amount": 100000,
"fee": 1000,
"total_deduct": 101000,
"new_balance": 899000,
"status": "pending",
"created_at": "2025-01-15T10:30:00.000Z"
}
Cek Status Withdraw (Real-time) GET
Cek status real-time dari permintaan withdraw.
Contoh Response:
{
"success": true,
"withdraw_id": "65a1b2c3d4e5f6...",
"amount": 100000,
"fee": 1000,
"total_deduct": 101000,
"status": "success",
"method": "dana",
"account_number": "081234567890",
"account_name": "John Doe",
"admin_note": null,
"created_at": "2025-01-15T10:30:00.000Z",
"processed_at": "2025-01-15T14:20:00.000Z"
}
Riwayat Withdraw GET
Ambil daftar riwayat withdraw dengan pagination dan filter status.
Contoh Response:
{
"success": true,
"data": [
{
"withdraw_id": "65a1b2c3...",
"amount": 100000,
"fee": 1000,
"total_deduct": 101000,
"status": "success",
"method": "dana",
"account_number": "081234567890",
"account_name": "John Doe",
"admin_note": null,
"created_at": "2025-01-15T10:30:00.000Z",
"processed_at": "2025-01-15T14:20:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 5,
"total_pages": 1
}
}
Daftar Produk Withdraw Instant GET INSTANT
Ambil daftar produk e-wallet yang tersedia untuk withdraw instant (DANA, OVO, GoPay).
Parameter
| Param | Wajib | Keterangan |
|---|---|---|
| apikey | Ya | API Key akun |
| ewallet | Ya | Dana / OVO / GoPay |
Contoh Response
{"success":true,"products":[
{"code":"BBSDN","name":"H2H DANA Topup (Bebas Nominal)",
"price":200,"isOpenNominal":true,"minNominal":200},
{"code":"D10","name":"Dana 10.000",
"price":10200,"isOpenNominal":false}
],"extraFee":0}
qty). minNominal = minimal topup sesuai provider. price = fee provider per transaksi.
Buat Withdraw Instant POST INSTANT
Proses withdraw instant ke e-wallet. Dana dikirim ke nomor rekening terdaftar di profil user. Potongan saldo = nominal + fee provider + fee admin.
Request Body (JSON)
| Field | Wajib | Keterangan |
|---|---|---|
| apikey | Ya | API Key akun |
| productCode | Ya | Kode produk dari pricelist (mis. BBSDN) |
| isOpenNominal | Ya | true/false sesuai produk |
| qty | Kondisional | Nominal topup (wajib jika isOpenNominal: true). Kelipatan 1.000 |
Contoh Response
// Berhasil:
{"success":true,"status":"processing",
"invoice":"INV20260629001",
"productName":"H2H DANA Topup (Bebas Nominal)",
"amount":50000,"fee":1200,
"destination":"081380847521",
"refId":"WI1A2B3C4D"}
// Gagal saldo:
{"success":false,
"error":"Saldo tidak cukup (estimasi total Rp 51.200)"}
Cek Status Withdraw Instant GET INSTANT
Cek status terbaru dari transaksi withdraw instant berdasarkan refId. Status: processing → success / failed.
Parameter
| Param | Wajib | Keterangan |
|---|---|---|
| apikey | Ya | API Key akun |
| ref_id | Ya | refId dari response order instant |
Contoh Response
{"success":true,"data":{
"status":"success",
"status_label":"Berhasil",
"invoice":"INV20260629001",
"productName":"H2H DANA Topup",
"amount":50000,"fee":1200,
"destination":"081380847521",
"serial_number":"081380847521",
"createdAt":"2026-06-29T07:20:00.000Z"
}}