15 September 2026 — Structured fiscal block and new fiscal event versions
The fiscal block of the three fiscal events is now what Fire stores on the order, with one shape for every country: the authority's verdict in authority, plus the document's journey and what it replaces. Two new guides explain the whole cycle.
- Breaking — the fiscal block of
order.invoiced,order.cancelledandorder.reversedis structured. Canonical fields move intoauthority(documentType,documentNumber,issuedAt,cancelledAt…), amounts intoauthority.amounts, and the authority's own identifiers (chaveAcesso,claveAcceso,cufe,protocolo…) intoauthority.countryData.dataAutorizacaobecomesauthority.authorizedAt;docType,cStatandsefazCancellationare no longer emitted. Every previous path has exactly one new path: see Path changes. - Breaking — on a cancellation the block moves from
cancellation.metadata.fiscaltocancellation.fiscal, andcancellation.metadatais no longer emitted. When the order had no authorized document, thefiscalkey is absent — before it wasnull, so a check for=== nullstops matching. - Breaking — the fiscal callback moved every canonical field out of
documentto the root (documentType,docSubtype,documentNumber,issuedAt,authorizedAt,cancelledAt,authorizationMode,providerDocId,totalAmount,taxAmount,currencyCode,pdfUrl,xmlUrl,graphic);documentnow holds only the country's identifiers. Renames:countryCode→country,docType→documentType(SALE_INVOICEorCREDIT_NOTE, the only two accepted),error→failure(withscopeanddetails),providerSpecific→metadata,emittedAt→issuedAt. A sender using the previous names receives400naming the field — fordocType, onauthorizedandcancelled. In EcuadornumeroAutorizacionis retired: the authorized identifier isclaveAcceso.cnpjEmitenteis not part of the contract. order.cancelledcarries the fiscal block in every country with an authorized document; before it was Brazil only.historyandcompensates—order.invoicedandorder.reversedcarry every stop of the document's journey, oldest first.compensatespoints at the document the current one replaces, so it is filled onorder.reversedandnullonorder.invoiced.authority.providerIdentityandauthority.providerMetadata— the callback'sproviderandmetadatanow reach the order and the events, with the same names as in the fiscal numbering.nullwhen not sent; PlugNotas (Brazil) never sends them.- How fiscal works in Fire — the two acts (numbering and authorization), the two blocks on the order, and the two ways a document reaches Fire.
- From the callback to the events — which event fires for each callback and where every field lands.
Warning Flows and handlers that read the previous paths —
fiscal.chaveAcesso,fiscal.protocolo,cancellation.metadata.fiscal.*— readundefinedon the new versions, without an error. Update them before relying on these events.
Note In Brazil
authority.authorizedAtcarries the SEFAZ date with a conventional midnight time, so it can read earlier thanissuedAt. UseissuedAtfor the moment of the sale.
| Event | Version |
|---|---|
order.invoiced |
v1.2 → v2 |
order.cancelled |
v2.2 → v3 |
order.reversed |
v2 → v3 |
Not backwards compatible for the fiscal block; the rest of the order snapshot is unchanged. The previous versions stay available from each event's version tabs.
Updated in EN / ES / PT.
Español
15 de septiembre de 2026 — Bloque fiscal estructurado y eventos fiscales nuevos
El bloque fiscal de los tres eventos fiscales ahora es lo que Fire guarda en la orden, con una sola forma para todos los países: el veredicto del ente en authority, más el recorrido del documento y a cuál reemplaza. Dos guías nuevas explican el ciclo completo.
- Breaking — el bloque fiscal de
order.invoiced,order.cancelledyorder.reversedes estructurado. Los campos canónicos pasan aauthority(documentType,documentNumber,issuedAt,cancelledAt…), los importes aauthority.amountsy los identificadores del ente (chaveAcesso,claveAcceso,cufe,protocolo…) aauthority.countryData.dataAutorizacaopasa a serauthority.authorizedAt;docType,cStatysefazCancellationya no se emiten. Cada ruta anterior tiene exactamente una ruta nueva: ver Rutas que cambian. - Breaking — en una anulación el bloque pasa de
cancellation.metadata.fiscalacancellation.fiscal, ycancellation.metadataya no se emite. Si la orden no tenía documento autorizado, la clavefiscalno está — antes veníanull, así que una comparación con=== nulldeja de cumplirse. - Breaking — el callback fiscal sacó todos los campos canónicos de
documenta la raíz (documentType,docSubtype,documentNumber,issuedAt,authorizedAt,cancelledAt,authorizationMode,providerDocId,totalAmount,taxAmount,currencyCode,pdfUrl,xmlUrl,graphic);documentahora lleva solo los identificadores del país. Renombres:countryCode→country,docType→documentType(SALE_INVOICEoCREDIT_NOTE, los únicos dos aceptados),error→failure(conscopeydetails),providerSpecific→metadata,emittedAt→issuedAt. Un emisor con los nombres anteriores recibe400con el campo — en el caso dedocType, enauthorizedycancelled. En Ecuador se retiranumeroAutorizacion: el identificador autorizado esclaveAcceso.cnpjEmitenteno es parte del contrato. order.cancelledlleva el bloque fiscal en todos los países con documento autorizado; antes era solo Brasil.historyycompensates—order.invoicedyorder.reversedllevan cada parada del recorrido del documento, de la más vieja a la más nueva.compensatesapunta al documento que el vigente reemplaza: viene lleno enorder.reversedy ennullenorder.invoiced.authority.providerIdentityyauthority.providerMetadata— elprovidery elmetadatadel callback ahora llegan a la orden y a los eventos, con los mismos nombres que en la numeración fiscal.nullsi no se mandan; PlugNotas (Brasil) nunca los manda.- Cómo funciona lo fiscal en Fire — los dos actos (numerar y autorizar), los dos bloques de la orden y los dos caminos por los que un documento llega a Fire.
- Del callback a los eventos — qué evento sale por cada callback y dónde cae cada campo.
Warning Los flujos y handlers que leen las rutas anteriores —
fiscal.chaveAcesso,fiscal.protocolo,cancellation.metadata.fiscal.*— leenundefineden las versiones nuevas, sin error. Actualízalos antes de depender de estos eventos.
Note En Brasil
authority.authorizedAttrae la fecha de la SEFAZ con una hora convencional de medianoche, así que puede quedar antes queissuedAt. Para el momento de la venta usaissuedAt.
| Evento | Versión |
|---|---|
order.invoiced |
v1.2 → v2 |
order.cancelled |
v2.2 → v3 |
order.reversed |
v2 → v3 |
No es retrocompatible en el bloque fiscal; el resto del snapshot de la orden no cambia. Las versiones anteriores siguen disponibles desde las pestañas de versión de cada evento.
Actualizado en EN / ES / PT.
Português
15 de setembro de 2026 — Bloco fiscal estruturado e eventos fiscais novos
O bloco fiscal dos três eventos fiscais agora é o que o Fire guarda no pedido, com uma única forma para todos os países: o veredito do órgão em authority, mais o percurso do documento e qual ele substitui. Dois guias novos explicam o ciclo completo.
- Breaking — o bloco fiscal de
order.invoiced,order.cancelledeorder.reversedé estruturado. Os campos canônicos passam paraauthority(documentType,documentNumber,issuedAt,cancelledAt…), os valores paraauthority.amountse os identificadores do órgão (chaveAcesso,claveAcceso,cufe,protocolo…) paraauthority.countryData.dataAutorizacaopassa a serauthority.authorizedAt;docType,cStatesefazCancellationnão são mais emitidos. Cada caminho anterior tem exatamente um caminho novo: veja Mudanças de caminho. - Breaking — num cancelamento o bloco passa de
cancellation.metadata.fiscalparacancellation.fiscal, ecancellation.metadatanão é mais emitido. Se o pedido não tinha documento autorizado, a chavefiscalnão existe — antes vinhanull, então uma comparação com=== nulldeixa de bater. - Breaking — o callback fiscal tirou todos os campos canônicos de
documentpara a raiz (documentType,docSubtype,documentNumber,issuedAt,authorizedAt,cancelledAt,authorizationMode,providerDocId,totalAmount,taxAmount,currencyCode,pdfUrl,xmlUrl,graphic);documentagora leva só os identificadores do país. Renomeações:countryCode→country,docType→documentType(SALE_INVOICEouCREDIT_NOTE, os únicos dois aceitos),error→failure(comscopeedetails),providerSpecific→metadata,emittedAt→issuedAt. Um emissor com os nomes anteriores recebe400indicando o campo — no caso dedocType, emauthorizedecancelled. No EquadornumeroAutorizacioné retirado: o identificador autorizado éclaveAcceso.cnpjEmitentenão faz parte do contrato. order.cancelledleva o bloco fiscal em todos os países com documento autorizado; antes era só o Brasil.historyecompensates—order.invoicedeorder.reversedlevam cada parada do percurso do documento, da mais antiga à mais nova.compensatesaponta para o documento que o vigente substitui: vem preenchido emorder.reversedenullemorder.invoiced.authority.providerIdentityeauthority.providerMetadata— oprovidere ometadatado callback agora chegam ao pedido e aos eventos, com os mesmos nomes da numeração fiscal.nullquando não enviados; o PlugNotas (Brasil) nunca os envia.- Como o fiscal funciona no Fire — os dois atos (numerar e autorizar), os dois blocos do pedido e os dois caminhos pelos quais um documento chega ao Fire.
- Do callback aos eventos — qual evento sai para cada callback e onde cai cada campo.
Warning Fluxos e handlers que leem os caminhos anteriores —
fiscal.chaveAcesso,fiscal.protocolo,cancellation.metadata.fiscal.*— leemundefinednas versões novas, sem erro. Atualize-os antes de depender destes eventos.
Note No Brasil
authority.authorizedAttraz a data da SEFAZ com um horário convencional de meia-noite, então pode ficar antes deissuedAt. Para o momento da venda useissuedAt.
| Evento | Versão |
|---|---|
order.invoiced |
v1.2 → v2 |
order.cancelled |
v2.2 → v3 |
order.reversed |
v2 → v3 |
Não é retrocompatível no bloco fiscal; o resto do snapshot do pedido não muda. As versões anteriores continuam disponíveis nas abas de versão de cada evento.
Atualizado em EN / ES / PT.
Read the full changelog · Ver el registro completo · Ver o registro completo