Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Identificação

dhSaiEnt na NF-e: data de saída, fuso e rejeições 504 a 506

<dhSaiEnt>ide › dhSaiEnt

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

O dhSaiEnt registra a data e a hora da saída ou entrada da mercadoria ou produto. Ele não substitui a data de emissão. No leiaute, tem ocorrência 0–1; porém, é proibido na NFC-e modelo 65 e, pela NT 2026.002, também na NF-e modelo 55 com DANFE Simplificado Tipo 2, identificada por tpImp=6. Nesses casos, a presença do campo está associada à rejeição 705. MOC, B10 NT 2026.002, B10-10

O instante registrado e a origem do dado

Emitir o documento e movimentar a mercadoria são fatos diferentes:

Informação Fato representado
dhEmi Emissão do documento fiscal
dhSaiEnt Saída ou entrada da mercadoria/produto
Previsão de entrega Estimativa de entrega, que não substitui esses instantes

A informação de dhSaiEnt vem da movimentação documentada na operação. Copiar automaticamente dhEmi só representa corretamente a movimentação se os dois instantes realmente coincidirem. Não use uma data estimada ou uma data conveniente para fazer a validação passar. Definições de B09 e B10

Quando o campo pode aparecer

Na NF-e modelo 55 fora do fluxo Tipo 2, o campo é estruturalmente opcional: pode ocorrer no máximo uma vez em ide. Essa ocorrência não decide eventuais exigências aplicáveis à operação; tampouco autoriza inventar uma data quando o fato não é conhecido.

Na NFC-e e na NF-e com tpImp=6, não informar dhSaiEnt é uma condição expressa da B10-10 atualizada. O MOC anterior descreve somente NFC-e; a NT 2026.002 amplia o alcance ao Tipo 2. O cronograma dessa atualização prevê produção em 03/08/2026, anterior ao corte de 26/09/2026. Cronograma e B10-10

Assim, o diagnóstico da 705 precisa considerar modelo e formato de impressão. Conferir apenas mod=55 não basta para concluir que dhSaiEnt é permitido.

Formato com fuso explícito

O formato previsto é AAAA-MM-DDThh:mm:ssTZD:

2026-09-26T12:30:00-03:00

No exemplo, a data é 26/09/2026, a hora local é 12:30:00 e o deslocamento em relação a UTC é −03:00. A letra T separa data e hora. Mês, dia, horas, minutos e segundos usam a quantidade de posições mostrada.

O tipo TDateTimeUTC do pacote oficial 010d v1.03 exige deslocamento explícito e define seu próprio padrão de calendário e horário. Nesse padrão, os minutos do deslocamento são 00, como em -03:00 ou +00:00; um deslocamento -03:30 não satisfaz o tipo. Não copie toda variante que uma biblioteca genérica de ISO 8601 consiga produzir: Z, frações de segundo, data brasileira “26/09/2026” e hora sem fuso não correspondem ao padrão desse tipo consultado. Tipo TDateTimeUTC

Além de conferir o tipo do XML, valide a data no calendário civil e interprete o instante com um parser apropriado de data, hora e fuso. A aprovação no padrão do XSD, por si só, não certifica uma data civil válida nem a movimentação real: o pacote contém expressões que precisam ser acompanhadas dessa conferência. Não altere o arquivo oficial do schema para encobrir um problema do gerador.

Apesar do nome UTC, o exemplo com offset −03:00 é uma representação prevista. Para expressar o mesmo instante em offset +00:00, seria necessário converter a hora para 15:30:00:

2026-09-26T15:30:00+00:00

A equivalência explica o significado do fuso; não recomenda mudar a representação operacional. Trocar apenas “−03:00” por “+00:00” e manter 12:30:00 altera o instante em três horas. Confira o fuso e o horário realmente usados na operação.

Limites de 30 dias e contingência

Quando dhSaiEnt está informado no modelo 55, o MOC prevê duas verificações facultativas relacionadas à data de autorização:

Regra Condição Retorno
B10-20 Data de entrada/saída posterior em mais de 30 dias à data de autorização 504 — Data de Entrada/Saída posterior ao permitido
B10-30 Data de entrada/saída anterior em mais de 30 dias à data de autorização 505 — Data de Entrada/Saída anterior ao permitido

A referência é a data de autorização, não simplesmente dhEmi. São regras separadas para limite posterior e anterior; não atribua os dois códigos à mesma direção. Por serem facultativas no MOC, verifique a aplicação pelo autorizador e o retorno efetivamente recebido. B10-20 e B10-30, p. 76

A B10-30 tem uma observação para SEFAZ que aceita NF-e emitida em contingência há mais de 30 dias: essa rejeição deve considerar os tipos 1, 3, 6 e 7. A fonte usa a grafia tpEmi nessa observação, enquanto o campo de tipo de emissão do leiaute é tpEmis. Isso não significa criar uma tag tpEmi no XML.

A observação qualifica a aplicação daquela regra na SEFAZ correspondente; não é uma dispensa automática de toda validação temporal para qualquer modalidade de contingência ou UF. Também não altera a proibição de dhSaiEnt em NFC-e ou Tipo 2. Observação da B10-30

Saída anterior à emissão e rejeição 506

A B10-40 é outra verificação facultativa: para NF-e de saída, com tpNF=1 e dhSaiEnt informado, rejeita a data de saída menor que a data de emissão, com 506 — Data de Saída menor que a Data de Emissão. B10-40

A condição está limitada à saída. Não a transplante automaticamente para uma NF-e de entrada com tpNF 0. Uma entrada pode ter contexto documental próprio; é necessário conferir os fatos e as outras regras aplicáveis, sem inventar que qualquer data anterior está aprovada.

Ao investigar a 506, compare os valores do XML original e a representação de fuso. Se o sistema registrou o horário errado, apure a origem e a conversão feita na geração. Não altere a movimentação verdadeira para representar um fato posterior que não aconteceu.

Exemplo parcial e diagnóstico do retorno

O recorte abaixo é sintético. Ele mostra uma NF-e modelo 55 com formato normal de DANFE e uma saída posterior à emissão, ambas com o mesmo offset:

<ide xmlns="http://www.portalfiscal.inf.br/nfe">
  <mod>55</mod>
  <!-- Série e número foram omitidos. -->
  <dhEmi>2026-09-26T10:00:00-03:00</dhEmi>
  <dhSaiEnt>2026-09-26T12:30:00-03:00</dhSaiEnt>
  <tpNF>1</tpNF>
  <!-- Demais indicadores e município foram omitidos. -->
  <tpImp>1</tpImp>
</ide>

A sequência temporal ilustrada é coerente com a comparação de saída e emissão. O exemplo não informa autorização, não permite conferir os limites de 30 dias e não é uma nota completa ou pronta para transmissão.

No diagnóstico, preserve XML e resposta originais e separe a causa:

  • 705: modelo 65 ou modelo 55 com Tipo 2 e campo indevidamente informado.
  • 504: limite posterior em relação à autorização.
  • 505: limite anterior, considerando a observação de contingência e a aplicação pela UF.
  • 506: saída menor que emissão na condição específica de tpNF 1.
  • Erro de schema: representação de data, hora ou deslocamento incompatível com o tipo carregado pelo validador.

A correção pertence à origem do dado e à geração coerente do documento. Não edite XML assinado, não altere datas ou o formato do DANFE apenas para eliminar o retorno e não trate aprovação estrutural como prova de adequação fiscal da operação.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/ide/dhSaiEnt
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
0–1 no contexto do elemento pai
Tipo
TDateTimeUTC · string
Preenchimento no catálogo
Opcional

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.

pattern
(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d([\-,\+](0[0-9]|10|11):00|([\+](12):00))
whiteSpace
preserve