Panduan integrasi API lengkap untuk memproses transaksi QRIS instan, cek status pembayaran otomatis, dan mutasi saldo real-time.
KeysPay Gateway menyediakan RESTful API berkinerja tinggi untuk memfasilitasi pembuatan QRIS dinamis, penerimaan pembayaran otomatis dari seluruh bank & e-wallet di Indonesia, serta verifikasi status pembayaran instan.
API ini didesain khusus agar mudah diintegrasikan baik untuk aplikasi web modern (E-Commerce, Web Store) maupun bot otomatis (Bot WhatsApp, Bot Telegram, Bot Discord).
Seluruh endpoint API dapat diakses melalui Base URL berikut:
https://keyysstore.web.id/api/v1
X-API-Key di setiap request HTTP yang Anda kirimkan.POST /deposit/create untuk membuat pembayaran QRIS dan lakukan polling status ke GET /deposit/status/{depositid}.Deteksi pembayaran QRIS dalam hitungan detik setelah pelanggan membayar.
Validasi HMAC SHA-256, enkripsi end-to-end, dan sistem anti-fraud terpercaya.
Infrastruktur berdaya tahan tinggi siap melayani transaksi 24 jam nonstop.
Dukungan kode siap pakai untuk Node.js, Python, PHP, dan cURL.
Setiap request ke endpoint terproteksi wajib menyertakan API Key yang dikirim melalui HTTP Header berikut:
| Header Name | Tipe | Deskripsi |
|---|---|---|
X-API-Key |
String | API Key rahasia Anda (Contoh: kp_live_a1b2c3d4e5...) |
Content-Type |
String | application/json (Wajib untuk request body POST) |
Meminta informasi detail akun merchant serta sisa saldo saat ini.
| Header | Wajib | Nilai |
|---|---|---|
X-API-Key | Ya | API Key Merchant Anda |
{
"success": true,
"code": 200,
"message": "Informasi saldo berhasil diambil",
"data": {
"email": "[email protected]",
"name": "KeysPay Merchant",
"balance": 2500000,
"currency": "IDR",
"status": "active"
}
}
Sistem akan merespon dengan URL gambar QRIS dinamis dan string QRIS standar yang dapat digunakan langsung pada payment gateway Anda.
| Header | Wajib | Nilai |
|---|---|---|
X-API-Key | Ya | API Key Merchant Anda |
Content-Type | Ya | application/json |
| Parameter | Tipe | Status | Deskripsi Singkat |
|---|---|---|---|
amount | Number | Required | Nominal deposit (Rp1.000 – Rp1.000.000.000) |
fee | Number | Optional | Biaya tambahan transaksi (default: 0) |
order_id | String | Optional | ID pesanan unik dari bot atau website Anda |
customer_name | String | Optional | Nama pelanggan atau pembeli |
{
"amount": 50000,
"fee": 0,
"order_id": "ORD-20261010-098",
"customer_name": "KeysPay User"
}
{
"success": true,
"code": 200,
"message": "Deposit QRIS berhasil dibuat",
"data": {
"deposit_id": "bvjqtw",
"amount": 50000,
"fee": 0,
"total_amount": 50000,
"status": "pending",
"qr_url": "https://qriskuu.web.id/img/qr-phcagpzg.png",
"qr_string": "00020101021126610014COM.GO-JEK.WWW0118...",
"payment_link": "https://qriskuu.web.id/pay/bvjqtw",
"created_at": "2026-10-10T07:30:00.000Z",
"expired_at": "2026-10-10T07:35:00.000Z"
}
}
Memeriksa status transaksi pembayaran QRIS secara real-time berdasarkan deposit ID.
| Parameter | Tipe | Status | Deskripsi |
|---|---|---|---|
depositid | String | Required | ID transaksi (Contoh: bvjqtw) |
| Status | Arti & Deskripsi |
|---|---|
success | Pembayaran sukses diterima dan diverifikasi. |
pending | Menunggu pelanggan melakukan pembayaran via QRIS. |
expired | Waktu pembayaran telah habis (melewati 5 menit). |
already | Transaksi sudah pernah diselesaikan sebelumnya. |
success atau expired.
{
"success": true,
"code": 200,
"message": "Status transaksi berhasil diambil",
"data": {
"deposit_id": "bvjqtw",
"status": "success",
"amount": 50000,
"paid_at": "2026-10-10T07:32:15.000Z",
"payment_from": "BCA",
"reference_id": "05202610100335478dE9h4SSlpID"
}
}
| HTTP Code | Nama Status | Penjelasan Masalah |
|---|---|---|
200 OK | Success | Permintaan berhasil dieksekusi secara normal. |
400 Bad Request | Invalid Payload | Format payload salah atau nominal di luar jangkauan minimal/maksimal. |
401 Unauthorized | Invalid API Key | Header X-API-Key tidak disertakan atau API Key tidak valid. |
403 Forbidden | Access Denied | Akses ditolak atau akun dinonaktifkan oleh administrator. |
404 Not Found | Not Found | Endpoint atau deposit ID tidak ditemukan dalam basis data. |
429 Too Many Requests | Rate Limit | Batas laju permintaan terlampaui (maks 60 req/menit). |
500 Internal Error | Server Error | Terjadi kendala pada gateway pemroses transaksi. |
Pilih bahasa pemrograman favorit Anda untuk melihat contoh implementasi alur lengkap: cek saldo, buat deposit QRIS, dan polling status pembayaran: