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

# Unternehmen importieren und exportieren: CSV-Bulk

> Didit-Unternehmen (KYB) per CSV-Bulk-Import laden und die gesamte Unternehmenstabelle exportieren. In der Business Console. Abrechnung pro Aufruf.



Prompt für Massenimport und -export von Unternehmen
        Prompt in die Zwischenablage kopieren



      
      

\<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>



      
      

Einfügen in

Die Business Console unterstützt den Massenimport und -export von Business-Entitäten. Es ist derselbe Ablauf wie für Benutzer, angepasst an die Felder von Unternehmen.> [!NOTE]
>
> Massenimport und -export erstellen oder aktualisieren hier nur Unternehmensprofile. Historische KYB-Sitzungen, Registerberichte, Funktionsträger, wirtschaftlich Berechtigte oder Anbieterentscheidungen werden dabei nicht neu angelegt. Für eine vollständige KYB-Migration von einem anderen Anbieter oder aus einem Registerexport lesen Sie [Daten von einem anderen Anbieter importieren](https://docs.didit.me/de/sessions-api/import-verifications.md).## Unternehmen aus CSV importieren### Wann Sie das nutzen sollten- **Migration** von einem anderen KYB-Anbieter.
- **Partner-Onboarding**: Laden Sie die Kundenliste eines Partners.
- **Nachträgliche Ergänzung von Metadaten**: Aktualisieren Sie Tags, Stufe oder benutzerdefinierte Felder für viele Unternehmen.### VorlagenspaltenLaden Sie die Vorlage unter *Businesses → Import → Download template* herunter:| Spalte | Pflicht | Beschreibung |
| - | - | - |
| `vendor_data` | Ja | Ihre Kennung für das Unternehmen. Eindeutig pro Anwendung. |
| `display_name` | Nein | Menschenlesbarer Name. |
| `legal_name` | Nein | Rechtlicher Firmenname. Wird durch verifizierte Registerdaten überschrieben. |
| `registration_number` | Nein | Registernummer. Wird durch verifizierte Registerdaten überschrieben. |
| `country_code` | Nein | ISO 3166-1 alpha-3. Löst die Prüfung gefährlicher Länder aus. |
| `status` | Nein | `ACTIVE`, `FLAGGED` oder `BLOCKED`. Standardmäßig `ACTIVE`. |
| `tags` | Nein | Durch Kommas getrennte Tags. |
| `metadata_json` | Nein | Als String serialisiertes JSON für benutzerdefinierte Metadaten. |### Import durchführen**1. CSV hochladen***Businesses → Import → Upload CSV*.**2. Vorschau prüfen**Ungültige Zeilen sind hervorgehoben. Duplikate (bestehende `vendor_data`) werden als Aktualisierungen markiert.**3. Import starten**Didit verarbeitet die Zeilen asynchron. Den Fortschritt verfolgen Sie unter *Businesses → Import history*.**4. Ergebnisse prüfen**Laden Sie für übersprungene Zeilen einen Fehlerbericht herunter.### Aktualisieren oder erstellen- Neue `vendor_data` → erstellt ein neues Unternehmen.
- Bestehende `vendor_data` → aktualisiert die veränderlichen Felder und Metadaten des Unternehmens.
- Registerbasierte Felder (`legal_name`, `registration_number`, `country_code`) werden durch Importe **nicht** überschrieben, nachdem eine Unternehmensverifizierung (KYB) sie befüllt hat.## Unternehmen in eine CSV-Datei exportieren### Wann Sie das nutzen sollten- **Compliance-Audits** und Anfragen von Aufsichtsbehörden.
- **Synchronisierung mit dem Data Warehouse** für BI.
- **Partner-Reporting**: gefilterte Ansichten von Unternehmen nach Land, Stufe oder Tag.### Export durchführen1) Öffnen Sie *Businesses → Export*.
2) Wenden Sie Filter an (Status, Land, Zeitraum, Suche, Tags).
3) Wählen Sie die Spalten aus.
4) Senden Sie den Export ab. Didit erstellt die Exportdatei asynchron und sendet Ihnen einen signierten Download-Link per E-Mail.Es gelten Rollenbeschränkungen. Details finden Sie unter [Rollen und Berechtigungen](https://docs.didit.me/de/console/roles-permissions.md).## Audit-TrailAlle Importe und Exporte werden mit Operator, Zeilenanzahl und Zeitstempel protokolliert. Weitere Informationen finden Sie unter [Audit-Logs](https://docs.didit.me/de/console/audit-logs.md).## Nächste Schritte> [card] [API zum Erstellen von Unternehmen](https://docs.didit.me/de/management-api/businesses/create.md)
>
> Programmatische Massenerstellung.> [card] [Datenaufbewahrung](https://docs.didit.me/de/console/data-retention.md)
>
> Wie lange importierte Daten gespeichert bleiben.> [card] [Audit-Logs](https://docs.didit.me/de/console/audit-logs.md)
>
> Import- und Exportverlauf einsehen.


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