Dokumentasi API
Panduan integrasi H2H DigitalPedia
Base URL & Autentikasi
Semua request menggunakan base URL berikut. Sertakan API Key di header setiap request.
Base URL: https://pay.digitalpedia.web.id
Header Autentikasi:
x-api-key: YOUR_API_KEY
API Key tersedia di halaman Profil & API. Jangan bagikan kepada siapapun.
Deposit QRIS
POST
/api/deposit/create
Buat Invoice
Membuat invoice QRIS baru untuk deposit saldo. Autentikasi pakai header x-api-key, user diambil otomatis dari API Key tersebut.
| 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();
console.log(data);
Contoh Response
// 200 OK
{
"success": true,
"deposit": {
"id": "DP17500001234567",
"amount": 50000,
"fee": 0,
"total_payment": 50000,
"qr_image": "https://imgbb.46dhygfadgs.png",
"status": "pending",
"expired_at": "2026-06-17T11:00:00.000Z"
}
}
// 400 Bad Request (nominal tidak valid)
{
"success": false,
"error": "Minimal deposit Rp500"
}
// 401 Unauthorized (api key salah/kosong)
{
"success": false,
"error": "Invalid API Key"
}
POST
/api/deposit/status
Cek Status
Autentikasi pakai header x-api-key. Ada cooldown 30 detik antar pengecekan untuk deposit_id yang sama.
| Parameter | Tipe | Keterangan |
|---|---|---|
| deposit_idwajib | string | ID deposit dari create |
Contoh Request
const res = await fetch('https://pay.digitalpedia.web.id/api/deposit/status', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
deposit_id: 'DP17500001234567'
})
});
const data = await res.json();
console.log(data);
Contoh Response
// Masih menunggu pembayaran
{
"success": true,
"status": "pending",
"message": "Menunggu pembayaran"
}
// Sudah dibayar
{
"success": true,
"status": "success",
"message": "Deposit berhasil! Saldo bertambah."
}
// Kadaluarsa
{
"success": true,
"status": "expired",
"message": "Deposit expired"
}
POST
/api/deposit/cancel
Batalkan Deposit
Autentikasi pakai header x-api-key. Hanya bisa membatalkan deposit dengan status pending.
| Parameter | Tipe | Keterangan |
|---|---|---|
| deposit_idwajib | string | ID deposit yang ingin dibatalkan |
Contoh Request
const res = await fetch('https://pay.digitalpedia.web.id/api/deposit/cancel', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
deposit_id: 'DP17500001234567'
})
});
const data = await res.json();
console.log(data);
Contoh Response
// 200 OK
{
"success": true,
"message": "Deposit berhasil dibatalkan"
}
// 400 Bad Request (status bukan pending)
{
"success": false,
"error": "Deposit status success, tidak bisa dibatalkan"
}
Contoh Implementasi
Contoh integrasi menggunakan JavaScript / Node.js:
const axios = require('axios');
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://yourdomain.com';
// Buat Deposit
async function createDeposit(amount) {
const res = await axios.post(`${BASE_URL}/api/deposit/create`, {
amount: amount
}, {
headers: { 'x-api-key': API_KEY }
});
return res.data;
}
// Cek Status
async function checkStatus(depositId) {
const res = await axios.post(`${BASE_URL}/api/deposit/status`, {
deposit_id: depositId
}, {
headers: { 'x-api-key': API_KEY }
});
return res.data;
}
// Batalkan Deposit
async function cancelDeposit(depositId) {
const res = await axios.post(`${BASE_URL}/api/deposit/cancel`, {
deposit_id: depositId
}, {
headers: { 'x-api-key': API_KEY }
});
return res.data;
}
Butuh bantuan? Hubungi CS kami di @csdigitalpedia