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

# Importare ed esportare aziende: caricamento CSV in blocco

> Importa in blocco da CSV le aziende KYB in Didit ed esporta l'intera tabella dalla Didit Business Console. Fatturazione a pagamento per chiamata.



Prompt per importazione ed esportazione in blocco delle aziende
        Copia il prompt negli appunti



      
      

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



      
      

Incolla in

La Business Console supporta l'importazione e l'esportazione in blocco delle entità Business: lo stesso flusso disponibile per gli Utenti, adattato ai campi delle aziende.> [!NOTE]
>
> L'importazione e l'esportazione in blocco qui creano o aggiornano solo i profili delle aziende. Non ricreano le sessioni KYB storiche, i report del registro delle imprese, gli amministratori, i titolari effettivi o le decisioni del provider. Per una migrazione KYB completa da un altro provider o da un'esportazione di registro, consulta [Importare dati da un altro provider](https://docs.didit.me/it/sessions-api/import-verifications.md).## Importare aziende da CSV### Quando usarlo- **Migrazione** da un altro fornitore KYB.
- **Onboarding dei partner**: carica l'elenco clienti di un partner.
- **Aggiornamento retroattivo dei metadati**: aggiorna tag, livello o campi personalizzati di molte aziende.### Colonne del modelloScarica il modello da *Businesses → Import → Download template*:| Colonna | Obbligatoria | Descrizione |
| - | - | - |
| `vendor_data` | Sì | Il tuo identificatore per l'azienda. Univoco per applicazione. |
| `display_name` | No | Nome leggibile. |
| `legal_name` | No | Ragione sociale. Verrà sovrascritta dai dati verificati del registro. |
| `registration_number` | No | Numero di iscrizione al registro. Verrà sovrascritto dai dati verificati del registro. |
| `country_code` | No | ISO 3166-1 alpha-3. Attiva il controllo dei paesi a rischio. |
| `status` | No | `ACTIVE`, `FLAGGED` o `BLOCKED`. Il valore predefinito è `ACTIVE`. |
| `tags` | No | Tag separati da virgole. |
| `metadata_json` | No | JSON serializzato per i metadati personalizzati. |### Eseguire l'importazione**1. Carica il CSV***Businesses → Import → Upload CSV*.**2. Controlla l'anteprima**Le righe non valide sono evidenziate. I duplicati (`vendor_data` già esistente) sono segnalati come aggiornamenti.**3. Avvia l'importazione**Didit elabora le righe in modo asincrono; l'avanzamento è monitorato in *Businesses → Import history*.**4. Controlla i risultati**Scarica un report degli errori per le righe saltate.### Aggiornamento o creazione- Nuovo `vendor_data`: crea una nuova azienda.
- `vendor_data` esistente: aggiorna i campi modificabili e i metadati dell'azienda.
- I campi derivati dal registro (`legal_name`, `registration_number`, `country_code`) **non** vengono sovrascritti dalle importazioni dopo che una sessione di Verifica aziendale (KYB) li ha popolati.## Esportare aziende in CSV### Quando usarlo- **Audit di conformità** e richieste delle autorità di vigilanza.
- **Sincronizzazione con il data warehouse** per la BI.
- **Report per i partner**: viste filtrate delle aziende per paese, livello o tag.### Eseguire l'esportazione1) Vai a *Businesses → Export*.
2) Applica i filtri (stato, paese, intervallo di date, ricerca, tag).
3) Scegli le colonne.
4) Invia la richiesta: Didit genera l'esportazione in modo asincrono e invia via email un link di download firmato.Si applicano restrizioni in base al ruolo: consulta [ruoli e autorizzazioni](https://docs.didit.me/it/console/roles-permissions.md).## Registro di auditTutte le importazioni e le esportazioni sono registrate con operatore, numero di righe e timestamp. Consulta [registro di audit](https://docs.didit.me/it/console/audit-logs.md).## Passaggi successivi> [card] [API per creare aziende](https://docs.didit.me/it/management-api/businesses/create.md)
>
> Creazione programmatica in blocco.> [card] [Conservazione dei dati](https://docs.didit.me/it/console/data-retention.md)
>
> Per quanto tempo i dati importati restano disponibili.> [card] [Registro di audit](https://docs.didit.me/it/console/audit-logs.md)
>
> Consulta la cronologia di importazioni ed esportazioni.


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