Skip to content

NT 2025.002-RTC v1.40: campos novos do leiaute da NF-e e correção do evento 211110 - #353

Open
edivaldoms wants to merge 3 commits into
Samuel-Oliveira:masterfrom
edivaldoms:nt2025002-v140
Open

NT 2025.002-RTC v1.40: campos novos do leiaute da NF-e e correção do evento 211110#353
edivaldoms wants to merge 3 commits into
Samuel-Oliveira:masterfrom
edivaldoms:nt2025002-v140

Conversation

@edivaldoms

Copy link
Copy Markdown

Adequa a lib à NT 2025.002-RTC v1.40 (leiaute publicado em 10/07/2026, schemas dos eventos em 27/07/2026), cujo prazo de produção é 03/08/2026 — data em que o preenchimento dos grupos IBS/CBS deixa de ser facultativo e passa a ser exigido por regra de validação. A 4.1.1 está no nível v1.30 e não tem nenhum dos campos abaixo.

São dois assuntos independentes, um commit cada.

1. Campos novos do leiaute

Cinco campos que a v1.40 acrescentou, todos em classes que já existiam:

Classe Campo Referência no MOC Posição
TNFe.InfNFe.Ide cIndOp B25d depois de indIntermed
TNFe.InfNFe.Emit ISUFEmit C22 depois de CRT
TCompraGov refDFeAnt (0–99) BB05 depois de tpOperGov
TDevTrib pDevTrib UB24a / UB43a / UB62a antes de vDevTrib
TCIBS.GCBS gALCZFMCBS (grupo novo) UB66a entre gRed e vCBS

gALCZFMCBS entrou como classe aninhada de TCIBS.GCBS, com tpALCZFMCBS, nProcSuframa, pAliqEfetRegCBS e vTribRegCBS. Vale notar que o leiauteNFe_v4.00.xsd tem dois tipos parecidos: TALCZFMCBS, de dois elementos, e TALCZFMCBS_NFe, de quatro. A NF-e chega nele por TTribNFe -> TCIBS_NFe -> TALCZFMCBS_NFe, então é o de quatro.

Em todos os casos o propOrder do @XmlType foi atualizado junto — o XSD é xs:sequence, e ordem errada é rejeição 215.

ObjectFactory e XsdEnum não foram tocados: nenhum dos campos é elemento de topo.

2. DetEvento211110 conforme o XSD oficial

A classe do evento 211110 (Solicitação de Apropriação de crédito presumido) seguia uma minuta anterior à publicação de 27/07/2026. Confrontada com o e211110_v1.00.xsd, divergia em cinco pontos, cada um deles suficiente para a SEFAZ rejeitar o evento:

4.1.1 XSD oficial
gCredPres gCredPresOper
vBC vBCCredPres
cCredPres repetido dentro de gIBS e de gCBS cCredPres único, no nível do grupo
gIBS / gCBS gIBSCredPres / gCBSCredPres
tpAutor aceitando só "2" "1" ou "2"

É uma quebra de API para quem já usava a classe, mas o código anterior não tinha como produzir um XML aceito pela SEFAZ.

Verificação

  • mvn test: 2157 testes, 0 falhas.
  • XML gerado pelas classes validado contra o leiauteNFe_v4.00.xsd do PL_010e v1.02 e contra os XSDs do pacote "Schema dos eventos da NT 2025.002 v.1.40 - RTC" — inclusive a ordem dos elementos dos grupos IBS/CBS.
  • e112110 e e211110 validam.

Observações

  • O bump para 4.1.2-SNAPSHOT no pom.xml está aí só para eu conseguir consumir o fork enquanto isso não é liberado; fique à vontade para descartar essa linha.
  • v1.50 (monofásica de combustíveis reformulada, gpBioDiferenca, adRemIS) ficou de fora: produção só em 03/11/2026 e o schema ainda não saiu.
  • O schemas.zip não foi atualizado — pelo que vi só os testes da própria lib o usam. Se preferir, atualizo aqui.
  • Os demais eventos da reforma continuam como estão; só revisei o 211110 porque é um dos dois que estou usando.

edivaldoms and others added 3 commits July 27, 2026 23:15
Adiciona ao pacote schemas os cinco campos que a v1.40 criou e que a 4.1.1
ainda nao tinha:

- Ide.cIndOp (B25d) - codigo indicador do local da operacao de fornecimento
- Emit.ISUFEmit (C22) - inscricao do emitente na Suframa
- TCompraGov.refDFeAnt (BB05) - chaves do documento fiscal anterior, 0-99
- TDevTrib.pDevTrib (UB24a/43a/62a) - percentual de devolucao de tributo
- TCIBS.GCBS.gALCZFMCBS (UB66a) - operacoes em area incentivada com
  aliquota zero da CBS (tpALCZFMCBS, nProcSuframa, pAliqEfetRegCBS,
  vTribRegCBS)

A ordem no propOrder segue a sequencia do leiaute da NT, conferida por
marshal de uma NF-e de exemplo.

Versao publicada como 4.1.1-evoli1 no GitHub Packages; gpg.skip por padrao,
já que o fork nao vai para o Maven Central.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A classe seguia uma minuta anterior do evento 211110 (Solicitacao de
Apropriacao de credito presumido). Confrontada com o e211110_v1.00.xsd do
pacote "Schema dos eventos da NT 2025.002 v.1.40 - RTC", divergia em cinco
pontos, cada um deles suficiente para a SEFAZ rejeitar o evento:

- o grupo se chama gCredPresOper, nao gCredPres;
- a base de calculo se chama vBCCredPres, nao vBC;
- cCredPres e unico e fica no nivel do grupo, nao repetido dentro de gIBS
  e gCBS;
- os subgrupos se chamam gIBSCredPres e gCBSCredPres;
- tpAutor aceita "1" e "2" (o XSD enumera os dois).

O detEvento gerado pela classe agora valida contra o XSD oficial.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant