Instant generation
Generate a QR code in one API call with a fixed amount — display it immediately to the customer.
All major apps
Accepted by GoPay, OVO, Dana, ShopeePay, and all QRIS-compatible banking apps.
Real-time confirmation
Payment status updates instantly via the QRIS network — no polling delay.
Payment flow
Key difference: one QR = one transaction
Cannot do
- Reuse the same QR code for multiple payments
- Accept partial payments
- Change the amount after generation
- Keep a QR code active indefinitely
Must do
- Generate a new QR code for each transaction
- Set the exact amount at creation time
- Monitor payment status in real-time
- Expire unused codes to prevent stale QRs
Transaction status
| Status | Description |
|---|---|
open | QR code generated, awaiting customer payment. |
paid | Payment confirmed by the QRIS network. |
expired | QR code expired before payment was made. |
settled | Funds transferred to your account. |
Only transactions with status
open can be deleted. Paid or expired transactions cannot be removed.Important notes
One-time use only
One-time use only
Each QRIS code is single-use. After a customer completes payment, the QR code is automatically invalidated and cannot accept another payment. Always generate a fresh QR for the next customer or transaction.
Fixed amount at generation
Fixed amount at generation
The payment amount is set at QR creation time and cannot be changed. The customer must pay the exact amount — QRIS does not support partial or over-payments.
Optional expiration
Optional expiration
You can set an optional expiry time when generating a QR code. After expiry, the code cannot be scanned or paid. Unset expiry means the code stays
open indefinitely until paid or manually deleted.MDR fees
MDR fees
Merchant Discount Rate (MDR) applies to all QRIS transactions. The fee percentage depends on your merchant category (MCC) and your agreement with Singapay. MDR details are visible in each transaction record.
Settlement timeline
Settlement timeline
QRIS settlements typically follow an H+1 to H+2 schedule depending on the payment provider. Settlement timestamps are tracked in each transaction record.
Data retention
Data retention
Transaction records are retained for 1 year. Data older than 1 year is archived and may not be accessible via the API.
Available endpoints
List QRIS Transactions
Paginated list of all QRIS transactions for an account with filter support.
Show QRIS Transaction
Retrieve a single transaction by its numeric ID.
Generate Dynamic QRIS
Create a new MPM dynamic QR code for a fixed-amount transaction.
All endpoints require authentication. See Authentication.
