Tempel satu QRIS merchant. QRPay membuat QRIS dinamis per tagihan, mengenali dana masuk dari nominal uniknya, lalu menandai lunas dan mengirim webhook ke sistem Anda.
Setiap tagihan diberi kode unik di nominalnya, jadi dua pembayaran bernilai mirip tidak pernah tertukar.
Upload gambar QRIS statis merchant. QRPay membaca dan mengenali penerbitnya.
Dari dashboard atau API. Nominal diberi kode unik dan jadi QRIS dinamis.
Dana masuk dikenali dari nominal uniknya pada akun merchant Anda.
Order jadi PAID dan webhook bertanda tangan dikirim ke server Anda.
Begitu dana masuk cocok dengan nominal unik tagihan, status langsung PAID — tanpa cek manual, tanpa salah hitung.
Kode otomatis mencegah dua order aktif bernilai sama tertukar.
Buat, cek, dan batalkan order dari bot, web, atau aplikasi Anda.
Notifikasi PAID bertanda tangan SHA-256, dengan kirim ulang otomatis.
Kredensial AES-256-GCM, password bcrypt, dan 2FA Authenticator.
Kirim nominal dasar, terima nominal unik, QRIS dinamis, dan tautan halaman bayar. Dokumentasi lengkap dengan contoh cURL, JavaScript, PHP, dan Python.
curl -X POST https://qrpay.biz.id/api/v1/orders \
-H "x-api-key: qrp_live_xxx" \
-H "content-type: application/json" \
-d '{"base_amount":100000,"reference":"INV-001"}'
const res = await fetch('https://qrpay.biz.id/api/v1/orders', {
method: 'POST',
headers: { 'x-api-key': process.env.QRPAY_KEY, 'content-type': 'application/json' },
body: JSON.stringify({ base_amount: 100000, reference: 'INV-001' }),
});
const { data } = await res.json();
console.log(data.amount, data.payment_url);
$ch = curl_init('https://qrpay.biz.id/api/v1/orders');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ' . getenv('QRPAY_KEY'), 'content-type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['base_amount' => 100000, 'reference' => 'INV-001']),
]);
$order = json_decode(curl_exec($ch), true)['data'];
echo $order['payment_url'];
import os, requests
r = requests.post(
'https://qrpay.biz.id/api/v1/orders',
headers={'x-api-key': os.environ['QRPAY_KEY']},
json={'base_amount': 100000, 'reference': 'INV-001'},
timeout=15,
)
order = r.json()['data']
print(order['amount'], order['payment_url'])
Coba gratis dari dashboard (order uji tanpa biaya). Untuk transaksi LIVE & REST API, isi saldo kredit — biaya kecil dipotong hanya saat transaksi berhasil.
Saldo tidak hangus. Harga dapat berubah sewaktu-waktu.
Ya. QRPay memakai QRIS statis milik merchant. QRPay bukan penerbit QRIS dan tidak menampung dana.
Tidak. Dana masuk langsung ke akun merchant/provider QRIS Anda. QRPay hanya membuat QRIS per order, mengenali pembayaran, dan mengirim webhook.
Nominal akhir ditambah kode unik (mis. Rp100.000 → Rp100.327), sehingga setiap tagihan aktif selalu berbeda dan cocok otomatis.
Tergantung sumber. Untuk deteksi lewat listener notifikasi (Ingest URL) perlu HP yang meneruskan notifikasi. GoPay dipakai lewat login akun merchant.
Dashboard dan order uji tetap jalan. API key lama tidak dihapus, hanya terkunci sampai Anda memperpanjang.
Buat akun, hubungkan QRIS, dan lihat transaksi pertama berubah PAID — gratis.
Buat akun QRPay