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

# CRUD de empresas (KYB): operaciones con la Management API

> CRUD completo de empresas (KYB) en Didit vía Management API: crear, listar, obtener, actualizar, cambiar estado y eliminar. Pago por llamada.



Prompt de operaciones con empresas
        Copiar el prompt al portapapeles



      
      

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



      
      

Pegar en

Toda la gestión de la entidad Business se realiza a través de seis endpoints públicos bajo `/v3/businesses/`. Esta página ofrece un recorrido conceptual; consulta la [referencia de la API](https://docs.didit.me/es/management-api/businesses/list.md) para ver los esquemas completos de solicitud y respuesta.## Listar empresas**`GET /v3/businesses/`**Lista paginada de las empresas de tu aplicación, con filtros por estado, búsqueda, país y rango de fechas.```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"
```## Obtener una empresa**`GET /v3/businesses/{vendor_data}/`**Obtiene una única empresa por `vendor_data`.```bash theme={null}
curl https://verification.didit.me/v3/businesses/biz-acme/ \
  -H "x-api-key: YOUR_API_KEY"
```## Crear una empresa**`POST /v3/businesses/create/`**Crea por adelantado una empresa antes de que se ejecute cualquier sesión de verificación de empresas (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" }
  }'
```Devuelve un error de conflicto si ya existe una empresa con ese `vendor_data`. Usa `PATCH` para actualizar una empresa existente.## Actualizar una empresa**`PATCH /v3/businesses/{vendor_data}/`**Actualiza los campos modificables del perfil. Los campos obtenidos de consultas al registro (`legal_name`, `registration_number`, `country_code`) son de solo lectura tras la verificación, pero se pueden sobrescribir; las sobrescrituras quedan marcadas en el registro de auditoría.**Campos modificables:** `display_name`, `metadata`, `tags`.
**De solo lectura tras la verificación:** todos los campos obtenidos del registro, los contadores agregados y el mapa `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" } }'
```Emite `business.data.updated`.## Cambiar el estado**`PATCH /v3/businesses/{vendor_data}/update-status/`**Cambia el estado de una empresa entre `ACTIVE`, `FLAGGED` y `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"
  }'
```| De → a | Disparador habitual |
| - | - |
| `ACTIVE` → `FLAGGED` | Sesión de Verificación de empresas (KYB) pasa a `In Review`, coincidencia durante la monitorización continua de AML, regla de transacción |
| `ACTIVE` → `BLOCKED` | Sesión de Verificación de empresas (KYB) `Declined` con bloqueo automático, entidad sancionada confirmada |
| `FLAGGED` → `ACTIVE` | Un analista completó la revisión |
| `BLOCKED` → `ACTIVE` | Desbloqueo manual tras la remediación |Emite `business.status.updated`.## Eliminar empresas (por lotes)**`POST /v3/businesses/delete/`**Elimina una o varias empresas. Los registros de las empresas se eliminan de forma permanente. Sus sesiones de verificación no están cubiertas por este endpoint y se conservan, con su vínculo a la empresa eliminado; elimínalas con [Delete Session](https://docs.didit.me/es/sessions-api/delete-session.md). Las transacciones tampoco están cubiertas; elimínalas desde la consola.```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"] }'
```Es idempotente: eliminar una empresa ya eliminada no tiene ningún efecto.## Modelo de permisosTodos los endpoints `/v3/businesses/*` están sujetos al recurso de permisos `businesses`:| Rol | list | get | create | update | update-status | delete |
| - | :-: | :-: | :-: | :-: | :-: | :-: |
| OWNER | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ADMIN | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| COMPLIANCE\_OFFICER | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| DEVELOPER | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| READER | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |Consulta [Roles y permisos](https://docs.didit.me/es/console/roles-permissions.md).## Webhooks activados por estas operaciones| Operación | Webhook |
| - | - |
| `create` | `business.data.updated` |
| `update` | `business.data.updated` con `changed_fields` |
| `update-status` | `business.status.updated` |
| `delete` | `business.data.updated` con `deleted_at` establecido |## Próximos pasos> [card] [Modelo de datos](https://docs.didit.me/es/entities/businesses/data-model.md)
>
> Referencia completa de los campos.> [card] [API de listado](https://docs.didit.me/es/management-api/businesses/list.md)
>
> Esquema de GET /v3/businesses/.> [card] [API de creación](https://docs.didit.me/es/management-api/businesses/create.md)
>
> Esquema de POST /v3/businesses/create/.


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