QR codes
A QR code is a graphic representation of a payload that can be linked to a payment request, enabling digital payment initiation by the payer. QR codes can be static or dynamic, depending on the payment scenario.
- Static QR codes contain a fixed set of information such as the transaction ID, payment beneficiary details, and the payment amount. These codes are commonly used by small businesses, physical stores, and for peer-to-peer transactions.
- Dynamic QR codes are more flexible for select markets, allowing payment details such as payment due dates and payer data to be modified as needed. Dynamic QR codes are commonly used by online retailers and payment processors, and can be used for various scenarios such as e-commerce, in-store merchants, utility bills, and account top-ups.
When to use QR codes
The following table shows the differences between QR code types for the Request to Pay via QR code API:
| Feature | Static QR code | Dynamic QR code (or Immediate Dynamic QR in Brazil) |
Dynamic QR code with due date (in Brazil) |
|---|---|---|---|
Market availability |
Select other markets | Select other markets | Brazil only |
| Amount | Optional field. For most markets, when specified, the payer cannot change the value unless it is zero. Certain markets allow amount editing as a separate feature with the QR. |
Pre-determined amount. The client can define if a different payment amount can be accepted. Certain markets allow amount editing as a separate feature with the QR. |
Pre-determined amount. Interest, penalties, deductions, discounts can be included to change the payment amount. |
Date and payer data |
Generally, static QR codes do not have an expiry date. | Brazil: The expiration time (in seconds) is defined by the issuer (valid up to 24 hours by default). Payer data is optional (name and tax ID For most other markets, QR codes have expiry date represented in date and time. For most other markets, QRs can have an expiry date represented in date & time. |
The due date is a fixed day. Payer data is mandatory (name and tax ID). |
Channel and status |
Often generated by the client in their own system and the status is always set to active. However, J.P. Morgan can support static QR generation for select markets. | J.P. Morgan supports QR generation and status updates via API. The client can request QR cancellation to avoid payment duplication. | The QR code request via API can be changed to avoid payment duplication. If a purchase is cancelled or expired, the client or issuing bank can remove a payment request. |
Payment identification |
The transaction ID is not unique; there can be more than one payment per QR code. | Most markets support unique transaction ID for efficient payment reconciliation.. Generally, the QR code is unique for each transaction. | The transaction ID is unique, which can be used for payment reconciliation. The QR code is unique for each transaction. |
| Use cases | Small businesses, physical stores, peer-to-peer transactions. | E-commerce and in-store retailers, logistics companies, billers, payment processors, insurance, utility companies, and more. | Traditional payment collection for bills that have due dates and can accrue interest. |
How QR codes work
The following diagram workflow shows how QR codes are used for digital payment:

Next steps
- Learn more about Payment Links and Payment Requests.
- Learn how to create a Payment Request.