QiosHub
Mulai Autentikasi Buat Transaksi Cek Status Webhook Kode Error

QiosHub API

QiosHub adalah lapisan payment gateway di atas QRIS Qiospay. Website/aplikasi Anda cukup memanggil API ini untuk membuat tagihan QRIS, dan akan menerima notifikasi webhook otomatis begitu pembeli membayar — tanpa perlu integrasi langsung ke Qiospay.

Base URL: https://payment.indojasa.my.id

Autentikasi

Sertakan API key Anda (diberikan oleh penyedia layanan ini) di header Authorization pada setiap request:

Authorization: Bearer qh_live_xxxxxxxxxxxxxxxxxxxx

Buat Transaksi

POST /v1/transactions

FieldWajibKeterangan
amountYaNominal tagihan dalam Rupiah (angka, minimal 500)
external_idTidakID order di sistem Anda sendiri, untuk pencocokan
descriptionTidakKeterangan singkat, tampil di halaman pembayaran
redirect_urlTidakURL untuk mengarahkan pembeli setelah bayar (opsional)
curl -X POST https://payment.indojasa.my.id/v1/transactions \ -H "Authorization: Bearer qh_live_xxxxxxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"external_id":"ORDER-123","amount":50000,"description":"Pembayaran pesanan #123"}'

Respons:

{ "id": "txn_abc123", "status": "pending", "base_amount": 50000, "amount_to_pay": 50171, "qris_string": "00020101021226670016COM.NOBUBANK.WWW...6304XXXX", "qr_widget_url": "https://payment.indojasa.my.id/v1/transactions/txn_abc123/qr-widget", "checkout_url": "https://payment.indojasa.my.id/checkout/txn_abc123", "expires_at": "2026-07-29T11:30:00.000Z" }

Tiga cara menampilkan QR ke pembeli, pilih sesuai kebutuhan:

FieldKapan dipakai
qris_stringRender QR sendiri di frontend Anda pakai library apa saja (mis. qrcode.js), full kontrol tampilan.
qr_widget_urlQR polos tanpa tampilan tambahan — tinggal <iframe src="..."> di halaman checkout Anda sendiri.
checkout_urlHalaman pembayaran siap pakai (redirect pembeli ke sini), tidak perlu kode tambahan sama sekali.

qris_string dan qr_widget_url bernilai null kalau penyedia belum mengatur QRIS dinamis — dalam kondisi ini pakai checkout_url saja.

Cek Status Transaksi

GET /v1/transactions/:id

curl https://payment.indojasa.my.id/v1/transactions/txn_abc123 \ -H "Authorization: Bearer qh_live_xxxxxxxxxxxxxxxxxxxx"

Webhook

Saat transaksi berubah menjadi paid, QiosHub mengirim POST ke Webhook URL yang Anda daftarkan, dengan header tanda tangan:

X-QiosHub-Signature: <hmac-sha256 dari body, memakai webhook secret Anda>

Contoh body webhook:

{ "id": "txn_abc123", "external_id": "ORDER-123", "status": "paid", "base_amount": 50000, "amount_paid": 50171, "paid_at": "2026-07-29T11:05:00.000Z" }

Verifikasi tanda tangan di server Anda dengan menghitung ulang HMAC-SHA256 dari body mentah memakai webhook secret, lalu bandingkan dengan header di atas sebelum memproses order sebagai lunas.

Kode Error

StatusArti
401API key tidak ada / salah
403Akun merchant sedang disuspend
400Parameter tidak valid (mis. amount kosong)
404Transaksi tidak ditemukan / bukan milik API key ini