PIX
PIX é o sistema de pagamentos instantâneos do Brasil, operado pelo Banco Central do Brasil (BACEN). O formato QR BR Code é um subconjunto EMVCo MPM com Informação de Conta do Comerciante (tag 26) carregando uma chave PIX, que pode ser CPF, CNPJ, e-mail, número de telefone ou EVP aleatório. O PIX liquidou seu primeiro trilhão de reais em menos de dois anos desde o lançamento (2020 → 2022) e é agora o principal sistema de pagamento varejista no Brasil.
Canonical spec:Banco Central do Brasil, PIX documentation. Core resolution: BACEN Resolution 103/2021, Manual de Padrões para Iniciação do Pix.
Parent spec:EMVCo MPM v1.1. PIX reserves merchant-account tag
Encoding: TLV (Tag-Length-Value) with 2-digit tags, 2-digit lengths, CRC16-CCITT trailer.
Parent spec:EMVCo MPM v1.1. PIX reserves merchant-account tag
26; everything else inherits from EMVCo. Encoding: TLV (Tag-Length-Value) with 2-digit tags, 2-digit lengths, CRC16-CCITT trailer.
Estrutura BR Code, tag 26
O conteúdo específico do PIX fica na tag 26. É ela própria uma estrutura TLV aninhada com esses sub-tags:
| Sub-tag | Nome | Comprimento | Notas |
|---|---|---|---|
00 | GUI | 14 | Valor fixo br.gov.bcb.pix. |
01 | Chave PIX | variable | CPF, CNPJ, email, telefone (+55DDPHONE), ou EVP. |
02 | Informações adicionais | variable, ≤72 | Mensagem de texto livre ao pagador. |
25 | URL, PIX dinâmico | variable | Somente para PIX dinâmico. |
PIX estático vs dinâmico
- PIX estático (Point of Initiation
11). Tudo codificado no QR: chave PIX, nome do comerciante, cidade, valor fixo opcional, referência opcional. O app do pagador o lê diretamente e autoriza. Ideal para adesivos impressos, faturas, cartazes em vitrines. O valor pode ser omitido (o pagador digita) ou fixado (cobrança exata). - PIX dinâmico (Point of Initiation
12). O QR carrega uma URL (sub-tag25). O app do pagador busca um payload JSON assinado por JWS dessa URL com valor, data de vencimento, janela de expiração e regras opcionais de multa/desconto. Necessário para boletos de cobrança com datas de vencimento (boletos híbridos).
{"es":"Vector de prueba canónico, PIX estático con clave CPF e importe fijo","fr":"Vecteur de test canonique, PIX statique avec clé CPF et montant fixe","de":"Kanonischer Testvektor, statisches PIX mit CPF-Schlüssel und Fixbetrag","pt":"Vetor de teste canônico, PIX estático com chave CPF e valor fixo","it":"Vettore di test canonico, PIX statico con chiave CPF e importo fisso"}[lang]
00020126360014br.gov.bcb.pix0114123456789095204000053039865406010.005802BR5910LOJA TESTE6009SAO PAULO62070503***6304XXXXArmadilhas comuns
- Mascaramento CPF/CNPJ. O payload QR usa apenas os dígitos sem máscara (
12345678909, não123.456.789-09). Alguns geradores deixam os pontos e traços por engano, o QR resultante falha em cada app bancário com "chave PIX inválida". - O conjunto de caracteres importa. A spec BACEN diz ISO/IEC 8859-1 (Latin-1) para nome e cidade do comerciante. Caracteres acentuados (
São Paulo) devem ser codificados em Latin-1 antes de calcular o comprimento TLV, não em UTF-8. A codificação UTF-8 infla o contagem de bytes e quebra o campo de comprimento. - Cálculo do CRC. O CRC16-CCITT (polinômio
0x1021, init0xFFFF, sem XOR final) cobre tudo da tag00até6304, incluindo a tag+comprimento literal do próprio campo CRC. Bug comum: CRC calculado sobre o intervalo errado, o QR analisa corretamente em alguns apps e falha em outros. - O formato do valor é string, não número. A tag
54é uma string:10.00não1000. Dois decimais requeridos. Máximo dois decimais, BRL não tem subdivisões. - O PIX estático não tem reembolso embutido. Uma vez pago, um PIX estático é instantâneo e final. Os comerciantes devem lidar com reembolsos fora de banda (um PIX reverso do comerciante de volta ao pagador). Exiba isso claramente nos materiais impressos.
- Fraude por sobreposição de adesivos. Adesivos QR de PIX físicos em balcões de caixa foram atacados por fraude de sobreposição, atacantes colam seu próprio QR sobre o do comerciante. Rotacione os QRs estáticos periodicamente, os plastifique e exiba a chave PIX esperada como texto simples ao lado do adesivo para que o pagador possa verificar.
Compatibilidade de apps bancários
Toda instituição PIX licenciada (banco ou instituição de pagamento) suporta BR Code em seu app de consumo. Implementações notáveis:
| App | Estático | Dinâmico | Notas |
|---|---|---|---|
| Itaú, Bradesco, Santander, BB, Caixa | Sim | Sim | Top-5 bancos. Suporte PIX completo. |
| Nubank | Sim | Sim | Neobancos mais popular no Brasil. UX PIX limpa. |
| Inter, C6 Bank, PicPay | Sim | Sim | Suporte PIX completo. |
| Mercado Pago | Sim | Sim | Instituição de pagamento; PIX é um dos vários sistemas de pagamento no mesmo app. |
| Câmera iOS/Android genérica | Não | Não | Apps de câmera nativos não analisam BR Code como intenção de pagamento. O usuário deve abrir seu app bancário primeiro. |
Veja também
- /pix-qr-code/, o gerador PIX com validação CPF/CNPJ e codificação BR Code ao vivo.
- /standards/emvco/, spec pai EMVCo MPM.
- /standards/upi/, UPI Índia, outro esquema derivado da EMVCo com a tag 26.
- /standards/, voltar ao índice de padrões.