Pix QR code generator
A Brazilian Pix payload built to the EMVCo layout the Banco Central specifies, with its CRC computed rather than quoted.
Reviewed by the qrcodegenerator.in team
Pix BR CodeThis writes a Pix BR Code — the EMVCo-structured payload the Banco Central do Brasil specifies, ending in the CRC16-CCITT checksum every Pix reader verifies.
- Standard
- Pix BR Code (EMVCo)
- Key type
- email — read from the key’s shape
- Checksum
- CRC16-CCITT 9B3B
00020126410014br.gov.bcb.pix0119padaria@example.com5204000053039865802BR5915Padaria Central6009SAO PAULO62070503***63049B3BWorth knowing before you print it
The checksum is computed, not copied
A BR Code ends in a CRC16-CCITT over everything before it. Ours is calculated from the payload actually built, so a code that renders is a code whose checksum matches its contents.
Field lengths are the spec’s
Merchant name is capped at 25 characters and city at 15, because that is what the standard allows — not a limit we chose. Longer values are refused rather than silently truncated into a code that reads wrong.
A code with an amount is a different code
A Pix code with no amount is reusable — the payer types the figure. Adding an amount makes it single-purpose, and that figure stays in the symbol for as long as the print exists. Both are printable; only one belongs on a counter. Payment documentation calls the amount-locked kind "dynamic", which is not what the word means elsewhere on this site: a payment code never repoints, because a payment is not a link.
Questions
Does this work with every Brazilian bank?
The payload follows the Banco Central’s BR Code specification, which every Pix-participating institution implements. We build to the standard rather than to any one bank’s app.
What is the txid for?
It identifies the transaction on the payer’s statement. Left unset it defaults to `***`, which the spec defines as "any" — appropriate for a reusable printed code.