Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Responsável técnico, NFF, agro e PAA

xSolic na NFF: conteúdo JSON e limite de 5.000 caracteres

<xSolic>infSolicNFF › xSolic

Revisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

xSolic transporta o pedido da Nota Fiscal Fácil (NFF) em formato JSON dentro do grupo infSolicNFF. O conteúdo deve preservar os campos e valores gerados pelo aplicativo da NFF. Apesar do prefixo textual x, não é um espaço para observação livre do operador.

Caminho desta página: /nfeProc/NFe/infNFe/infSolicNFF/xSolic. O prefixo nfeProc identifica a nota processada; a informação estudada pertence ao conteúdo da NF-e, dentro de NFe/infNFe.

Origem do conteúdo e tamanho atual

A NT 2021.002 v1.12 identifica os campos do pedido preenchidos no aplicativo móvel da NFF, em JSON, com tamanho de 2 a 5.000 caracteres. O PL 010f v1.04 reproduz esse intervalo sobre TString. O grupo pai é opcional no XSD, mas xSolic é obrigatório quando ele existe.

O fluxo documentado liga a solicitação a tpEmis=3. Incluir um texto manual ou um JSON de software comum não demonstra origem NFF nem habilita o contribuinte. A origem é a solicitação real do aplicativo; não se deve construir um contrato alternativo apenas para satisfazer o tamanho mínimo. NT p. 8–9.

Exemplo da representação, sem pedido fictício

O objeto vazio abaixo demonstra somente a sintaxe do campo:

<xSolic xmlns="http://www.portalfiscal.inf.br/nfe">{}</xSolic>

Não é uma solicitação fiscal completa, um contrato válido de emissão nem um XML completo da NF-e. O exemplo não inventa nomes de membros ou dados que precisariam vir do aplicativo autorizado.

No conteúdo real, o JSON deve permanecer texto dentro da tag. Se uma cadeia JSON contém &, o XML bruto pode mostrar &amp;; após o leitor XML, o texto recuperado volta a conter &. Escapar uma vez para XML é diferente de acrescentar barras e escapes JSON sem necessidade. Uma transformação duplicada pode alterar o pedido mesmo que o arquivo seja XML bem formado.

Três pontos para comparar integridade

Compare primeiro o pedido original gerado pelo aplicativo. Depois recupere o conteúdo de xSolic com um leitor XML e compare seus campos e valores ao original. Por fim, analise o JSON recuperado e confronte as informações fiscais correspondentes no documento gerado.

Essas comparações detectam perda de caracteres, codificação duplicada, conversão indevida de números para textos e truncamento. O XSD verifica comprimento e tipo textual; não interpreta o contrato do pedido nem prova que os dados fiscais resultantes são corretos. Não basta dizer que “validou XML” para encerrar uma divergência de conteúdo.

Quando o texto passa no XSD mas não resolve a solicitação

Um JSON malformado pode ter tamanho e caracteres aceitos pelo tipo XML. Um objeto vazio pode ser sintaticamente JSON e ainda não conter o pedido obrigatório do fluxo. São sintomas diferentes, com evidências diferentes: erro do parser JSON, membros ausentes no contrato oficial ou divergência entre pedido e documento.

Para textos acima de 5.000 caracteres, investigue a composição verdadeira e os limites do fluxo; não corte ao atingir o máximo descartando campos do pedido. Em implementações antigas, verifique se algum limite menor foi herdado de versões anteriores. Preserve a solicitação original e corrija a transformação comprovada, sem estimar informações fiscais ou manipular um XML já assinado.

Fontes oficiais

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/infSolicNFF/xSolic
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
5000
minLength
2
pattern
[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}
whiteSpace
preserve