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

# CNPJ Brésil : API de consultation du registre

> Consultation du registre des sociétés brésilien (CNPJ) via Didit, sur une base officielle. Dès $0.20 par appel, sans contrat ni minimum.

Recherche une entreprise brésilienne à partir de son CNPJ dans le registre de la Receita Federal : raison sociale et nom commercial, statut d'immatriculation, date de création, nature juridique, activité principale et État du siège. Didit expose ce service via `POST /v3/database-validation/` afin que vous puissiez comparer les données soumises à la source faisant autorité et recevoir des résultats de correspondance normalisés.

## Couverture

* **Couverture :** \~ 100%
* **Pays :** Brésil
* **ID du service :** `bra_company_registry`
* **Domaine de données :** Gouvernement
* **Catégorie :** CompanyRegister

## Entrées

| Champ | Obligatoire | Exemple |
| - | -: | - |
| `company_registration_number` | Oui | `11222333000181` |
| `vendor_data` | Non | `user-1234` |

* **Entrées obligatoires :** `company_registration_number`
* **Entrées facultatives :** `vendor_data`
* **Consentement :** non requis
* **Disponibilité dans un workflow :** disponible dans un workflow avec mappage des champs
* **Couverture :** \~ 100%
* **Prix :** \$0.20 par requête réussie

Dans un workflow, `company_registration_number` n'est pas imprimé sur un document d'identité, donc aucune étape ne le produit seule. Collectez-le à partir d'une réponse à un questionnaire, d'un champ extrait par Document AI, ou d'une valeur que vous envoyez lors de la création de la session, puis mappez-le sur l'étape de validation en base de données. Tant qu'il n'est pas mappé, l'éditeur de workflow affiche ce service comme désactivé et indique l'entrée manquante. À l'exécution, une entrée manquante entraîne l'ignorance de la vérification avant toute requête : vous n'êtes donc jamais facturé pour une base de données qui n'a pas pu être interrogée.

## Paramètres du corps

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

Code pays ISO 3166-1 alpha-3 de ce service de base de données.

Exemple : `BRA`

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

Tableau contenant l'ID de ce service. Épingler le service maintient la requête limitée à cette base de données précise.

Exemple : `bra_company_registry`

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

Valeur de `company_registration_number` requise par ce service de base de données.

Exemple : `11222333000181`

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

Votre référence utilisateur stable pour cette personne, par exemple votre identifiant utilisateur interne. Didit s'en sert pour relier les vérifications autonomes au même utilisateur final et réduire le bruit des détections de doublons.

Exemple : `user-1234`

## Règles de saisie et notes de validation

* `company_registration_number` doit correspondre à `[0-9A-Za-z]{2}\.?[0-9A-Za-z]{3}\.?[0-9A-Za-z]{3}/?[0-9A-Za-z]{4}-?\d{2}`.

## Comment l'appeler

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

Chaque appel réussi renvoie HTTP `200`. Le champ **`outcome_code`** indique ce qui s'est réellement passé : il distingue par exemple une véritable non-correspondance biométrique (`BIOMETRIC_NO_MATCH`) d'un selfie qui n'a pas pu être lu (`BIOMETRIC_IMAGE_UNUSABLE`). Le `status` affiché est le statut par défaut de la fonctionnalité ; vos [actions configurées pour correspondance partielle et absence de correspondance](https://docs.didit.me/fr/core-technology/database-validation/database-validation-warnings.md) peuvent le remplacer.

**`MATCH`** : le registre a confirmé l'identité et chaque champ vérifié correspond.

```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`** : le numéro de document soumis ne correspond à aucun enregistrement du registre.

```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": {}
    }
  ]
}
```

## Données renvoyées

Les champs exacts exposés dans `source_data` dépendent de ce que renvoie le registre. L'exemple généré pour `bra_company_registry` documente actuellement cette structure normalisée :

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

## Tarifs et SLA

Les requêtes de recherche dans le registre brésilien des sociétés (CNPJ) ne sont facturées que lorsque Didit reçoit un résultat concluant de la source de validation.

* **Prix par appel :** \$0.20 USD.
* **Facturation :** par requête réussie. Vous n'êtes pas facturé lorsque le registre est injoignable, lorsque des champs obligatoires manquent ou lorsque la requête est rejetée avant d'atteindre la source.
* **Latence :** p95 typique \< 2 s.
* **Disponibilité :** 99.9% par trimestre côté Didit ; la disponibilité de la source en aval varie selon le pays et le jeu de données.

## Pour aller plus loin

* [Vue d'ensemble de la validation en base de données au Brésil](https://docs.didit.me/api-reference/database-validation/brazil.md)
* [Vue d'ensemble de la validation en base de données](https://docs.didit.me/fr/core-technology/database-validation/overview.md)
* [Codes de résultat](https://docs.didit.me/fr/core-technology/database-validation/database-validation-outcome-codes.md)


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