API QRISDinamis
Dua layanan dalam satu API key: konversi QRIS statis milikmu menjadi dinamis, dan terima pembayaran lewat QRIS kami. Butuh paket aktif (Rp 10.000 / 30 hari, unlimited).
Autentikasi & batas
Semua endpoint memakai header X-API-Key. Batas 120 permintaan per menit per API key. Base URL: https://qrisdinamis.com.
POST /api/public/v1/qris
Mengubah QRIS statis milikmu menjadi QRIS dinamis bernominal.
| Nama | Tipe | Keterangan |
|---|---|---|
| qris | string | Kode QRIS statis (payload EMVCo), wajib |
| amount | number | Nominal dalam rupiah, wajib |
| fee.type | none | rupiah | percent | Jenis biaya layanan, opsional |
| fee.value | number | Besar biaya layanan, opsional |
Contoh request
curl -X POST https://qrisdinamis.com/api/public/v1/qris \
-H "Content-Type: application/json" \
-H "X-API-Key: qd_live_xxxxxxxx" \
-d '{
"qris": "00020101021126...",
"amount": 25000,
"fee": { "type": "rupiah", "value": 1000 }
}'Contoh respons
{
"success": true,
"payload": "00020101021226...",
"merchant": { "name": "TOKO CONTOH", "city": "JAKARTA" },
"amount": 25000,
"qr_svg": "<svg ...>"
}POST /api/public/v1/charge
Membuat tagihan QRIS memakai QRIS kami, sehingga pembayaran benar-benar masuk ke saldo akunmu. Akun merchant harus sudah disetujui admin (verifikasi KTP + rekening) di halaman Terima Pembayaran.
| Nama | Tipe | Keterangan |
|---|---|---|
| amount | number | Nominal Rp 1.000 – Rp 1.000.000, wajib |
| label | string | Keterangan / nomor order, opsional (maks 80 karakter) |
| minutes | number | Masa aktif QRIS, 5–1440 menit, default 30 |
| feeBearer | customer | merchant | Penanggung biaya 1,5%, default customer |
Contoh request
curl -X POST https://qrisdinamis.com/api/public/v1/charge \
-H "Content-Type: application/json" \
-H "X-API-Key: qd_live_xxxxxxxx" \
-d '{
"amount": 100000,
"label": "Order #1234",
"minutes": 30,
"feeBearer": "customer"
}'Contoh respons
{
"success": true,
"order_id": "MC1754112233456",
"label": "Order #1234",
"amount": 100000,
"fee_amount": 1500,
"fee_bearer": "customer",
"total_amount": 101500,
"net_amount": 100000,
"status": "pending",
"expires_at": "2026-08-02T07:05:00.000Z",
"qr_string": "00020101021226...",
"qr_svg": "<svg ...>"
}Catatan: lewat API tidak ada batasan jumlah tagihan aktif. Setiap request selalu membuat tagihan baru dengan order_id unik, walaupun masih ada tagihan lain berstatus pending — cocok untuk banyak pembeli sekaligus. Simpan order_id tiap tagihan untuk pengecekan status. (Batas satu tagihan aktif hanya berlaku di dashboard web, bukan API.)
GET /api/public/v1/charge?order_id=...
Status: pending, paid, expired, underpaid, atau failed. Field settled bernilai true setelah dana cair (H+1 / 24 jam) dan siap ditarik.
Contoh request
curl "https://qrisdinamis.com/api/public/v1/charge?order_id=MC1754112233456" \ -H "X-API-Key: qd_live_xxxxxxxx"
Contoh respons
{
"success": true,
"order_id": "MC1754112233456",
"status": "paid",
"settled": false,
"total_amount": 101500,
"net_amount": 100000,
"paid_at": "2026-08-02T06:41:20.000Z"
}Biaya layanan terima pembayaran
- • Biaya 1,5% dari nominal, hanya untuk transaksi sukses.
- •
feeBearer: "customer"→ pembeli membayar nominal + 1,5%, kamu menerima nominal penuh. - •
feeBearer: "merchant"→ pembeli membayar nominal, kamu menerima nominal − 1,5%. - • Dana bisa ditarik ke rekeningmu 24 jam setelah pembayaran sukses.
Kode error
- 400 — Body atau parameter tidak valid.
- 401 — API key tidak valid atau tidak dikirim.
- 402 — Paket API kedaluwarsa, perpanjang di dashboard.
- 404 — Tagihan tidak ditemukan (cek status).
- 422 — QRIS tidak valid, nominal melebihi batas, atau merchant belum disetujui.
- 429 — Melebihi 120 permintaan per menit.