Pular para o conteúdo
FiscalAPI
Produtor Rural

Cadastro de produtor rural no laticínio: qual inscrição estadual usar

Equipe FiscalAPI 5 min de leitura
PythonTutorialNF-e

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#

bash
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:

json
{
  "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.

CampoPara que serve
situacao_ieHabilitado ou Não habilitado no cadastro do estado
municipio, logradouro, nome_fantasiaReconhecer a propriedade
situacao_nfeDocumentos eletrônicos habilitados, como NFe
source_status.statussuccess: o estado respondeu. error ou timeout: não respondeu
completefalse 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 emiteOnde vai a IE do produtorRejeições se a IE estiver errada
O laticínio (nota de entrada)Grupo do destinatário, com o CPF233, 624, 306
O próprio produtorGrupo do emitente, com o CPF230, 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#

python
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:

python
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. Compare logradouro e nome_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 veioCausa provávelO que fazer
Nenhuma IE, com o estado respondendoO estado não busca por CPF (caso de São Paulo) ou o produtor não tem inscrição aliPeça o número da IE e consulte com ie=. Sem IE, decida com o fiscal antes da primeira nota
UF em sem_respostaO estado não respondeu a tempoRepita a consulta mais tarde
Só IEs Não habilitadoInscrição baixada, suspensa ou irregularNão compre no automático. O produtor regulariza na SEFAZ

A rotina de safra#

  1. No cadastro do produtor: consulte pelo CPF e grave a IE de cada propriedade.
  2. 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.
  3. 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#

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 →