Skip to main content
QRIS (Quick Response Code Indonesian Standard) is the national QR payment standard in Indonesia. Customers pay by scanning a QR code with any participating Indonesian banking or e-wallet app. Payrails processes QRIS through dLocal as the payment service provider (PSP). Open the dLocal guide below for its setup steps and request examples.

How a QRIS payment works

QRIS is a QR payment method. Payrails redirects the customer to a dLocal page that shows the QR code:
  1. The customer selects QRIS at checkout.
  2. Payrails returns a redirect URL from dLocal, and the customer goes to a page that shows the payment QR code.
  3. The customer scans the QR code with their banking or e-wallet app and confirms the payment in that app.
  4. The customer returns to your returnInfo URL.
  5. Payrails receives the final result from dLocal and updates the payment.
Each payment is single-use: the customer confirms every payment on its own. Payrails captures QRIS payments immediately, so a successful payment is final. To return funds, refund the payment.

Supported currencies and countries

QRIS supports IDR (Indonesian rupiah) as its only presentment currency.

Integrate QRIS

The dLocal guide covers the PSP-side setup, the Payrails configuration, and the request fields dLocal requires.

dLocal

QRIS via dLocal

Check PSPs

Ways to integrate QRIS

  • Payrails SDK: the Web SDK shows QRIS when your workflow returns it as a payment option, and redirects the customer to the QR code page. To control how the redirect opens, listen for the actionRequired event.
  • Payrails API: call lookup payment options, then authorize with qris as the paymentMethodCode. The dLocal guide lists the meta fields dLocal requires.
In both cases, confirm the final result through webhook notifications or the execution status. Don’t treat the customer’s return to your success URL as proof of payment.
Last modified on October 5, 2026