API de Inscrição Estadual e CNPJ para ERPs e hubs de marketplace
Valide a IE e o CNPJ no cadastro do cliente e revalide a base. Uma integração atende todos os clientes do seu sistema.
10 consultas grátis de IE e CNPJ por mês, direto no painel.
O problema
- Seus clientes cadastram compradores de vários estados, e cada estado tem cadastro e regra próprios.
- IE digitada errada ou inativa vira rejeição da nota e chamado no seu suporte.
- A situação muda depois do cadastro: a IE ativa de hoje pode estar baixada no mês que vem.
Como funciona
1. No formulário: confira o dígito
A biblioteca aberta validador-ie confere formato e dígito da IE das 27 UFs, sem consulta e sem custo.
- npm install validador-ie
- pip install validador-ie
2. Ao salvar: consulte a situação
Pelo CNPJ, as IEs nos 27 estados com situação e NF-e. Na Receita, razão social, CNAE e endereço.
- GET /api/consultar-ie-todos?cnpj=...
- GET /api/consultar-cnpj?cnpj=...
3. Todo mês: revalide a base
Com código: um job seu, dentro do limite do plano (5, 20, 60 ou 120 requisições por minuto). Sem código: planilha de até 20.000 linhas no painel.
Ver a consulta em massaExemplo de resposta
Exemplo fictício. Nomes e números foram inventados (o CNPJ e as IEs nem passam no dígito verificador).
No painel
| Inscrição Estadual | Razão social | Situação | NF-e |
|---|---|---|---|
| 123.456.789.110SP | DISTRIBUIDORA EXEMPLO LTDACAMPINAS | Habilitado | NFCe, NFe |
| 12345678-90PR | DISTRIBUIDORA EXEMPLO LTDALONDRINA | Não habilitado | — |
| MG: nenhuma IE encontrada. | |||
- 123.456.789.110SP
DISTRIBUIDORA EXEMPLO LTDACAMPINAS
HabilitadoNF-e: NFCe, NFe - 12345678-90PR
DISTRIBUIDORA EXEMPLO LTDALONDRINA
Não habilitado - MG: nenhuma IE encontrada.
Na API
GET /api/consultar-ie-todos?cnpj=12345678000100
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"document": "12345678000100",
"document_type": "cnpj",
"complete": true,
"results": [
{
"uf": "SP",
"source_status": { "status": "success" },
"results": [
{
"inscricao_estadual": "123456789110",
"razao_social": "DISTRIBUIDORA EXEMPLO LTDA",
"situacao_ie": "Habilitado",
"municipio": "CAMPINAS",
"uf_ie": "SP",
"situacao_nfe": "NFCe, NFe"
}
]
},
{
"uf": "PR",
"source_status": { "status": "success" },
"results": [
{
"inscricao_estadual": "1234567890",
"razao_social": "DISTRIBUIDORA EXEMPLO LTDA",
"situacao_ie": "Não habilitado",
"municipio": "LONDRINA",
"uf_ie": "PR",
"situacao_nfe": ""
}
]
},
{
"uf": "MG",
"source_status": { "status": "success" },
"results": []
}
]
}Leitura: a IE de SP está ativa (Habilitado) e emite NF-e e NFC-e. A do PR está baixada (Não habilitado): não use na nota. Nenhuma IE em MG.
Se complete vier false, algum estado não respondeu. Não trate como “não encontrado”: consulte de novo.
SDKs em Node.js, Python e PHP
Sem dependências de terceiros. Em 429 (limite por minuto), esperam e tentam de novo sozinhos.
npm install fiscalapi-brpip install fiscalapi-brcomposer require fiscalapi-br/fiscalapi-php
import { FiscalAPI } from "fiscalapi-br";
const api = new FiscalAPI(process.env.FISCALAPI_API_KEY);
const r = await api.consultarIeTodos({ cnpj: cnpjDoCliente });
if (r.complete === false) {
// algum estado não respondeu: consulte de novo
}
for (const uf of r.results) {
for (const ie of uf.results) console.log(uf.uf, ie.inscricao_estadual, ie.situacao_ie);
}import os
from fiscalapi_br import FiscalAPI
api = FiscalAPI(os.environ["FISCALAPI_API_KEY"])
r = api.consultar_ie_todos(cnpj=cnpj_do_cliente)
if r["complete"] is False:
pass # algum estado não respondeu: consulte de novo
for uf in r["results"]:
for ie in uf["results"]:
print(uf["uf"], ie["inscricao_estadual"], ie["situacao_ie"])<?php
use FiscalApiBr\FiscalAPI;
$api = new FiscalAPI(getenv('FISCALAPI_API_KEY'));
$r = $api->consultarIeTodos(cnpj: $cnpjDoCliente);
if (($r['complete'] ?? true) === false) {
// algum estado não respondeu: consulte de novo
}
foreach ($r['results'] as $uf) {
foreach ($uf['results'] as $ie) {
echo $uf['uf'], ' ', $ie['inscricao_estadual'], ' ', $ie['situacao_ie'], PHP_EOL;
}
}fiscalapi-br no npmfiscalapi-br no PyPIfiscalapi-php no Packagistn8n-nodes-fiscalapi no npm
Endpoints usados
GET /api/consultar-ie-todos
IEs do CNPJ ou CPF nos 27 estados
GET /api/consultar
IE em um estado, por CNPJ, CPF ou IE
GET /api/consultar-cnpj
Razão social, situação, CNAE, endereço e sócios na Receita Federal
Autenticação pelo header X-API-Key.
Documentação: Consultar IE em todos os estados · Consultar CNPJ · Limite de requisições
Preço
Cada consulta conta como 1 do plano, inclusive a varredura nos 27 estados e o CNPJ na base da Receita. O CNPJ ao vivo conta como 3. Consulta que falha não é cobrada.
Painel e API usam a mesma conta e o mesmo saldo. A chave da API exige um plano ativo ou recarga.
Perguntas frequentes
Uma conta para todos os meus clientes ou uma por cliente?
Os dois funcionam. Numa conta sua, o saldo e o limite por minuto são da conta e somam todos os clientes. Com a chave de cada cliente, cada um tem o próprio plano e limite.
Posso validar no navegador do usuário?
O dígito, sim: a validador-ie roda no navegador e não envia nada. A consulta, não: a chave de API fica no seu servidor.
Tem rota de lote na API?
Não. Pela API é uma chamada por documento, dentro do limite por minuto do plano. Para lote sem código, use a planilha do painel.
A FiscalAPI avisa quando uma IE muda de situação?
Não há aviso automático. Para acompanhar, revalide a base de tempos em tempos, por um job seu ou pela planilha.
Comece pelo painel.
Teste com os CNPJs da sua base antes de integrar.
10 consultas grátis de IE e CNPJ por mês, direto no painel.