Rejeição 227: Erro na Chave de Acesso – Campo Id – falta a literal NFe

Descrição oficial da SEFAZ: Erro na Chave de Acesso – Campo Id – falta a literal NFe

O que significa

O atributo Id da tag infNFe está fora do formato exigido: ele precisa ser a literal NFe seguida dos 44 dígitos da chave de acesso, sem espaço e sem separador.

Por que acontece

Quase sempre é o sistema montando o Id só com os 44 dígitos, sem o prefixo. Também ocorre com o prefixo escrito em caixa errada (nfe, NFE), com espaço antes dos dígitos, ou com a chave truncada por concatenação malfeita.

Como resolver

Confira o valor do atributo Id no XML rejeitado: ele tem que ter 47 caracteres, sendo os três primeiros exatamente NFe e o resto só dígitos. Corrija a rotina que monta o Id, gere o XML de novo, assine e retransmita. A assinatura referencia esse Id, então o arquivo tem obrigatoriamente que ser reassinado depois da correção.

Como evitar

Monte o Id em um único ponto do código, a partir da chave já calculada, e valide o tamanho antes de assinar.