Pular para o conteúdo
FiscalAPI
NF-e

SEFAZ Fora do Ar? Como Verificar o Status das 27 SEFAZs em Tempo Real

Equipe FiscalAPI 6 min de leitura
SEFAZNF-eAPIGuia

Para saber se a SEFAZ está fora do ar, consulte o serviço de status da UF antes de transmitir. Se a resposta vier com `cStat` 108 (paralisado momentaneamente) ou 109 (paralisado sem previsão), o problema é da SEFAZ, não seu — e o caminho é emitir em contingência (SVC ou EPEC), não ficar retransmitindo. O status das 27 SEFAZs pode ser conferido em um painel público ou por uma chamada de API.

Toda equipe fiscal já perdeu uma tarde nisso: a nota não sobe, ninguém sabe se é o certificado, o XML ou o estado, e alguém decide "tentar de novo daqui a pouco". Este guia mostra como responder a pergunta em segundos.

Primeiro: é a SEFAZ ou é você?#

A SEFAZ expõe um serviço próprio de status (NfeStatusServico). É ele que dá a resposta oficial — e o código retornado separa os dois mundos:

cStatSignificadoQuem tem o problema
107Serviço em OperaçãoA SEFAZ está de pé. Se a sua nota falhou, o problema é seu
108Serviço paralisado momentaneamenteSEFAZ. Parada curta, com previsão de volta
109Serviço Paralisado sem PrevisãoSEFAZ. Parada indeterminada — vá para contingência
114SVC desabilitada pelo SEFAZ origemVocê tentou contingência que o estado ainda não autorizou
⚠️
Se voltou 107 e a sua nota continua sendo rejeitada, pare de culpar o estado. A causa está no XML, no certificado ou no cadastro — veja o guia das rejeições mais comuns.

O painel de status das 27 UFs#

Consultar o status estado a estado, no site de cada SEFAZ, é o mesmo problema de sempre: 27 endereços, 27 layouts. A FiscalAPI mantém um painel público do status das SEFAZs com as 27 UFs numa tela só, atualizado continuamente.

Ele cobre os três documentos que se comportam de forma independente:

  • NF-e — nota fiscal eletrônica
  • NFC-e — nota fiscal de consumidor eletrônica
  • CT-e — conhecimento de transporte eletrônico
💡
Detalhe que economiza diagnóstico errado: NF-e e NFC-e do mesmo estado podem estar em status diferentes. São autorizadores distintos. "A SEFAZ de SP está no ar" não responde nada se o que você emite é NFC-e.

Via API#

Quando a verificação precisa acontecer dentro do seu sistema — antes de disparar um lote, ou para alimentar um painel interno —, o status vem por uma chamada:

bash
curl -X GET "https://api.fiscalapi.com.br/api/v1/sefaz/status?doc=nfe" \
  -H "X-API-Key: fapi_sua_chave_aqui"

Resposta:

json
{
  "doc": "nfe",
  "timestamp": "2026-08-24T14:32:10Z",
  "states": [
    { "uf": "SP", "status_code": 1, "status": "Normal",      "status_avg": 1.0 },
    { "uf": "MT", "status_code": 2, "status": "Lento",       "status_avg": 2.1342 },
    { "uf": "BA", "status_code": 0, "status": "Indisponivel", "status_avg": 0.0 }
  ]
}

O parâmetro doc aceita nfe (padrão), nfce e cte. A lista sempre traz as 27 UFs — se a fonte upstream omitir alguma, ela volta como Indisponivel em vez de simplesmente sumir da resposta. Isso evita o bug clássico de um for que ignora silenciosamente o estado que faltou.

A escala de status#

status_codestatusLeitura prática
0IndisponivelSem medição para a UF
1NormalTransmita
2LentoTransmita, mas espere latência maior
3Muito lentoAumente timeout; considere adiar lote grande
4ErroNão transmita; avalie contingência
5TimeoutNão transmita; avalie contingência
⚠️
Não confunda as duas escalas. O status_code de 0 a 5 é o indicador de saúde do monitoramento. O cStat 107/108/109 é a resposta oficial da SEFAZ. Use o painel para decidir se vale tentar; use o cStat como a palavra final antes de acionar contingência.

Em Python#

python
import httpx

resp = httpx.get(
    "https://api.fiscalapi.com.br/api/v1/sefaz/status",
    params={"doc": "nfe"},
    headers={"X-API-Key": "fapi_sua_chave_aqui"},
    timeout=30,
)
data = resp.json()

problemas = [s for s in data["states"] if s["status_code"] > 1]
for s in problemas:
    print(f"{s['uf']}: {s['status']}")

Em Node.js#

javascript
const response = await fetch(
  "https://api.fiscalapi.com.br/api/v1/sefaz/status?doc=nfe",
  { headers: { "X-API-Key": "fapi_sua_chave_aqui" } }
);
const data = await response.json();

const problemas = data.states.filter((s) => s.status_code > 1);
console.log(`${problemas.length} estados com problema`);

O que fazer quando a SEFAZ está mesmo fora#

Aí entra a contingência. As opções, do mais simples ao mais trabalhoso:

1. SVC (SEFAZ Virtual de Contingência). O ambiente nacional assume a autorização no lugar do estado. Existem duas — SVC-AN e SVC-RS —, e qual delas atende cada UF é definido pelo próprio estado. A SVC só funciona depois que a SEFAZ de origem a habilita; tentar antes retorna cStat 114.

2. EPEC (Evento Prévio de Emissão em Contingência). Você registra o evento no ambiente nacional, circula a mercadoria, e transmite a NF-e completa quando a SEFAZ voltar. Exige tratamento posterior — a nota não fica autorizada só com o EPEC.

3. FS-DA (Formulário de Segurança). O papel. Último recurso, com custo e burocracia.

💡
Regra prática: parada com previsão de volta (cStat 108) geralmente compensa esperar. Parada sem previsão (cStat 109) com mercadoria pronta para sair: vá para contingência. O erro caro é ficar retransmitindo por horas e só decidir no fim do dia.

A rotina que evita o problema#

O padrão que funciona é simples e cabe em um cron:

  1. Antes de cada lote grande, consulte o status da UF de destino.
  2. Se estiver `Normal`, transmita.
  3. Se estiver degradado, transmita assim mesmo mas com timeout maior e menos concorrência — SEFAZ lenta piora com carga paralela.
  4. Se estiver `Erro`/`Timeout`, confirme com o cStat oficial e acione a contingência.
  5. Monitore continuamente e alerte a equipe fiscal quando uma UF em que você opera mudar de estado.

O ganho não é técnico, é de processo: a equipe fiscal para de descobrir a indisponibilidade pelo cliente ligando.


Perguntas frequentes#

Como saber se a SEFAZ está fora do ar? Consultando o serviço de status da UF (NfeStatusServico) ou um painel que já agregue os 27 estados, como o monitor da FiscalAPI. O código cStat 107 indica serviço em operação; 108 e 109 indicam paralisação.

Qual a diferença entre cStat 108 e 109? O 108 é paralisação momentânea, com previsão de retorno. O 109 é paralisação sem previsão. Na prática, 109 é o sinal para acionar contingência em vez de esperar.

Posso emitir NF-e com a SEFAZ fora do ar? Sim, em contingência: SVC (quando habilitada pelo estado de origem), EPEC ou, em último caso, Formulário de Segurança. O que não funciona é insistir na transmissão normal.

NF-e e NFC-e ficam fora do ar juntas? Não necessariamente. São autorizadores independentes, e uma pode estar normal enquanto a outra está parada no mesmo estado. Consulte o status do documento que você emite.

De quanto em quanto tempo o status é atualizado? No monitor da FiscalAPI, a leitura é servida de cache com renovação em janelas de poucos minutos — suficiente para decisão operacional e sem martelar a fonte upstream.

A consulta de status consome crédito? A consulta é uma chamada de API como as demais e conta no limite mensal do plano. Como a resposta é servida de cache curto, checar antes de cada lote é barato — não faz sentido consultar em loop de segundo em segundo.


Próximo passo#

Se você emite em volume, coloque a verificação de status dentro da esteira de transmissão: veja a documentação do endpoint de status e o painel público das 27 SEFAZs.


Artigos relacionados#

Compartilhar: WhatsApp LinkedIn Twitter

Consulte dados fiscais via API

Consulte Inscrições Estaduais, CNPJs e Certidões Negativas via API REST. Dados direto da SEFAZ e Receita Federal. Planos a partir de R$ 19,99/mês.

Criar conta →