DigitalPedia H2H API
Dokumentasi API
Integrasi QRIS deposit ke sistem Anda dalam hitungan menit.
Base URL & Autentikasi
Endpoint dasar & cara kirim API Key
Base URL & Autentikasi
Endpoint dasar & cara kirim API Key
https://pay.digitalpedia.id
Header:
x-api-key: YOUR_API_KEY Semua komunikasi wajib via HTTPS — HTTP ditolak otomatis
API Key tersedia di halaman Profil & API. Jangan bagikan ke siapapun.
Deposit QRIS
Buat invoice, cek status & batalkan
Deposit QRIS
Buat invoice, cek status & batalkan
POST
/api/deposit/create
Buat Invoice
Membuat invoice QRIS baru. User diambil otomatis dari API Key di header.
| Parameter | Tipe | Keterangan |
|---|---|---|
| amountwajib | integer | Nominal deposit (min 500, max 1.000.000) |
Contoh Request
const res = await fetch('https://pay.digitalpedia.web.id/api/deposit/create', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({ amount: 50000 })
});
const data = await res.json();
Response
200 OK400 Bad Request401 Unauthorized
{
"success": true,
"deposit": {
"id": "DP17500001234567",
"amount": 50000,
"fee": 150,
"total_payment": 50337,
"qr_image": "https://cdn.jsdelivr.net/gh/images/s2@main/uploads/abc.png",
"status": "pending",
"expired_at": 1750000000000
}
}
POST
/api/deposit/status
Cek Status
Cek status deposit. Terdapat cooldown 30 detik antar pengecekan untuk deposit_id yang sama.
| Parameter | Tipe | Keterangan |
|---|---|---|
| deposit_idwajib | string | ID deposit dari response create |
Response
pendingsuccessexpired
// Berhasil dibayar
{ "success": true, "status": "success", "message": "Deposit berhasil! Saldo bertambah." }
// Masih menunggu
{ "success": true, "status": "pending", "message": "Menunggu pembayaran" }
// Kadaluarsa
{ "success": true, "status": "expired", "message": "Deposit expired" }
POST
/api/deposit/cancel
Batalkan
| Parameter | Tipe | Keterangan |
|---|---|---|
| deposit_idwajib | string | ID deposit yang ingin dibatalkan (hanya status pending) |
{ "success": true, "message": "Deposit berhasil dibatalkan" }
Cek Saldo
Ambil saldo aktif akun via API Key
Cek Saldo
Ambil saldo aktif akun via API Key
GET
/api/balance
Saldo Aktif
Tidak memerlukan body. Kirim API Key di header x-api-key.
Contoh Request
const res = await fetch('https://pay.digitalpedia.web.id/api/balance', {
headers: { 'x-api-key': 'YOUR_API_KEY' }
});
const { balance } = await res.json();
Response
{ "success": true, "balance": 125000 }
Contoh Implementasi
Node.js / JavaScript lengkap
Contoh Implementasi
Node.js / JavaScript lengkap
Node.js (axios)
const axios = require('axios');
const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://pay.digitalpedia.web.id';
const H = { 'x-api-key': API_KEY };
// Buat deposit
async function createDeposit(amount) {
const { data } = await axios.post(`${BASE}/api/deposit/create`,
{ amount }, { headers: H });
return data.deposit;
}
// Polling status (tiap 10 detik)
async function waitPaid(depositId) {
while (true) {
const { data } = await axios.post(`${BASE}/api/deposit/status`,
{ deposit_id: depositId }, { headers: H });
if (data.status === 'success') return true;
if (data.status === 'expired' || data.status === 'canceled') return false;
await new Promise(r => setTimeout(r, 10000));
}
}
// Contoh pakai
const dep = await createDeposit(50000);
console.log('QRIS:', dep.qr_image);
const paid = await waitPaid(dep.id);
console.log(paid ? '✅ Dibayar!' : '❌ Gagal/expired');
Error & Rate Limit
Kode status HTTP yang mungkin dikembalikan
Error & Rate Limit
Kode status HTTP yang mungkin dikembalikan
| Status | Penyebab |
|---|---|
| 200 | Sukses |
| 400 | Parameter tidak valid (nominal di luar range, dll) |
| 401 | API Key tidak valid atau tidak disertakan |
| 403 | Akun di-suspend |
| 429 | Rate limit — max 10 request/menit atau terlalu banyak deposit pending |
| 500 | Error server / provider tidak merespons |
Cooldown cek status: 30 detik antar pengecekan untuk deposit_id yang sama. Polling disarankan setiap 10–30 detik.
Butuh Bantuan?
Hubungi CS kami di Telegram