Rejeição 299: XML da área de cabeçalho com codificação diferente de UTF-8

Descrição oficial da SEFAZ: XML da área de cabeçalho com codificação diferente de UTF-8

O que significa

A SEFAZ recebeu a área de cabeçalho da mensagem com uma codificação de caracteres que não é UTF-8. A rejeição é do envelope da comunicação, não do conteúdo da nota.

Por que acontece

A regra é objetiva: o cabeçalho da mensagem precisa estar em UTF-8. A causa concreta depende de como o seu componente de comunicação monta o envelope — normalmente é a aplicação declarando ou gravando outra codificação (ISO-8859-1, por exemplo). É um erro de integração e praticamente não aparece em serviços atuais, que já não usam essa área de cabeçalho.

Como resolver

Não mexa na nota. Verifique na sua camada de comunicação qual codificação está sendo usada ao montar a requisição e force UTF-8. Se você usa um componente ou serviço de terceiros para transmitir, o ajuste é lá — o XML da NF-e em si não é a causa.

Como evitar

Padronize UTF-8 em toda a cadeia de geração e transmissão, do banco à requisição.