Skip to main content

Introduction

QRIS uses a redirect-based payment flow. When a customer selects QRIS at checkout, they are redirected to a hosted page displaying a QR code. The customer scans the QR code using their preferred banking or e-wallet app to confirm payment, then returns to your website or app upon completion. QRIS is a single-use payment method. This guide explains the process of integrating QRIS into your app or website using Payrails.

Pre-requisites

Before you start accepting QRIS payments with Payrails, there are a few requirements you must meet:

Ways to integrate QRIS

Payrails SDK

Server-to-server integration

Parse QRIS from lookup response

Pass QRIS payment method in request to authorize payment with Payrails

Note on amountsIDR uses 2 decimal places. Amounts should be provided in the smallest currency unit—for example, 1500000 for Rp15,000.00.
QRIS is a redirect-based, single-use payment method. After calling the authorize endpoint, the customer will be redirected to a hosted page displaying a QR code. The customer scans this with any participating banking or e-wallet app. Once confirmed, the customer will be redirected back to the returnInfo.success URL. QRIS payments expire in 2 days if unpaid.

Handle the redirect response

Supported currencies

QRIS via dLocal supports the following presentment currency:
  • IDR — Indonesian Rupiah

Supported regions / countries

Supported workflows and services

Last modified on September 28, 2026