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

# App de KYC para Shopify: verificación de identidad y edad

> Didit para Shopify: KYC y verificación de identidad y edad en el checkout, sin código. Desde $0.33 por KYC completo, $10 gratis/mes, sin contratos.

Añade verificación de identidad y control de edad de Didit a tu tienda de Shopify en minutos.
La app de Shopify **Didit Verify** instala un bloque de tema que puedes colocar en cualquier página (cuenta, checkout, páginas de destino personalizadas) y crea sesiones de verificación en el servidor: tu clave de API permanece dentro de la app integrada y nunca se expone en la tienda.
Los resultados de verificación aparecen directamente en la pestaña **Verificaciones** de la app en tu panel de administración de Shopify, sin necesidad de un backend propio, y también están disponibles mediante [webhooks](https://docs.didit.me/es/integration/webhooks.md) y la [API de Didit](https://docs.didit.me/es/sessions-api/retrieve-session.md) para los comerciantes que gestionan su propio backend.
No necesitas iniciar sesión en la Didit Business Console para acceder a los datos de verificación recopilados a través de Shopify.

## Requisitos previos

* Una tienda de Shopify (cualquier plan)
* Una cuenta de [Didit Console](https://business.didit.me) con al menos un flujo de verificación (workflow)

***

### Paso 1: Instala la app

1. Abre el enlace de instalación:

   [[https://admin.shopify.com/oauth/install?client\_id=cafa0d15227fb59bd47470b23eae7469](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)

2. Selecciona tu tienda (si tienes varias)

3. Haz clic en **Install** para añadir la app a tu tienda

> [!NOTE]
>
> La app solicita un único permiso, `read_customers`, que se usa para rellenar y contrastar datos solo cuando **Allow customer-approved prefill** está activado y el cliente que ha iniciado sesión marca la casilla opcional para compartirlos.

***

### Paso 2: Configura tus credenciales de Didit

Tras la instalación, Didit Verify se abre dentro del panel de administración de Shopify.
Usa **Settings** para conectar la app con tu cuenta de Didit.

#### Obtén tu clave de API

1. Inicia sesión en la [Didit Business Console](https://business.didit.me)
2. Ve a **API & Webhooks** en la barra lateral izquierda
3. Copia tu clave de API

![Cómo obtener la clave de API en la Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

4. Pega la clave de API en el campo **Didit API Key** de las preferencias de Shopify

#### Obtén el ID de tu flujo

1. En la Didit Business Console, ve a **Workflows**
2. Selecciona el flujo que quieres usar (o crea uno nuevo)
3. Copia el **Workflow ID** (un UUID como `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)

![Cómo obtener el ID del flujo en la Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-workflow-id.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=529dc681169efc0a6cdc96d6c0e0a605)

4. Pega el ID del flujo en el campo **Didit Workflow ID**

#### Guarda la configuración

Elige un periodo de conservación en **Data retention** antes de guardar.
El periodo se aplica a las verificaciones existentes y futuras de la tienda, así que elige la duración que necesite tu tienda.
Haz clic en **Save Settings**.
Deberías ver un mensaje de éxito:

![Configuración de Shopify guardada correctamente](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-settings-saved-successfuly.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=93dcf3469f902876ae831075da75a628)

***

### Paso 3: Añade el botón de verificación a tu tema

1. En el panel de administración de Shopify, ve a **Online Store** → **Themes**
2. Haz clic en **Customize** en tu tema activo
3. Ve a la página donde quieres el botón de verificación (por ejemplo, la página de cuenta o una página personalizada)
4. Haz clic en **Add section** o en **Add block**
5. Ve a la pestaña **Apps**
6. Selecciona **Didit Verify**

El botón de verificación aparecerá en tu tema. Puedes arrastrarlo para cambiar su posición dentro de la sección.

***

## Acceso a los datos de verificación

La revisión de aplicaciones de Shopify (requisito 5.1.5) exige que los datos recopilados mediante un flujo alojado en Shopify estén accesibles para el comerciante **dentro del panel de administración de Shopify o en el contexto de la aplicación**, y no solo en un panel externo.
La aplicación Didit Verify cumple este requisito de serie: no necesitas backend, receptor de webhooks ni interfaz personalizada.

### La pestaña Verificaciones (predeterminada, sin código)

Abre **Apps** → **Didit Verify** → **Verifications** en el panel de administración de Shopify para ver todas las sesiones de verificación recopiladas en tu tienda online (estado, cliente, país y fecha y hora), limitadas a tu tienda.
Selecciona una sesión para ver el resumen de la decisión, los campos de identidad, cada una de las comprobaciones de verificación, las advertencias y la evidencia disponible.
Puedes moverte entre **Settings**, **Verifications**, **Privacy** y **Human review** sin salir del panel de administración de Shopify.
Al guardar la configuración, estas pestañas siguen disponibles.

> [!NOTE]
>
> La pestaña Verificaciones solo carga datos cuando abres la aplicación desde el panel de administración de Shopify. Si ves un mensaje que te pide volver a abrir la página, vuelve a **Apps** → **Didit Verify** desde la barra lateral del panel de administración de Shopify.

La Didit Business Console (`business.didit.me`) es una interfaz de administración independiente para la configuración (claves de API, flujos, destinos de webhook).
No indiques a los comerciantes que la usen para ver los datos de verificación recopilados mediante Shopify: eso no cumple el requisito de acceso a los datos de Shopify.
La Console solo es necesaria para la configuración inicial y para obtener las credenciales.

### Para comerciantes con su propio backend (opcional)

Si tienes tu propio backend y quieres una copia de los datos de verificación en él (por ejemplo, para activar la lógica de gestión de pedidos), Didit también entrega los resultados mediante webhook y mediante la API bajo demanda, además de la pestaña Verificaciones descrita arriba.

**1. Se crea la sesión de verificación**

La aplicación de Shopify crea una sesión en el servidor con tu clave de API de Didit. El cliente completa el flujo de verificación en el bloque del tema (modal o integrado).

**2. El resultado se entrega mediante webhook**

Cuando la sesión alcanza un estado final, Didit envía un webhook `status.updated` firmado al destino que configuraste en la Didit Business Console, en **API & Webhooks**.
El cuerpo del webhook incluye el [objeto de decisión](https://docs.didit.me/es/integration/webhooks.md#estructura-del-payload) completo (el mismo esquema que devuelve `GET /v3/session/{id}/decision/`) para los estados `Approved`, `Declined`, `In Review` y `Abandoned`.
Los demás estados finales (por ejemplo, `Expired`, `Kyc Expired`) entregan el cambio de estado sin un payload de decisión; llama a la API para consultar el estado de la sesión.

**3. Consulta bajo demanda (opcional)**

Tu backend también puede llamar a [`GET /v3/session/{sessionId}/decision/`](https://docs.didit.me/es/sessions-api/retrieve-session) en cualquier momento para obtener el payload completo de la decisión (campos de identidad, prueba de vida, AML, coincidencia facial, etc.).

#### Configurar webhooks para Shopify

1. En la [Didit Business Console](https://business.didit.me), ve a **API & Webhooks** → **Webhooks**
2. Crea un destino de webhook que apunte al endpoint de tu backend (HTTPS, accesible públicamente)
3. Suscríbete como mínimo a los eventos `status.updated` y `data.updated`
4. Guarda el `secret_shared_key` devuelto para verificar las firmas HMAC-SHA256 de los webhooks entrantes

Consulta la [guía de webhooks](https://docs.didit.me/es/integration/webhooks.md) para ver el contrato completo, ejemplos de verificación de firma en Node.js/Python/PHP y el comportamiento de los reintentos.

#### Obtener la decisión de una sesión mediante la API

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

La respuesta incluye `session_kind`, `status` y todos los arrays de funciones (`id_verifications`, `liveness_checks`, `face_matches`, `aml_screenings`, etc.). Consulta [Retrieve Session](https://docs.didit.me/es/sessions-api/retrieve-session.md) para ver el esquema completo de la respuesta y la referencia de campos.

***

## Opciones de configuración

### Ajustes de la página de preferencias

Estos ajustes se configuran en las preferencias de la aplicación (accesibles desde **Apps** → **Didit Verify** en el panel de administración de Shopify):

| Ajuste | Descripción |
| - | - |
| **Clave de API** | Tu clave de API de Didit (obligatoria) |
| **ID del flujo de trabajo** | El flujo de verificación que se usará (obligatorio) |
| **Datos del Proveedor** | Cómo se vinculan las sesiones a los usuarios en tu consola de Didit: **ID de cliente** (se envía como `shopify-<customer-id>`), **Customer Email**, **Shop + Customer ID** (se envía como `<shop-domain>-<customer-id>`) o **Ninguno**. Solo se aplica cuando el cliente ha iniciado sesión. |
| **URL de callback** | URL opcional a la que se redirige a los usuarios tras la verificación. Didit añade `verificationSessionId` y `status` como parámetros de consulta. |
| **Callback Method** | Qué dispositivo gestiona la redirección: **Default (initiator)**, **Initiator**, **Completer** o **Ambos** |
| **Idioma** | Idioma de la interfaz de verificación (detección automática o un idioma concreto) |
| **Require Customer Login** | Si está activado, solo los clientes que han iniciado sesión pueden verificarse |
| **Allow customer-approved prefill** | Ofrece una casilla opcional para compartir el nombre, el correo electrónico, el teléfono y la dirección del cliente que ha iniciado sesión, para el autocompletado y las comprobaciones de identidad. Los datos solo se envían cuando el cliente marca la casilla. |
| **Automatically delete after (days)** | Elige durante cuánto tiempo necesita la tienda los registros de verificación. El periodo seleccionado se aplica a los registros existentes y futuros de esta tienda. La eliminación es irreversible. |

### Opciones de privacidad del cliente

El bloque de la tienda online ofrece una casilla opcional para compartir los datos de la cuenta para el autocompletado y las comprobaciones de identidad.
Si la deja sin marcar, el cliente puede introducir los datos por sí mismo.

En **Verification choices**, un cliente que ha iniciado sesión puede solicitar una revisión humana o retirar su consentimiento y solicitar la eliminación de sus datos de verificación.
La revisión humana pausa la verificación automatizada y añade una solicitud en **Aplicaciones → Didit Verify → Human review**.
Ponte en contacto con el cliente y acuerda una alternativa adecuada antes de completar esa solicitud.
Completar una solicitud de revisión humana no aprueba una verificación ni una compra.

La retirada del consentimiento desactiva de inmediato el enlace de verificación existente e impide nuevas verificaciones mientras se procesa la eliminación.
La tienda online confirma la recepción de la solicitud; no indica que la eliminación ya haya finalizado.

## Atender solicitudes de privacidad

Abre **Apps → Didit Verify → Privacy** para hacer seguimiento de las solicitudes de exportación y eliminación de datos de clientes recibidas desde Shopify o desde la tienda.

* **Exportación de cliente:** descarga el ZIP preparado, entrégalo a través de tu proceso seguro de atención al cliente y, después, selecciona **I have delivered this export**.
* **Eliminación de cliente:** la solicitud permanece en curso hasta que se hayan eliminado los registros de verificación del cliente asociados a la tienda, los archivos subidos y las solicitudes de revisión humana.
* **Requiere atención:** sigue las instrucciones de la solicitud para resolver la falta de un ID de cliente, o contacta con el soporte de Didit cuando un perfil incluya datos de otra tienda o de otra finalidad.

Las exportaciones contienen los registros de verificación, los archivos subidos y las solicitudes de revisión humana asociados a la tienda y al cliente solicitantes.
Las descargas temporales expiran a los siete días; usa **Retry after resolving** para preparar una nueva descarga si es necesario.
Una exportación descargada debe gestionarse según tus propios procedimientos de atención al cliente y de protección de datos.

Define el periodo de retención en **Settings → Data retention**.
Los datos de verificación más antiguos se eliminan automáticamente; las verificaciones más recientes siguen disponibles.
La retención existente a nivel de aplicación sigue aplicándose cuando no se ha seleccionado un periodo específico para la tienda.
Revisa **Privacy** para ver cualquier solicitud de retención que requiera atención.

Cuando una solicitud de eliminación muestra **Deleted**, la eliminación es irreversible y los archivos multimedia eliminados dejan de estar disponibles.
Los créditos consumidos y las entradas de la lista de bloqueo gestionadas por separado no se ven afectados.

## Configuración del bloque del tema

Estos ajustes se configuran en el editor de temas de Shopify al seleccionar el bloque Didit Verify:

#### Conexión

| Ajuste | Descripción |
| - | - |
| **Mode** | **App workflow** (recomendado) usa el flujo de verificación (workflow) guardado en la configuración de la aplicación. **UniLink workflow** usa un enlace público del flujo de verificación de la cuenta de Didit conectada. Ambos modos crean sesiones asociadas a la tienda con resultados disponibles en la aplicación. |
| **UniLink URL** | Solo se usa en el modo UniLink. Usa un enlace activo de la cuenta de Didit conectada en la configuración de la aplicación. Los clientes deben iniciar sesión en su cuenta de cliente de la tienda. |

#### Visualización

| Ajuste | Descripción |
| - | - |
| **Display Mode** | **Modal**: abre la verificación en una ventana emergente superpuesta. **Embedded**: muestra la verificación integrada debajo del botón. |
| **Show close button** | Muestra u oculta el botón X para cerrar el modal de verificación |
| **Exit confirmation dialog** | Pide a los usuarios que confirmen antes de cerrar la verificación |
| **Auto-close on completion** | Cierra automáticamente el modal cuando finaliza la verificación |
| **Debug logging** | Activa los registros en la consola del navegador para resolver problemas |

#### Apariencia del botón

| Ajuste | Descripción |
| - | - |
| **Button text** | Texto que se muestra en el botón (valor predeterminado: "Verify your Identity") |
| **Success text** | Texto que se muestra tras una verificación exitosa (valor predeterminado: "Identity Verified ✓") |
| **Background color** | Color de fondo del botón |
| **Text color** | Color del texto del botón |
| **Border radius** | Redondeo de las esquinas del botón (0–50px) |
| **Vertical padding** | Relleno superior e inferior (0–40px) |
| **Horizontal padding** | Relleno izquierdo y derecho (0–60px) |
| **Font size** | Tamaño del texto del botón (10–32px) |

***

## Configuración recomendada

Para la mayoría de las tiendas, recomendamos:

* **Mode:** App workflow (usa el flujo guardado en la configuración de la aplicación)
* **Display Mode:** Modal (funciona en cualquier lugar, sin problemas de diseño)
* **Require Customer Login:** activado (vincula la verificación a las cuentas de cliente)
* **Allow customer-approved prefill:** activado (los clientes eligen si comparten los datos de su tienda)

***

## Pruebas

1. Previsualiza tu tema o visita tu tienda
2. Ve a la página que tiene el botón de Didit Verify
3. Haz clic en **Verify your Identity**
4. Completa el flujo de verificación
5. Comprueba en tu backend la entrega del webhook, o invoca [GET /v3/session/{id}/decision/](https://docs.didit.me/es/sessions-api/retrieve-session.md) para obtener el resultado de la verificación

> [!NOTE]
>
> El sandbox es gratuito (cada aplicación de sandbox puede crear 500 sesiones de prueba cada 24 horas), así que puedes probar el flujo completo sin coste. En el modo de producción, el plan Free incluye \$10 de crédito al mes.

***

## Solución de problemas

### El botón no hace nada al hacer clic

* Asegúrate de haber guardado tu clave de API y tu Workflow ID en las preferencias
* Comprueba que el Workflow ID pertenece a la misma aplicación que tu clave de API
* Activa **Debug logging** en la configuración del bloque y revisa si hay errores en la consola del navegador

### Error "Didit credentials not configured"

* La aplicación no tiene guardada una clave de API ni un Workflow ID para esta tienda. Abre **Apps** → **Didit Verify**, completa ambos campos y haz clic en **Save Settings**

### Mensaje "You must be logged in to verify your identity"

* **Require Customer Login** está activado (es el valor predeterminado). El cliente primero debe iniciar sesión en su cuenta de la tienda; si necesitas verificar a invitados, desactiva este ajuste en las preferencias de la aplicación

### La configuración no se guarda

* "API key validation failed": vuelve a copiar la clave de API desde la [Didit Business Console](https://business.didit.me) y asegúrate de que no haya espacios de más
* "This workflow does not belong to your application": el Workflow ID pertenece a una aplicación de Didit distinta a la de tu clave de API; copia ambos de la misma aplicación

## Soporte (24/7)

Nuestro equipo está disponible para ayudarte a ponerlo todo en marcha.

> [card] [Correo electrónico](mailto:hello@didit.me)
>
> Escríbenos a [hello@didit.me](mailto:hello@didit.me).


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