> ## 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.

# Brasil - Consulta ao Registo de Empresas (CNPJ) API

> Consulta no registo de empresas brasileiro (CNPJ) via Didit, com base de dados oficial. Por chamada a partir de $0.20, sem contratos nem mínimos.

Consulta uma empresa brasileira pelo CNPJ no registo da Receita Federal: razão social e nome fantasia, situação cadastral, data de fundação, natureza jurídica, atividade principal e UF da sede. A Didit disponibiliza este serviço através de `POST /v3/database-validation/`, para que possa verificar os dados submetidos contra a fonte oficial e receber 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 obrigatório
* **Disponibilidade no fluxo:** Disponível no fluxo com mapeamento de campos
* **Cobertura:** \~ 100%
* **Preço:** \$0.20 por consulta bem-sucedida

Num fluxo, `company_registration_number` não vem impresso num documento de identidade, por isso nenhum passo o produz por si só. Recolha-o a partir de uma resposta de questionário, de um campo extraído pelo Document AI ou de um valor que envie ao criar a sessão, e mapeie-o no passo de validação de base de dados. Enquanto não estiver mapeado, o editor de fluxos mostra este serviço desativado e indica a entrada em falta. Em execução, uma entrada em falta significa que a verificação é ignorada antes de qualquer consulta, por isso nunca lhe é cobrada uma consulta a uma base de dados que não pôde ser consultada.

## Parâmetros do corpo

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

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

Exemplo: `BRA`

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

Array que contém o ID deste serviço. Fixar o serviço mantém o pedido limitado a esta base de dados exata.

Exemplo: `bra_company_registry`

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

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

Exemplo: `11222333000181`

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

A sua referência estável de utilizador para esta pessoa, como o ID interno do utilizador. A Didit usa-a para associar verificações independentes ao mesmo utilizador final e reduzir o ruído na deteçã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"
```

Cada chamada bem-sucedida devolve HTTP `200`. O campo **`outcome_code`** indica o que realmente aconteceu, distinguindo, por exemplo, uma incompatibilidade biométrica real (`BIOMETRIC_NO_MATCH`) de uma selfie que não pôde ser lida (`BIOMETRIC_IMAGE_UNUSABLE`). O `status` apresentado é o estado predefinido da funcionalidade. As suas [ações configuradas para Correspondência parcial / Sem correspondência](https://docs.didit.me/pt/core-technology/database-validation/database-validation-warnings.md) podem substituí-lo.

**`MATCH`**: o registo confirmou a identidade e todos os campos verificados correspondem.

```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 submetido não corresponde a nenhum registo da Receita Federal.

```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 devolvidos

Os campos exatos apresentados em `source_data` dependem do que o registo devolve. O exemplo gerado para `bra_company_registry` documenta atualmente esta forma normalizada:

* `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 registo de empresas do Brasil (CNPJ) só são cobradas quando a Didit recebe um resultado conclusivo da fonte de validação.

* **Preço por chamada:** \$0.20 USD.
* **Faturação:** por consulta bem-sucedida. Não é cobrado quando o registo está inacessível, quando faltam campos obrigatórios ou quando o pedido é rejeitado antes de chegar à fonte.
* **Latência:** p95 típico \< 2 s.
* **Disponibilidade:** 99.9% por trimestre do lado da Didit. A disponibilidade das fontes a montante varia por país e conjunto de dados.

## Continuar a ler

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


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