Ferramentas do MDF-e
Consultar se a SEFAZ está no ar
GET https://apifiscal.weesy.com.br/v1/mdfe/status-sefaz
Abrir na referência interativaPergunta à SEFAZ se o serviço de MDF-e está funcionando. Usamos o certificado da empresa para perguntar, por isso o cnpjEmitente é obrigatório.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
| cnpjEmitente obrigatório | query | string | CNPJ da empresa cujo certificado será usado na consulta. |
| uf | query | string | Sigla do estado da empresa. Padrão = a UF do cadastro da empresa. Valores: |
| ambiente | query | string | Ambiente consultado. Padrão Valores: |
Exemplo de chamada
cURL
curl --request GET \
--url "https://apifiscal.weesy.com.br/v1/mdfe/status-sefaz?cnpjEmitente=21664333000195" \
--header "Authorization: Bearer $WEESY_TOKEN"Node.js
const resposta = await fetch("https://apifiscal.weesy.com.br/v1/mdfe/status-sefaz?cnpjEmitente=21664333000195", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.WEESY_TOKEN}`,
},
});
console.log(resposta.status, await resposta.text());Python
import os
import requests
resposta = requests.get(
"https://apifiscal.weesy.com.br/v1/mdfe/status-sefaz?cnpjEmitente=21664333000195",
headers={"Authorization": f"Bearer {os.environ['WEESY_TOKEN']}"},
timeout=30,
)
print(resposta.status_code, resposta.text)PHP
<?php
$contexto = stream_context_create(["http" => [
"method" => "GET",
"header" => implode("\r\n", ["Authorization: Bearer " . getenv("WEESY_TOKEN")]),
"ignore_errors" => true, // lê o corpo também nas respostas de erro
]]);
$resposta = file_get_contents("https://apifiscal.weesy.com.br/v1/mdfe/status-sefaz?cnpjEmitente=21664333000195", false, $contexto);
echo $http_response_header[0], PHP_EOL, $resposta, PHP_EOL;C#
using System.Net.Http.Headers;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("WEESY_TOKEN"));
using var resposta = await http.GetAsync("https://apifiscal.weesy.com.br/v1/mdfe/status-sefaz?cnpjEmitente=21664333000195");
Console.WriteLine($"{(int)resposta.StatusCode} {await resposta.Content.ReadAsStringAsync()}");Respostas
- 200: Situação do serviço.
- 400: Algum dado está errado ou faltando. A lista erros diz qual campo e o que corrigir (code = validacao). (formato de erro)
- 401: Token ausente, errado ou revogado (credencialinvalida). Confira o cabeçalho Authorization. (formato de erro)
- 404: empresanaoencontrada. (formato de erro)
- 409: empresasemcertificado ou certificadovencido. (formato de erro)
- 503: A prefeitura, o sistema nacional ou a SEFAZ estão fora do ar (autorizadorindisponivel). Tente de novo em alguns minutos. (formato de erro)
Campos da resposta 200
| Campo | Tipo | Descrição | ||||||
|---|---|---|---|---|---|---|---|---|
| disponivel obrigatório | boolean |
| ||||||
| uf obrigatório | string | Sigla do estado, em maiúsculas. Valores: | ||||||
| ambiente obrigatório | string | Onde o documento é emitido.
O ambiente | ||||||
| sefaz obrigatório | object | Última resposta da SEFAZ, como ela mandou. Útil para entender uma rejeição. | ||||||
| sefaz. | integer ou null | Código de resposta da SEFAZ (ex. | ||||||
| sefaz. | string ou null | Texto da SEFAZ que explica o código. | ||||||
| sefaz. | string ou null | Número do protocolo da SEFAZ, quando houver. | ||||||
| consultadoEm obrigatório | string (date-time) | Data e hora no horário de Brasília (ex. |
Exemplo de resposta 200
{
"disponivel": true,
"uf": "SP",
"ambiente": "homologacao",
"sefaz": {
"cStat": 107,
"mensagem": "Serviço em Operação"
},
"consultadoEm": "2026-10-26T09:27:34-03:00"
}