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

# Gestione aziende KYB: operazioni CRUD via API Didit

> CRUD completo delle aziende KYB di Didit via Management API: crea, elenca, aggiorna, cambia stato, elimina. A pagamento per chiamata.



Prompt per le operazioni sulle aziende
        Copia il prompt negli appunti



      
      

\<pre>

\````# Goal — full CRUD over Didit Business (KYB) entities

All operations sit under `https://verification.didit.me/v3/businesses/` authenticated with `x-api-key: $DIDIT_API_KEY`. Each Business is keyed by `vendor_data` (case-sensitive, unique per application).

\## Endpoint catalog

\| Action | Method + path |
\|---|---|
\| List businesses | `GET /v3/businesses/` |
\| Get one business | `GET /v3/businesses/{vendor_data}/` |
\| Create business | `POST /v3/businesses/create/` |
\| Update profile | `PATCH /v3/businesses/{vendor_data}/` |
\| Change status | `PATCH /v3/businesses/{vendor_data}/update-status/` |
\| Batch delete | `POST /v3/businesses/delete/` |

\## List (with filters)

\```bash
curl -G https://verification.didit.me/v3/businesses/ \
-H "x-api-key: $DIDIT_API_KEY" \
\--data-urlencode "status=ACTIVE" \
\--data-urlencode "country_code=GBR" \
\--data-urlencode "page_size=50"
\```

\## Get one business

\```bash
curl https://verification.didit.me/v3/businesses/biz-acme/ \
-H "x-api-key: $DIDIT_API_KEY"
\```

\## Create

\```bash
curl -X POST https://verification.didit.me/v3/businesses/create/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"vendor_data": "biz-acme",
"display_name": "Acme Corp",
"country_code": "GBR",
"metadata": {"partner": "Acme Holdings"}
}'
\```

Not idempotent — a duplicate `vendor_data` returns conflict. `GET` first or PATCH.

\## Update profile

\```bash
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"metadata": {"tier": "enterprise"}}'
\```

Mutable: `display_name`, `metadata`, `tags`. Read-only (registry-derived after a KYB session): `legal_name`, `registration_number`, `country_code`, all aggregate counters, `features` map.

\## Change status

\```bash
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/update-status/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status": "BLOCKED", "reason": "Sanctioned subsidiary detected"}'
\```

Valid statuses: `ACTIVE`, `FLAGGED`, `BLOCKED`. `BLOCKED` businesses have new KYB sessions and transactions auto-declined.

\## Batch delete

\```bash
curl -X POST https://verification.didit.me/v3/businesses/delete/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"vendor_data": ["biz-acme", "biz-alpha", "biz-beta"]}'
\```

Idempotent. The business records are removed permanently. Verification sessions are not covered by this endpoint; delete those with the session delete endpoints.

\## Webhooks fired

\| Operation | Event |
\|---|---|
\| create | `business.data.updated` |
\| update (PATCH) | `business.data.updated` with `changed_fields` |
\| update-status | `business.status.updated` |
\| delete | `business.data.updated` with `deleted_at` set |

\## Running a KYB session against an existing Business

KYB sessions use the same `POST /v3/session/` endpoint as KYC — the workflow's `workflow_type: "kyb"` switches the session into business mode:

\```bash
curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id": "$KYB_WORKFLOW_ID", "vendor_data": "biz-acme"}'
\```

\## Failure modes

\- `401` — missing / invalid `x-api-key`.
\- `403` — role lacks the permission (DEVELOPER can't PATCH; see /console/roles-permissions).
\- `409` on create — `vendor_data` exists; PATCH instead.
\- `404` — wrong `vendor_data` casing.
\- `429` — rate-limited; back off with `Retry-After`.

\## Response shape

See /reference/data-models and /entities/businesses/data-model for the full Business schema.

\## Sources of truth

\- /management-api/businesses/list, /management-api/businesses/get, /management-api/businesses/create — per-endpoint reference
\- /entities/businesses/data-model — field-by-field
\- /business-verification/integration-guide — KYB session flow
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

Incolla in

Tutta la gestione delle entità aziendali avviene tramite sei endpoint pubblici sotto `/v3/businesses/`. Questa pagina offre una panoramica concettuale; consulta il [riferimento API](https://docs.didit.me/it/management-api/businesses/list.md) per gli schemi completi di richiesta e risposta.## Elenco delle aziende**`GET /v3/businesses/`**Elenco paginato delle aziende della tua applicazione, con filtri per stato, ricerca, paese e intervallo di date.```bash theme={null}
curl -G https://verification.didit.me/v3/businesses/ \
  -H "x-api-key: YOUR_API_KEY" \
  --data-urlencode "status=ACTIVE" \
  --data-urlencode "country_code=GBR" \
  --data-urlencode "page_size=50"
```## Recupero di un'azienda**`GET /v3/businesses/{vendor_data}/`**Recupera una singola azienda tramite `vendor_data`.```bash theme={null}
curl https://verification.didit.me/v3/businesses/biz-acme/ \
  -H "x-api-key: YOUR_API_KEY"
```## Creazione di un'azienda**`POST /v3/businesses/create/`**Crea in anticipo un'azienda prima che venga avviata una sessione di Verifica aziendale (KYB):```bash theme={null}
curl -X POST https://verification.didit.me/v3/businesses/create/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "vendor_data": "biz-acme",
    "display_name": "Acme Corp",
    "country_code": "GBR",
    "metadata": { "partner": "Acme Holdings" }
  }'
```Restituisce un errore di conflitto se esiste già un'azienda con quel `vendor_data`. Usa `PATCH` per aggiornare un'azienda esistente.## Aggiornamento di un'azienda**`PATCH /v3/businesses/{vendor_data}/`**Aggiorna i campi del profilo modificabili. I campi ricavati dalle ricerche nel registro delle imprese (`legal_name`, `registration_number`, `country_code`) sono di sola lettura dopo la verifica, ma possono essere sovrascritti: le sovrascritture vengono segnalate nel registro di audit.**Campi modificabili:** `display_name`, `metadata`, `tags`.
**Di sola lettura dopo la verifica:** tutti i campi ricavati dal registro, i contatori aggregati, la mappa `features`.```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "metadata": { "tier": "enterprise" } }'
```Invia l'evento webhook `business.data.updated`.## Modifica dello stato**`PATCH /v3/businesses/{vendor_data}/update-status/`**Sposta un'azienda tra `ACTIVE`, `FLAGGED` e `BLOCKED`.```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/businesses/biz-acme/update-status/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "BLOCKED",
    "reason": "Sanctioned subsidiary detected in ownership chain"
  }'
```| Da → a | Trigger comune |
| - | - |
| `ACTIVE` → `FLAGGED` | Sessione di Verifica aziendale (KYB) passata a `In Review`, riscontro nel monitoraggio AML continuo, regola sulle transazioni |
| `ACTIVE` → `BLOCKED` | Entità sanzionata confermata, inserimento manuale in blocklist |
| `FLAGGED` → `ACTIVE` | L'analista ha chiuso la revisione |
| `BLOCKED` → `ACTIVE` | Sblocco manuale dopo la rimozione del problema |Invia l'evento webhook `business.status.updated`.## Eliminazione di aziende (batch)**`POST /v3/businesses/delete/`**Elimina una o più aziende. I record delle aziende vengono rimossi in modo permanente. Le relative sessioni di verifica non sono coperte da questo endpoint e restano, con il collegamento all'azienda rimosso; eliminale con [Elimina sessione](https://docs.didit.me/it/sessions-api/delete-session.md). Anche le transazioni non sono coperte: eliminale dalla Console.```bash theme={null}
curl -X POST https://verification.didit.me/v3/businesses/delete/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "vendor_data": ["biz-acme", "biz-alpha", "biz-beta"] }'
```Idempotente: eliminare un'azienda già eliminata non produce alcun effetto.## Modello dei permessiTutti gli endpoint `/v3/businesses/*` sono limitati dalla risorsa di autorizzazione `businesses`:| Ruolo | list | get | create | update | update-status | delete |
| - | :-: | :-: | :-: | :-: | :-: | :-: |
| OWNER | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ADMIN | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| COMPLIANCE\_OFFICER | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| DEVELOPER | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| READER | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |Vedi [Ruoli e permessi](https://docs.didit.me/it/console/roles-permissions.md).## Webhook inviati da queste operazioni| Operazione | Webhook |
| - | - |
| `create` | `business.data.updated` |
| `update` | `business.data.updated` con `changed_fields` |
| `update-status` | `business.status.updated` |
| `delete` | `business.data.updated` con `deleted_at` valorizzato |## Prossimi passi> [card] [Modello dei dati](https://docs.didit.me/it/entities/businesses/data-model.md)
>
> Riferimento completo dei campi.> [card] [API di elenco](https://docs.didit.me/it/management-api/businesses/list.md)
>
> Schema di GET /v3/businesses/.> [card] [API di creazione](https://docs.didit.me/it/management-api/businesses/create.md)
>
> Schema di POST /v3/businesses/create/.


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