RESTful API Reference
Dokumentasi Integrasi
Panduan integrasi API gateway pembayaran, pembuatan QRIS dinamis, webhook real-time, dan penarikan otomatis.
API v1.0 Production
A
Persiapan & Autentikasi
Langkah pertama adalah mendaftar dan login ke dashboard. Dapatkan API Key Anda pada menu Profil. Sertakan API Key pada query parameter apikey pada setiap pemanggilan endpoint REST API.
B
Cek Saldo Akun (Balance)
GET
/api/balance
Parameter:
apikey (string, wajib) — API Key merchant Anda.
Contoh Request & Response:
const axios = require('axios');
axios.get('BASE_URL/api/balance?apikey=YOUR_API_KEY')
.then(response => console.log(response.data));
/*
Contoh response:
{
"username": "your_username",
"email": "name@gmail.com",
"balance": 150000,
"pending_balance": 100000
}
*/
C
Membuat Invoice QRIS Dinamis
GET
/api/invoice
Parameter:
apikey (string, wajib) — API Key akun merchant
amount (integer, wajib) — Nominal transaksi deposit (contoh: 50000)
Contoh Request & Response:
const axios = require('axios');
axios.get('BASE_URL/api/invoice?apikey=YOUR_API_KEY&amount=50000')
.then(response => console.log(response.data));
/*
Contoh response:
{
"success": true,
"invoice_id": "64c8d9e...",
"amount": 50000,
"fee": 500,
"total": 50500,
"qris_image": "https://...",
"payment_link": "https://...",
"expired_at": "2026-10-15 12:00:00"
}
*/
D
Webhook (Callback Notifikasi Transaksi)
Webhook dikirim secara otomatis secara instan ketika invoice deposit QRIS terdeteksi lunas. Pastikan server Anda siap menerima request bertipe HTTP POST dengan body JSON berikut:
{
"invoice_id": "64c8d9e...",
"amount": 100000,
"fee": 500,
"total": 100500,
"status": "paid",
"balance_after": 500000,
"completed_at": "2026-10-15T10:30:00.000Z"
}
E
Cek Status Invoice
GET
/api/invoice/status
Parameter:
apikey (string, wajib) — API Key merchant
invoice_id (string, wajib) — ID invoice transaksi
Contoh Request & Response:
const axios = require('axios');
axios.get('BASE_URL/api/invoice/status?apikey=YOUR_API_KEY&invoice_id=YOUR_INVOICE_ID')
.then(response => console.log(response.data));
/*
Contoh response:
{
"invoice_id": "64c8d9e...",
"amount": 50000,
"fee": 500,
"total": 50500,
"status": "paid",
"qris_image": "https://...",
"payment_link": "https://...",
"expired_at": "2026-10-15 12:00:00",
"created_at": "2026-10-15 11:30:00"
}
*/
F
Lihat Metode Penarikan (Withdraw)
GET
/api/withdraw/methods
Parameter:
apikey (string, wajib) — API Key merchant
Contoh Request & Response:
const axios = require('axios');
axios.get('BASE_URL/api/withdraw/methods?apikey=YOUR_API_KEY')
.then(response => console.log(response.data));
/*
Contoh response:
{
"manual_methods": [
{ "name": "Dana", "method": "dana", "fee": 100, "min": 10000, "max": 1000000 }
],
"instant_methods": [
{ "name": "Dana", "method": "dana", "fee": 100, "min": 10000, "max": 1000000 }
]
}
*/
G
Melakukan Penarikan Saldo
GET
/api/withdraw
Parameter:
apikey (string, wajib) — API Key merchant
amount (integer, wajib) — Nominal penarikan
method (string, wajib) — Kode metode penarikan (contoh: dana, gopay)
account_number (string, wajib) — Nomor rekening / nomor HP tujuan
instant (boolean, opsional, default: false) — Pilih transfer instan atau manual
Contoh Request & Response:
const axios = require('axios');
axios.get('BASE_URL/api/withdraw?apikey=YOUR_API_KEY&amount=50000&method=dana&account_number=08123456789&instant=false')
.then(response => console.log(response.data));
/*
Contoh response sukses:
{
"success": true,
"message": "Permintaan penarikan berhasil diajukan.",
"data": {
"id": "WDc4e3f2a1b2c3",
"amount": 50000,
"fee": 1000,
"method": "Dana",
"account_number": "08123456789",
"status": "pending",
"created_at": "2026-10-15T12:00:00.000Z"
}
}
*/
H
Cek Status Penarikan Dana
GET
/api/withdraw/status
Parameter:
apikey (string, wajib) — API Key merchant
id (string, wajib) — ID transaksi penarikan
Contoh Request & Response:
const axios = require('axios');
axios.get('BASE_URL/api/withdraw/status?apikey=YOUR_API_KEY&id=WDc4e3f2a1b2c3')
.then(response => console.log(response.data));
/*
Contoh response:
{
"id": "WDc4e3f2a1b2c3",
"amount": 50000,
"fee": 1000,
"method": "Dana",
"account_number": "08123456789",
"instant": false,
"status": "success",
"admin_note": null,
"created_at": "2026-10-15T12:00:00.000Z",
"completed_at": "2026-10-15T12:30:00.000Z"
}
*/