# Parcelas SIGEF (INCRA)

> Consulta parcelas georreferenciadas certificadas no SIGEF (Sistema de Gestão Fundiária do INCRA).

URL: https://docs.fiscalapi.com.br/docs/sigef/parcelas


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

Consulta parcelas georreferenciadas de imóveis rurais certificadas no **SIGEF** (Sistema de Gestão Fundiária), mantido pelo INCRA. Para cada parcela, retorna os dados cadastrais (área, município, detentor, matrícula, cartório, situação), o responsável técnico, o histórico de requerimentos e a geometria certificada: o polígono da parcela em WKT, todos os vértices com coordenadas, os limites com seus confrontantes, centroide, bounding box e perímetro.

<Callout type="info">
  O **SIGEF** é complementar ao [CNIR](/docs/cnir/imoveis-rurais). Enquanto o CNIR contém os dados fiscais e tributários (ITR) de todos os imóveis rurais, o SIGEF registra **apenas os imóveis georreferenciados** com limites certificados pelo INCRA — o padrão exigido para registro em cartório desde 2011. Use o SIGEF quando precisar dos limites físicos do imóvel, por exemplo para cruzar com o polígono do CAR.
</Callout>

Já tem o UUID da parcela? Use [Parcela SIGEF por UUID](/docs/sigef/parcela-por-uuid), que não pede CPF/CNPJ e traz também ordem, anel, tipo e precisão de cada vértice.

## ## 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 detentor (somente números, 11 dígitos).  |
| `cnpj` | string | Não      | CNPJ do detentor (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-sigef?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-sigef?cpf=12345678909",
      { headers: { "X-API-Key": "fapi_sua_chave_aqui" } }
    );
    const data = await response.json();
    console.log(`Total de parcelas: ${data.result.total_parcelas}`);
    console.log(`Area total: ${data.result.area_total_ha} ha`);
    data.result.parcelas.forEach((p) => {
      console.log(`${p.denominacao} - ${p.area_ha} ha - ${p.municipio}/${p.uf}`);
    });
    ```
  </Tab>

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

    response = requests.get(
        "https://api.fiscalapi.com.br/api/consultar-sigef",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"cpf": "12345678909"},
    )
    data = response.json()
    print(f"Total de parcelas: {data['result']['total_parcelas']}")
    print(f"Area total: {data['result']['area_total_ha']} ha")
    for p in data["result"]["parcelas"]:
        print(f"{p['denominacao']} - {p['area_ha']} ha - {p['municipio']}/{p['uf']}")
    ```
  </Tab>

  <Tab value="PHP">
    ```php
    $response = Http::withHeaders([
        'X-API-Key' => 'fapi_sua_chave_aqui',
    ])->get('https://api.fiscalapi.com.br/api/consultar-sigef', [
        '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-sigef?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`.                           |
| `cached`        | boolean        | Se a resposta veio do cache (TTL 168h).                       |
| `source_status` | object         | Status da consulta (`status`, `error_code`, `error_message`). |
| `result`        | object \| null | Resultado da consulta (null em caso de erro).                 |

### ### Campos de `result`

| Campo            | Tipo    | Descrição                                   |
| ---------------- | ------- | ------------------------------------------- |
| `total_parcelas` | integer | Total de parcelas certificadas encontradas. |
| `area_total_ha`  | number  | Soma das áreas em hectares.                 |
| `parcelas`       | array   | Lista de parcelas georreferenciadas.        |

### ### Campos de cada parcela (`parcelas[]`)

**Identificação e registro**

| Campo            | Tipo   | Descrição                                               |
| ---------------- | ------ | ------------------------------------------------------- |
| `parcel_id`      | string | Identificador (UUID) da parcela no SIGEF.               |
| `codigo_parcela` | string | Código da parcela no SIGEF.                             |
| `denominacao`    | string | Nome do imóvel.                                         |
| `area_ha`        | number | Área em hectares.                                       |
| `municipio`      | string | Município sede.                                         |
| `uf`             | string | Unidade federativa (sigla).                             |
| `codigo_ibge`    | string | Código IBGE do município.                               |
| `detentor`       | string | Nome do detentor (proprietário/posseiro).               |
| `natureza`       | string | Natureza da área (ex: `Particular`).                    |
| `codigo_sncr`    | string | Código do imóvel no SNCR.                               |
| `matricula`      | string | Matrícula do imóvel no cartório de registro de imóveis. |
| `cns`            | string | Código Nacional da Serventia (cartório).                |
| `cartorio`       | string | Nome do cartório.                                       |

**Situação e datas**

| Campo                   | Tipo    | Descrição                                                                      |
| ----------------------- | ------- | ------------------------------------------------------------------------------ |
| `status`                | string  | Situação da parcela (ex: `Certificada - Com Registro em Cartório Confirmado`). |
| `imovel_situacao`       | string  | Situação do imóvel (ex: `Imóvel Registrado`).                                  |
| `registro_situacao`     | string  | Situação do registro em cartório (ex: `Confirmado`).                           |
| `num_parcelas_imovel`   | integer | Quantidade de parcelas que compõem o imóvel.                                   |
| `data_certificacao`     | string  | Data da certificação (`DD/MM/AAAA`).                                           |
| `data_certificacao_iso` | string  | Data da certificação em ISO 8601 (`AAAA-MM-DD`).                               |
| `data_entrada`          | string  | Data de entrada no SIGEF (`DD/MM/AAAA`).                                       |
| `data_entrada_iso`      | string  | Data de entrada em ISO 8601.                                                   |
| `requerimentos`         | array   | Histórico de requerimentos: `tipo` (ex: `Retificação`), `status` e `data`.     |

**Responsável técnico**

| Campo                 | Tipo   | Descrição                                                           |
| --------------------- | ------ | ------------------------------------------------------------------- |
| `responsavel_tecnico` | string | Nome do responsável técnico pelo georreferenciamento.               |
| `rt_documento`        | string | Documento de responsabilidade técnica (ART/TRT) informado no SIGEF. |

**Geometria**

| Campo                                                             | Tipo   | Descrição                                                                                                                                                                                                                                                                   |
| ----------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `geometria_wkt`                                                   | string | Polígono da parcela em WKT (`POLYGON ((lon lat, ...))`, SIRGAS 2000), pronto para uso em ferramentas de GIS.                                                                                                                                                                |
| `vertices`                                                        | array  | Todos os vértices do perímetro, na ordem do SIGEF. Cada item: `codigo`, `latitude` e `longitude` (texto em graus, minutos e segundos), `latitude_decimal` e `longitude_decimal` (graus decimais, SIRGAS 2000), `altitude_m` e `metodo` (método de posicionamento).          |
| `confrontantes`                                                   | array  | Todos os limites (lados) da parcela. Cada item: `do_vertice` e `ao_vertice`, `tipo_limite`, `lado`, `azimute`, `comprimento_m`, `descricao` (texto do confrontante, como matrícula vizinha, estrada ou rio) e, quando houver, `cns` e `matricula` ou `ocupante` do vizinho. |
| `centroid_lat` / `centroid_lng`                                   | number | Centroide calculado a partir dos vértices.                                                                                                                                                                                                                                  |
| `bbox_min_lat` / `bbox_min_lng` / `bbox_max_lat` / `bbox_max_lng` | number | Retângulo envolvente (bounding box) dos vértices.                                                                                                                                                                                                                           |
| `perimetro_m`                                                     | number | Perímetro em metros (soma dos comprimentos dos limites).                                                                                                                                                                                                                    |

Os campos `indice`, `tipo`, `lado`, `sigma_x_m`/`sigma_y_m`/`sigma_z_m` (vértices) e `indice`, `azimute_decimal`, `geometria_wkt` (limites) só são preenchidos na [consulta por UUID](/docs/sigef/parcela-por-uuid). Aqui eles vêm `null` ou vazios.

<Callout type="info">
  Para cruzar a parcela com outra geometria (por exemplo, o polígono do CAR), use `geometria_wkt` direto em qualquer biblioteca de GIS (PostGIS, Shapely, GeoPandas, QGIS).
</Callout>

### ### Exemplo de resposta

```json
{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "document": "12345678909",
  "document_type": "cpf",
  "cached": false,
  "source_status": { "status": "success", "error_code": "", "error_message": "" },
  "result": {
    "total_parcelas": 1,
    "area_total_ha": 120.55,
    "parcelas": [
      {
        "parcel_id": "b085a96d-8461-402c-bf2b-3c9ab1806d30",
        "codigo_parcela": "ABC123-4567",
        "denominacao": "Fazenda Boa Vista",
        "area_ha": 120.55,
        "municipio": "Pontes e Lacerda",
        "uf": "MT",
        "codigo_ibge": "5106752",
        "detentor": "JOAO DA SILVA",
        "natureza": "Particular",
        "codigo_sncr": "9511100017838",
        "matricula": "12345",
        "cns": "06.503-7",
        "cartorio": "Primeiro Serviço Notarial e Registral",
        "status": "Certificada - Com Registro em Cartório Confirmado",
        "imovel_situacao": "Imóvel Registrado",
        "registro_situacao": "Confirmado",
        "num_parcelas_imovel": 1,
        "data_certificacao": "15/03/2022",
        "data_certificacao_iso": "2022-03-15",
        "data_entrada": "10/05/2021",
        "data_entrada_iso": "2021-05-10",
        "responsavel_tecnico": "MARIA OLIVEIRA",
        "rt_documento": "MT20210012345",
        "geometria_wkt": "POLYGON ((-59.335416 -15.2092, -59.3198 -15.2079, -59.3301 -15.2201, -59.335416 -15.2092))",
        "requerimentos": [
          { "tipo": "Registro", "status": "Finalizado", "data": "20/04/2022" }
        ],
        "vertices": [
          {
            "codigo": "ABCD-M-0001",
            "longitude": "-59°20'07,497\"",
            "latitude": "-15°12'33,120\"",
            "longitude_decimal": -59.335416,
            "latitude_decimal": -15.2092,
            "altitude_m": 254.3,
            "metodo": "PG1"
          }
        ],
        "confrontantes": [
          {
            "do_vertice": "ABCD-M-0001",
            "ao_vertice": "ABCD-P-0002",
            "descricao": "CNS: 06.503-7 - Mat. 29.290",
            "cns": "06.503-7",
            "matricula": "29.290",
            "ocupante": "",
            "lado": "EXTERNO",
            "tipo_limite": "LA6",
            "azimute": "92°14'",
            "comprimento_m": 1250.4
          }
        ],
        "centroid_lat": -15.2135,
        "centroid_lng": -59.3301,
        "bbox_min_lat": -15.2201,
        "bbox_min_lng": -59.3412,
        "bbox_max_lat": -15.2079,
        "bbox_max_lng": -59.3198,
        "perimetro_m": 4820.7
      }
    ]
  }
}
```

No exemplo, `geometria_wkt`, `vertices` e `confrontantes` foram encurtados. Na resposta real eles trazem todos os pontos e limites da parcela.

## ## 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.                                    |
| `SIGEF_UNAVAILABLE`     | 200         | O SIGEF não respondeu a tempo ou está indisponível. Tente novamente em alguns minutos. |
| `SIGEF_MAINTENANCE`     | 200         | O SIGEF está em manutenção programada pelo INCRA. Tente novamente mais tarde.          |
| `SIGEF_DISABLED`        | 200         | Consulta SIGEF temporariamente desativada.                                             |
| `ERRO_INTERNO`          | 500         | Erro interno no servidor.                                                              |

Nos erros com HTTP 200, o código vem em `source_status.error_code` e `result` vem `null`. Consultas com erro **não são cobradas**.

## ## Diferenças entre CNIR e SIGEF

| Aspecto                 | CNIR (`/consultar-cnir`)            | SIGEF (`/consultar-sigef`)                                  |
| ----------------------- | ----------------------------------- | ----------------------------------------------------------- |
| Fonte                   | Receita Federal                     | INCRA                                                       |
| Escopo                  | Todos os imóveis rurais cadastrados | Apenas parcelas georreferenciadas (certificadas pelo INCRA) |
| Dados fiscais           | Sim (ITR, CIB, NIRF)                | Não                                                         |
| Dados georreferenciados | Não                                 | Sim (limites certificados)                                  |
| Uso típico              | Verificação de regularidade fiscal  | Verificação de regularidade fundiária                       |
