Skip to content

feat(nfe): split payment da NT 2026.006 — grupo gPgtoVinc e evento 110300 (PL_010g) - #91

Open
rhfranzoni wants to merge 2 commits into
masterfrom
feat/nt2026006-split-payment
Open

rhfranzoni wants to merge 2 commits into
masterfrom
feat/nt2026006-split-payment

Conversation

@rhfranzoni

Copy link
Copy Markdown

Suporte à NT 2026.006 v1.01 (Vinculação com a Transação de Pagamento — split payment), conforme o XSD oficial do PL_010g v1.03.

  • infNFe.gPgtoVinc (gPgtoVinc/gPgto), serializado depois de infIntermed; nulo = grupo ausente.
  • Evento 110300 "Vinculação Pagamento": NFeTipoEvento.TeNfeVinculacaoPagamento, ServicoNFe.RecepcaoEventoVinculacaoPagamento, detEvento.gPgto (gPgtoEvento) e ServicosNFe.RecepcaoEventoVinculacaoPagamento(...), no molde do 110001 (SVRS, cOrgao 92, tpAutor 1).
  • Endereçamento do 110300 registrado para os modelos 55 e 65 (a NT vale para os dois).

Validação: serialização conferida contra leiauteNFe_v4.00.xsd, DFeTiposBasicos_v1.00.xsd e e110300_v1.00.xsd do PL_010g (ordem pag → infIntermed → gPgtoVinc → infAdic; 110001 sem gPgto continua válido).

Usado por nfe/dfetech-product-invoice-api#902.

🤖 Generated with Claude Code

rhfranzoni and others added 2 commits November 5, 2026 07:33
…300 Vinculação Pagamento)

NT 2026.006 v1.01, conforme o XSD do PL_010g v1.03:

- infNFe: grupo YC gPgtoVinc (tipo TPgtoVinc) logo depois de infIntermed e antes de infAdic.
  gPgto (1-99) com atributos nPag e idTransacao e elementos tpMeioPgto, CNPJReceb e CNPJBasePSP.
  Nulo não é serializado: a nota sem o grupo sai igual à de hoje.
- Evento 110300 "Vinculação Pagamento" (autor emitente, NF-e e NFC-e):
  NFeTipoEvento.TeNfeVinculacaoPagamento, ServicoNFe.RecepcaoEventoVinculacaoPagamento,
  endereço SVRS de RecepcaoEvento4 (o mesmo dos eventos RTC) para os modelos 55 e 65,
  versão 1.00, schema e110300_v1.00.xsd no Validador.
- detEvento.gPgto (gPgtoEvento, tipo TEventoPgto: só o atributo idTransacao, sem nPag),
  com ShouldSerialize para não afetar os demais eventos.
- ServicosNFe.RecepcaoEventoVinculacaoPagamento(idLote, sequenciaEvento, cpfCnpj, chaveNFe,
  nProt, pagamento, dataHoraEvento, ufAutor, versaoAplicativo), no molde do 110001 (cOrgao 92).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…epção

A recepção de eventos reserializava o retEnvEvento desserializado da resposta.
Quando a SEFAZ responde sem cOrgao (vira 0) ou com valor que o enum Estado não
conhece, o XmlSerializer lançava "Instance validation error: '0' is not a valid
value for Estado" e a resposta real se perdia; o chamador tratava como falha
transitória e reenviava o evento (visto no 110300 contra a SVRS de homologação).

Agora ObterXmlStringOuRecebido devolve o XML recebido quando o objeto não pode
ser serializado, e a falta de retEvento na resposta não lança na montagem dos
procEventoNFe. Vale para RecepcaoEventoAsync e RecepcaoEventoEAssinaAsync.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rhfranzoni

Copy link
Copy Markdown
Author

Este PR foi incluído no PR combinado do deploy de 09/11/2026: #92, junto com os campos do Simples Nacional (NT 2026.005) e a correção da leitura da resposta de evento (8f9a3ecf). A revisão e o merge vão pelo #92; este PR será fechado com o link dele depois do merge.

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