# IBAMA - Certificado de Regularidade

> Consulta a regularidade ambiental de pessoas físicas e jurídicas. Gera certificados oficiais necessários para licitações, financiamentos e certificações ambientais.

- **Consulta:** `ibama-regularidade`
- **Categoria:** Ambiental
- **Preço:** R$ 0,51 por consulta
- **Endpoint:** `GET https://app.fontedata.com/api/v1/consulta/ibama-regularidade`
- **Autenticação:** header `X-API-Key`
- **Página:** https://fontedata.com/docs/ambiental/ibama-regularidade

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> Consulta o **Cadastro Técnico Federal (CTF/APP)** do IBAMA e informa se a pessoa
> física ou jurídica possui **Certificado de Regularidade** válido — o documento que
> atesta o cumprimento das obrigações cadastrais e de prestação de informações
> ambientais junto ao órgão.
>
> É exigido em processos licitatórios, na aprovação de financiamentos em bancos
> públicos, na obtenção de licenças estaduais e em certificações ambientais.

## Requisição

### cURL

```bash
curl -H "X-API-Key: SUA_CHAVE" \
  "https://app.fontedata.com/api/v1/consulta/ibama-regularidade?cpf=SEU_CPF"
```

### Python

```python
import requests

resp = requests.get(
    "https://app.fontedata.com/api/v1/consulta/ibama-regularidade",
    params={"cpf": "SEU_CPF"},
    headers={"X-API-Key": "SUA_CHAVE"},
    timeout=60,
)
resp.raise_for_status()
print(resp.json())
```

### Node.js

```javascript
const url = new URL("https://app.fontedata.com/api/v1/consulta/ibama-regularidade");

url.search = new URLSearchParams({
  "cpf": "SEU_CPF"
}).toString();

const resp = await fetch(url, {
  method: "GET",
  headers: { "X-API-Key": "SUA_CHAVE" }
});

if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
console.log(await resp.json());
```

## Parâmetros

Informe `cpf` ou `cnpj`.

| Nome | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
| `cpf` | CPF | condicional | CPF da pessoa fisica a consultar (certificado de regularidade do CTF). Informe **cpf** OU **cnpj**. Aceita com ou sem pontuacao. | formato: 000.000.000-00 |
| `cnpj` | CNPJ | condicional | CNPJ da pessoa juridica a consultar (certificado de regularidade do CTF). Informe **cpf** OU **cnpj**. Aceita com ou sem pontuacao. | formato: 00.000.000/0000-00 |

## Resposta

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> | Campo | Tipo | Descrição |
> |-------|------|-----------|
> | `documento` | string | CPF ou CNPJ pesquisado, com máscara. |
> | `constaCertificado` | boolean | `true` quando existe certificado de regularidade emitido. |
> | `nomeEmpresarial` | string \| null | Razão social registrada. |
> | `nomeFantasia` | string \| null | Nome comercial, quando houver. |
> | `numeroRegistro` | string \| null | Número de inscrição no CTF. |
> | `dataEmissao` | string \| null | Data de emissão do certificado. |
> | `dataValidade` | string \| null | Data de vencimento do certificado. |
> | `dataAbertura` | string \| null | Data de constituição/inscrição. |
> | `dataConsulta` | string | Data em que a consulta foi feita. |
> | `observacao` | string \| null | Mensagem do órgão quando **não** há certificado. |
> | `categorias` | object \| null | Categorias de atividade registradas. Ver abaixo. |
> | `atividades` | object \| null | Bloco de atividades. Vem `null` na prática. |
> | `logradouro`, `numero`, `complemento`, `bairro`, `municipio`, `uf`, `cep` | — | Endereço do registro. |
>
> ### `categorias`
>
> Quando **há** certificado, vem `{"listaCategorias": [{"categoria", "detalhe"}], "observacaoCategoria": "<mensagem do órgão>"}`.
> Quando **não** há, vem `null` e a mensagem do órgão fica em `observacao`.

### Exemplo de resposta

```json
{
  "uf": "string",
  "cep": "string",
  "bairro": "string",
  "numero": "number",
  "documento": "string",
  "municipio": "string",
  "atividades": null,
  "categorias": {
    "listaCategorias": [
      {
        "detalhe": "string",
        "categoria": "string"
      }
    ]
  },
  "logradouro": "string",
  "observacao": null,
  "complemento": "string",
  "dataEmissao": "string",
  "dataAbertura": "string",
  "dataConsulta": "string",
  "dataValidade": "string",
  "nomeFantasia": "string",
  "numeroRegistro": "string",
  "nomeEmpresarial": "string",
  "constaCertificado": "boolean"
}
```

### Schema da resposta

```json
{
  "type": "object",
  "properties": {
    "uf": {
      "type": [
        "string",
        "null"
      ],
      "description": "Unidade Federativa (estado)."
    },
    "cep": {
      "type": [
        "string",
        "null"
      ],
      "description": "Código de Endereçamento Postal."
    },
    "bairro": {
      "type": [
        "string",
        "null"
      ],
      "description": "Bairro do endereço."
    },
    "numero": {
      "type": [
        "number",
        "null"
      ],
      "description": "Número do endereço."
    },
    "documento": {
      "type": [
        "string",
        "null"
      ],
      "description": "Número do CPF ou CNPJ."
    },
    "municipio": {
      "type": [
        "string",
        "null"
      ],
      "description": "Município ou cidade."
    },
    "atividades": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "listaAtividades": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": "Lista de atividades."
        },
        "observacaoAtividade": {
          "type": [
            "string",
            "null"
          ],
          "description": "Observações sobre as atividades."
        }
      },
      "description": "Dados de atividades relacionadas ao registro."
    },
    "categorias": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "listaCategorias": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "detalhe": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Detalhes da categoria."
              },
              "categoria": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Nome da categoria."
              }
            }
          },
          "description": "Lista de categorias."
        },
        "observacaoCategoria": {
          "type": [
            "string",
            "null"
          ],
          "description": "Observações sobre as categorias."
        }
      },
      "description": "Dados de categorias relacionadas ao registro."
    },
    "logradouro": {
      "type": [
        "string",
        "null"
      ],
      "description": "Nome da rua, avenida ou via pública."
    },
    "observacao": {
      "type": [
        "string",
        "null"
      ],
      "description": "Observação geral sobre o registro."
    },
    "complemento": {
      "type": [
        "string",
        "null"
      ],
      "description": "Complemento do endereço."
    },
    "dataEmissao": {
      "type": [
        "string",
        "null"
      ],
      "description": "Data de emissão do certificado no formato dd/MM/yyyy HH:mm:ss."
    },
    "dataAbertura": {
      "type": [
        "string",
        "null"
      ],
      "description": "Data de abertura da entidade no formato dd/MM/yyyy HH:mm:ss."
    },
    "dataConsulta": {
      "type": [
        "string",
        "null"
      ],
      "description": "Data da consulta no formato dd/MM/yyyy HH:mm:ss."
    },
    "dataValidade": {
      "type": [
        "string",
        "null"
      ],
      "description": "Data de validade do certificado no formato dd/MM/yyyy HH:mm:ss."
    },
    "nomeFantasia": {
      "type": [
        "string",
        "null"
      ],
      "description": "Nome fantasia da entidade."
    },
    "numeroRegistro": {
      "type": [
        "string",
        "null"
      ],
      "description": "Número de identificação do registro."
    },
    "nomeEmpresarial": {
      "type": [
        "string",
        "null"
      ],
      "description": "Nome ou razão social da entidade."
    },
    "constaCertificado": {
      "type": [
        "boolean",
        "null"
      ],
      "format": "bool",
      "description": "Indica se existe certificado válido para a entidade."
    }
  }
}
```

## Códigos de erro

| Código | Mensagem | Quando acontece |
|---|---|---|
| `400` | Requisição Inválida | a requisição está incorreta ou os parâmetros são inválidos. |
| `401` | Não Autenticado | o usuário não forneceu as credenciais corretas para acessar o recurso. |
| `403` | Não Autorizado | o servidor recebeu a requisição, mas se negou a autorizá-la por conta de saldo indisponível. |
| `404` | Não Encontrado | o servidor não encontrou uma representação atual do recurso solicitado. |
| `408` | Tempo Esgotado | o servidor não conseguiu retornar a requisição no prazo estabelecido. |
| `500` | Falha ao Realizar Consulta | o servidor não conseguiu processar a requisição com sucesso. Por favor, entre em contato com o nosso suporte. |
| `503` | Consulta em Manutenção | a consulta requisitada está em manutenção. Por favor, entre em contato com o nosso suporte. |

## Como ler o resultado

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> - `constaCertificado: true` → a pessoa possui Certificado de Regularidade emitido e
>   válido até `dataValidade`.
> - `constaCertificado: false` → **não** possui. A explicação do órgão vem em
>   `observacao`, e normalmente é a ausência de inscrição ativa no CTF ou o
>   descumprimento de obrigações cadastrais. Note que **não ter certificado não é o
>   mesmo que ter irregularidade ambiental** — muitas atividades sequer exigem
>   inscrição no CTF.

## Quando nada consta

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> Se a fonte não encontra registro algum para o documento, a resposta **não** traz os
> campos acima. Ela vem no formato curto de negativa:
>
> ```json
> {
>   "consta": false,
>   "mensagem": "Nada consta para os parâmetros informados.",
>   "parametros": { "cnpj": "00000000000191" }
> }
> ```
>
> Trate `consta: false` como o "nada consta" definitivo. **Não** assuma que os demais
> campos existem sempre — teste a presença antes de ler. Medido em 27/07/2026: esse é
> o formato de 15 em 20 consultas deste endpoint.

## Observações

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> - Fonte oficial: IBAMA — Cadastro Técnico Federal,
>   <https://servicos.ibama.gov.br/ctf/publico/certificado_regularidade.php>.
> - O certificado do CTF/APP **não** dispensa licenças, autorizações e alvarás de
>   outros entes, nem habilita o transporte de produtos florestais e faunísticos.
> - A consulta aceita CPF **ou** CNPJ; enviar os dois é erro de parâmetro.

## Quando a certidão não é emitida

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> Quando a fonte oficial **não localiza o titular** do documento informado, a certidão não é emitida e a consulta responde:
>
> ```json
> HTTP 404
> {"error": {"code": "certidao_nao_emitida", "message": "..."}}
> ```
>
> Esse retorno **não significa regularidade ambiental** — significa que a fonte não conseguiu identificar o titular e, portanto, não emitiu o documento. A consulta é cobrada normalmente, pois a fonte foi efetivamente acionada e cobra por essa tentativa.

---

Página em HTML: https://fontedata.com/docs/ambiental/ibama-regularidade
Catálogo completo: https://fontedata.com/docs
OpenAPI (JSON): https://app.fontedata.com/api/v1/openapi.json
Conectar via MCP: https://fontedata.com/docs/mcp
