# Imóveis Rurais (CNIR/CAFIR)

> Consulta o Cadastro Nacional de Imóveis Rurais (CNIR/CAFIR) da Receita Federal.

URL: https://docs.fiscalapi.com.br/docs/cnir/imoveis-rurais


`GET&#x60; &#x2A;*`/api/consultar-cnir`**

Consulta o Cadastro Nacional de Imóveis Rurais (CNIR), também conhecido como CAFIR (Cadastro de Imóveis Rurais), mantido pela Receita Federal do Brasil. Retorna dados cadastrais do proprietário e a lista completa de imóveis rurais vinculados ao documento, incluindo informações de área, localização, situação e dados tributários.

<Callout type="info">
  O **CNIR** (Cadastro Nacional de Imóveis Rurais) é a base de dados oficial da Receita Federal que registra todos os imóveis rurais do Brasil. Cada imóvel é identificado pelo **CIB** (Cadastro Imobiliário Brasileiro) e pelo **NIRF** (Número do Imóvel na Receita Federal). Esses dados são essenciais para verificação de regularidade fundiária e tributária (ITR).
</Callout>

## ## Autenticação

Envie sua chave no header `X-API-Key`. Veja [Autenticação](/docs/getting-started/authentication) para detalhes.

## ## Parâmetros de consulta

Você deve informar **exatamente um** dos parâmetros `cpf` ou `cnpj` (não ambos).

| Name   | Type   | Required | Description                                         |
| ------ | ------ | -------- | --------------------------------------------------- |
| `cpf`  | string | Não      | CPF do proprietário (somente números, 11 dígitos).  |
| `cnpj` | string | Não      | CNPJ do proprietário (somente números, 14 dígitos). |

## ## Exemplos de código

<Tabs items="[&#x22;curl&#x22;, &#x22;JavaScript&#x22;, &#x22;Python&#x22;, &#x22;PHP&#x22;, &#x22;C#&#x22;]">
  <Tab value="curl">
    ```bash
    curl -X GET "https://api.fiscalapi.com.br/api/consultar-cnir?cpf=12345678909" \
      -H "X-API-Key: fapi_sua_chave_aqui"
    ```
  </Tab>

  <Tab value="JavaScript">
    ```javascript
    const response = await fetch(
      "https://api.fiscalapi.com.br/api/consultar-cnir?cpf=12345678909",
      { headers: { "X-API-Key": "fapi_sua_chave_aqui" } }
    );
    const data = await response.json();
    console.log(`Total de imoveis: ${data.total_imoveis}`);
    data.imoveis_cafir.forEach((imovel) => {
      console.log(`${imovel.denominacao} - ${imovel.area_total} ha`);
    });
    ```
  </Tab>

  <Tab value="Python">
    ```python
    import requests

    response = requests.get(
        "https://api.fiscalapi.com.br/api/consultar-cnir",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"cpf": "12345678909"},
    )
    data = response.json()
    print(f"Total de imoveis: {data['total_imoveis']}")
    for imovel in data["imoveis_cafir"]:
        print(f"{imovel['denominacao']} - {imovel['area_total']} ha")
    ```
  </Tab>

  <Tab value="PHP">
    ```php
    $response = Http::withHeaders([
        'X-API-Key' => 'fapi_sua_chave_aqui',
    ])->get('https://api.fiscalapi.com.br/api/consultar-cnir', [
        'cpf' => '12345678909',
    ]);
    $data = $response->json();
    ```
  </Tab>

  <Tab value="C#">
    ```csharp
    var client = new HttpClient();
    client.DefaultRequestHeaders.Add("X-API-Key", "fapi_sua_chave_aqui");
    var response = await client.GetAsync(
        "https://api.fiscalapi.com.br/api/consultar-cnir?cpf=12345678909"
    );
    var data = await response.Content.ReadAsStringAsync();
    ```
  </Tab>
</Tabs>

## ## Resposta

### ### Campos de nível superior

| Campo                  | Tipo           | Descrição                                                     |
| ---------------------- | -------------- | ------------------------------------------------------------- |
| `request_id`           | string         | Identificador único da requisição (UUID).                     |
| `document`             | string         | Documento enviado na consulta.                                |
| `document_type`        | string         | Tipo do documento: `cpf` ou `cnpj`.                           |
| `source_status`        | object         | Status da consulta (`status`, `error_code`, `error_message`). |
| `pessoa_fisica`        | object \| null | Dados cadastrais da pessoa física (quando CPF).               |
| `pessoa_juridica`      | object \| null | Dados cadastrais da pessoa jurídica (quando CNPJ).            |
| `imoveis_cafir`        | array          | Lista de imóveis rurais cadastrados.                          |
| `total_imoveis`        | integer        | Total de imóveis encontrados.                                 |
| `total_imoveis_ativos` | integer        | Total de imóveis com situação ativa.                          |

### ### Campos de `pessoa_fisica`

| Campo                | Tipo   | Descrição                                  |
| -------------------- | ------ | ------------------------------------------ |
| `nome`               | string | Nome completo.                             |
| `data_nascimento`    | string | Data de nascimento (formato `YYYY-MM-DD`). |
| `situacao_cadastral` | string | Situação cadastral na Receita Federal.     |
| `sexo`               | string | Sexo (`M` ou `F`).                         |

### ### Campos de cada imóvel (`imoveis_cafir[]`)

| Campo                     | Tipo    | Descrição                                                        |
| ------------------------- | ------- | ---------------------------------------------------------------- |
| `cib`                     | string  | Cadastro Imobiliário Brasileiro (identificador único do imóvel). |
| `nirf`                    | string  | Número do Imóvel na Receita Federal.                             |
| `denominacao`             | string  | Nome do imóvel (ex: FAZENDA SANTA MARIA).                        |
| `area_total`              | number  | Área total em hectares.                                          |
| `situacao`                | string  | Situação do imóvel (ex: `ATIVA`, `BAIXADA`).                     |
| `codigo_situacao`         | integer | Código numérico da situação.                                     |
| `ni_proprietario`         | string  | Documento do proprietário principal.                             |
| `percentual_proprietario` | number  | Percentual de propriedade (0-100).                               |
| `condominos`              | array   | Lista de condôminos (quando houver).                             |
| `dados_tributarios`       | object  | Informações tributárias do imóvel (ITR).                         |
| `municipio_sede`          | object  | Município sede do imóvel (`codigo`, `uf`, `nome`).               |

### ### Campos de `dados_tributarios`

| Campo                         | Tipo    | Descrição                                                                                                                                                  |
| ----------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `indicador_descaracterizacao` | boolean | Se o imóvel foi descaracterizado como rural.                                                                                                               |
| `origem_imovel`               | integer | Código de origem do imóvel.                                                                                                                                |
| `data_aquisicao`              | string  | Data de aquisição (formato `YYYY-MM-DD`).                                                                                                                  |
| `area_adquirida`              | number  | Área adquirida em hectares.                                                                                                                                |
| `tipo_aquisicao`              | string  | Tipo de aquisição (ex: `COMPRA`, `HERANCA`).                                                                                                               |
| `imunidades`                  | array   | Períodos de imunidade tributária. Cada item tem `inicio` e `fim` (`YYYY-MM-DD`; `fim` é `null` se a imunidade segue vigente) e `motivo` (código do CAFIR). |
| `possui_decisao_judicial`     | boolean | Se existe decisão judicial sobre o imóvel.                                                                                                                 |

### ### Exemplo de resposta

```json
{
  "request_id": "uuid",
  "document": "12345678909",
  "document_type": "cpf",
  "source_status": { "status": "success" },
  "pessoa_fisica": {
    "nome": "JOAO DA SILVA",
    "data_nascimento": "1980-05-15",
    "situacao_cadastral": "ATIVA",
    "sexo": "M"
  },
  "pessoa_juridica": null,
  "imoveis_cafir": [
    {
      "cib": "0.000.000-0",
      "nirf": "0000000",
      "denominacao": "FAZENDA SANTA MARIA",
      "area_total": 5000.5,
      "situacao": "ATIVA",
      "codigo_situacao": 1,
      "ni_proprietario": "12345678909",
      "percentual_proprietario": 100.0,
      "condominos": [],
      "dados_tributarios": {
        "indicador_descaracterizacao": false,
        "origem_imovel": 1,
        "data_aquisicao": "2015-06-01",
        "area_adquirida": 5000.5,
        "tipo_aquisicao": "COMPRA",
        "imunidades": [
          { "inicio": "2015-01-01", "fim": "2020-12-31", "motivo": "B" }
        ],
        "possui_decisao_judicial": false
      },
      "municipio_sede": {
        "codigo": "5103403",
        "uf": "MT",
        "nome": "RONDONOPOLIS"
      }
    }
  ],
  "total_imoveis": 1,
  "total_imoveis_ativos": 1
}
```

## ## Códigos de erro

| Código                  | HTTP Status | Descrição                                           |
| ----------------------- | ----------- | --------------------------------------------------- |
| `PARAMETRO_AUSENTE`     | 400         | Nenhum documento (cpf ou cnpj) foi informado.       |
| `PARAMETRO_CONFLITANTE` | 400         | Ambos cpf e cnpj foram informados. Envie apenas um. |
| `ERRO_INTERNO`          | 500         | Erro interno no servidor.                           |
