PIX QR Code Generator
Generate a static Brazilian PIX payment QR code using structured BR Code fields and a calculated CRC16 checksum.
This generator keeps the GS1 Digital Link URI directly inside the QR code. Premium QR dynamic redirects are not used for GS1 Digital Link codes.
Advanced Customization
Colors & Gradients
Logo & Social Icon
QR Code Size
PIX QR Code Generator
Quick answer: A PIX QR code — officially called a BR Code — follows the EMVCo MPM TLV format specified by Banco Central do Brasil (BCB). The payload ends with a mandatory CRC-16/CCITT-FALSE checksum. PIX keys can be a CPF/CNPJ tax ID, phone, email, or random EVP UUID.
How to create a PIX QR code
- Enter your PIX key — the identifier linked to the receiving bank account. This can be a CPF, CNPJ, Brazilian mobile phone number in the format +5511999999999, email address, or a random EVP UUID assigned by your payment service provider.
- Enter your merchant name in uppercase ASCII characters, maximum 25 characters, with no accents or special characters.
- Enter your merchant city in uppercase ASCII characters, maximum 15 characters.
- Enter a fixed amount if the payment has a known value, or leave it empty for an open-value static QR that the payer fills in.
- Enter a transaction ID (TXID) if you need to reconcile the payment. For an open-value static QR, use three asterisks (***) as the TXID placeholder.
- Verify the generated code by scanning it with a PIX-enabled banking app before downloading.
- Customise the pattern, eye style, colours and logo if needed, then export PNG, SVG, WEBP or JPG at up to 4096 px.
The QR code is generated in your browser. Nothing you enter is sent to a server.
What a PIX QR code is
A PIX QR code — referred to in the official specification as a BR Code — is a payment initiation payload encoded as a QR code. It follows the EMVCo QRCPS-MPM (Merchant Presented Mode) standard, implemented in Brazil by Banco Central do Brasil (BCB) in the BR Code Manual, version 2.0, dated May 2020.
PIX is Brazil's instant payment system, operated and regulated by Banco Central do Brasil. All licensed Brazilian financial institutions must support PIX. Payments settle in real time, around the clock, including weekends and holidays. The system is mandatory — not voluntary — for institutions above a threshold size.
A PIX QR code is not a bank account number. It contains a PIX key, which is an alias linked to the account. The BCB's PIX infrastructure resolves the key to the actual account details at payment time. The payer never sees the account number.
A static PIX QR code is reusable. A dynamic PIX QR code (COB or COBV format) is generated by a payment service provider (PSP) for a specific transaction and contains a URL that the payer's app resolves in real time. This generator creates static QR codes. Dynamic codes require a PSP API.
PIX BR Code technical structure
EMVCo TLV format
The PIX payload uses the EMVCo Tag-Length-Value (TLV) encoding. Each field is represented as a two-digit tag ID, followed by a two-digit field length, followed by the field content. Fields are concatenated without separators.
| Tag | Field | Example content | Notes |
|---|---|---|---|
| 00 | Payload Format Indicator | 01 | Always "01" — mandatory |
| 01 | Point of Initiation Method | 11 | 11 = static/reusable; 12 = single-use dynamic |
| 26 | Merchant Account Info (PIX) | (sub-template — see below) | Contains the PIX GUI and PIX key |
| 52 | Merchant Category Code | 0000 | 0000 for general use; ISO 18245 codes apply |
| 53 | Transaction Currency | 986 | 986 = BRL per ISO 4217 |
| 54 | Transaction Amount | 123.45 | Decimal format; omit for open-value |
| 58 | Country Code | BR | Always "BR" for PIX |
| 59 | Merchant Name | JOAO SILVA | Maximum 25 ASCII characters, uppercase, no accents |
| 60 | Merchant City | SAO PAULO | Maximum 15 ASCII characters, uppercase, no accents |
| 62 | Additional Data Field Template | (sub-template — see below) | Contains the TXID |
| 63 | CRC-16 Checksum | 4-character uppercase hex | CRC-16/CCITT-FALSE, mandatory, always last |
Merchant account information (tag 26 sub-template)
Tag 26 contains a nested TLV structure for PIX:
| Sub-tag | Content |
|---|---|
| 00 | BR.GOV.BCB.PIX — the PIX GUI, always fixed |
| 01 | The PIX key value |
The PIX GUI (Globally Unique Identifier) BR.GOV.BCB.PIX is a fixed string specified by BCB. It identifies the payment domain as PIX within the EMVCo framework.
PIX key types
A PIX key is a registered alias that resolves to a bank account through the BCB DICT (Transactional Accounts and Payments directory). Four key types exist:
| Key type | Format example | Notes |
|---|---|---|
| CPF | 12345678901 (11 digits) | Brazilian individual taxpayer ID |
| CNPJ | 12345678000195 (14 digits) | Brazilian legal entity taxpayer ID |
| Phone | +5511999999999 | Brazilian mobile number in E.164 format |
| [email protected] | Registered email address | |
| EVP (random) | UUID v4, e.g. 123e4567-e89b-12d3-a456-… | Randomly generated key by the PSP — no personal data |
An EVP (Endereço Virtual de Pagamento) key is a random UUID assigned by the payment service provider. It contains no personally identifiable information and is a privacy-preserving option for individuals who do not want to publish their CPF, phone, or email in a public QR code.
CRC-16 checksum
The last field of every PIX BR Code payload is tag 63, a mandatory four-character uppercase hexadecimal CRC-16 checksum. The algorithm is CRC-16/CCITT-FALSE with polynomial 0x1021 and initial value 0xFFFF.
The checksum is calculated over the entire payload string up to and including the tag and length of field 63 itself (i.e. the string ending in "6304" is included in the checksum calculation before appending the four-character result). A payload with an incorrect or absent CRC-16 will be rejected by PIX-enabled banking apps.
This generator calculates and appends the correct CRC-16 checksum automatically. If you construct the payload manually, the checksum must be recalculated any time any field changes.
Additional data field (tag 62 sub-template)
Tag 62 contains a nested sub-template for transaction identification:
| Sub-tag | Content | Notes |
|---|---|---|
| 05 | TXID | 26 to 35 alphanumeric characters; use *** for open-value |
The TXID links the payment to a specific transaction in the merchant's system. For a static open-value QR, the BCB specification permits three asterisks (***) as the TXID placeholder.
Static vs dynamic PIX QR codes
| Feature | Static PIX QR (BR Code) | Dynamic PIX QR (COB/COBV) |
|---|---|---|
| Amount | Fixed or open-value | Fixed per transaction |
| Reusable | Yes | One use per code |
| Created by | Any BR Code generator | PSP API, per BCB COB/COBV specification |
| Payload content | Full payment data in the QR | URL resolved by payer's banking app in real time |
| Automated reconciliation | Via TXID if specified | Automatic via PSP transaction reference |
| Suitable for | Small merchants, individuals | E-commerce, invoicing, recurring payments |
Dynamic PIX QR codes (COB format for open value, COBV for fixed value) require a PSP API integration. The BCB issues the technical specification for COB/COBV separately from the static BR Code Manual. This generator produces static codes only.
When to use a PIX QR code
Small merchants and market stalls. A printed open-value static QR at a stall or counter allows customers to enter the amount they owe and pay instantly from any banking app. No card reader required.
Service professionals. A QR code printed on an invoice or business card allows clients to pay via PIX without knowing the provider's bank account details — only the PIX key is required.
Freelancers and individual sellers. An EVP key QR code on a marketplace listing or social media profile allows buyers to pay without the seller publishing personal tax ID or phone number information.
Non-profits and community organisations. An open-value QR code printed on donation materials allows supporters to send any amount via PIX.
Events and temporary locations. A QR code on a badge or printed card allows instant payment receipt without cash or a POS terminal.
Design and print requirements
Maintain a four-module quiet zone on all sides, as specified in ISO/IEC 18004:2015 section 6.3.3.
Print at a minimum of 2 cm by 2 cm for close-range scanning. For a merchant counter display read from standing distance, 5 cm or larger is appropriate industry guidance.
Use dark modules on a light background. Inverted-colour codes and low-contrast designs fail frequently on phone cameras in variable outdoor lighting.
The PIX payload — including the merchant GUI, PIX key, name, city, TXID, and CRC-16 — is a moderately dense string. A static code with all fields populated will produce a more complex QR symbol than a URL QR. Print larger rather than smaller.
Use error correction level M as a baseline. Level M recovers approximately 15 percent of damaged codewords. If you embed a logo, use level H (approximately 30 percent recovery), and keep the logo to no more than 30 percent of the code area.
Troubleshooting: why your PIX QR code is not working
The PIX key is not registered with the BCB DICT. Generating a QR code with an unregistered PIX key produces a syntactically valid code that the banking app cannot route. Verify that the key is active in your banking app's PIX key settings before encoding it.
The CRC-16 checksum is wrong. Any change to any field after the checksum is calculated invalidates it. If you edited the raw payload string manually, recalculate the checksum. This generator calculates the checksum automatically.
The merchant name contains non-ASCII characters or accents. BCB specifies that the Merchant Name field (tag 59) must be uppercase ASCII with no accents. Replace "João" with "JOAO" and "São Paulo" with "SAO PAULO".
The merchant name or city exceeds the character limit. Tag 59 (Merchant Name) has a maximum of 25 characters. Tag 60 (Merchant City) has a maximum of 15 characters. Truncate to fit.
The TXID is empty or uses a disallowed format. For an open-value static QR, use three asterisks (***) as the TXID. For a fixed transaction, use 26 to 35 alphanumeric characters. An invalid TXID causes some banking apps to reject the payload.
The banking app is not PIX-enabled. All licensed Brazilian financial institutions above the BCB threshold must support PIX. Apps from institutions below the threshold, or non-Brazilian banking apps, will not process a PIX payment.
PIX versus other payment QR standards
| Feature | PIX QR — BR Code (Brazil) | EPC QR — GiroCode (Europe/SEPA) | UPI QR (India) |
|---|---|---|---|
| Governing body | Banco Central do Brasil | European Payments Council | NPCI |
| Standard | BCB BR Code Manual v2.0, EMVCo MPM | EPC069-12 v3.1 | NPCI UPI Product Overview |
| Currency | BRL (ISO 4217 code 986) | EUR only | INR only |
| Payload format | EMVCo TLV | 12-line plain text | upi:// URI query string |
| Mandatory checksum | Yes — CRC-16/CCITT-FALSE | No | No |
| Error correction mandate | Not specified in research | Level M mandatory (EPC069-12) | Not specified in research |
What this PIX QR Code Generator gives you
This browser-based tool creates a static Brazilian PIX BR Code payload with merchant details, optional amount, reference and checksum. It is designed for Brazilian instant-payment requests, invoices, remote sales and fixed-location collections. The live preview updates while you edit, which makes it easier to catch a missing field or an unexpectedly dense symbol before download.
You can adjust matrix patterns, finder-eye styles, foreground and background colours, gradients, frames, size and an optional logo. Exports are available as SVG, PNG, WEBP and JPG at 512, 1024, 2048 or 4096 pixels. SVG is the practical choice for professional print. A high-resolution PNG suits office documents and digital artwork.
The static payload is constructed in your browser. The information entered into the generator does not need to be uploaded to create the QR image. Check the PIX key, merchant name, city, amount and recipient shown by the banking app before authorising a transfer.
Using this QR code in Bahrain and abroad
PIX is Brazil’s instant-payment system and is not a domestic Bahrain rail. Use it only for a genuine Brazilian account and a payer with compatible PIX access.
Use British English spelling in customer-facing copy when that matches your organisation’s house style, and provide Arabic wording where the audience expects it. Keep the action after scanning obvious. A short line beside the symbol such as “Scan to save the contact” or “Scan to open the location” gives people confidence before they point their camera.
Test the final design on current iPhone and Android devices. Test it again after printing on the actual paper, sticker, card, sign or packaging material. Bahrain’s bright outdoor light can expose glare and low-contrast problems that are less obvious on a computer screen. For international use, confirm country codes, currencies, time zones, regional app availability and payment-network compatibility.
Before you publish
- Correct QR payload type
- Complete and verified data
- Four-module quiet zone
- Strong foreground contrast
- Proportional square scaling
- Logo kept within safe limits
- SVG or high-resolution PNG
- Final-size device scan test
Frequently asked questions
Open a question to read a concise technical answer.
01What is a PIX QR code?+
A PIX QR code — officially called a BR Code — encodes a PIX payment request using the EMVCo Merchant Presented Mode TLV format, as specified by Banco Central do Brasil in the BR Code Manual v2.0. It ends with a mandatory CRC-16/CCITT-FALSE checksum. Any PIX-enabled banking app in Brazil can scan and process the payment.
02What PIX key types can I use in a QR code?+
PIX supports four key types: CPF (11-digit individual tax ID), CNPJ (14-digit entity tax ID), Brazilian mobile phone number in E.164 format (+5511999999999), email address, and EVP — a random UUID key with no personal data, assigned by the payment service provider. The EVP key is the privacy-preserving option.
03What is the CRC-16 checksum in a PIX QR code?+
Every PIX BR Code payload must end with a four-character uppercase hexadecimal CRC-16 checksum in tag field 63. The algorithm is CRC-16/CCITT-FALSE, with polynomial 0x1021 and initial value 0xFFFF. The checksum is calculated over the complete payload string including the "6304" prefix of the checksum field itself. Banking apps reject payloads with a missing or incorrect checksum.
04What is the difference between a static and dynamic PIX QR code?+
A static PIX QR encodes the full payment data directly and is reusable for multiple transactions. A dynamic PIX QR (COB/COBV format) contains a URL that the payer's banking app resolves in real time via the PSP. Dynamic codes are one-use per transaction and require a PSP API. This generator creates static codes only.
05Can I generate a PIX QR code without a fixed amount?+
Yes. Omit the amount field (tag 54). The generated code allows the payer to enter any amount in their banking app. For an open-value static QR, use three asterisks (***) as the TXID in tag 62 sub-tag 05, per the BCB BR Code specification.
06What apps can scan a PIX QR code?+
Any banking app from a PIX-enabled Brazilian financial institution can scan a BR Code. Banco Central do Brasil mandated PIX participation for all licensed institutions above a defined threshold. All major Brazilian retail banks and digital banks support PIX scanning.
07What is an EVP key in a PIX QR code?+
An EVP (Endereço Virtual de Pagamento) key is a randomly generated UUID assigned by the payment service provider. It links to a bank account through the BCB DICT without exposing the account holder's CPF, phone, or email. It is the recommended PIX key type when the QR code will be displayed publicly.
08What does the BR.GOV.BCB.PIX string mean in the PIX payload?+
BR.GOV.BCB.PIX is the Globally Unique Identifier (GUI) for the PIX payment application within the EMVCo framework. It appears as sub-tag 00 inside the Merchant Account Information template (tag 26). This fixed string identifies the payment domain as PIX. All valid PIX BR Codes contain this literal string.
09What is the maximum merchant name length in a PIX QR code?+
The BCB BR Code specification limits the Merchant Name field (tag 59) to 25 ASCII characters in uppercase, with no accents. The Merchant City field (tag 60) is limited to 15 ASCII characters. Names exceeding these limits must be truncated. Special characters and diacritics are not permitted.
10Why do I need to verify the PIX QR code before printing?+
Generating a valid BR Code payload does not confirm that the PIX key is active or correctly mapped in the BCB DICT. An unregistered or mistyped key produces a code that scans correctly but fails at payment time. Scan the code with a PIX-enabled banking app and confirm the payee name shown in the app before printing at volume.