Rejeição 400: Parâmetro do QR-Code não está no formato hexadecimal: [Nome do parâmetro do QR Code: xxx)]
Descrição oficial da SEFAZ: Parâmetro do QR-Code não está no formato hexadecimal: [Nome do parâmetro do QR Code: xxx)]
O que significa
Um parâmetro do QR-Code que deveria estar em hexadecimal veio em outro formato.
Por que acontece
O hash foi gravado como texto, em base64, ou com letras maiúsculas/minúsculas fora do esperado pela rotina de conferência.
Como resolver
Gere o parâmetro citado em hexadecimal, conforme o manual, e regere o QR-Code.
Como evitar
Padronize a saída do hash na própria função que o calcula, para não depender de conversão no ponto de uso.