Skip to main content
The QRIS Issuer (Money Out) API lets your platform act as an issuer — sending payments from your Singapay account to any QRIS MPM (Merchant Presented Mode) merchant. The customer scans the merchant’s QR code, your system decodes it, confirms the merchant details, and initiates the credit payment through Singapay’s switching network integration.
This is a Money Out operation. Each payment debits funds from your Singapay account and credits the destination QRIS merchant via the switching network (Jalin, Alto, or Rintis).

Merchant lookup

Decode any QRIS MPM code and retrieve verified merchant details before committing to a payment.

Instant credit

Initiate a payment credit transaction directly to the merchant via Indonesia’s QRIS switching network.

Status tracking

Query the latest transaction status at any point after payment initiation.

1

Scan and decode QR code

Customer scans the merchant’s QRIS MPM code. Your system captures the raw qr_data string from the QR code.
2

Inquiry merchant

Call QRIS Issuer MPM — Inquiry Merchant with the qr_data. Singapay decodes the QR, retrieves merchant details (name, NMID, category), and returns the verified merchant info. Present this to the customer for confirmation.
3

Initiate payment credit

Once the customer confirms, call QRIS Issuer MPM — Payment Credit with the confirmed amount and merchant details. A reference_number is returned to track the transaction.
4

Check transaction status

Use QRIS — Inquiry Transaction Status with the reference_number to verify the final transaction outcome — especially for pending or in-process payments.

API overview

MethodEndpointDescription
POST/api/v2.0/qris/issuer/mpm/inquiry-merchantDecode qr_data and retrieve verified QRIS merchant details.
POST/api/v2.0/qris/issuer/mpm/payment-creditInitiate a payment credit to the QRIS merchant.
POST/api/v2.0/qris/status/{account_id}Query the status of a QRIS transaction by reference_number.
All endpoints use POST, accept application/json, and require OAuth 2.0 Bearer Token authentication.

Transaction status

StatusDescription
pendingPayment initiated, awaiting confirmation from the switching network.
successPayment successfully credited to the merchant.
failedPayment failed — check the response code for the reason.

Important notes

Always call Inquiry Merchant before initiating a payment. This validates the QR code, retrieves the correct merchant details, and lets the customer confirm before funds are debited.
Singapay routes QRIS issuer payments through supported switching networks — Jalin, Alto, and Rintis. The routing is handled automatically based on the merchant’s QRIS data.
The qr_data field accepts the raw string decoded from the merchant’s QR code — the full QRIS MPM payload. Do not modify or truncate the string before sending.
Store the reference_number returned from the payment credit call. Use it with Inquiry Transaction Status to safely check the outcome and handle retries without creating duplicate transactions.
Payment Credit and Inquiry Status endpoints require an additional X-Signature and X-Timestamp header. See Authentication for signing requirements.

Available endpoints

QRIS Issuer MPM — Inquiry Merchant

Decode qr_data and retrieve verified merchant details from the QRIS switching network.

QRIS Issuer MPM — Payment Credit

Initiate a payment credit to the destination QRIS merchant.

QRIS — Inquiry Transaction Status

Query the current status of a QRIS transaction by reference number.
All endpoints require authentication. See Authentication.