R4vndQrisKita R4vndQrisKita Docs
Masuk

Dokumentasi API H2H

Integrasikan pembuatan pembayaran QRIS dinamis, sinkronisasi status otomatis, dan manajemen saldo secara programmatic ke dalam aplikasi atau bot Anda.

Base URL API https://ravaqrisdigital.my.id/api/h2h
Metode Autentikasi Header: X-API-Key: <API_KEY>
Biaya Admin Default Rp 100 per transaksi
AUTENTIKASI Header Keamanan

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.

Header Wajib
X-API-Key: YOUR_SECRET_API_KEY_HERE
POST /api/h2h/create

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").
Contoh Request (cURL)
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"
  }'
Contoh Response (200 OK)
{
  "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"
  }
}
GET /api/h2h/status/:transaction_id

3. Cek Status Pembayaran

Memeriksa status pelunasan transaksi. Bila pelanggan telah membayar, sistem otomatis mengupdate saldo akun pemilik dan mengirim broadcast Telegram.

Contoh Request (cURL)
curl -X GET https://ravaqrisdigital.my.id/api/h2h/status/TRX-8B391FA20 \
  -H "X-API-Key: YOUR_API_KEY"
Contoh Response (200 OK)
{
  "success": true,
  "data": {
    "transaction_id": "TRX-8B391FA20",
    "status": "success", // Nilai: pending | success | expired | failed
    "amount": 50000,
    "admin_fee": 100,
    "total_amount": 50100
  }
}
GET /api/h2h/saldo

4. Periksa Saldo Akun

Mengambil nilai saldo terkini yang siap dicairkan.

Contoh Request (cURL)
curl -X GET https://ravaqrisdigital.my.id/api/h2h/saldo \
  -H "X-API-Key: YOUR_API_KEY"
Contoh Response (200 OK)
{
  "success": true,
  "saldo": 350000
}
GET /api/h2h/user-info

5. Informasi Akun & Profil

Mengambil detail akun pengembang, email, saldo, dan waktu pendaftaran.

Contoh Response (200 OK)
{
  "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"
  }
}
POST /api/h2h/withdraw

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).

Contoh Request (JSON)
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"
  }'
Contoh Response (200 OK)
{
  "success": true,
  "data": {
    "id": "WD-AB78C19",
    "amount": 100000,
    "bank": "BCA",
    "account": "1234567890",
    "holder": "ALEX DEV",
    "status": "pending",
    "saldo": 250000
  }
}
GET /api/h2h/transactions?limit=10

7. Riwayat & Audit Log

Endpoint pendukung untuk sinkronisasi mutasi dan audit:

WS wss://ravaqrisdigital.my.id/

8. Integrasi WebSocket Real-Time

Selain polling HTTP, Anda dapat mendengarkan notifikasi pembayaran secara instan melalui koneksi WebSocket.

JavaScript Client Example
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);
  }
};