What is a Pix QR code with an amount?
A Pix QR code with an amount is a static code in the BR Code standard in which field 54 (Transaction Amount) is already filled in. When the customer scans it, the app shows the amount, the recipient's name and the key for checking, and the payment goes through with one tap, without typing anything. Everything else in the code is the same as in a regular Pix QR code: key, name, city, identifier and CRC.
How to generate it
- Enter the Pix key, name and city as for any code.
- Enter the amount in reais, with a comma or dot and up to two decimal places. The field comes pre-filled with 25,90 as an example; replace it with your price.
- Add an identifier (txid) such as
PEDIDO123orMENSAL0426to recognise the payment in your statement. - Download the PNG or SVG or copy the Pix copia e cola (copy-and-paste) text and send it over WhatsApp.
Worked example
Key loja@exemplo.com.br, recipient Padaria Central, city Sao Paulo, amount 25,90, identifier PEDIDO123 produce the code below, 138 characters long:
00020126410014br.gov.bcb.pix0119loja@exemplo.com.br520400005303986540525.905802BR5915Padaria Central6009Sao Paulo62130509PEDIDO1236304DD87
Note the segment 540525.90: ID 54, length 05, amount 25.90 with a dot. Next comes 62130509PEDIDO123: block 62 with 13 characters, containing subfield 05 with 9 characters holding the identifier. The decoder shows this full tree for any code.
Fields of a code with an amount
| ID | Field | Value in a static code |
|---|---|---|
| 00 | Payload Format Indicator | 01, always |
| 01 | Point of Initiation Method | omitted or 11 (reusable); 12 = single use |
| 26 | Merchant Account Information | subfield 00 = br.gov.bcb.pix, 01 = key, 02 = optional description |
| 52 | Merchant Category Code | 0000 when there is no category |
| 53 | Transaction Currency | 986 = Brazilian real (ISO 4217) |
| 54 | Transaction Amount | optional; decimal point, up to 2 places, e.g. 25.90 |
| 58 | Country Code | BR |
| 59 | Merchant Name | recipient name, up to 25 ASCII characters |
| 60 | Merchant City | city, up to 15 ASCII characters |
| 62 | Additional Data Field | subfield 05 = txid (up to 25 alphanumeric characters) or *** |
| 63 | CRC | CRC16-CCITT (polynomial 0x1021, initial 0xFFFF) of everything before it, including 6304 |
When to use a fixed amount and when to leave it open
| Situation | Recommendation |
|---|---|
| Shop counter, snack bar, market stall | No amount: every purchase is different and the customer enters it. |
| Single product, ticket, raffle, fee | With an amount: avoids typos and speeds up the queue. |
| Monthly fee, condo fee, school | With an amount and an identifier containing the month or the student. |
| Charge with due date, interest or late fee | Dynamic code issued by the bank; a static code does no date arithmetic. |
| Donations and tip jars | One code with a suggested amount and another with no amount. |
Limits and caveats
- The amount is a suggestion stored in the code: some apps let the payer change the amount of a static code before confirming. For a truly locked charge, use your bank's dynamic code.
- The code does not know whether it has already been paid. If the same person scans it twice, they will pay twice; tick the single-use code option to set field 01 = 12 and signal to the app that the code should not be reused, bearing in mind that how apps handle that signal varies.
- Check the key before sharing it. This site validates the format and the check digits, but does not query the DICT and does not know whether the key is active.
References
Field 54 and amount rules: Central Bank of Brazil (BCB), Manual de Padrões para Iniciação do Pix; TLV structure: EMVCo QR Code Specification (MPM).