Start with the merchant and payment flow

Tell your provider which company accepts the payment, what customers buy and where the business is registered. Agree the approved collection route before choosing a checkout design. QRIS is an Indonesian QR payment standard; displaying its name does not establish a direct relationship with a bank or payment scheme.

In the first technical discussion, confirm whether the approved setup issues a new QR instruction for each order, how the amount is represented and how long instructions remain valid. A QR image alone is not an order-management system.

Build a checkout that handles waiting

Show the payable IDR amount, expiry and a clear pending state. Explain what customers should do after scanning and provide a way to return to the order. Ask the provider how customers complete payment when the checkout and payment app are on the same phone; do not invent an unsupported app-opening flow.

QRIS checkout decisions
DecisionConfirm before implementation
Payment instructionAmount, order reference, QR format and expiry
Customer returnHow the customer resumes checkout without marking an order paid
ExpiryWhat your system displays and how late payments are investigated
Status confirmationDocumented notification authentication and status-query process

Verify payment on your server

Use the approved API documentation to establish how your backend authenticates notifications and checks transaction status. Store the merchant reference, provider reference, amount, currency and processing history. A browser redirect or customer screenshot is useful investigation context, not final confirmation.

Make notification handling safe for repeated delivery. If a paid notification arrives twice, your application should not credit the same order twice. If a request times out, follow the provider’s documented query and retry procedure rather than creating a fresh payable order immediately.

Test four cases before launch

  1. Successful payment: the confirmed amount matches the order and fulfilment happens once.
  2. Unpaid expiry: the customer sees clear instructions and no balance is credited.
  3. Delayed notification: the order stays pending until the documented verification process resolves it.
  4. Duplicate update: repeated delivery does not create duplicate fulfilment.

Agree who investigates paid-but-pending cases, what transaction references they need and which data must stay in the secure support channel.

Confirm current QRIS limits and commercial terms

The PAYJN Indonesia page contains an indicative QRIS range and a coverage review date. Your approved terms govern the live service. Ask for collection fees, settlement timing, transaction limits and exception handling in writing; do not assume one merchant’s terms apply to another.

For the broader payment mix, read the QRIS versus virtual accounts guide. For scheme background, see Bank Indonesia’s QRIS overview. Scheme information does not confirm a PAYJN route or merchant approval.

Get a merchant-specific integration review

Share your website, target market, required methods and expected volume. Our team will review merchant fit and the proposed payment flow. Do not send API secrets or customer banking data in a first enquiry.

Discuss Indonesia integration

Or start a conversation on Telegram / WhatsApp.

Related integration guides

Method availability, transaction limits, fees and production access depend on the approved merchant setup. Operator references describe the payment ecosystem and do not imply a direct partnership.