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

# Import CSV d'entreprises et export en masse

> Importez en masse des entreprises KYB dans Didit via CSV et exportez toute la table. Depuis la console Didit Business. Facturation par appel.



Prompt d'import et d'export en masse des entreprises
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\````# Goal — bulk-load (or extract) Didit Business entities programmatically

CSV import / export is console-only. For programmatic bulk operations, loop `POST /v3/businesses/create/` for imports and paginate `GET /v3/businesses/` for exports.

\## Bulk import — loop the create endpoint

\```bash
\# businesses.json — array of records
\# [{"vendor_data":"biz-acme","display_name":"Acme Corp","country_code":"GBR"}, ...]

jq -c '.[]' businesses.json | while read biz; do
curl -X POST https://verification.didit.me/v3/businesses/create/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d "$biz"
sleep 0.1   # respect rate limits — see /integration/rate-limiting
done
\```

Record shape (matches `POST /v3/businesses/create/`):

\```json
\{
"vendor_data": "biz-acme",         // required, unique per app
"display_name": "Acme Corp",       // optional
"country_code": "GBR",             // ISO 3166-1 alpha-3, optional
"metadata": {"partner": "Acme Holdings"},
"tags": ["b2b-tier-1"]
}
\```

\`create` is **not** idempotent. Upsert pattern:

\```bash
if curl -s -o /dev/null -w "%{http_code}" \
 https://verification.didit.me/v3/businesses/$VD/ \
 -H "x-api-key: $DIDIT_API_KEY" | grep -q 200; then
curl -X PATCH https://verification.didit.me/v3/businesses/$VD/ \
-H "x-api-key: $DIDIT_API_KEY" -H "Content-Type: application/json" \
-d "$BODY"
else
curl -X POST https://verification.didit.me/v3/businesses/create/ \
-H "x-api-key: $DIDIT_API_KEY" -H "Content-Type: application/json" \
-d "$BODY"
fi
\```

\## Bulk export — paginate the list endpoint

\```bash
PAGE=1
while :; do
RESP=$(curl -sG https://verification.didit.me/v3/businesses/ \
-H "x-api-key: $DIDIT_API_KEY" \
\--data-urlencode "page=$PAGE" \
\--data-urlencode "page_size=100")
echo "$RESP" | jq -c '.results[]' >> businesses.ndjson
HAS_NEXT=$(echo "$RESP" | jq -r '.next // empty')
\[ -z "$HAS_NEXT" ] && break
PAGE=$((PAGE+1))
done
\```

Filter with `status`, `country_code`, `search`, date ranges (see /management-api/businesses/list).

\## What survives on update vs what stays

\| Field | Behaviour |
\|---|---|
\| `display_name`, `metadata`, `tags` | Overwritten by PATCH |
\| `legal_name`, `registration_number`, `country_code` | Read-only after a verified KYB session (overrides logged in audit log) |
\| Aggregate counters, `features` map | Computed by Didit — never accept writes |

\## Failure modes

\- `409` on create — `vendor_data` exists; use PATCH.
\- `429` — rate limit; back off using `Retry-After`. Insert 100ms+ between calls for large batches.
\- `400` — bad country code or bad JSON. Log and continue.

\## Console fallback

The Business Console (Businesses → Import / Export) handles up to 100K rows for imports and 1M rows for exports with chunked async processing and an emailed signed download link.

\## Sources of truth

\- /management-api/businesses/create — POST /v3/businesses/create/ schema
\- /management-api/businesses/list — GET /v3/businesses/ pagination
\- /entities/businesses/data-model — mutable vs read-only fields
\- /integration/rate-limiting — rate limits
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

Coller dans

La Business Console prend en charge l'import et l'export en masse des entités Business, avec le même fonctionnement que pour les utilisateurs, adapté aux champs des entreprises.> [!NOTE]
>
> L'import et l'export en masse ne font que créer ou mettre à jour les profils d'entreprise. Ils ne recréent pas les sessions KYB historiques, les rapports de registre, les dirigeants, les bénéficiaires effectifs ni les décisions des fournisseurs. Pour une migration KYB complète depuis un autre fournisseur ou un export de registre, consultez [Importer des données depuis un autre fournisseur](https://docs.didit.me/fr/sessions-api/import-verifications.md).## Importer des entreprises depuis un CSV### Quand l'utiliser- **Migration** depuis un autre prestataire KYB.
- **Intégration de partenaires** : chargement de la liste de clients d'un partenaire.
- **Rétro-remplissage des métadonnées** : mise à jour des étiquettes, du niveau ou des champs personnalisés pour de nombreuses entreprises.### Colonnes du modèleTéléchargez le modèle depuis *Businesses → Import → Download template* :| Colonne | Obligatoire | Description |
| - | - | - |
| `vendor_data` | Oui | Votre identifiant de l'entreprise. Unique par application. |
| `display_name` | Non | Nom lisible par un humain. |
| `legal_name` | Non | Raison sociale. Sera écrasée par les données vérifiées du registre. |
| `registration_number` | Non | Numéro d'immatriculation de la société. Sera écrasé par les données vérifiées du registre. |
| `country_code` | Non | Code ISO 3166-1 alpha-3. Déclenche la vérification des pays à risque. |
| `status` | Non | `ACTIVE`, `FLAGGED` ou `BLOCKED`. Par défaut `ACTIVE`. |
| `tags` | Non | Étiquettes séparées par des virgules. |
| `metadata_json` | Non | Chaîne JSON pour les métadonnées personnalisées. |### Lancer l'import**1. Téléverser le CSV***Businesses → Import → Upload CSV*.**2. Vérifier l'aperçu**Les lignes invalides sont mises en évidence. Les doublons (`vendor_data` existant) sont signalés comme des mises à jour.**3. Démarrer l'import**Didit traite les lignes de manière asynchrone. La progression est suivie dans *Businesses → Import history*.**4. Consulter les résultats**Téléchargez un rapport d'erreurs pour les lignes ignorées.### Mise à jour ou création- Nouveau `vendor_data` → crée une nouvelle entreprise.
- `vendor_data` existant → met à jour les champs modifiables et les métadonnées de l'entreprise.
- Les champs issus du registre (`legal_name`, `registration_number`, `country_code`) ne sont **pas** écrasés par les imports une fois qu'une session de vérification d'entreprise (KYB) les a renseignés.## Exporter des entreprises vers un CSV### Quand l'utiliser- **Audits de conformité** et demandes des régulateurs.
- **Synchronisation avec un entrepôt de données** pour la BI.
- **Reporting pour les partenaires** : vues filtrées des entreprises par pays, niveau ou étiquette.### Lancer un export1) Accédez à *Businesses → Export*.
2) Appliquez les filtres (statut, pays, période, recherche, étiquettes).
3) Choisissez les colonnes.
4) Soumettez la demande : Didit génère l'export de manière asynchrone et envoie par e-mail un lien de téléchargement signé.Des restrictions de rôle s'appliquent. Voir [rôles et autorisations](https://docs.didit.me/fr/console/roles-permissions.md).## Piste d'auditTous les imports et exports sont journalisés avec l'opérateur, le nombre de lignes et les horodatages. Voir [journaux d'audit](https://docs.didit.me/fr/console/audit-logs.md).## Prochaines étapes> [card] [API de création d'entreprise](https://docs.didit.me/fr/management-api/businesses/create.md)
>
> Création en masse par programmation.> [card] [Conservation des données](https://docs.didit.me/fr/console/data-retention.md)
>
> Durée de conservation des données importées.> [card] [Journaux d'audit](https://docs.didit.me/fr/console/audit-logs.md)
>
> Consultez l'historique des imports et exports.


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