Pular para o conteúdo
FiscalAPI
API & Integração

Consulta de Inscrição Estadual via API: Tutorial Completo + Comparativo 2026

Equipe FiscalAPI 7 min de leitura
TutorialNode.jsPython

Consultar Inscrição Estadual (IE) via API é uma chamada HTTP que retorna em segundos o status cadastral, razão social, CNAE e município de um CNPJ ou CPF de produtor rural em qualquer um dos 27 estados brasileiros. Substitui a consulta manual no SINTEGRA — que exige captcha, sessão por estado e leva 60 a 90 segundos — por uma única requisição programática integrável ao seu ERP, sistema próprio ou pipeline de cadastro.

Este artigo mostra o tutorial completo da API FiscalAPI com exemplos em cURL, Node.js e Python, o tratamento de erros que toda integração precisa, e quando faz sentido migrar do SINTEGRA manual para uma API.

💡
Se você ainda não conhece o conceito de IE, comece pelo guia de como consultar Inscrição Estadual. Este artigo assume que você já sabe o que é IE e quer integrar.

Por que API e não scraping ou SINTEGRA manual#

Scraping direto do SINTEGRA ou dos portais SEFAZ falha por 3 razões estruturais:

  1. Captcha em todos os 27 portais SEFAZ. Solver de captcha (2captcha, Anticaptcha) custa entre R$ 0,05 e R$ 0,15 por resolução e adiciona segundos de latência.
  2. Variação entre portais. Cada SEFAZ tem layout, formato de input e fluxo de sessão distintos. Manter 27 scrapers funcionando exige um time inteiro.
  3. Instabilidade. SP entra em manutenção noturna; alguns estados oscilam aos fins de semana. Você precisa de retry, fallback e monitoramento permanente.

API de provedor especializado resolve tudo: 1 endpoint único, captcha tratado internamente, fallback automático entre canais (SINTEGRA, portais SEFAZ) e cache inteligente que diminui consumo sem perder atualidade.


Tutorial — primeira consulta em 5 minutos#

1. Criar conta + gerar API key#

Acesse fiscalapi.com.br, assine o plano que melhor atende seu volume (a partir de R$ 19,99/mês), e gere a chave em Configurações → API Keys → Nova chave. Os planos disponíveis são:

PlanoMensalConsultas/mês
LiteR$ 19,9930
StarterR$ 50,00500
ProR$ 130,002.000
EnterpriseR$ 250,00Ilimitado

Todos os planos incluem dashboard sem código + API + cobertura nos 27 estados.

2. Endpoint REST#

GET https://api.fiscalapi.com.br/api/consultar?uf={uf}&cnpj={cnpj}
Headers: Authorization: Bearer {API_KEY}

Parâmetros:

ParâmetroTipoObrigatórioDescrição
ufstringsimSigla da UF (SP, MG, RS, etc.)
cnpjstringum obrigatórioCNPJ sem formatação, 14 dígitos
cpfstringum obrigatórioCPF sem formatação, 11 dígitos (uso: produtor rural)
iestringum obrigatórioInscrição Estadual, se quiser consulta por IE direto

Informe um entre cnpj, cpf ou ie. Enviar mais de um retorna erro PARAMETRO_CONFLITANTE.

3. cURL#

bash
curl -X GET "https://api.fiscalapi.com.br/api/consultar?uf=MT&cpf=12345678900" \
  -H "Authorization: Bearer SUA_API_KEY"

Resposta:

json
{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "document": "12345678900",
  "document_type": "cpf",
  "uf": "MT",
  "cached": false,
  "results": [
    {
      "inscricao_estadual": "13.123.456-7",
      "razao_social": "JOAO DA SILVA FAZENDA SANTA MARIA",
      "situacao_ie": "ATIVA",
      "situacao_cadastral": "ATIVA",
      "uf_ie": "MT",
      "tipo_ie": "PRODUTOR RURAL",
      "municipio": "RONDONOPOLIS",
      "cnae_codigo": "0111-3/01",
      "cnae_descricao": "CULTIVO DE ARROZ",
      "cpf_cnpj": "123.456.789-00"
    }
  ]
}

4. Node.js (fetch nativo, Node 22+)#

javascript
async function consultarIE({ uf, cnpj, cpf, ie }) {
  const url = new URL("https://api.fiscalapi.com.br/api/consultar");
  url.searchParams.set("uf", uf);
  if (cnpj) url.searchParams.set("cnpj", cnpj);
  else if (cpf) url.searchParams.set("cpf", cpf);
  else if (ie) url.searchParams.set("ie", ie);

  const res = await fetch(url, {
    headers: { Authorization: `Bearer ${process.env.FISCALAPI_KEY}` },
  });

  const data = await res.json();
  if (!res.ok) {
    throw new Error(`${data.error}: ${data.message}`);
  }
  return data;
}

const ie = await consultarIE({ uf: "SP", cnpj: "00000000000000" });
const primeiro = ie.results?.[0];
if (!primeiro || primeiro.situacao_ie !== "ATIVA") {
  console.warn(`IE irregular: ${primeiro?.situacao_ie ?? "nao localizada"}`);
}

5. Python#

python
import os
import requests

def consultar_ie(uf: str, *, cnpj: str | None = None, cpf: str | None = None, ie: str | None = None) -> dict:
    params = {"uf": uf}
    if cnpj:
        params["cnpj"] = cnpj
    elif cpf:
        params["cpf"] = cpf
    elif ie:
        params["ie"] = ie

    r = requests.get(
        "https://api.fiscalapi.com.br/api/consultar",
        params=params,
        headers={"Authorization": f"Bearer {os.environ['FISCALAPI_KEY']}"},
        timeout=15,
    )
    r.raise_for_status()
    return r.json()

resp = consultar_ie("MT", cpf="12345678900")
primeiro = resp["results"][0] if resp["results"] else None
if not primeiro or primeiro["situacao_ie"] != "ATIVA":
    raise ValueError(f"IE irregular: {primeiro and primeiro['situacao_ie']}")

Estratégia de cache#

O campo cached na resposta indica se o resultado veio do cache interno da FiscalAPI. Vantagens:

  • Latência menor.
  • Não conta — em alguns casos — contra o limite do plano.
  • Reduz pressão sobre os portais SEFAZ, que são instáveis.

Boas práticas no seu lado:

Caso de usoEstratégia
Cliente recorrente em ERPAceitar resposta cacheada
Fornecedor em due diligence pontualAceitar resposta cacheada
Pré-emissão de NF-e críticaValidar pela resposta com cache + revalidar diretamente no portal se mais segurança for necessária
Onboarding de marketplaceAceitar resposta cacheada

Se você manteve um cache próprio do seu lado, a recomendação é TTL de 7 a 30 dias para CNPJs ativos. Para produtor rural com renovações sazonais e operação intermitente, prefira TTL menor (até 7 dias).


Tratamento de erros#

A API retorna respostas estruturadas em caso de erro, no formato:

json
{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "error": "PARAMETRO_AUSENTE",
  "message": "Informe cpf, cnpj ou ie"
}

Códigos retornados:

HTTPerrorSignificado
400PARAMETRO_AUSENTEFaltou cpf, cnpj ou ie
400PARAMETRO_CONFLITANTEMais de um documento informado
400UF_NAO_SUPORTADAUF inexistente ou não habilitada
400DOCUMENTO_INVALIDODocumento sem dígito verificador válido
401(sem corpo)API key ausente ou inválida
429LIMITE_DEMOExcedeu rate limit demo (3 consultas/minuto por IP)
502CAPTCHA_FALHOUFalha na resolução do captcha do SEFAZ
503SITE_INDISPONIVELSEFAZ fora do ar
500ERRO_INTERNOErro inesperado — abrir ticket

Retry recomendado#

Para 502 e 503 (problemas do SEFAZ), retry com backoff exponencial até 3 tentativas:

javascript
async function consultarComRetry(args, tentativas = 3) {
  for (let i = 0; i < tentativas; i++) {
    try {
      return await consultarIE(args);
    } catch (err) {
      const transient = /502|503/.test(err.message);
      if (!transient || i === tentativas - 1) throw err;
      const espera = Math.min(2 ** i * 1000 + Math.random() * 500, 10000);
      await new Promise(r => setTimeout(r, espera));
    }
  }
}

Para 400 (parâmetro inválido), não tentar de novo — o input está errado.


Quando vale a pena migrar do SINTEGRA manual#

Faz sentido considerar API quando aparece pelo menos um destes:

  • Mais de 20-30 consultas/mês — operador manual perde mais tempo do que o plano Lite custa.
  • Necessidade de validação em tempo real no momento do cadastro (sistema próprio, ERP, marketplace).
  • Operação multi-estado — gerenciar 27 portais com 27 captchas é inviável.
  • Compliance recorrente — verificar fornecedores ativos 1x por mês (LGPD, lei anticorrupção, lavagem de dinheiro).
  • Validação de NF-e pré-emissão — rejeição NF-e por IE inválida (código 215) custa retrabalho e atraso na entrega da mercadoria.

Os três indicadores comuns de "passou da hora":

  1. Você tem uma planilha "Excel — IEs a validar" que cresce mais rápido do que a equipe consegue limpar.
  2. Sua equipe fiscal já reclamou de captcha do SEFAZ.
  3. Sua área comercial ou crédito já fechou negócio sem validar IE — e o cliente bateu rejeição na primeira NF-e.

Boas práticas de integração#

1. Não armazene API key no front-end. Toda chamada deve ser feita pelo backend. Front-end que chama API direto vaza chave no DevTools.

2. Timeout client-side ≥ 15s. SEFAZ pode demorar. Timeout curto demais gera retries desnecessários.

3. Log estruturado. Salve request_id, cached e timestamp da consulta na sua base — útil para auditoria, troubleshooting e suporte.

4. Validação de input. CNPJ com dígito verificador errado, UF inválida, CPF de 10 dígitos — valide antes de chamar a API, economiza cota.

5. Trate `results` como array. Mesmo quando você espera 1 resultado, alguns CPFs de produtor rural retornam múltiplas IEs (propriedades em municípios diferentes do mesmo estado). Use results[0] defensivamente.

6. Use o dashboard para casos pontuais. Antes de codar a integração, valide o caso de uso no dashboard FiscalAPI — mesma API por trás, zero código.


Perguntas frequentes#

A API funciona para CPF de produtor rural? Sim. Use o parâmetro cpf em vez de cnpj. A resposta indica tipo_ie: "PRODUTOR RURAL" quando o cadastro é dessa categoria.

Qual o limite de requisições por minuto? Usuários autenticados (com API key) seguem o rate limit do plano contratado. Usuários demo (sem API key) podem fazer no máximo 3 consultas por minuto por IP, e recebem dados parcialmente mascarados.

E se eu não souber a UF da empresa? A API exige uf. Para descobrir a UF a partir do CNPJ, faça primeiro uma consulta CNPJ na Receita Federal (ou pelo dashboard FiscalAPI) e use o estado da matriz ou filial relevante.

Existe SDK oficial? A API REST é simples o suficiente para integrar com o cliente HTTP nativo de qualquer linguagem. Os exemplos em Node.js e Python deste artigo são autocontidos.

Como migrar de outro provedor (SINTEGRA-WS, Infosimples, etc.)? A estrutura de query é parecida; o que muda são os nomes dos campos de resposta. Mapear results[0].situacao_ie → o equivalente no outro provedor é geralmente trabalho de 1 dia.

A FiscalAPI revende dados ou usa para outros fins? Não. Dados consultados são exclusivos do cliente que fez a consulta. Para detalhes, ver os termos no site.


Próximo passo#

Conheça os planos da FiscalAPI — a partir de R$ 19,99/mês com dashboard sem código, API integrada para os 27 estados, documentação em PT-BR. Para começar a testar antes de assinar, use o demo público no dashboard (3 consultas/minuto por IP). Documentação técnica em docs.fiscalapi.com.br.


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 →