Beranda Dokumentasi API Ketentuan Layanan Kebijakan Privasi
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"
}
*/