What is the difference between static and dynamic QR codes?

Short answer

A static code is printed once and displayed at the counter: the customer scans it, types the amount and confirms in the app. A dynamic code is generated at the point of sale with the amount already set, so the customer only scans and confirms. Signed dynamic codes also help against fake stickers pasted over merchant codes.

In detail

A static code is printed once and displayed at the counter: the customer scans it, types the amount and confirms in the app. A dynamic code is generated at the point of sale with the amount already set, so the customer only scans and confirms. Signed dynamic codes also help against fake stickers pasted over merchant codes.

Static codes

A static QR code is printed once and displayed at the counter. It encodes the merchant's identifier. The customer scans it, types the amount in the payment app, confirms, and shows the confirmation screen to the merchant. It costs nothing to deploy, which is why it spread to street vendors, taxis and small shops across Asia.

Dynamic codes

  • Generated at the point of sale for each transaction, with the amount and a reference embedded.
  • The customer scans and confirms; no typing, no amount errors.
  • The merchant receives a notification tied to the order, which makes reconciliation automatic.
  • Signed codes resist tampering: a fake sticker pasted over a merchant's code is a known fraud with static codes.

Which one, where

Static codes fit merchants with no point-of-sale system and low ticket sizes. Dynamic codes fit stores with a till, where the amount is known and reconciliation matters. Many schemes support both under one standard, such as EMVCo's QR specifications or national standards like Indonesia's QRIS. Operators serving merchants in these markets should support both flows and reconcile them into the same transaction record as other methods.

Still have a question?

Our team walks you through the platform with your use case on the table.

Book a demo