Pix Copia e Cola Reader and Decoder
Paste a Pix Copia e Cola code, or upload the QR Code image, to see every BR Code field and check the structure and the CRC. Use it to debug a Pix integration or to see what a third-party QR is asking for.
The code is read in your browser only. Nothing is sent to any server, the URL of a dynamic QR is never opened, and the content is gone when you close the page.
Valid code
The structure, the values and the CRC all check out.
CRC16
Valid CRC- In the code
- 1D3D
- Expected
- 1D3D
No errors found.
Code summary
- Receiver
- Fulano de Tal
- City
- BRASILIA
- QR Code type
- Static
- Pix key
- 123e4567-e12b-12d1-a456-426655440000
- Key type
- Random key (EVP)valid
- Amount
- No fixed amount: the payer types it in.
- Transaction ID (txid)
- Not set (***)
- Merchant category (MCC)
- 0000
All fields
Each row is a field of the code: ID, name, declared length and value. Templates show their sub-fields indented right below.
| ID | Name | Len. | Value |
|---|---|---|---|
| 00 | Payload format indicator | 2 | 01 |
| 26 | Pix account (Merchant Account Information) | 58 | |
| 26.00 | Pix GUI | 14 | br.gov.bcb.pix |
| 26.01 | Pix key | 36 | 123e4567-e12b-12d1-a456-426655440000 |
| 52 | Merchant category code (MCC) | 4 | 0000 |
| 53 | Currency | 3 | 986 |
| 58 | Country | 2 | BR |
| 59 | Merchant name | 13 | Fulano de Tal |
| 60 | Merchant city | 8 | BRASILIA |
| 62 | Additional data | 7 | |
| 62.05 | Transaction ID (txid) | 3 | *** |
| 63 | CRC16 | 4 | 1D3D |
Testing a checkout with Pix and cards? Generate test credit cards.
Want to check a card number with the Luhn algorithm?
Does your PSP's API use JWT tokens? See what is inside one and how long it lasts.
How to use the Pix Copia e Cola Reader?
Paste the code
Copy the Pix Copia e Cola from your bank app, a PDF or a chat. Line breaks are fine and are removed automatically.
Or upload the QR Code
In Chrome and browsers based on it, drag the QR Code image here. The text it contains goes into the field.
Read the summary and the fields
See the receiver, key, amount and txid, then open the table to check each field with its ID, length and value.
Fix what the error points to
Each error carries a character position. If the CRC does not match, the tool shows the value it should have.
What is the Pix BR Code?
BR Code is the Central Bank of Brazil's standard for payment QR Codes. It adapts EMV QRCPS-MPM, used by wallets and card terminals worldwide, and Pix Copia e Cola is the same text that sits inside the QR Code, made for copying instead of scanning.
How the code is built
The text is a sequence of TLV fields: a 2-digit ID, a 2-digit length for the value, then the value. Some fields are templates, and their value is another sequence of fields in the same format.
5913Fulano de Tal- 59: ID of the merchant name
- 13: the value has 13 characters
- Fulano de Tal: the value
Fields you will find
- 00: payload format indicator, always 01.
- 01: initiation method, 11 for a reusable QR and 12 for single use.
- 26: Pix account. It holds the GUI br.gov.bcb.pix (00), the key (01), an additional note (02) and, in a dynamic QR, the payload URL (25).
- 52: merchant category code (MCC), 0000 when not set.
- 53: currency, 986 for the Brazilian real.
- 54: amount, with a dot and two decimals. It may be absent.
- 58: country, BR.
- 59: merchant name, up to 25 characters.
- 60: merchant city, up to 15 characters.
- 62: additional data. Sub-field 05 is the txid, and *** means there is none.
- 63: CRC16, always the last field.
Static and dynamic QR Codes
Static
It carries the Pix key inside the code, in field 26 sub-field 01. The amount is optional. It suits simple, repeated charges, and the receiver only finds out about a payment from the statement or from the txid, when there is one.
Dynamic
It carries a URL (field 26 sub-field 25) in place of the key, pointing to the payload on the receiver's PSP. Amount, due date, interest and the charge identifier live there, and the payer's app queries the URL when it reads the code. That is why a dynamic QR is usually single use (field 01 equal to 12).
This page only reads what is inside the code. For a dynamic QR it shows the URL and does not open it.
How the CRC is calculated
The CRC16 guards the code against typing and copying mistakes. The algorithm is CRC16-CCITT-FALSE: polynomial 0x1021 and initial value 0xFFFF, applied to every character of the code up to and including 6304, so without the 4 characters of the CRC itself. The result is written as 4 uppercase hexadecimal characters.
Because the calculation depends on the order and content of each character, changing one letter of the name or one digit of the amount already changes the expected CRC. It catches accidental changes and is no security measure: someone who edits the code can recalculate the CRC.
For the Central Bank manual example, the CRC of the characters up to 6304 is 1D3D.
What stays in the browser
Decoding is a function that runs on the page itself, and QR reading from an image uses the browser's barcode detection API. The code, the image and the Pix key do not go through our servers or anyone else's, and usage events carry none of them. A real Pix Copia e Cola still holds a person's name and key, so prefer test codes when you share your screen.
Pix Copia e Cola Reader FAQ
What usually comes up when reading and debugging Pix codes.