Guia · Dados do Brasil · PIX

Como gerar um PIX QR Code estático com segurança

O QR estático é só um texto com a sua chave, montado por você e sem registro no banco. Isso o torna simples e barato, mas deixa a conferência por sua conta. Veja os campos, os limites que importam, um teste de 1 centavo antes de divulgar e os riscos de trocar ou adulterar o código.

O que é o QR estático

Um PIX QR Code estático é a imagem de um texto no padrão BR Code (o mesmo do "copia e cola") que carrega a sua chave Pix e, opcionalmente, valor, identificador e uma mensagem. Segundo o Manual de Padrões para Iniciação do Pix, ele pode ser criado diretamente por você ou por um software, e a criação do QR estático não faz parte da API Pix: o banco não registra o código, não o valida e não sabe que ele existe até alguém pagar. Por isso, quem gera é responsável por gerar certo e por conferir.

No QR dinâmico acontece o contrário. O código traz uma URL e o aplicativo do pagador consulta o banco do recebedor para obter valor, beneficiário e situação da cobrança. Valor e txid dentro de um QR dinâmico devem ser ignorados pelo pagador, pois valem os dados obtidos pela URL. Dinâmico serve para cobranças com valor e prazo controlados pelo banco ou pelo sistema de cobrança; estático serve para um código que você mesmo monta e reutiliza.

Os campos do BR Code, um a um

Cada campo tem o formato ID (2 dígitos), tamanho (2 dígitos), valor. Para o QR estático, os que importam são:

Os subcampos do campo 26 (chave e mensagem) dividem um espaço de 99 caracteres. Quanto maior a chave, menos sobra para a mensagem. Com uma chave aleatória de 36 caracteres, o gerador do Me Ajuda Flow aceita no máximo 37 caracteres de mensagem; com 100 caracteres, ele recusa e informa o limite.

Valor fixo ou livre

A decisão depende do uso do QR, e o Manual de Padrões para Iniciação do Pix trata os dois casos:

Regra prática: QR impresso e permanente, sem valor; QR de uma cobrança, com valor e com txid próprio. Se precisar de garantia de uso único ou de prazo de validade, o caminho é a cobrança dinâmica, não um estático com truques.

Nome, cidade e txid

O nome (campo 59) e a cidade (campo 60) são exigidos pelo padrão, mas, conforme nota do Manual de Padrões para Iniciação do Pix, o nome apresentado ao pagador é o retornado pela consulta à chave no DICT, e o do QR é ignorado. Mesmo assim, respeite os limites de 25 e 15 caracteres, senão aplicativos e bibliotecas podem recusar o código.

Exemplo real, gerado com o código do Me Ajuda Flow: nome Padaria Pão Quente e Cia Ltda e cidade São Bernardo do Campo. O gerador tirou os acentos, passou para maiúsculas e cortou nos limites, e o resultado foi PADARIA PAO QUENTE E CIA (24 caracteres) e SAO BERNARDO DO (15 caracteres). Repare no corte da cidade: ela termina em "DO", pela contagem de caracteres. Como a cidade é mero dado do código, isso não impede o pagamento, mas, se preferir, abrevie você mesmo (por exemplo, S B DO CAMPO).

O txid aceita só letras maiúsculas, minúsculas e dígitos, até 25 caracteres. Um identificador como PED-0042 é recusado pelo gerador por causa do hífen; PED0042 passa. O manual explica por que o txid importa: ele é retransmitido pelo banco do pagador e permite ao recebedor casar o Pix recebido com a cobrança, e os Pix com txid podem ser consultados pela API Pix. O mesmo manual avisa que o banco do recebedor não tem como impedir que um txid se repita em QR estático. Repetir o txid é desejável em um QR fixo sem valor e deve ser evitado em um QR gerado para cada venda. Quem garante isso é você.

Exemplo completo com valor e txid

Dados fictícios: chave [email protected], valor 150,00 e txid PED0042. O gerador monta este código de 164 caracteres:

00020101021126470014br.gov.bcb.pix0125financeiro@exemplo.com.br5204000053039865406150.005802BR5924PADARIA PAO QUENTE E CIA6015SAO BERNARDO DO62110507PED004263047BEB

Lendo: o campo 5406150.00 é o valor, 5924 declara 24 caracteres de nome, 62110507PED0042 traz o txid e 63047BEB é o CRC16. Passando esse texto no decodificador, o resultado é estático, chave [email protected], valor 150.00, txid PED0042 e nenhum aviso. Observe que o valor foi escrito com vírgula na entrada e saiu com ponto no código, que é o formato exigido.

Sem valor nem txid, com uma chave aleatória, o código fica mais curto (143 caracteres): ...5802BR5913FULANO DE TAL6008BRASILIA62070503***6304A5E2. O *** indica que não há identificador.

Como conferir o código gerado

  1. Decodifique o texto. Cole o código na ferramenta de PIX copia e cola. O CRC deve constar como conferido e não deve haver avisos.
  2. Releia a chave, caractere por caractere. É o dado que define para onde o dinheiro vai. Compare com a chave cadastrada no seu banco.
  3. Confira o tipo. O decodificador deve mostrar "estático". Se mostrar uma URL, o código é dinâmico.
  4. Leia o QR com o celular e confirme que o aplicativo mostra o nome correto do recebedor, que vem da consulta à chave, e não do código.
  5. Faça o teste de valor baixo, descrito abaixo.

Teste com valor baixo antes de divulgar

O valor mínimo do campo 54 aceito pelo gerador é 0.01: digitando 0,01, sai 5404 mais 0.01 no código. Uma sequência segura:

  1. Gere o QR final, exatamente como será impresso ou enviado, com o mesmo valor, txid e nome.
  2. Para o teste, gere uma versão com 0,01 e pague de uma conta diferente da conta do recebedor.
  3. Veja no extrato do recebedor se o Pix caiu na conta certa e se o identificador aparece quando o seu banco o exibe.
  4. Só então publique ou imprima o QR definitivo. Se o definitivo tiver outro valor, repita a conferência no decodificador, pois a mudança de um caractere altera o CRC.

O teste de centavo não substitui a conferência: ele prova que a chave existe e recebe, não que o resto do código está como você quer.

Riscos: troca de chave e QR adulterado

O CRC16 detecta erro de cópia, mas não protege contra fraude. Quem altera a chave e recalcula o CRC produz um código perfeitamente válido. Teste real: no código de R$ 150,00 acima, troquei a chave por [email protected] sem recalcular o CRC e o decodificador acusou o erro (informado 7BEB, calculado 239C). Depois recalculei o CRC sobre o texto adulterado e o decodificador passou a aceitá-lo sem nenhum aviso, mostrando a chave falsa. Ou seja, o único sinal de adulteração é a própria chave, e ela só aparece se alguém olhar.

Checklist de geração

Os limites e formatos acima seguem os manuais do Banco Central listados nas fontes. Regras de cada banco, como limites por transação e horários, devem ser confirmadas com a sua instituição.

Gere e confira com as ferramentas

Para montar o código e o QR já com os limites aplicados, use o gerador de PIX QR Code do Me Ajuda Flow, e confira o resultado no decodificador de PIX. Se for gerar para um CPF ou CNPJ como chave, valide o número antes na ferramenta de CPF e CNPJ.

Ferramentas para usar com este guia

Fontes oficiais