Dokumentasi API QRISPAY
Integrasi payment gateway QRIS yang mudah dan cepat untuk website & aplikasi Anda. Panduan lengkap dari autentikasi hingga callback real-time.
Overview
API QRISPAY memungkinkan Anda untuk menerima pembayaran QRIS secara programatis. API kami menggunakan RESTful architecture dengan response berformat JSON. Semua endpoint menggunakan HTTPS dan memerlukan autentikasi API Key.
https://qrispay.site/api/v1
- Pembayaran QRIS dinamis (one-time)
- Callback real-time ke URL Anda
- Fee transparan 1.5% per transaksi sukses
- Settlement cepat & otomatis
- Autentikasi API Key yang aman
- Endpoint cek saldo & riwayat
Autentikasi
Semua request ke API QRISPAY harus menyertakan API Key untuk autentikasi. API Key dapat dilihat dan di-generate ulang di halaman Pengaturan.
Sertakan API Key di header setiap request dengan format Bearer:
- Jangan pernah commit API Key ke repository publik
- Simpan di environment variable (misal:
QRISPAY_API_KEY) - Regenerate key segera jika bocor
Buat Pembayaran
Endpoint untuk membuat invoice pembayaran QRIS baru. Response akan berisi QR string yang bisa ditampilkan ke customer.
Request Parameters
| Parameter | Tipe | Deskripsi |
|---|---|---|
api_key string |
API Key merchant (required) | |
|
amountRequired
integer
|
Nominal pembayaran dalam Rupiah. Minimum Rp 1.000. | |
|
merchant_refRequired
string
|
Referensi unik dari sistem Anda (max 50 karakter). Gunakan sebagai invoice ID. | |
|
nameOptional
string
|
Nama customer untuk ditampilkan di invoice. | |
|
emailOptional
string
|
Email customer untuk notifikasi. | |
|
phoneOptional
string
|
Nomor WhatsApp customer (format 62xxx). | |
|
callback_urlOptional
string
|
URL untuk menerima callback ketika status transaksi berubah. Override URL default. | |
Contoh Request
Response Success 200 OK
Cek Status Transaksi
Endpoint untuk mengecek status pembayaran berdasarkan QRISPAY Transaction ID. Gunakan untuk polling atau verifikasi manual.
Request Parameters
| Parameter | Tipe | Deskripsi |
|---|---|---|
api_key string |
API Key merchant (required) | |
|
qrpay_trx_idRequired
string
|
ID transaksi dari QRISPAY (didapat dari response /create). | |
Contoh Request
Response Success
Cek Saldo
Endpoint untuk mengecek saldo merchant dan statistik transaksi hari ini.
Contoh Request
Response Success
Riwayat Transaksi
Endpoint untuk mendapatkan riwayat transaksi dengan pagination dan filter status.
Request Parameters
| Parameter | Tipe | Deskripsi |
|---|---|---|
api_key string |
API Key merchant (required) | |
|
statusOptional
string
|
Filter: all, berhasil, pending, expired, failed. Default: all. |
|
|
pageOptional
integer
|
Nomor halaman. Default: 1. |
|
|
per_pageOptional
integer
|
Jumlah data per halaman. Default 20, max 100. |
|
Contoh Request
Callback / Webhook
QRISPAY akan mengirim callback ke URL yang Anda tentukan saat status transaksi berubah. Pastikan endpoint Anda dapat menerima POST request dan membalas dengan status 200 OK.
- Dapat diakses dari internet (bukan localhost)
- HTTPS sangat direkomendasikan
- Mampu menangani POST request dengan body JSON
- Wajib response HTTP 200 OK dalam waktu < 5 detik
Payload Callback
QRISPAY akan mengirim POST request dengan body JSON seperti berikut:
Handler Callback (PHP)
Contoh implementasi callback handler dengan verifikasi signature:
Error Codes
Daftar kode HTTP error yang mungkin dikembalikan oleh API beserta penyebab umum dan solusinya.
| Code | Message | Penyebab & Solusi |
|---|---|---|
| 400 | Bad Request | Parameter tidak valid atau missing. Periksa kelengkapan & format field (min amount, max merchant_ref, dsb). |
| 401 | Unauthorized | API Key tidak valid, expired, atau tidak aktif. Regenerate di Pengaturan. |
| 404 | Not Found | Transaksi atau resource tidak ditemukan. Periksa qrpay_trx_id yang dikirim. |
| 405 | Method Not Allowed | HTTP method tidak didukung. Semua endpoint QRISPAY wajib menggunakan POST. |
| 429 | Too Many Requests | Rate limit terlampaui. Tunggu beberapa saat sebelum mencoba lagi (default: 60 req/menit). |
| 500 | Internal Server Error | Kesalahan di server QRISPAY. Hubungi support jika persisten. |
| 502 | Bad Gateway | Koneksi ke provider QRIS gagal. Coba lagi setelah beberapa saat. |