Dokumentasi API
Panduan lengkap integrasi API pembayaran untuk platform atau aplikasi kamu.
A. Persiapan
Langkah pertama yang harus kamu lakukan adalah mendaftar dan login ke dashboard. Setelah itu, dapatkan API Key kamu di menu Profil untuk mulai mengintegrasikan sistem pembayaran ke aplikasi kamu.
B. Cek Saldo (Balance)
- Method: GET
- URL: /api/balance
Parameter:
- apikey (string, wajib)
Contoh Request:
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
}
*/
C. Membuat Invoice
- Method: GET
- URL: /api/invoice
Parameter:
- apikey (string, wajib)
- amount (integer, wajib)
Contoh Request:
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": "2025-01-01 12:00:00"
}
*/
D. Cek Status Invoice
- Method: GET
- URL: /api/invoice/status
Parameter:
- apikey (string, wajib)
- invoice_id (string, wajib)
Nilai status: pending, paid, expired, cancelled.
Contoh Request:
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": "2025-01-01 12:00:00",
"created_at": "2025-01-01 11:30:00"
}
*/
E. Batalkan Invoice
- Method: POST (GET juga didukung)
- URL: /api/invoice/cancel
Parameter:
- apikey (string, wajib)
- invoice_id (string, wajib)
Catatan:
- Hanya invoice berstatus pending yang bisa dibatalkan. Invoice paid, expired, atau yang sudah cancelled ditolak dengan HTTP 400.
- Pembatalan hanya berlaku di sistem kami dan tidak menghubungi penyedia pembayaran. Pastikan pelanggan tidak membayar QR yang sudah dibatalkan.
- Setelah dibatalkan, status invoice menjadi cancelled dan halaman payment_link menampilkan transaksi dibatalkan.
- Jika callback_url diisi, event deposit.cancelled dikirim ke URL tersebut.
- Invoice yang tidak ditemukan atau bukan milik API key tersebut mengembalikan HTTP 404.
Contoh Request:
const axios = require('axios');
axios.post('BASE_URL/api/invoice/cancel?apikey=YOUR_API_KEY&invoice_id=YOUR_INVOICE_ID')
.then(response => console.log(response.data))
.catch(error => console.log(error.response.data));
/*
Contoh response sukses:
{
"success": true,
"invoice_id": "INV1a2b3c4d5e",
"amount": 50000,
"fee": 500,
"total": 50500,
"status": "cancelled"
}
Contoh response gagal (status bukan pending):
{
"success": false,
"error": "Invoice berstatus paid tidak bisa dibatalkan",
"status": "paid"
}
*/
F. Lihat Metode Withdraw
- Method: GET
- URL: /api/withdraw/methods
Parameter:
- apikey (string, wajib)
Contoh Request:
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 Withdraw
- Method: GET
- URL: /api/withdraw
Parameter:
- apikey (string, wajib)
- amount (integer, wajib)
- method (string, wajib)
- account_number (string, wajib)
- instant (boolean, opsional, default false)
Contoh Request Manual:
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 (manual):
{
"success": true,
"message": "Permintaan penarikan berhasil diajukan.",
"data": {
"id": "WDc4e3f2a1b2c3",
"amount": 50000,
"fee": 1000,
"method": "Dana",
"account_number": "08123456789",
"status": "pending",
"created_at": "2025-01-01T12:00:00.000Z"
}
}
*/
Contoh Request Instan:
const axios = require('axios');
axios.get('BASE_URL/api/withdraw?apikey=YOUR_API_KEY&amount=20000&method=gopay&account_number=08129876543&instant=true')
.then(response => console.log(response.data));
/*
Contoh response sukses (instant):
{
"success": true,
"message": "Permintaan withdraw instan sedang diproses.",
"data": {
"id": "WDf3a1b2c3d4e5",
"amount": 20000,
"fee": 2000,
"method": "GoPay",
"account_number": "08129876543",
"status": "pending",
"created_at": "2025-01-01T12:05:00.000Z"
}
}
*/
H. Cek Status Withdraw
- Method: GET
- URL: /api/withdraw/status
Parameter:
- apikey (string, wajib)
- id (string, wajib) – ID withdraw
Contoh Request:
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": "2025-01-01T12:00:00.000Z",
"completed_at": "2025-01-01T12:30:00.000Z"
}
*/