QrDeco.com

PIX QR Code: A Static BR Code for Brazilian Payments

PIX is Brazil’s instant payment system, and its QR codes follow the EMV QR Code Payment Specification — the same field-and-length grammar used by payment codes elsewhere. A static PIX code carries the recipient key directly, so a banking app can build the transfer without calling a server first. That makes it cheap to print and usable offline, but it also means the code is a fixed snapshot.

A static PIX payload. The final four characters are the CRC16-CCITT checksum; change a field and it must be recomputed.

How a static PIX code is structured

Every field is written as a two-digit id, a two-digit length and the value. The payload starts with 00 and ends with the CRC in field 63. Field 26 is the merchant account block, where subfield 00 identifies the PIX scheme and subfield 01 holds the key.

The fields a static PIX code actually uses
FieldValue in the examplePurpose
0001Payload format indicator.
26br.gov.bcb.pix + keyMerchant account information: PIX GUI and the CPF, CNPJ, email, phone or random key.
520000Merchant category code; 0000 is accepted when the category is unknown.
53986Currency: 986 is the Brazilian real.
58BRCountry code.
59QrDeco ExampleMerchant name, up to 25 characters.
60Sao PauloMerchant city, up to 15 characters.
6205 + txidAdditional data: the transaction id, or *** when there is none.
633C63CRC16-CCITT over everything before this field.

Generate a PIX code with your own key

  • Choose the key type the account actually registered: CPF or CNPJ as digits, email as written, phone as +55 plus the number, or the random EVP key as a UUID.
  • Set fields 52, 53 and 58 to 0000, 986 and BR.
  • Fill 59 and 60 with the name and city the bank will display; both are limited and neither accepts markup.
  • Compute the CRC and export SVG for print or PNG for a payment page.

Leaving the amount open

Omit field 54 and the payer types the amount. Include 54 with a dot decimal separator — 10.50, never 10,50 — and the app pre-fills it. Open amounts suit tips, donations and a counter where the total is agreed first; fixed amounts suit a product page or a single-price service.

The txid and reconciliation

Subfield 62-05 identifies the transaction. The value *** means “no id”, which is fine for an anonymous collection box but useless for reconciling a shop’s daily sales. Use a short invoice number, up to 25 alphanumeric characters, and keep a record of which code was printed when.

Frequently asked questions

Is a static PIX code the same as a dynamic one?

No. A static code contains the key and the fixed data; a dynamic code contains a URL that a payment service resolves into a charge, which is how per-invoice amounts and due dates work.

Why does the banking app reject my code?

Almost always the CRC. Recompute field 63 after any edit — including a changed name, city or txid — and check that every field length still matches the value.

Can I reuse one PIX code for every sale?

Yes for a static code with an open amount, but the txid will be identical for every payment unless you generate a new code per sale. Reuse is convenient; it is not a reconciliation strategy.

← All use cases