Rejeição 299 — XML da área de cabeçalho com codificação diferente de UTF-8
Motivo da rejeição
XML da área de cabeçalho com codificação diferente de UTF-8
O que é esta rejeição?#
A Rejeição 299 é retornada pela SEFAZ quando o sistema identifica o seguinte problema na NF-e: XML da área de cabeçalho com codificação diferente de UTF-8. A nota fiscal não foi autorizada e precisa ser corrigida antes de ser retransmitida.
Este código indica que rejeição: XML da área de cabeçalho com codificação diferente de UTF-8.
Causas comuns#
- O XML contém erros de formatação, namespaces inválidos ou codificação incorreta
- A versão do layout XML não é suportada ou é superior à vigente na SEFAZ
- Há caracteres especiais, espaços ou quebras de linha indevidas no XML
- O XML deve usar codificação UTF-8 sem BOM (Byte Order Mark)
Como resolver#
- Valide o XML com um parser antes de enviar — ele deve ser bem-formado (well-formed)
- Use apenas o namespace padrão da NF-e: http://www.portalfiscal.inf.br/nfe
- Salve o XML com codificação UTF-8 sem BOM
- Atualize a versão do layout no sistema emissor para a versão vigente aceita pela SEFAZ
- Remova caracteres de edição (tabs, espaços extras) do início e fim do XML
Verificações analíticas#
- Se o campo versao do atributo da tag nfeProc ou NFe for diferente de '4.00' então o layout declarado é incompatível com o schema vigente aceito pela SEFAZ: atualize o atributo versao para '4.00' em todos os elementos raiz do XML.
- Se os primeiros bytes do arquivo XML contiverem a sequência EF BB BF (BOM UTF-8) antes da declaração <?xml version='1.0' encoding='UTF-8'?> então o XML será rejeitado pelo parser da SEFAZ por presença de BOM: salve o arquivo com UTF-8 sem BOM usando editor hexadecimal ou configuração explícita do serializador.
- Se o valor declarado no atributo encoding da instrução de processamento XML for diferente de 'UTF-8' em caixa-alta exata, ou se a declaração <?xml ...?> estiver ausente, então o cabeçalho do XML não satisfaz o contrato de codificação exigido pela SEFAZ: garanta que a primeira linha seja exatamente <?xml version='1.0' encoding='UTF-8'?> sem espaços precedentes ou caracteres invisíveis.
- Se qualquer elemento textual do XML, como xNome do emitente, xMun, xBairro ou infCpl, contiver caracteres fora do intervalo Unicode Basic Multilingual Plane codificados incorretamente, por exemplo cedilha ç ou til ã representados em Latin-1 em vez de UTF-8, então a codificação real do arquivo diverge da declarada e causará rejeição 299: re-encode todo o conteúdo do arquivo para UTF-8 genuíno antes da serialização.
- Se o namespace declarado no elemento raiz NFeProc ou NFe for diferente de 'http://www.portalfiscal.inf.br/nfe', ou se houver prefixos de namespace adicionais não previstos no schema como xsi sem declaração correspondente, então o validador de schema da SEFAZ rejeitará o XML como mal-formado: remova namespaces extras e garanta que o único namespace presente seja http://www.portalfiscal.inf.br/nfe sem barra final.
Consulte IEs e CNPJs antes de emitir NF-e
Muitas rejeições acontecem por dados cadastrais desatualizados. Com a FiscalAPI, consulte Inscrições Estaduais e CNPJs em tempo real direto da SEFAZ e Receita Federal.
Criar conta →