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:100on an authorization,135on a cancellation. It is the authority's own vocabulary, so it travels besidechaveAcessoandprotocolo, not at the root of the block. - A cancellation carries its own code, not the invoice's.
order.reversedreads135— the cancellation event registered at SEFAZ — while theorder.invoicedthat preceded it keeps100. Verified end to end in staging. - It travels as the provider sends it,
numberorstring. We do not normalise a type the authority did not choose. - Through the fiscal callback it already worked: anything inside
documentthat is not canonical reachescountryDatauntouched. SendcStatthere and it arrives — no change was needed on your side. mensagemSefazstays out. Only the code comes back.- Rejections still emit no event. A
rejecteddocument stores its code but fires neitherorder.invoicednororder.reversed, socStatdoes 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:100en una autorización,135en una anulación. Es vocabulario del ente, así que viaja al lado dechaveAcessoyprotocolo, no en la raíz del bloque. - La anulación lleva su propio código, no el de la factura. El
order.reversedtrae135—el evento de cancelación registrado en SEFAZ— mientras elorder.invoicedque lo precedió conserva100. Verificado de punta a punta en staging. - Viaja tal cual lo manda el proveedor,
numberostring. No normalizamos un tipo que el ente no eligió. - Por el callback fiscal ya funcionaba: todo lo que va dentro de
documenty no es canónico llega acountryDatasin tocarse. MandácStatahí y llega — no hubo que cambiar nada de tu lado. mensagemSefazsigue afuera. Vuelve solo el código.- Los rechazos siguen sin emitir evento. Un documento
rejectedguarda su código pero no disparaorder.invoicedniorder.reversed, así que para ese casocStatno 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:100numa autorização,135num cancelamento. É vocabulário do órgão, então viaja ao lado dechaveAcessoeprotocolo, não na raiz do bloco. - O cancelamento leva o próprio código, não o da nota. O
order.reversedtraz135—o evento de cancelamento registrado na SEFAZ— enquanto oorder.invoicedque o precedeu mantém100. Verificado de ponta a ponta em staging. - Viaja como o provedor envia,
numberoustring. Não normalizamos um tipo que o órgão não escolheu. - Pelo callback fiscal já funcionava: tudo o que vai dentro de
documente não é canônico chega acountryDatasem alteração. EnviecStatali e ele chega — não foi preciso mudar nada do seu lado. mensagemSefazcontinua de fora. Volta apenas o código.- As rejeições continuam sem emitir evento. Um documento
rejectedguarda seu código mas não disparaorder.invoicednemorder.reversed, então nesse casocStatnão chega até você.
Atualizado em EN / ES / PT.
Read the full changelog · Ver el registro completo · Ver o registro completo