1

Parabéns pelo projeto.
Fica uma sugestão de teste de regressão, se ainda não tiveres.
O exemplo do Manual do BR Code do Banco Central termina em 6304AD38. O CRC-16/CCITT-FALSE sobre esse payload sem os quatro últimos caracteres — ou seja, mantendo o 6304 no fim da entrada — tem de devolver AD38. Se der 50D3, o cálculo está a excluir o campo 63 inteiro em vez de só o valor dele.
Vale a pena também fixar o vetor canónico da variante: o CRC-16/CCITT-FALSE de 123456789 é 29B1. Se esse não bater, o problema está nos parâmetros (normalmente reflexão ligada por engano) e não no 6304.
São dois testes baratos que apanham a falha mais chata desse formato: com o CRC errado o QR é gerado na mesma, qualquer leitor decodifica, os campos estão todos lá — e só o banco recusa, quando já não dá para saber em que etapa quebrou.
Tem um texto sobre isso aqui, com os dois vetores e o resto do que costuma causar recusa: https://ntools.xyz/pt-br/crc-pix-brcode

Carregando publicação patrocinada...