Pular para o conteúdo
pixlojista

Ferramentas Pix

Calcular o CRC16 de um BR Code.

Cole o payload e veja o CRC-16/CCITT-FALSE calculado, comparado ao que está no código.

Códigos gerados são registrados no Pix Lojista. Leitura, validação e cálculo de CRC continuam locais. Entenda quais dados são registrados.

O QR está pronto. E quando o dinheiro cair?

O Pix Lojista organiza suas cobranças e mostra as vendas do dia. Sem taxa nossa, na conta que você já usa.

Criar minha loja

Como conferir uma implementação

Comece pelo vetor padrão do algoritmo: a string com os dígitos de um a nove deve produzir 29B1. Se ela já não bate, o problema é a variante escolhida, não o Pix. Depois teste com um payload completo, que exercita o detalhe de incluir o 6304 no cálculo.

As seis armadilhas

Não incluir o 6304, usar 0x0000 como valor inicial, aplicar um XOR final, escolher CRC-16/ARC ou MODBUS, gerar o hexadecimal em minúsculas e perder o zero à esquerda. Cada uma produz um código que parece correto na tela e é recusado pelo banco.

Perguntas frequentes

Qual variante de CRC o Pix usa?

CRC-16/CCITT-FALSE: polinômio 0x1021, valor inicial 0xFFFF, sem XOR final e sem reflexão de entrada ou de saída. Usar CRC-16/ARC ou MODBUS, ou inicial 0x0000, produz outro resultado e o código é recusado.

O cálculo inclui os caracteres 6304?

Inclui. O CRC é calculado sobre a string inteira já com os quatro caracteres que abrem o próprio campo 63, excluindo apenas os quatro dígitos do resultado. Esquecer isso é o erro mais comum.

O resultado é maiúsculo ou minúsculo?

Maiúsculo, com quatro dígitos e zero à esquerda quando necessário. Um CRC escrito como F12 em vez de 0F12 é recusado, e o hexadecimal minúsculo é aceito por alguns bancos e recusado por outros.

A ordem dos campos muda o CRC?

Muda. O CRC é calculado sobre a string final, então qualquer troca de ordem produz outro resultado. O manual do Banco Central alerta explicitamente para isso.

Posso calcular sem o campo 63 no fim?

Pode. Se o payload não terminar em 6304, acrescentamos esses quatro caracteres e devolvemos o CRC que ele deveria receber.