Cadastro de produtor rural no laticínio: qual inscrição estadual usar
O produtor de leite tem um CPF e, muitas vezes, várias inscrições estaduais: uma por propriedade, às vezes em mais de um estado. A nota da compra precisa da IE da propriedade de onde o leite saiu, e ativa.
Este guia mostra como achar as IEs pelo CPF, escolher a certa e manter a base em dia.
Um CPF, várias IEs#
Para o ICMS, cada estabelecimento do mesmo titular é autônomo, e o local da operação é o estabelecimento onde a mercadoria está (Lei Complementar 87/96, art. 11, I, "a", e § 3º, II). No campo, o estabelecimento é a propriedade. Por isso o mesmo produtor costuma ter uma IE para cada sítio ou fazenda.
Na prática:
- duas propriedades no mesmo município podem ter IEs diferentes;
- uma IE pode estar ativa e a outra baixada;
- a propriedade em outro estado tem IE daquele estado.
Do CPF às IEs, numa chamada#
curl -H "X-API-Key: SUA_CHAVE" \
"https://api.fiscalapi.com.br/api/consultar-ie-todos?cpf=12345678900" A varredura passa pelos 27 estados e conta como 1 consulta. Resposta resumida:
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"document": "12345678900",
"document_type": "cpf",
"complete": true,
"results": [
{
"uf": "MG",
"source_status": { "status": "success" },
"results": [
{
"inscricao_estadual": "0012345670001",
"razao_social": "JOSE EXEMPLO DA SILVA",
"nome_fantasia": "SITIO BOA VISTA",
"situacao_ie": "Habilitado",
"tipo_ie": "IE de Produtor Rural",
"municipio": "PATOS DE MINAS",
"situacao_nfe": "NFe"
},
{
"inscricao_estadual": "0012345670002",
"razao_social": "JOSE EXEMPLO DA SILVA",
"nome_fantasia": "FAZENDA RETIRO",
"situacao_ie": "Não habilitado",
"tipo_ie": "IE de Produtor Rural",
"municipio": "PATOS DE MINAS",
"situacao_nfe": ""
}
]
},
{ "uf": "GO", "source_status": { "status": "success" }, "results": [] }
]
} Exemplo fictício: o CPF e as IEs não passam no dígito verificador. Leitura: duas propriedades em MG, uma habilitada e outra não. Nenhuma IE em GO.
| Campo | Para que serve |
|---|---|
| situacao_ie | Habilitado ou Não habilitado no cadastro do estado |
| municipio, logradouro, nome_fantasia | Reconhecer a propriedade |
| situacao_nfe | Documentos eletrônicos habilitados, como NFe |
| source_status.status | success: o estado respondeu. error ou timeout: não respondeu |
| complete | false quando algum estado não respondeu |
Dois cuidados:
- Resposta incompleta não é "não encontrado". Com
complete: false, a IE pode estar justamente no estado que falhou. Consulte de novo (a nova consulta também conta 1). - Nem todo estado busca por CPF. São Paulo, por exemplo, não busca. Peça ao produtor o número da IE e consulte por ela:
/api/consultar?uf=SP&ie=....
Qual IE vai na nota#
A da propriedade de onde o leite saiu, com situacao_ie igual a Habilitado. Compare o município e o endereço de cada IE com a propriedade da sua rota de coleta.
Onde a IE aparece depende de quem emite a nota, o que segue a legislação de cada estado:
| Quem emite | Onde vai a IE do produtor | Rejeições se a IE estiver errada |
|---|---|---|
| O laticínio (nota de entrada) | Grupo do destinatário, com o CPF | 233, 624, 306 |
| O próprio produtor | Grupo do emitente, com o CPF | 230, 622 |
A 624 e a 622 aparecem quando a IE existe, mas não é daquele CPF. É o erro típico de trocar a IE de um produtor pela de outro com o mesmo sobrenome.
Python: escolher a IE da propriedade#
import os
import unicodedata
import requests
API = "https://api.fiscalapi.com.br/api/consultar-ie-todos"
CHAVE = os.environ["FISCALAPI_KEY"] # nunca no código-fonte
def normalizar(texto: str) -> str:
sem_acento = unicodedata.normalize("NFKD", texto or "").encode("ascii", "ignore").decode()
return " ".join(sem_acento.upper().split())
def ies_do_produtor(cpf: str) -> dict:
resp = requests.get(API, headers={"X-API-Key": CHAVE}, params={"cpf": cpf}, timeout=95)
resp.raise_for_status()
dados = resp.json()
return {
"request_id": dados["request_id"],
"completa": dados.get("complete", True),
"ies": [{**ie, "uf": estado["uf"]} for estado in dados["results"] for ie in estado["results"]],
"sem_resposta": [e["uf"] for e in dados["results"] if e["source_status"]["status"] in ("error", "timeout")],
}
def ie_da_propriedade(ies: list[dict], uf: str, municipio: str) -> tuple[str, list[dict]]:
no_municipio = [
ie for ie in ies
if ie["uf"] == uf and normalizar(ie["municipio"]) == normalizar(municipio)
]
habilitadas = [ie for ie in no_municipio if ie["situacao_ie"].strip().upper() == "HABILITADO"]
if len(habilitadas) == 1:
return ("ok", habilitadas)
if len(habilitadas) > 1:
return ("conferir_endereco", habilitadas) # mais de uma IE habilitada no município
return ("sem_ie_habilitada", no_municipio) Uso:
r = ies_do_produtor("12345678900")
if not r["completa"]:
... # algum estado não respondeu: consulte de novo antes de concluir
status, ies = ie_da_propriedade(r["ies"], "MG", "Patos de Minas") -
ok: uma IE habilitada no município da propriedade. Use-a. -
conferir_endereco: o produtor tem mais de uma IE habilitada ali. Comparelogradouroenome_fantasia. -
sem_ie_habilitada: nenhuma IE habilitada no município. Veja a próxima seção.
Grave a IE escolhida, a situacao_ie, a data e o request_id, que identifica a consulta.
Quando o produtor não aparece#
| O que veio | Causa provável | O que fazer |
|---|---|---|
| Nenhuma IE, com o estado respondendo | O estado não busca por CPF (caso de São Paulo) ou o produtor não tem inscrição ali | Peça o número da IE e consulte com ie=. Sem IE, decida com o fiscal antes da primeira nota |
| UF em sem_resposta | O estado não respondeu a tempo | Repita a consulta mais tarde |
| Só IEs Não habilitado | Inscrição baixada, suspensa ou irregular | Não compre no automático. O produtor regulariza na SEFAZ |
A rotina de safra#
- No cadastro do produtor: consulte pelo CPF e grave a IE de cada propriedade.
- Antes da primeira coleta da safra: revalide a base inteira. Sem código, suba uma planilha de até 20.000 CPFs ou IEs na consulta de IE em massa.
- Todo mês: reconsulte quem entrega com frequência. Pela API, um job seu, dentro do limite do plano (5, 20, 60 ou 120 requisições por minuto).
A FiscalAPI não avisa quando uma IE muda de situação. Quem percebe a mudança é a revalidação: veja como montar o job.
O fluxo completo para laticínios, frigoríficos e cooperativas está em cadastro de produtor rural para laticínios e cooperativas.
Perguntas frequentes#
O produtor pode usar a mesma IE para todas as propriedades? Em regra, não. Cada estabelecimento é autônomo para o ICMS, e a IE identifica o estabelecimento. Exceções dependem da legislação do estado: confirme com o fiscal.
Dá para achar todas as IEs só com o CPF? Na maioria dos estados, sim. São Paulo, por exemplo, só consulta pelo CNPJ ou pela própria IE.
Antes de consultar, dá para conferir se a IE foi digitada certo? Sim, pelo dígito verificador, de graça e sem rede. Use o validador de inscrição estadual. O dígito certo não prova que a IE está ativa: veja dígito verificador ou consulta.
A consulta traz os imóveis rurais do produtor? A consulta de IE, não. Os imóveis do CPF no CNIR/CAFIR vêm de GET /api/consultar-cnir. Veja CNIR/CAFIR.
Fontes#
- Lei Complementar 87/1996, art. 11 (local da operação e autonomia do estabelecimento), Planalto
- MOC 7.0, Anexo I: Leiaute e Regras de Validação da NF-e e da NFC-e (PDF), Confaz: regras 1C17 e 5E17
- Consultar IE em todos os estados, documentação da FiscalAPI
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 →