Fire Docs

Archives
Log in
Subscribe
September 16, 2026

16 September 2026 — cStat is emitted again, inside countryData

This supersedes what a later entry says. On 15 September we announced that cStat was no longer emitted. Consumers asked for it back — without it a cancellation does not say whether the authority accepted it — so it returns. Only cStat: docType, dataAutorizacao and sefazCancellation stay out.

  • Brazil: authority.countryData.cStat. The code the authority resolved this document with: 100 on an authorization, 135 on a cancellation. It is the authority's own vocabulary, so it travels beside chaveAcesso and protocolo, not at the root of the block.
  • A cancellation carries its own code, not the invoice's. order.reversed reads 135 — the cancellation event registered at SEFAZ — while the order.invoiced that preceded it keeps 100. Verified end to end in staging.
  • It travels as the provider sends it, number or string. We do not normalise a type the authority did not choose.
  • Through the fiscal callback it already worked: anything inside document that is not canonical reaches countryData untouched. Send cStat there and it arrives — no change was needed on your side.
  • mensagemSefaz stays out. Only the code comes back.
  • Rejections still emit no event. A rejected document stores its code but fires neither order.invoiced nor order.reversed, so cStat does not reach you for that case.

Updated in EN / ES / PT.


Español

16 de septiembre de 2026 — cStat vuelve a emitirse, dentro de countryData

Esto corrige lo que dice una entrada posterior. El 15 de septiembre anunciamos que cStat ya no se emitía. Los consumidores lo pidieron de vuelta —sin él una anulación no dice si el ente la aceptó— así que vuelve. Solo cStat: docType, dataAutorizacao y sefazCancellation siguen afuera.

  • Brasil: authority.countryData.cStat. El código con el que el ente resolvió este documento: 100 en una autorización, 135 en una anulación. Es vocabulario del ente, así que viaja al lado de chaveAcesso y protocolo, no en la raíz del bloque.
  • La anulación lleva su propio código, no el de la factura. El order.reversed trae 135 —el evento de cancelación registrado en SEFAZ— mientras el order.invoiced que lo precedió conserva 100. Verificado de punta a punta en staging.
  • Viaja tal cual lo manda el proveedor, number o string. No normalizamos un tipo que el ente no eligió.
  • Por el callback fiscal ya funcionaba: todo lo que va dentro de document y no es canónico llega a countryData sin tocarse. Mandá cStat ahí y llega — no hubo que cambiar nada de tu lado.
  • mensagemSefaz sigue afuera. Vuelve solo el código.
  • Los rechazos siguen sin emitir evento. Un documento rejected guarda su código pero no dispara order.invoiced ni order.reversed, así que para ese caso cStat no te llega.

Actualizado en EN / ES / PT.


Português

16 de setembro de 2026 — cStat volta a ser emitido, dentro de countryData

Isto corrige o que diz uma entrada posterior. Em 15 de setembro anunciamos que cStat não era mais emitido. Os consumidores pediram de volta —sem ele um cancelamento não diz se o órgão o aceitou— então ele retorna. Apenas cStat: docType, dataAutorizacao e sefazCancellation continuam de fora.

  • Brasil: authority.countryData.cStat. O código com que o órgão resolveu este documento: 100 numa autorização, 135 num cancelamento. É vocabulário do órgão, então viaja ao lado de chaveAcesso e protocolo, não na raiz do bloco.
  • O cancelamento leva o próprio código, não o da nota. O order.reversed traz 135 —o evento de cancelamento registrado na SEFAZ— enquanto o order.invoiced que o precedeu mantém 100. Verificado de ponta a ponta em staging.
  • Viaja como o provedor envia, number ou string. Não normalizamos um tipo que o órgão não escolheu.
  • Pelo callback fiscal já funcionava: tudo o que vai dentro de document e não é canônico chega a countryData sem alteração. Envie cStat ali e ele chega — não foi preciso mudar nada do seu lado.
  • mensagemSefaz continua de fora. Volta apenas o código.
  • As rejeições continuam sem emitir evento. Um documento rejected guarda seu código mas não dispara order.invoiced nem order.reversed, então nesse caso cStat não chega até você.

Atualizado em EN / ES / PT.


Read the full changelog · Ver el registro completo · Ver o registro completo

Don't miss what's next. Subscribe to Fire Docs:
← Newer 25 September 2026 — Cash handed over and change in the order events Older → 15 September 2026 — KDS bump printing, zoom, and Android Fire Agent
Powered by Buttondown, the easiest way to start and grow your newsletter.