PAYWISE
en
← All articles

Guides

Static vs dynamic QRIS: what is the difference and which one do you need?

Static QRIS is one printed code for every payment; dynamic QRIS is a new code for each order, with the amount built in. Here is how they differ and when each one fits.

Published 06 October 2026 3 min read

Also available in: Indonesia, 简体中文

Static vs dynamic QRIS: what is the difference and which one do you need?

Every QRIS code can be paid with any bank or e-wallet app that supports QRIS. But there are two kinds of QRIS, and they work very differently for a business: static and dynamic.

Static QRIS compared with dynamic QRIS: amount, use, expiry, confirmation and order matching

Static QRIS: one code for every payment

A static QRIS is a single code, usually printed on a sticker or a stand at the cashier. It never changes and never expires.

  1. The customer scans the code.
  2. The customer types the amount in their app.
  3. The customer shows the "payment successful" screen, and you check that the money arrived.

Static QRIS is simple and works well for a small shop counter where the seller can see every customer. Its weak points appear online and at volume:

  • Wrong amounts. The customer can type too little, by mistake or on purpose.
  • No link to the order. Ten customers paying the same amount look identical. You have to guess which payment belongs to which order.
  • Manual checking. Someone has to compare payments with orders, which is slow and invites fake "payment successful" screenshots.

Dynamic QRIS: a new code for each order

A dynamic QRIS is created for one transaction. The amount is already inside the code, so the customer only scans and confirms.

  1. Your website or app asks for a payment, for example through a payment gateway.
  2. A new QR code is created with the exact amount and a reference to the order.
  3. The customer scans and pays. The amount cannot be changed.
  4. The payment is confirmed automatically, and your system is told which order was paid.

The code is valid for a limited time and is used once. If the customer does not pay in time, it expires and a new one can be created.

Side by side

Static QRIS Dynamic QRIS
Amount Typed by the customer Fixed in the code
Used for Every payment One order
Expires No Yes, after a set time
Confirmation Checked by hand Automatic
Matching to the order By guessing Exact
Best for Small counters, donations Online shops, apps, invoices, busy stores

Which one should you use?

  • Static is enough if you sell face to face, in small numbers, and can check every payment yourself.
  • Dynamic is the better choice as soon as you sell online, receive many payments, or want orders to update without anyone checking.

Many businesses use both: a static sticker at the counter and dynamic QRIS on their website.

Dynamic QRIS with PAYWISE

PAYWISE creates a dynamic QRIS for every transaction. You send the amount and your own order reference through the API or a plugin, and PAYWISE returns the QR code and a hosted payment page. When the customer pays:

  • the transaction is marked paid automatically,
  • your website receives a signed webhook with your order reference,
  • the funds appear in your dashboard, ready for withdrawal.

You can also choose how long each QR stays valid with expires_in. To get started, see how to accept QRIS payments with PAYWISE, or test everything first in the sandbox. For QRIS fees set by Bank Indonesia, read QRIS MDR fees from 1 October 2026.

More articles

Start with a sandbox key today.

Create an account, generate a sandbox key, and send your first transaction from the playground in minutes.