Crédito rural: como checar IE, imóveis e certidões do produtor por API
Na análise de crédito rural, cada base responde uma pergunta: o produtor está ativo no estado? Quais imóveis ele tem? Onde ficam os limites? Está regular? Este guia junta as quatro num fluxo de API, com o que cada uma mostra e o que fica de fora.
Quais documentos a operação exige depende da linha de crédito e da política da instituição. As regras gerais estão no Manual de Crédito Rural (MCR), do Banco Central, que muda com frequência por resolução do CMN.
O checklist#
| Base | Mostra | Não mostra | Rota |
|---|---|---|---|
| Inscrição estadual | IEs do CPF nos 27 estados, situação, município de cada uma | Área, posse ou propriedade do imóvel | GET /api/consultar-ie-todos?cpf= |
| CNIR/CAFIR | Imóveis rurais do CPF ou CNPJ na Receita: CIB, NIRF, área, situação, município, percentual do proprietário e condôminos | Se o ITR está pago; os limites georreferenciados | GET /api/consultar-cnir?cpf= |
| SIGEF | Parcelas certificadas pelo INCRA: matrícula, cartório, área, polígono em WKT | Imóvel sem georreferenciamento certificado | GET /api/consultar-sigef?cpf= |
| Certidões | CND estadual nos 27 estados, CNDT, CND Federal e CRF/FGTS | PDFs (vêm nas rotas individuais) | GET /api/certidoes-todas?cpf= |
Cada chamada conta 1 consulta, inclusive a de certidões, que junta todas. O dossiê de um produtor custa 4 consultas. Consulta com erro não é cobrada.
Detalhes de cada base: CNIR/CAFIR, produtor rural e certidões.
A ordem das chamadas#
- IE primeiro. Filtra cedo o produtor sem IE habilitada em nenhum estado.
- CNIR e SIGEF em paralelo. Os dois falam do imóvel. O SIGEF pode demorar mais: dê pelo menos 3 minutos de timeout.
- Certidões por último. A consulta consolidada pode passar de um minuto e é encerrada em 90 segundos. Com
skip_estaduais=true, vêm só as federais, mais rápido.
Depois, cruze:
- o município da IE com o município sede do imóvel no CNIR e o da parcela no SIGEF;
- a área declarada na proposta com
area_total(CNIR) earea_ha(SIGEF); - o
percentual_proprietarioe oscondominoscom quem assina a operação; - o polígono
geometria_wktcom as coordenadas da gleba financiada, numa ferramenta de GIS.
O código (JavaScript)#
const BASE = "https://api.fiscalapi.com.br/api";
async function consultar(rota, params, segundos) {
const resp = await fetch(`${BASE}/${rota}?${new URLSearchParams(params)}`, {
headers: { "X-API-Key": process.env.FISCALAPI_KEY }, // só no servidor
signal: AbortSignal.timeout(segundos * 1000),
});
if (resp.status === 429) throw new Error(`Limite por minuto: espere ${resp.headers.get("Retry-After")} s`);
if (resp.status === 402) throw new Error("Saldo do plano esgotado");
if (!resp.ok) return { falhou: `HTTP ${resp.status}` }; // 5xx e 504: tente mais tarde
return resp.json();
}
const habilitado = (s) => (s ?? "").trim().toLowerCase() === "habilitado";
function resumoIEs(r) {
if (r.falhou) return r;
return {
completa: r.complete,
naoBuscaPorCpf: r.results.filter((e) => e.source_status.status === "skipped").map((e) => e.uf),
habilitadas: r.results.flatMap((e) =>
e.results.filter((i) => habilitado(i.situacao_ie))
.map((i) => ({ uf: e.uf, ie: i.inscricao_estadual, municipio: i.municipio }))
),
};
}
function resumoCnir(r) {
if (r.falhou) return r;
if (r.source_status.status !== "success") return { falhou: r.source_status.error_code };
return r.imoveis_cafir.map((i) => ({
nirf: i.nirf,
nome: i.denominacao,
areaHa: i.area_total,
situacao: i.situacao,
municipio: `${i.municipio_sede?.nome}/${i.municipio_sede?.uf}`,
percentual: i.percentual_proprietario,
}));
}
function resumoSigef(r) {
if (r.falhou) return r;
if (r.source_status.status !== "success") return { falhou: r.source_status.error_code };
return r.result.parcelas.map((p) => ({
codigo: p.codigo_parcela,
nome: p.denominacao,
areaHa: p.area_ha,
municipio: `${p.municipio}/${p.uf}`,
matricula: p.matricula,
situacao: p.status,
wkt: p.geometria_wkt,
}));
}
function resumoCertidoes(r) {
if (r.falhou) return r;
return {
// sempre três itens, nesta ordem
federais: r.certidoes_federais.map((c, i) => ({
tipo: ["cndt", "cnd_federal", "crf_fgts"][i],
status: c.result?.status ?? c.source_status.error_code,
validade: c.result?.validade_iso,
})),
estaduais: (r.cnd_estaduais?.results ?? [])
.filter((e) => e.result && e.result.status !== "nao_contribuinte")
.map((e) => ({ uf: e.uf, status: e.result.status, validade: e.result.validade_iso })),
};
}
export async function dossieProdutor(cpf) {
const ie = await consultar("consultar-ie-todos", { cpf }, 120);
const [cnir, sigef] = await Promise.all([
consultar("consultar-cnir", { cpf }, 120),
consultar("consultar-sigef", { cpf }, 200),
]);
const certidoes = await consultar("certidoes-todas", { cpf }, 120);
return {
ies: resumoIEs(ie),
imoveis: resumoCnir(cnir),
parcelas: resumoSigef(sigef),
certidoes: resumoCertidoes(certidoes),
};
} Para produtor com CNPJ, troque cpf por cnpj nas quatro chamadas.
Como ler o resultado#
| Campo | Leitura |
|---|---|
| ies.habilitadas vazio | Nenhuma IE habilitada. Veja naoBuscaPorCpf: em SP, por exemplo, a busca é pela IE ou pelo CNPJ |
| ies.completa: false | Algum estado não respondeu. Consulte de novo antes de concluir |
| imoveis vazio | Nenhum imóvel no CNIR para o documento. Confira se o imóvel está em nome de outra pessoa ou empresa |
| parcelas vazio | Nenhuma parcela certificada no SIGEF. Não quer dizer que o imóvel não existe |
| falhou: "SIGEF_MAINTENANCE" ou "SIGEF_UNAVAILABLE" | O SIGEF estava fora. Tente mais tarde. Não é cobrado |
| Certidão negativa ou positiva_com_efeitos_de_negativa | Regular |
| Certidão positiva | Há pendência. Vai para o analista |
| cnd_federal com erro | Por CPF, a CND Federal ainda não sai pela API. Por CNPJ, veja a mensagem |
O status de cada certidão está em homologação de fornecedores.
Limites#
- CND Federal só por CNPJ. Para pessoa física, a Receita pede a data de nascimento, e a API ainda não recebe esse dado. O item volta com
erro, sem cobrança. - PDF das certidões. A consulta consolidada não traz os PDFs. Para guardar o documento, chame a rota individual da certidão.
- SIGEF registra só o certificado. Imóvel sem georreferenciamento certificado pelo INCRA não aparece.
- Busca de IE por CPF. Nem todo estado busca por CPF. São Paulo, por exemplo, só pela IE ou pelo CNPJ.
O que fica fora da FiscalAPI#
Algumas exigências do crédito rural dependem de outras bases:
- ITR: a concessão de crédito rural fica condicionada à comprovação do recolhimento do ITR dos últimos cinco exercícios, com ressalvas (Lei 9.393/1996, art. 20). O CNIR/CAFIR identifica o imóvel pelo NIRF, mas não mostra o pagamento.
- CAR, cadastro de empregadores e embargos ambientais: a Seção 9 do Capítulo 2 do MCR veda crédito rural, entre outros casos, a imóvel sem inscrição ou com inscrição cancelada ou suspensa no CAR, a quem está no cadastro de empregadores que mantiveram trabalhadores em condições análogas à de escravo e a imóvel com embargo ambiental por desmatamento ilegal, conforme as condições e exceções do manual.
Perguntas frequentes#
Qual a diferença entre CNIR e SIGEF? O CNIR/CAFIR é o cadastro fiscal da Receita, com todos os imóveis rurais declarados. O SIGEF, do INCRA, tem só as parcelas com limites certificados, e traz o polígono. Veja CNIR e CAFIR.
Precisa de autorização do produtor para consultar? As consultas pedem só o CPF ou o CNPJ e a chave da API. O uso dos dados segue a LGPD e a base legal da sua instituição.
Dá para rodar para uma carteira inteira? Pela API, uma chamada por documento, dentro do limite por minuto do plano (5, 20, 60 ou 120). Para as IEs da carteira sem código, use a consulta de IE em massa.
Por que começar pela IE? Ela mostra logo se o produtor está ativo em algum estado. Sem IE habilitada, o resto da análise pode esperar. Veja como consultar a IE do produtor pelo CPF.
Fontes#
- Lei 9.393/1996, art. 20, Planalto
- Resolução CMN 5.193/2024, Banco Central: Seção 9 do Capítulo 2 do MCR. Texto vigente do MCR em www3.bcb.gov.br/mcr
- Documentação da FiscalAPI: IE em todos os estados, CNIR/CAFIR, SIGEF e todas as certidões
Artigos relacionados#
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 →