Descripción general
En sandbox, cuando creas una validación KYC para una entidad persona, la API puede devolver un resultado mock inmediato según el taxId (documento) de la entidad. No se realiza ninguna verificación externa; la respuesta y los webhooks coinciden con el resultado asociado a ese documento en nuestro set de prueba. Así puedes probar todos los flujos (aprobado, rechazado, cancelado, doble chequeo RENAPER, etc.) sin pasar por una verificación real.El formato no importa. El
taxId de la entidad puede enviarse con o sin formato (p. ej. 99.990.001 o 99990001). La API lo normaliza antes de comparar, por lo que ambos funcionan igual.Cómo funciona
- La entidad persona pertenece a una organización en modo sandbox.
- Llamas a POST /api/kyc/validations con el
entityIdde esa entidad. - La API busca el taxId de la entidad en el mapa de prueba de sandbox (tras normalizar: solo dígitos y letras).
- Si hay coincidencia, se crea una validación mock con estado
pending(201 Created) y momentos después se actualiza al estado final (p. ej.approved,rejected,cancelled). - Se envían los webhooks correspondientes a tu endpoint configurado con el resultado final.
- Si no hay coincidencia, la API sigue el flujo normal (crea una sesión de verificación real y devuelve
providerSessionUrl).
pending, y luego se actualiza y se notifica vía webhook. No intentes hacer polling inmediato al endpoint GET después de crear la validación - usa webhooks para recibir el resultado.
Vista previa sintética de entidad (solo GET)
En sandbox, si consultás un número de documento del catálogo de prueba y no existe una entidad real, Gu1 puede devolver una persona sintética en lugar de404:
GET /api/entities/by-tax-id/{taxId}GET /api/entities?taxId={taxId}(filtro exacto, cero coincidencias reales)
sandboxMock: true, id: null y metadata.sandboxKycOutcome. No se escribe nada en la base de datos.
RENAPER en sandbox: Si envías doubleCheckRenaper: true al crear la validación y el resultado es aprobado (o un rechazo relacionado con RENAPER), la respuesta y el payload del webhook incluirán metadata.responseDoubleChecks.renaper con la misma estructura que en producción.
Valores de prueba por defecto
Ofrecemos un set fijo de números de documento de prueba en cuatro formatos. Cada número corresponde a un resultado. La clave de búsqueda es el valor normalizado (sin puntos, guiones ni espacios).Lista de resultados (qué devuelve cada número)
| # | Resultado | Significado |
|---|---|---|
| 01 | approved | KYC aprobado. Si pediste doble chequeo RENAPER, la respuesta incluye RENAPER correcto. |
| 02 | approved_with_renaper | Igual que approved; RENAPER en la respuesta solo si se pidió en la creación. |
| 03 | cancelled | Validación cancelada. |
| 04 | rejected | Rechazo genérico. |
| 05 | rejected_document_mismatch | Rechazo por documento no coincidente con la entidad. |
| 06 | rejected_renaper_tramite_not_match | Rechazo: número de trámite no coincide con el registro. |
| 07 | rejected_renaper_dni_not_match | Rechazo: documento no coincide con el registro. |
| 08 | rejected_renaper_verification_unavailable | Rechazo: verificación con el registro no disponible. |
| 09 | rejected_renaper_dni_missing | Rechazo: sin documento para verificación con el registro. |
| 10 | rejected | Rechazo genérico (segundo número para pruebas). |
Argentina – DNI (8 dígitos)
Usa cualquiera de estos comotaxId de la entidad (con o sin puntos). El valor normalizado es el que se usa para el match.
| Valor de ejemplo | Normalizado | Resultado |
|---|---|---|
| 99.990.001 o 99990001 | 99990001 | approved |
| 99.990.002 o 99990002 | 99990002 | approved_with_renaper |
| 99.990.003 | 99990003 | cancelled |
| 99.990.004 | 99990004 | rejected |
| 99.990.005 | 99990005 | rejected_document_mismatch |
| 99.990.006 | 99990006 | rejected_renaper_tramite_not_match |
| 99.990.007 | 99990007 | rejected_renaper_dni_not_match |
| 99.990.008 | 99990008 | rejected_renaper_verification_unavailable |
| 99.990.009 | 99990009 | rejected_renaper_dni_missing |
| 99.990.010 | 99990010 | rejected |
| 99.990.011 | 99990011 | approved (KYC); mock biométrico por defecto rejected — ver Biometría embebida mock |
Argentina – CUIT (11 dígitos)
Formato:20-XXXXXXXX-X. Ejemplo: 20-99990001-9.
| Valor de ejemplo | Normalizado | Resultado |
|---|---|---|
| 20-99990001-9 | 20999900019 | approved |
| 20-99990002-9 | 20999900029 | approved_with_renaper |
| 20-99990003-9 | 20999900039 | cancelled |
| 20-99990004-9 | 20999900049 | rejected |
| 20-99990005-9 | 20999900059 | rejected_document_mismatch |
| 20-99990006-9 | 20999900069 | rejected_renaper_tramite_not_match |
| 20-99990007-9 | 20999900079 | rejected_renaper_dni_not_match |
| 20-99990008-9 | 20999900089 | rejected_renaper_verification_unavailable |
| 20-99990009-9 | 20999900099 | rejected_renaper_dni_missing |
| 20-99990010-9 | 20999900109 | rejected |
| 20-99990011-9 | 20999900119 | approved (KYC); mock biométrico por defecto rejected |
Brasil – CPF (11 dígitos)
Formato:XXX.XXX.XXX-XX. Ejemplo: 999.900.001-01.
| Valor de ejemplo | Normalizado | Resultado |
|---|---|---|
| 999.900.001-01 | 99990000101 | approved |
| 999.900.001-02 | 99990000102 | approved_with_renaper |
| 999.900.001-03 | 99990000103 | cancelled |
| 999.900.001-04 | 99990000104 | rejected |
| 999.900.001-05 | 99990000105 | rejected_document_mismatch |
| 999.900.001-06 | 99990000106 | rejected_renaper_tramite_not_match |
| 999.900.001-07 | 99990000107 | rejected_renaper_dni_not_match |
| 999.900.001-08 | 99990000108 | rejected_renaper_verification_unavailable |
| 999.900.001-09 | 99990000109 | rejected_renaper_dni_missing |
| 999.900.001-10 | 99990000110 | rejected |
Brasil – CNPJ (14 dígitos)
Formato:XX.XXX.XXX/XXXX-XX. Ejemplo: 99.990.000/0001-01.
| Valor de ejemplo | Normalizado | Resultado |
|---|---|---|
| 99.990.000/0001-01 | 99990000000101 | approved |
| 99.990.000/0001-02 | 99990000000102 | approved_with_renaper |
| 99.990.000/0001-03 | 99990000000103 | cancelled |
| 99.990.000/0001-04 | 99990000000104 | rejected |
| 99.990.000/0001-05 | 99990000000105 | rejected_document_mismatch |
| 99.990.000/0001-06 | 99990000000106 | rejected_renaper_tramite_not_match |
| 99.990.000/0001-07 | 99990000000107 | rejected_renaper_dni_not_match |
| 99.990.000/0001-08 | 99990000000108 | rejected_renaper_verification_unavailable |
| 99.990.000/0001-09 | 99990000000109 | rejected_renaper_dni_missing |
| 99.990.000/0001-10 | 99990000000110 | rejected |
Ejemplo: aprobado con RENAPER
- Crea una entidad persona en sandbox con
taxId:99990001(o99.990.001). - Llama a POST /api/kyc/validations con
entityIdydoubleCheckRenaper: true(body o query). - La API devuelve 201 con la validación; poco después el estado es approved y se envía el webhook
kyc.validation_approved. - El payload del webhook incluye el objeto completo de la validación, incluido
metadata.responseDoubleChecks.renaperconverified: true,matchResult: "match",personalNumber,idTramitePrincipalyrenaperData(respuesta mock del registro).
Ejemplo de respuesta (mock aprobado)
El body de la respuesta y el payload del webhook siguen la misma estructura que una validación real. Ejemplo de forma para un mock aprobado (campos relevantes):metadata.responseDoubleChecks no aparece en aprobado; cuando sí se pide, aparece como arriba. Para renaperData en rechazos o errores de servicio, ver forma de renaperData.
Biometría embebida (mock sandbox)
Tras un KYC mock aprobado para la misma entidad, podés crear una sesión biométrica embebida (POST /api/kyc/biometric/sessions) también en modo mock en sandbox: sin UI hospedada; Gu1 devuelve el resultado de inmediato.
La biometría mock usa la misma organización sandbox y el mismo mapa de
taxId de prueba que el mock de KYC. Las validaciones mock incluyen metadata.sandboxMock: true. Las sesiones biométricas mock incluyen metadata.sandboxMock: true y metadata.sandboxMockOutcome (approved o rejected).Requisitos
- Organización en modo sandbox (igual que KYC mock).
- Entidad persona con
taxIdde prueba cuyo outcome de KYC seaapprovedoapproved_with_renaper(p. ej.99990001,99990002,99990011). - KYC aprobado para esa entidad (crearlo antes con
POST /api/kyc/validations).
Outcomes biométricos por documento de prueba
Ejemplo taxId | Normalizado | Mock KYC | Mock biometría (default) |
|---|---|---|---|
| 99990001 / 20-99990001-9 | 99990001 / 20999900019 | approved | approved (inmediato) |
| 99990002 / 20-99990002-9 | 99990002 / 20999900029 | approved_with_renaper | approved (inmediato) |
| 99990011 / 20-99990011-9 | 99990011 / 20999900119 | approved | rejected (inmediato) |
rejected o cancelled, no podés crear sesión biométrica (NO_KYC).
Forzar outcome en la misma entidad
En cualquier entidad mock elegible, enviámetadata.sandboxMockOutcome en el body:
approved, rejected. Solo aplica si califica para mock sandbox (org sandbox + KYC mock aprobado, o KYC con metadata.sandboxMock: true).
Ejemplo: mock aprobado
- Crear entidad persona con
taxId:99990001. POST /api/kyc/validations→ webhookkyc.validation_approved(o GET hastaapproved).POST /api/kyc/biometric/sessionscon{ "entityId": "..." }.
201 con "status": "approved", hostedSessionId con prefijo sandbox-mock-bio-, webhook biometric.session_approved. No hace falta iframe.
Ejemplo: mock rechazado
Opción A — documento99990011 (KYC aprobado, biometría rechazada por defecto).
Opción B — misma entidad 99990001 con "metadata": { "sandboxMockOutcome": "rejected" }.
Respuesta "status": "rejected"; webhook biometric.session_rejected.
Biometría real (no mock) en sandbox
Si eltaxId no está en el mapa de prueba, o la org no es sandbox, el create sigue el flujo de producción: UI de captura hospedada, status: pending, y un hostedSessionId asignado por Gu1. Requiere retrato válido del KYC aprobado.
Reintentos y sesiones activas
- Si la última sesión biométrica está
pendingoin_progress, el create devuelve409 ACTIVE_SESSION_EXISTSconactiveSessionId. Cancelala conPOST /api/kyc/biometric/sessions/:id/cancel. - Si un create anterior persistió en Gu1 pero el cliente reintentó, Gu1 reutiliza la fila existente cuando devuelve el mismo
hostedSessionId(create idempotente).
Datos mock personalizados
El set por defecto anterior está disponible para todas las organizaciones sandbox sin configuración.Ver también
- Crear validación KYC – Cómo llamar a la API
- Sesión biométrica embebida – Reautenticación hospedada tras KYC
- Integración webhook – Recibir eventos de validación en tiempo real