Dokumentasi API H2H
Integrasikan pembuatan pembayaran QRIS dinamis, sinkronisasi status otomatis, dan manajemen saldo secara programmatic ke dalam aplikasi atau bot Anda.
1. Manajemen Autentikasi API Key
Setiap request ke endpoint /api/h2h/* memerlukan API Key valid. Anda dapat melihat dan me-regenerate API Key melalui halaman Profil Pengguna atau via endpoint khusus.
X-API-Key: YOUR_SECRET_API_KEY_HERE
2. Buat Transaksi QRIS Baru
Membuat kode QRIS dinamis sekali pakai dengan total nominal otomatis ditambah biaya admin (Rp 100).
Request Body (JSON)
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
amount |
Number | Ya | Nominal pembayaran (minimal 1000). |
description |
String | Tidak | Keterangan transaksi (maksimal 180 karakter, default: "H2H"). |
curl -X POST https://ravaqrisdigital.my.id/api/h2h/create \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"amount": 50000,
"description": "Order VIP #889"
}'
{
"success": true,
"data": {
"transaction_id": "TRX-8B391FA20",
"qr_url": "https://lolcal/qr/tr_8b391fa20.png",
"amount": 50000,
"admin_fee": 100,
"total_amount": 50100,
"status": "pending"
}
}
3. Cek Status Pembayaran
Memeriksa status pelunasan transaksi. Bila pelanggan telah membayar, sistem otomatis mengupdate saldo akun pemilik dan mengirim broadcast Telegram.
curl -X GET https://ravaqrisdigital.my.id/api/h2h/status/TRX-8B391FA20 \
-H "X-API-Key: YOUR_API_KEY"
{
"success": true,
"data": {
"transaction_id": "TRX-8B391FA20",
"status": "success", // Nilai: pending | success | expired | failed
"amount": 50000,
"admin_fee": 100,
"total_amount": 50100
}
}
4. Periksa Saldo Akun
Mengambil nilai saldo terkini yang siap dicairkan.
curl -X GET https://ravaqrisdigital.my.id/api/h2h/saldo \
-H "X-API-Key: YOUR_API_KEY"
{
"success": true,
"saldo": 350000
}
5. Informasi Akun & Profil
Mengambil detail akun pengembang, email, saldo, dan waktu pendaftaran.
{
"success": true,
"data": {
"id": "usr_9981ad",
"name": "Alex Developer",
"email": "alex@example.com",
"provider": "local",
"saldo": 350000,
"api_key": "sec_...",
"created_at": "2026-09-15T08:12:00.000Z"
}
}
6. Pengajuan Penarikan Dana (Withdraw)
Melakukan request penarikan saldo secara otomatis ke rekening bank atau e-wallet (Min: Rp 12.500, Max: Rp 5.000.000).
curl -X POST https://ravaqrisdigital.my.id/api/h2h/withdraw \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"amount": 100000,
"bank": "BCA",
"account": "1234567890",
"holder": "ALEX DEV"
}'
{
"success": true,
"data": {
"id": "WD-AB78C19",
"amount": 100000,
"bank": "BCA",
"account": "1234567890",
"holder": "ALEX DEV",
"status": "pending",
"saldo": 250000
}
}
7. Riwayat & Audit Log
Endpoint pendukung untuk sinkronisasi mutasi dan audit:
GET /api/h2h/transactions?limit=20— Daftar transaksi pembayaran QRISGET /api/h2h/withdrawals?limit=20— Daftar mutasi penarikan danaGET /api/h2h/activity?limit=20— Log aktivitas akunPOST /api/h2h/regenerate-key— Mengganti API Key secara langsung
8. Integrasi WebSocket Real-Time
Selain polling HTTP, Anda dapat mendengarkan notifikasi pembayaran secara instan melalui koneksi WebSocket.
const ws = new WebSocket("wss://ravaqrisdigital.my.id/");
ws.onopen = () => {
ws.send(JSON.stringify({ type: "subscribe", userId: "USER_ID" }));
};
ws.send(JSON.stringify({
type: "check",
userId: "USER_ID",
transactionId: "TRX-8B391FA20"
}));
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === "payment" && data.status === "success") {
console.log("Pembayaran lunas! Saldo sekarang:", data.saldo);
}
};