# Consultar CNPJ

> Consulta dados cadastrais de um CNPJ na Receita Federal (razão social, CNAE, QSA, endereço, Simples Nacional e MEI, contato e mais).

URL: https://docs.fiscalapi.com.br/docs/enriquecimento/consultar-cnpj


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

Consulta os dados cadastrais de uma empresa na Receita Federal pelo CNPJ. Retorna razão social, situação cadastral (com motivo e situação especial), data de abertura, matriz ou filial, CNAE principal e secundários, quadro societário (QSA), capital social, endereço, telefones, e-mail (quando a Receita Federal o publica) e a opção pelo Simples Nacional e pelo MEI.

## ## Autenticação

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

## ## Parâmetros de consulta

| Name          | Type    | Required | Description                                                                                                                                                              |
| ------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `cnpj`        | string  | Sim      | CNPJ do contribuinte (somente números, 14 dígitos).                                                                                                                      |
| `force_fresh` | boolean | Não      | Quando `true`, consulta os dados **AO VIVO** na Receita Federal (dados atuais), em vez da base pública mensal. Conta como **3 consultas** (padrão: `false`, 1 consulta). |

## ## Frescor dos dados: base mensal vs ao vivo

Por padrão a consulta usa a **base pública mensal** da Receita Federal — rápida e barata (1 consulta), mas pode estar defasada em até \~1 mês (ex.: uma empresa que mudou de natureza jurídica recentemente ainda pode aparecer com os dados antigos).

Para o dado **atual**, use `force_fresh=true`: a consulta vai **ao vivo** ao serviço da Receita no momento da chamada e retorna o cadastro atualizado.

<Callout type="info">
  **Consulta ao vivo (`force_fresh=true`)** conta como **3 consultas** (contra 1 da consulta normal), pode levar alguns segundos a mais e reflete o dado atual da Receita. Consultas repetidas do mesmo CNPJ em um curto intervalo são servidas de cache (sem custo adicional de processamento).
</Callout>

### ### Simples Nacional e MEI

Os campos de Simples Nacional e MEI (`opcao_pelo_simples`, `opcao_pelo_mei` e as datas) vêm sempre da **base pública mensal** da Receita Federal, não de consulta ao vivo. Mudanças recentes de opção ou exclusão podem levar até \~1 mês para aparecer.

Para a situação atual, consultada ao vivo na Receita, com regime regular de IBS/CBS e eventos futuros, use a [Consulta Simples Nacional](/docs/enriquecimento/consultar-simples-nacional).

Na consulta ao vivo (`force_fresh=true`), esses campos voltam `null`: o cadastro consultado ao vivo não traz a opção pelo Simples. Se precisar dos dois, faça também a consulta padrão.

### ### Quadro societário e regime tributário

Cada sócio do `qsa` traz, além do nome e da qualificação, o CPF ou CNPJ, o tipo (pessoa física, jurídica ou estrangeiro), a data de entrada na sociedade, a faixa etária, o país (sócio no exterior) e o representante legal, quando houver. O CPF vem **mascarado**, no formato em que a Receita Federal o publica (`***123456**`); o CNPJ de sócio pessoa jurídica vem completo, só com dígitos.

O `regime_tributario` traz a forma de tributação declarada em cada ano (ex.: `LUCRO REAL`, `LUCRO PRESUMIDO`), da base pública mensal.

Na consulta ao vivo (`force_fresh=true`), o nome e a qualificação dos sócios são os do dia. Os demais campos de cada sócio e o `regime_tributario` vêm da base mensal, para os sócios que já constam nela; sócio que entrou depois da última base volta com esses campos `null`.

Datas de opção ou de exclusão em `2007-07-01` (Simples Nacional) ou `2009-07-01` (MEI) são as datas de início de cada regime, como a Receita Federal as publica, e não a data em que a empresa fez a opção.

### ### Campos que podem vir `null`

Os campos `data_inicio_atividade` em diante na tabela abaixo voltam `null` quando a informação não está disponível para aquele CNPJ. `null` quer dizer "não informado", nunca "não". Exemplo: `opcao_pelo_simples: null` não significa que a empresa não é optante, e sim que a base não traz registro de opção para ela (o caso comum de quem nunca optou). Só `false` indica que a empresa não é optante.

<Callout type="info">
  Telefones e e-mail, quando vêm, são os do cadastro público do CNPJ, devolvidos como a Receita Federal publica. No MEI e no empresário individual, costumam ser contatos pessoais do titular: trate-os conforme a LGPD na sua aplicação.
</Callout>

## ## CNPJ com Inscrição Estadual

Esta consulta traz o cadastro da Receita Federal, que não inclui a Inscrição Estadual: a IE é cadastro de cada estado. Para ter a IE do mesmo CNPJ, use a mesma chave em [`/api/consultar-ie-todos`](/docs/consulta-ie/consultar-ie-todos). Ela procura o CNPJ nos 27 estados numa chamada (1 consulta) e devolve, por estado, a inscrição, a situação cadastral e a habilitação para NF-e. Cadastro da Receita (consulta padrão) + IE = 2 consultas; com `force_fresh=true`, 4.

```bash
curl "https://api.fiscalapi.com.br/api/consultar-ie-todos?cnpj=12345678000195" \
  -H "X-API-Key: fapi_sua_chave_aqui"
```

## ## 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-cnpj?cnpj=12345678000195" \
      -H "X-API-Key: fapi_sua_chave_aqui"
    ```
  </Tab>

  <Tab value="JavaScript">
    ```javascript
    const response = await fetch(
      "https://api.fiscalapi.com.br/api/consultar-cnpj?cnpj=12345678000195",
      { headers: { "X-API-Key": "fapi_sua_chave_aqui" } }
    );
    const data = await response.json();
    console.log(data.result);
    ```
  </Tab>

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

    response = requests.get(
        "https://api.fiscalapi.com.br/api/consultar-cnpj",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"cnpj": "12345678000195"},
    )
    data = response.json()
    print(data["result"])
    ```
  </Tab>

  <Tab value="PHP">
    ```php
    $response = Http::withHeaders([
        'X-API-Key' => 'fapi_sua_chave_aqui',
    ])->get('https://api.fiscalapi.com.br/api/consultar-cnpj', [
        'cnpj' => '12345678000195',
    ]);
    $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-cnpj?cnpj=12345678000195"
    );
    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). |
| `cnpj`                        | string  | CNPJ consultado.                          |
| `cached`                      | boolean | Indica se o resultado veio do cache.      |
| `source_status`               | object  | Status da consulta na Receita Federal.    |
| `source_status.status`        | string  | `success` ou `error`.                     |
| `source_status.error_code`    | string  | Código de erro (vazio se sucesso).        |
| `source_status.error_message` | string  | Mensagem de erro (vazio se sucesso).      |
| `result`                      | object  | Dados cadastrais do CNPJ.                 |

### ### Campos do resultado (`result`)

| Campo                                             | Tipo            | Descrição                                                                                                                                                      |
| ------------------------------------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `razao_social`                                    | string          | Razão social da empresa.                                                                                                                                       |
| `nome_fantasia`                                   | string          | Nome fantasia.                                                                                                                                                 |
| `situacao_cadastral`                              | string          | Situação cadastral: `ATIVA`, `BAIXADA`, `SUSPENSA`, etc.                                                                                                       |
| `data_situacao_cadastral`                         | string          | Data da situação cadastral (formato `YYYY-MM-DD`).                                                                                                             |
| `cnae_principal_codigo`                           | string          | Código CNAE da atividade principal.                                                                                                                            |
| `cnae_principal_descricao`                        | string          | Descrição da atividade principal.                                                                                                                              |
| `cnaes_secundarios`                               | array           | Lista de CNAEs secundários.                                                                                                                                    |
| `cnaes_secundarios[].codigo`                      | string          | Código do CNAE secundário.                                                                                                                                     |
| `cnaes_secundarios[].descricao`                   | string          | Descrição do CNAE secundário.                                                                                                                                  |
| `natureza_juridica`                               | string          | Natureza jurídica da empresa.                                                                                                                                  |
| `natureza_juridica_codigo`                        | string \| null  | Código da natureza jurídica com 4 dígitos (ex.: `2062`).                                                                                                       |
| `ente_federativo_responsavel`                     | string \| null  | Ente federativo responsável, só para órgãos e entidades públicas (ex.: `UNIÃO`). `null` nos demais.                                                            |
| `capital_social`                                  | string          | Capital social (valor decimal como string).                                                                                                                    |
| `endereco`                                        | object          | Endereço da empresa.                                                                                                                                           |
| `endereco.logradouro`                             | string          | Logradouro.                                                                                                                                                    |
| `endereco.numero`                                 | string          | Número.                                                                                                                                                        |
| `endereco.complemento`                            | string          | Complemento do endereço (ex: `GALPAO 2`).                                                                                                                      |
| `endereco.bairro`                                 | string          | Bairro.                                                                                                                                                        |
| `endereco.municipio`                              | string          | Município.                                                                                                                                                     |
| `endereco.uf`                                     | string          | UF.                                                                                                                                                            |
| `endereco.cep`                                    | string          | CEP.                                                                                                                                                           |
| `endereco.codigo_ibge`                            | string          | Código IBGE do município (7 dígitos).                                                                                                                          |
| `endereco.tipo_logradouro`                        | string          | Tipo do logradouro (ex.: `AVENIDA`, `RUA`), quando a fonte o separa do `logradouro`. Vazio quando o tipo já vem dentro do `logradouro`.                        |
| `qsa`                                             | array           | Quadro de Sócios e Administradores.                                                                                                                            |
| `qsa[].nome`                                      | string          | Nome do sócio.                                                                                                                                                 |
| `qsa[].qualificacao`                              | string          | Qualificação do sócio.                                                                                                                                         |
| `qsa[].cpf_cnpj`                                  | string \| null  | CPF mascarado como a Receita publica (`***123456**`) ou CNPJ do sócio pessoa jurídica, só dígitos. Sócio no exterior pode vir só com a raiz (8 dígitos).       |
| `qsa[].tipo`                                      | string \| null  | `PESSOA FISICA`, `PESSOA JURIDICA` ou `ESTRANGEIRO`.                                                                                                           |
| `qsa[].data_entrada_sociedade`                    | string \| null  | Data de entrada na sociedade (`YYYY-MM-DD`).                                                                                                                   |
| `qsa[].faixa_etaria`                              | string \| null  | Faixa etária do sócio pessoa física (ex.: `41-50`, `80+`).                                                                                                     |
| `qsa[].pais`                                      | string \| null  | País do sócio domiciliado no exterior. `null` para sócio no Brasil.                                                                                            |
| `qsa[].representante_legal`                       | object \| null  | Representante legal do sócio (menor, incapaz ou sócio no exterior). `null` quando não há.                                                                      |
| `qsa[].representante_legal.nome`                  | string          | Nome do representante.                                                                                                                                         |
| `qsa[].representante_legal.cpf`                   | string \| null  | CPF mascarado do representante.                                                                                                                                |
| `qsa[].representante_legal.qualificacao`          | string \| null  | Qualificação do representante (ex.: `Procurador`).                                                                                                             |
| `porte`                                           | string          | Porte da empresa (ex: `PEQUENO PORTE`, `DEMAIS`).                                                                                                              |
| `data_inicio_atividade`                           | string \| null  | Data de abertura (formato `YYYY-MM-DD`).                                                                                                                       |
| `matriz_filial`                                   | string \| null  | `MATRIZ` ou `FILIAL`.                                                                                                                                          |
| `motivo_situacao_cadastral`                       | string \| null  | Motivo da situação cadastral (ex.: `SEM MOTIVO`).                                                                                                              |
| `situacao_especial`                               | string \| null  | Situação especial (ex.: recuperação judicial). `null` quando não há.                                                                                           |
| `data_situacao_especial`                          | string \| null  | Data da situação especial (formato `YYYY-MM-DD`).                                                                                                              |
| `telefones`                                       | array \| null   | Telefones do cadastro, DDD + número, só dígitos (ex.: `["6533334444"]`). Lista vazia quando não há telefone cadastrado.                                        |
| `email`                                           | string \| null  | E-mail do cadastro, quando a Receita Federal o publica. Vem principalmente na consulta ao vivo (`force_fresh=true`); na consulta padrão costuma voltar `null`. |
| `opcao_pelo_simples`                              | boolean \| null | `true` se optante pelo Simples Nacional, `false` se não. Base mensal; `null` sem registro de opção e na consulta ao vivo.                                      |
| `data_opcao_pelo_simples`                         | string \| null  | Data da opção pelo Simples Nacional (`YYYY-MM-DD`).                                                                                                            |
| `data_exclusao_do_simples`                        | string \| null  | Data da exclusão do Simples Nacional (`YYYY-MM-DD`).                                                                                                           |
| `opcao_pelo_mei`                                  | boolean \| null | `true` se enquadrado no MEI, `false` se não. Base mensal; `null` sem registro e na consulta ao vivo.                                                           |
| `data_opcao_pelo_mei`                             | string \| null  | Data do enquadramento no MEI (`YYYY-MM-DD`).                                                                                                                   |
| `data_exclusao_do_mei`                            | string \| null  | Data do desenquadramento do MEI (`YYYY-MM-DD`).                                                                                                                |
| `regime_tributario`                               | array \| null   | Forma de tributação declarada por ano, do mais antigo ao mais recente. Lista vazia quando a base não tem declaração para o CNPJ.                               |
| `regime_tributario[].ano`                         | integer         | Ano-calendário.                                                                                                                                                |
| `regime_tributario[].forma_de_tributacao`         | string          | Forma de tributação (ex.: `LUCRO REAL`, `LUCRO PRESUMIDO`).                                                                                                    |
| `regime_tributario[].quantidade_de_escrituracoes` | integer \| null | Quantidade de escriturações entregues no ano.                                                                                                                  |

### ### Exemplo de resposta

```json
{
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "cnpj": "12345678000195",
  "cached": false,
  "source_status": {
    "status": "success",
    "error_code": "",
    "error_message": ""
  },
  "result": {
    "razao_social": "AGROPECUARIA BOA VISTA LTDA",
    "nome_fantasia": "FAZENDA BOA VISTA",
    "situacao_cadastral": "ATIVA",
    "data_situacao_cadastral": "2010-05-20",
    "cnae_principal_codigo": "0151-2/01",
    "cnae_principal_descricao": "CRIACAO DE BOVINOS PARA CORTE",
    "cnaes_secundarios": [
      {
        "codigo": "0111-3/01",
        "descricao": "CULTIVO DE ARROZ"
      }
    ],
    "natureza_juridica": "206-2 - Sociedade Empresaria Limitada",
    "capital_social": "500000.00",
    "endereco": {
      "logradouro": "ROD BR-364 KM 28",
      "numero": "S/N",
      "complemento": "GALPAO 2",
      "bairro": "ZONA RURAL",
      "municipio": "CUIABA",
      "uf": "MT",
      "cep": "78000-000",
      "codigo_ibge": "5103403",
      "tipo_logradouro": "RODOVIA"
    },
    "qsa": [
      {
        "nome": "JOAO DA SILVA",
        "qualificacao": "Socio-Administrador",
        "cpf_cnpj": "***123456**",
        "tipo": "PESSOA FISICA",
        "data_entrada_sociedade": "2010-05-20",
        "faixa_etaria": "41-50",
        "pais": null,
        "representante_legal": null
      }
    ],
    "porte": "PEQUENO PORTE",
    "data_inicio_atividade": "2010-05-20",
    "matriz_filial": "MATRIZ",
    "motivo_situacao_cadastral": "SEM MOTIVO",
    "situacao_especial": null,
    "data_situacao_especial": null,
    "telefones": ["6533334444"],
    "email": null,
    "opcao_pelo_simples": true,
    "data_opcao_pelo_simples": "2010-06-01",
    "data_exclusao_do_simples": null,
    "opcao_pelo_mei": false,
    "data_opcao_pelo_mei": null,
    "data_exclusao_do_mei": null,
    "natureza_juridica_codigo": "2062",
    "ente_federativo_responsavel": null,
    "regime_tributario": [
      {
        "ano": 2023,
        "forma_de_tributacao": "LUCRO PRESUMIDO",
        "quantidade_de_escrituracoes": 1
      },
      {
        "ano": 2024,
        "forma_de_tributacao": "LUCRO PRESUMIDO",
        "quantidade_de_escrituracoes": 1
      }
    ]
  }
}
```

## ## Códigos de erro

| Código                | HTTP Status | Descrição                                                                   |
| --------------------- | ----------- | --------------------------------------------------------------------------- |
| `PARAMETRO_AUSENTE`   | 400         | O parâmetro `cnpj` não foi informado.                                       |
| `DOCUMENTO_INVALIDO`  | 400         | O CNPJ informado não é válido.                                              |
| `CNPJ_NAO_ENCONTRADO` | 404         | Nenhum registro encontrado para o CNPJ informado.                           |
| `SITE_INDISPONIVEL`   | 503         | O serviço da Receita Federal está indisponível no momento.                  |
| `RF_LIVE_ERROR`       | 502         | Falha temporária na consulta ao vivo (`force_fresh=true`). Tente novamente. |
| `LIMITE_ATINGIDO`     | 402         | Saldo de consultas insuficiente (a consulta ao vivo conta como 3).          |
| `ERRO_INTERNO`        | 500         | Erro interno no servidor.                                                   |
