Skip to content
UseQR

Payments

The PIX QR code format: EMV BR Code explained

A PIX QR code is an EMVCo BR Code: tag-length-value fields ending in a CRC16/CCITT-FALSE checksum. The same string is also copia e cola, which people paste when they cannot scan — always print it alongside the code.

The payload

00020126360014BR.GOV.BCB.PIX0114+55119123456785204000053039865802BR5913Cafe Central6009Sao Paulo62070503***6304A13F

Every field is ID (2 digits) + LENGTH (2 digits) + VALUE.

ID Meaning Example
00 Payload format indicator 01
01 Point of initiation 11 static, 12 dynamic
26 Merchant account information (nested)
26.00 GUI BR.GOV.BCB.PIX
26.01 PIX key +5511912345678
52 Merchant category code 0000
53 Currency (ISO 4217) 986 for BRL
54 Amount optional
58 Country BR
59 Merchant name max 25 ASCII chars
60 Merchant city max 15 ASCII chars
62 Additional data (holds txid)
63 CRC16 4 uppercase hex digits

The CRC16 is where hand-built codes fail

Field 63 is a CRC16/CCITT-FALSE over the entire string including the literal 6304 prefix, computed as if the four checksum characters were absent.

  • Polynomial 0x1021
  • Initial value 0xFFFF
  • No final XOR
  • Output as four uppercase hex digits

One wrong bit and every Brazilian banking app rejects the code outright. There is no partial success and no error message that tells you why.

ASCII only, and lengths matter

Merchant name and city must be transliterated to ASCII and truncated — 25 and 15 characters respectively. São Paulo becomes Sao Paulo.

This is not cosmetic. A multi-byte UTF-8 character makes the byte length differ from the character count, which corrupts the length prefix, which corrupts the CRC, which breaks everything.

Copia e cola

The full BR Code string is copia e cola. Print or display it as text next to the code. A customer whose camera struggles pastes it into their banking app instead, and the payment completes. It is the highest-value fallback in any payment QR deployment and costs nothing.

Static vs dynamic

  • Static (01 = 11): the key and optionally an amount are in the string. txid is ***. Print it and use it forever.
  • Dynamic (01 = 12): field 26.25 carries a URL that your PSP resolves to an amount and expiry. Requires a bank integration; the code alone is not enough.

FAQ

Why do banking apps reject my PIX QR code?

Almost always an incorrect CRC16 checksum, or a non-ASCII character in the merchant name or city that broke the field-length counting and therefore the checksum.

What is copia e cola?

The same BR Code string as plain text. Customers paste it into their banking app instead of scanning. Always print it next to the code.

What CRC does PIX use?

CRC16/CCITT-FALSE: polynomial 0x1021, initial value 0xFFFF, no final XOR, computed over the whole string including the literal 6304 field prefix, output as four uppercase hex digits.

How long can the merchant name be?

25 ASCII characters, and the city 15. Longer values must be truncated, and non-ASCII characters must be transliterated first.

Try it — free, no signup