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

# Inicio rápido de KYB: verifica una empresa en 10 min

> Verifica una empresa con Didit en menos de 10 minutos: registro mercantil, UBO, directivos, AML y webhooks. Desde $2.00 por comprobación, sin contratos.

Esta guía te lleva por una verificación KYB completa en menos de 10 minutos. Crearás un flujo de verificación (workflow), iniciarás una sesión, entregarás el enlace de verificación alojado a tu contacto de la empresa, esperarás el webhook y obtendrás la decisión final.

## Requisitos previos

* Una aplicación de Didit con KYB activado. Crea una en [business.didit.me](https://business.didit.me) si hace falta.
* Una clave de API desde *Developer Settings → Claves API*.
* Un endpoint de webhook accesible desde internet (para el webhook de la decisión).

## Pasos

**1. Crea un flujo de verificación KYB en la consola**

Ve a *Flujos → Crear flujo de trabajo*. Elige **Verificación de empresas** como tipo de flujo.

Activa las funciones que necesites:

* **Registro mercantil** (obligatorio)
* **AML de la empresa** (recomendado)
* **Personas clave** (obligatorio en la mayoría de los sectores regulados)
* **Documentos** (opcional: elige los tipos de documento que exigirás)

Guarda y copia el `workflow_id`: lo usarás en el siguiente paso.

**2. Crea una sesión de verificación de empresas (KYB) por API**

```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "YOUR_KYB_WORKFLOW_ID",
    "vendor_data": "biz-acme-001"
  }'
```

La respuesta contiene el `session_id`, el `session_number` y la `url`, el enlace de verificación alojado que entregas al contacto de la empresa. El tipo del flujo (KYB) marca automáticamente la sesión como sesión de empresa.

**3. Envía el enlace a tu contacto de la empresa**

Entrega la `url` al administrador de la empresa por tu propio correo o chat. Él la abre, completa los datos del registro, añade a las personas clave y a los UBO, y sube los documentos.

Puedes personalizar la experiencia alojada con tu marca, logotipo y dominio: consulta [Marca blanca](https://docs.didit.me/es/console/white-label.md).

**4. Recibe el webhook de estado**

Cuando la empresa termina el flujo y el procesamiento KYB alcanza un estado final, Didit envía por POST un evento `status.updated` a tu endpoint de webhook. Los eventos de las sesiones de empresa llevan `session_kind: "business"` dentro de `data`: filtra por ese valor para enviar el evento a tu gestor de KYB.

Verifica la firma HMAC `X-Signature-V2` antes de confiar en el evento (consulta [webhooks](https://docs.didit.me/integration/webhooks.md)) y después ejecuta tu lógica posterior. Guarda el `secret_shared_key` del destino (se devuelve al registrar el webhook) como `DIDIT_WEBHOOK_SECRET` en tu `.env`.

Ejemplo de carga:

```json theme={null}
{
  "event": "status.updated",
  "application_id": "app_abc123",
  "timestamp": "2026-04-18T12:30:00Z",
  "data": {
    "session_id": "bs_01H...",
    "session_kind": "business",
    "vendor_data": "biz-acme-001",
    "status": "APPROVED",
    "previous_status": "IN_PROGRESS"
  }
}
```

**5. Obtén la decisión (opcional)**

> [!NOTE]
>
> La carga del webhook `status.updated` ya contiene la decisión completa. Solo necesitas llamar a este endpoint si no te suscribiste a los webhooks o si quieres obtener la decisión bajo demanda más adelante.

```bash theme={null}
curl https://verification.didit.me/v3/session/bs_01H.../decision/ \
  -H "x-api-key: YOUR_API_KEY"
```

La decisión incluye los datos del registro, las personas clave (UBO, accionistas, administradores y representantes), las coincidencias AML, los documentos y los resultados por función. Consulta el [esquema de respuesta](https://docs.didit.me/business-verification/response-schema.md) para ver la referencia completa de la carga.

**6. Actúa según la decisión**

Según el `status`:

* `APPROVED`: da de alta a la empresa.
* `DECLINED`: recházala y registra el código del motivo.
* `IN_REVIEW`: espera la decisión del analista; recibirás otro webhook cuando se resuelva.

## Ejemplo en Node.js

```typescript theme={null}
import fetch from 'node-fetch';

const API_KEY = process.env.DIDIT_API_KEY!;
const WORKFLOW_ID = process.env.DIDIT_KYB_WORKFLOW_ID!;
const BASE_URL = 'https://verification.didit.me';

async function startKybVerification(vendorData: string) {
  const res = await fetch(`${BASE_URL}/v3/session/`, {
    method: 'POST',
    headers: {
      'x-api-key': API_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ workflow_id: WORKFLOW_ID, vendor_data: vendorData }),
  });
  if (!res.ok) throw new Error(`Session create failed: ${res.status}`);
  return res.json();
}

async function getDecision(sessionId: string) {
  const res = await fetch(`${BASE_URL}/v3/session/${sessionId}/decision/`, {
    headers: { 'x-api-key': API_KEY },
  });
  return res.json();
}

// Kick off the flow
const { session_id, url } = await startKybVerification('biz-acme-001');
console.log('Deliver this URL to your contact:', url);

// ... later, after the webhook confirms completion:
const decision = await getDecision(session_id);
console.log('KYB status:', decision.status);
```

## Qué ocurre automáticamente

* Consulta al registro mercantil en 190+ jurisdicciones.
* Extracción de UBO y directivos a partir de los datos del registro.
* Análisis AML a nivel de empresa (sanciones, PEP, noticias adversas).
* AML a nivel de persona para cada parte identificada.
* OCR de documentos y comprobación cruzada.
* Creación y agregación de [perfiles de empresa](https://docs.didit.me/business-verification/business-profiles.md) identificados por `vendor_data`.

## Siguientes pasos

> **[Guía de integración](https://docs.didit.me/business-verification/integration-guide.md)**
>
> Arquitectura de extremo a extremo, sondeo frente a webhooks y lógica de reintentos.

> **[Webhooks de KYB](https://docs.didit.me/business-verification/webhooks.md)**
>
> Todos los eventos de KYB y la forma de sus cargas.

> **[Estados](https://docs.didit.me/business-verification/statuses.md)**
>
> Referencia de estados de sesión, de función y de registro.

> **[Esquema de respuesta](https://docs.didit.me/business-verification/response-schema.md)**
>
> La carga completa de la decisión de KYB.

> **[Entidades de empresa](https://docs.didit.me/entities/businesses/overview.md)**
>
> Cómo se agregan los perfiles entre sesiones.


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