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.

Example from the Central Bank manual137 characters

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.

IDNameLen.Value
00Payload format indicator2
01
26Pix account (Merchant Account Information)58
26.00Pix GUI14
br.gov.bcb.pix
26.01Pix key36
123e4567-e12b-12d1-a456-426655440000
52Merchant category code (MCC)4
0000
53Currency3
986
58Country2
BR
59Merchant name13
Fulano de Tal
60Merchant city8
BRASILIA
62Additional data7
62.05Transaction ID (txid)3
***
63CRC164
1D3D

Testing a checkout with Pix and cards? Generate test credit cards.

Generate a test card

Want to check a card number with the Luhn algorithm?

Validate a card

Does your PSP's API use JWT tokens? See what is inside one and how long it lasts.

Decode a JWT

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.