xMsg em infProt: mensagem adicional e vínculo com cMsg
<xMsg>nfeProc › protNFe › infProt › xMsgRevisão editorial em 15 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
xMsg, em /nfeProc/protNFe/infProt/xMsg, é uma mensagem adicional da SEFAZ para o emissor. Seu código correspondente é cMsg. Ela complementa o retorno individual, mas não substitui xMotivo nem muda o resultado informado em cStat.
Como preservar o par e suas ocorrências
No PL_010f_v1.04, xMsg segue cMsg dentro de uma sequência opcional repetível até cinco vezes. Cada par deve continuar associado na ordem recebida. xMsg é uma string derivada de TString, com comprimento de 1 a 255 caracteres. A ausência de toda a sequência é permitida.
Não guarde os códigos numa lista e os textos em outra que possa ser ordenada separadamente. Isso pode apresentar a mensagem de um código ao lado de outro. Também não mantenha apenas a última ocorrência sem registrar que houve perda.
Qual limite a nota técnica posterior confirma?
A NT 2026.002 v1.11, pp. 5–6, atualiza PR13 para 0..5 ocorrências e PR15/xMsg para 1 a 255 caracteres, alinhados a esses limites do PL_010f_v1.04. A tabela de 0..1/200 da NT 2025.002 v1.52 é uma referência anterior, não uma indefinição atual para esses limites.
Preserve o texto integral recebido e valide a estrutura no pacote aplicável. Não corte uma mensagem em 200 caracteres, não crie ocorrências até atingir cinco e não presuma que todo autorizador usará a capacidade máxima. Uma falha concreta exige conferir original, versão e diagnóstico do validador.
Fragmento e dois usos distintos
Fragmento sintético parcial de xMsg, sem seu par nem protocolo. O texto abaixo é didático e não é uma mensagem real atribuída à SEFAZ:
<xMsg xmlns="http://www.portalfiscal.inf.br/nfe">Mensagem suplementar sintética</xMsg>
Num retorno de autorização com mensagem adicional, a mensagem deve ser lida como complemento ao resultado principal. Num retorno rejeitado, a existência de orientação suplementar não transforma a rejeição em autorização. Leia primeiro cStat/xMotivo e depois cada cMsg/xMsg.
Como investigar perda ou troca de mensagens
Compare o XML original com armazenamento e apresentação. Se o texto está cortado, confira limite de coluna, DTO e componente de exibição. Se a mensagem aparece sem código, examine a sequência e o mapeamento; o XSD atual exige ambos dentro de cada par. Se caracteres se alteraram, confira a codificação sem reescrever o documento assinado.
O texto deve ser apresentado como dado, sem executar HTML ou instruções que possam aparecer numa resposta desconhecida. Não deduza regra fiscal ou ação de reenvio a partir de uma frase isolada. Preserve chave e ambiente e correlacione o complemento com o resultado individual real.
Como ler o texto de um alerta junto do resultado principal
A NT 2026.002 v1.11 prevê cStat=120 para autorização com alerta, inicialmente para NFC-e. O alerta detalhado fica no par cMsg/xMsg; ele informa a inconsistência a verificar, enquanto cStat/xMotivo informa o resultado principal. Mesmo uma autorização fora de prazo, quando contém alerta, retorna 120 conforme a NT.
Somente os cinco primeiros alertas identificados são devolvidos. Regras com efeito Alerta não interrompem o processamento; uma regra com efeito Rejeição pode interrompê-lo e devolver a rejeição junto dos alertas encontrados antes dela. Por isso, encontrar xMsg não basta para concluir autorização.
Exemplo sintético: cStat indica rejeição e xMsg descreve um alerta. Trate a rejeição como resultado principal e preserve o complemento. Em uma resposta com cStat=120, preserve a autorização e analise a origem do alerta; a NT diz que não é necessário corrigir e retransmitir a nota autorizada para solucionar o alerta. Não edite o texto da resposta para fazê-lo desaparecer.
O cronograma específico dessa estrutura é teste em 01/09/2026 e produção em 05/10/2026. O adiamento de I08-180, BA02-35 e VC02-40 para 14/12/2026 não altera esse recorte.
Leituras relacionadas
Fontes oficiais
- Leiaute NF-e/NFC-e — PL_010f_v1.04: TProtNFe, linhas 6686–6770.
- Tipos básicos NF-e/NFC-e — PL_010f_v1.04: TChNFe, TProt, TStat, TAmb, TVerAplic, TMotivo e TDateTimeUTC.
- NT 2025.002 RTC — 1.52: seção 5.1, p. 11; PR03–PR90, p. 13.
- NT 2026.002 — autorização com alerta e DANFE Simplificado Tipo 2 — 1.11, setembro de 2026: cronograma p. 3; autorização/alertas pp. 4–5; protocolo pp. 5–6.
Referência técnica para integração
- XPath completo
/nfeProc/protNFe/infProt/xMsg- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 1–1 no contexto do elemento pai
- Tipo
- inline:TString · TString
- Preenchimento no catálogo
- Condicional
A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.
- maxLength
255- minLength
1- pattern
[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}- whiteSpace
preserve