> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Consulta CNPJ: API de registro de empresas do Brasil

> Consulte CNPJ no registro de empresas do Brasil via API da Didit, com fonte oficial. A partir de $0.20 por chamada, sem contratos nem mínimos.

Consulta uma empresa brasileira pelo CNPJ no cadastro da Receita Federal: razão social e nome fantasia, situação cadastral, data de abertura, natureza jurídica, atividade principal e estado da sede. A Didit disponibiliza este serviço por meio de `POST /v3/database-validation/` para que você verifique os dados enviados na fonte oficial e receba resultados de correspondência normalizados.

## Cobertura

* **Cobertura:** \~ 100%
* **País:** Brasil
* **ID do serviço:** `bra_company_registry`
* **Domínio de dados:** Governo
* **Categoria:** CompanyRegister

## Entradas

| Campo | Obrigatório | Exemplo |
| - | -: | - |
| `company_registration_number` | Sim | `11222333000181` |
| `vendor_data` | Não | `user-1234` |

* **Entradas obrigatórias:** `company_registration_number`
* **Entradas opcionais:** `vendor_data`
* **Consentimento:** Não é necessário
* **Disponibilidade no fluxo de verificação (workflow):** Disponível no fluxo com mapeamento de campos
* **Cobertura:** \~ 100%
* **Preço:** \$0.20 por consulta bem-sucedida

Em um fluxo, `company_registration_number` não vem impresso em um documento de identidade, então nenhuma etapa o produz por conta própria. Colete-o a partir de uma resposta de Questionário, de um campo de extração do Document AI ou de um valor que você envia ao criar a sessão, e mapeie-o na etapa de Validação de banco de dados. Enquanto ele não estiver mapeado, o editor de fluxos mostra este serviço como desativado e indica a entrada que falta; em tempo de execução, uma entrada ausente faz com que a verificação seja ignorada antes de qualquer consulta, então você nunca é cobrado por um banco de dados que não pôde ser consultado.

## Parâmetros do corpo

**issuing\_state** `string` *required* (default: BRA)

Código de país ISO 3166-1 alfa-3 deste serviço de banco de dados.

Exemplo: `BRA`

**services** `string` *required* (default: bra\_company\_registry)

Array que contém o ID deste serviço. A fixação do serviço mantém a requisição limitada a este banco de dados específico.

Exemplo: `bra_company_registry`

**company\_registration\_number** `string` *required* (default: 11222333000181)

Valor de `company_registration_number` exigido por este serviço de banco de dados.

Exemplo: `11222333000181`

**vendor\_data** `string` (default: user-1234)

Sua referência estável de usuário para esta pessoa, como o seu ID interno de usuário. A Didit a usa para vincular verificações avulsas ao mesmo usuário final e reduzir o ruído na detecção de duplicados.

Exemplo: `user-1234`

## Regras de entrada e notas de validação

* `company_registration_number` deve corresponder a `[0-9A-Za-z]{2}\.?[0-9A-Za-z]{3}\.?[0-9A-Za-z]{3}/?[0-9A-Za-z]{4}-?\d{2}`.

## Como chamar

```bash cURL theme={null}
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=BRA" \
  -F "services=bra_company_registry" \
  -F "vendor_data=user-1234" \
  -F "company_registration_number=11222333000181"
```

Toda chamada bem-sucedida retorna HTTP `200`. O campo **`outcome_code`** informa o que de fato aconteceu, distinguindo, por exemplo, uma divergência biométrica real (`BIOMETRIC_NO_MATCH`) de uma selfie que não pôde ser lida (`BIOMETRIC_IMAGE_UNUSABLE`). O `status` exibido é o status padrão do recurso; as [ações de Correspondência parcial / Sem correspondência](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-warnings.md) que você configurou podem substituí-lo.

**`MATCH`**: O cadastro confirmou a identidade e todos os campos verificados corresponderam.

```json 200 OK — MATCH theme={null}
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "BRA",
  "match_type": "full_match",
  "validations": [
    {
      "outcome_code": "MATCH",
      "service_id": "bra_company_registry",
      "service_name": "Brazil - Company Registry Lookup (CNPJ)",
      "source_data": {
        "company_name": "EMPRESA EXEMPLO LTDA",
        "company_status": "ATIVA",
        "company_status_date": "2025-01-10",
        "headquarters_state": "SP",
        "legal_nature": "SOCIEDADE EMPRESARIA LIMITADA",
        "main_activity": "DESENVOLVIMENTO DE PROGRAMAS DE COMPUTADOR SOB ENCOMENDA",
        "main_activity_code": "6201501",
        "registration_date": "2010-03-15",
        "registration_number": "11222333000181",
        "trade_name": "EXEMPLO"
      },
      "validation": {}
    }
  ]
}
```

**`DOCUMENT_NOT_FOUND`**: O número de documento enviado não corresponde a nenhum registro no cadastro.

```json 200 OK — DOCUMENT_NOT_FOUND theme={null}
{
  "request_id": "req_01H…",
  "status": "Declined",
  "issuing_state": "BRA",
  "match_type": "no_match",
  "validations": [
    {
      "outcome_code": "DOCUMENT_NOT_FOUND",
      "service_id": "bra_company_registry",
      "service_name": "Brazil - Company Registry Lookup (CNPJ)",
      "source_data": {
        "identification_number": "NO_MATCH"
      },
      "validation": {}
    }
  ]
}
```

## Dados retornados

Os campos exatos expostos em `source_data` dependem do que o registro retorna. O exemplo gerado para `bra_company_registry` documenta atualmente este formato normalizado:

* `company_name`
* `company_status`
* `company_status_date`
* `headquarters_state`
* `identification_number`
* `legal_nature`
* `main_activity`
* `main_activity_code`
* `registration_date`
* `registration_number`
* `trade_name`

## Preços e SLAs

As consultas ao registro de empresas do Brasil (CNPJ) são cobradas somente quando a Didit recebe um resultado conclusivo da fonte de validação.

* **Preço por chamada:** \$0.20 USD.
* **Faturamento:** por consulta bem-sucedida. Você não é cobrado quando o registro está inacessível, quando faltam campos obrigatórios ou quando a requisição é rejeitada antes de chegar à fonte.
* **Latência:** p95 típico \< 2 s.
* **Disponibilidade:** 99.9% por trimestre do lado da Didit; a disponibilidade da fonte externa varia conforme o país e o conjunto de dados.

## Continue a leitura

* [Visão geral da Validação de banco de dados no Brasil](https://docs.didit.me/api-reference/database-validation/brazil.md)
* [Visão geral da Validação de banco de dados](https://docs.didit.me/pt-br/core-technology/database-validation/overview.md)
* [Códigos de resultado](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-outcome-codes.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.