KYC
JAAK mejora el proceso KYC integrando herramientas especializadas tales como Liveness
, One to One
, Document
y Blacklist
una sola sesión, así como haciendo la disponible la verificación en tiempo real.
Empezando
Siga estos pasos para comenzar:
- Obtén un Api Key: Ingresa a la plataforma y obtén un Api Key.
- Genera un API Key: Utiliza el ApiKey para acceder a los productos JAAK
- Genere un flujo KYC: Utilice el endpoint de sesiones KYC para generar un código de KYC.
- Realiza tu flujo en el dashboard de KYC: Utiliza el link de redirección o tu código para empezar tu proceso KYC.
- Verifique su sesión: Compruebe el resultado de la sesión después de ejecutar todos sus pasos.
- Apruebe o rechace un flujo: En caso de ser necesario, el administrador podrá aceptar o rechazar un flujo
Inicia tú KYC
Construir su proceso KYC con JAAK es sencillo y efectivo:
1. Inicia sesión
Para proceder, es indispensable generar una clave API con un tiempo de expiración definido.
Este proceso puede completarse fácilmente mediante el panel de administrado. Esto garantiza un acceso seguro y gestionado a los recursos necesarios durante el tiempo estipulado.
Para más detalles, consulta la documentación específica de cada método disponible a través de los siguientes enlaces:
- Generación de clave API el panel de administrador API Keys Panel de Administrador
2. Crea un código para acceder a un flujo KYC
Lanza una petición http POST
a [basePath]/api/v1/kyc/flow
donde debes incluir las cabeceras Authorization Bearer
con tu Api Key generada con anterioridad1. Crea un Api Key, asi como la cabecera Origin
, la cual acorde al ambiente que utilices se debe colocar dicha url.
Los posibles valores para la cabecera Origin encuentran dependiendo del ambiente.
- Ambiente Sandbox: https://sandbox.jaak.ai
- Ambiente Productivo: El campo debe ser vacio
Si la propiedad
redirectUrl
dentro del cuerpo de tu peticion NO es nula o vacia, se tomara esta con mayor jerarquia.Para pruebas y ambientes de sandbox se recomienda utilizar la cabecera Origin con el valor del ambiente sandbox.
curl -X POST "https://sandbox.api.jaak.ai/api/v1/kyc/flow" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"name": "<nombre_sesion>",
"flow": "<detalle_flujo>",
"redirectUrl": "<url_redireccion>",
"verificationType": "<tipo_verificacion>",
"flowType": "KYC",
"countryDocument": "<pais_documento>",
"verification": {
"SMS": "<verificacion_sms>",
"EMAIL": "<verificacion_email>",
"WHATSAPP": "<verificacion_whatsapp>"
}
}'
Campo | Descripción | Tipo de Datos |
---|---|---|
name | Especifique un nombre para su sesión KYC. | String |
flow | Proporcione detalles sobre el flujo KYC. | String |
redirectUrl | Establezca la URL a la que serán redirigidos los usuarios después de completar el KYC. | String |
verificationType | Indique el tipo de verificación a realizar. Opciones válidas: "sms", "email" o "whatsapp". | String |
flowType | Indique el tipo de flujo a ejecutar. Para crear una sesión KYC el valor debe ser "KYC". | String |
countryDocument | Especifique el país del documento para la verificación. Siendo elegibles México, Peru, Colombia y Paraguay | String |
verification | Incluya detalles de verificación para SMS, correo electrónico y WhatsApp. | Objeto |
📝 El código de los paises soportados para cada país es el siguiente
- México: MEX
- Colombia: COL
Para mas información visita https://www.iban.com/country-codes o revisa la información referente sobre el tema
ISO 3166-1 alpha-3
Como respuesta obtendrás el siguiente JSON:
{
"redirectUrl":"https://sandbox.kyc.jaak.ai/session/FTJyslH"
}
El objeto recibido, con un único parámetro redirectUrl
, indica un link de redirección para dirigirte al panel de onboarding del proceso de KYC. De esta liga de redirección debes extraer y guardar el valor shortKey
el cual es el valor que se encuentra despues de.../session/
. Este nos ayudara a generar un ApiKey el cual unirá los productos en un solo flujo de KYC.
📝 Detalles de contexto ShortKey
- Tiene una expiración de 3 días.
- Esta propiedad te permitirá iniciar tu flujo de KYC incluso aunque no lo hayas terminando, generando un accessToken nuevo cada vez que esto ocurra.
- El shortkey o codigo generara un token de acceso KYC el cual expira en 15 minutos, este es unico para este codigo.
- Una vez terminado un flujo el codigo (shortkey) expira, por lo que la informacion referente a este podra ser consultada siguiendo los pasos Observa tus resultado
3. Intercambia el código por un token de acceso de kyc
Realiza una peticion http POST al endpoint [basePath]/api/v1/kyc/session colocando como cabecera Short-Key con el valor del código (shortKey) del paso anterior:
curl -X POST "\<https\://sandbox.api.jaak.ai/api/v1/kyc/session>" \
-H "Content-Type: application/json" \\
-H "Short-Key: \<shortKey>"
Como resultado obtendremos este JSON:
{
"accessToken": "<accessToken>",
"step": 0,
"sessionId": "soy_un_id",
"assets": {
"document": null,
"liveness": null
},
"document": "MEX"
}
Parámetro | Descripción |
---|---|
accessToken | Token de acceso de KYC. |
assets | Objeto que contiene los activos. |
document | Objeto que contiene los datos del documento. |
eventId | Identificador del evento. |
message | Mensaje de error. |
processingTime | Tiempo de procesamiento en milisegundos. |
requestId | Identificador de la solicitud. |
status | Estado de la respuesta. |
liveness | Objeto que contiene datos de prueba de vida. |
sessionId | Identificador del flujo. |
step | Paso actual del proceso. |
Cómo continuar
Para poder continuar con el flujo de KYC e integrar productos a un flujo KYC es necesario el valor del campo accessToken o token de acceso KYC, el cual logra su objetivo mediante agregar dicho valor a la cabecera Authentication Bearer. Este token tiene como propiedad el rol de api-key por lo que nos permitira usarlo unicamente para enlazar los productos de JAAK.
4. Agrega Ubicacion al iniciar un flujo KYC (Opcional)
Este paso es opcional, si no deseas agregar ubicación dentro de tu flujo puedes omitir este paso e ir al paso 5.
ℹ️ JAAK recomienda implementar ubicacion dentro de tus flujos.
Realiza una peticion http POST a [basePath]/api/v1/kyc/session/location
incluyendo en el cuerpo de la peticion los valores de longitud y latitud, asi como el valor de tu accessToken con rol api-key como cabecera de autorizacion:
curl -X POST "https://sandbox.api.jaak.ai/api/v1/kyc/session/location" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"latitude": <float>,
"longitude:" <float>
}'
Como respuesta debes obtener un cuerpo vacio {}
y un estado de respuesta OK 200
, indicando que la ubicacion se actualizo correctamente en el flujo.
5. Realiza llamadas al flujo con el token de acceso de kyc
Utilizando el token de acceso KYC (accessToken obtenido con anterioridad), podremos enlazar los productos de una manera simple.
Para esto, realizamos una peticion a la url de la funcionalidad del producto que deseemos agregar e incluyendo la cabecera Authorization Bearer podremos obtener los resultados de cada producto dentro de nuestro flujo KYC.
Ejemplos
Los ejemplos muestran como ligar nuestros productos con un token de acceso KYC. Estos ejemplos no reflejan el uso real de nuestros productos, solo muestran como hacer el link entre un flujo de KYC, para esto, se recomienda visualizar la documentacion de cada producto en especifico.
curl -X POST "<https://sandbox.api.jaak.ai/api/v2/oto/verify>" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"image1": "imageBase64",
"image2": "imageBase64",
"eventId": "example_event_id" //Opcional
}'
curl -X POST "<https://sandbox.api.jaak.ai/api/v1/liveness/verify-and-bestframe>"
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"video": "videoBase64",
}'
6. Finaliza la Session de KYC
Una ves que hayas terminado de ligar los productos que desees, podras finalizar la flujo de onboarding KYC realizando una peticion HTTP al endpoint [basePath]/api/v1/kyc/session/finish
con la cabecera Authorization Bearer
agregando como valor el token de acceso KYC que hemos estado utilizando en los pasos anteriores:
curl -X POST "<https://sandbox.api.jaak.ai/api/v1/kyc/session/finish>"
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>"
Como resultado obtendremos un objeto JSON el cual nos da los detalles completos del flujo (dicha respuesta es bastamte extensa por lo que se indican las principales propiedades que puedes encontrar:
{
"session": {...},
"summary": {...},
"flow": {...}
}
Campo | Descripción |
---|---|
session | Información de sesión. |
summary | Resumen de datos. |
flow | Flujo de información. |
7. WebHook
Al terminar el flujo, si haz configurado un WebHook para el producto KYC Tradicional dentro de tu Empresa o Compañia, sera ejecutado permitiendo obtener datos relevantes de la session para su posterior revision.
Para mas detalles ve a la sección WebHook KYC Webhooks
8. Revision de sesion
Una ves terminado tu flujo podras realizar una **revision manual **de este, en casos donde el puntaje total no es ni muy bajo ni muy alto. Este endpoint permite realizar actualizaciones manuales para determinar si la verificación finalizó con éxito o fue rechazada.
- Momento de Uso: El endpoint debe utilizarse solo después de que el estado de la verificación esté en need_review. Aunque es posible llamar a este endpoint en cualquier momento, no realizará ninguna acción hasta que el estado sea need_review.
- Funcionalidad: Cuando el estado es need_review, el uso de este endpoint actualizará el estado de la verificación de manera efectiva.
Ejemplo de la peticion el cual incluye la cabecera incluyendo la cabecera Authorization Bearer que tiene como valor elaccessToken el cual obtenemos al iniciar sesion Paso 1 :
curl -X PUT "<https://sandbox.api.jaak.ai/api/v1/kyc/session/<sessionId>>/manual-review" \
-H "accept: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{"status":"PASS"}'
Recuerda que el ID de la sesion sessionId se puede obtener al generar el ApiKey para empezar tu flujo KYC.
El resultado es el siguiente
{
"contactName": "<contactName>",
"endDate": "<endDate>",
"flowName": "<flowName>",
"flowType": "<flowType>",
"location": {
"city": "<city>",
"country": "<country>",
"latitude": 0.0,
"longitude": 0.0,
"state": "<state>",
"origin": "<origin>"
},
"rigelUrl": "<rigelUrl>",
"score": 0.0,
"sessionID": "<sessionID>",
"shortKey": "<shortKey>",
"startDate": "<startDate>",
"status": "<status>",
"updateDate": "<updateDate>",
"validation": "<validation>",
"verification": {
"EMAIL": "<EMAIL>",
"SMS": "<SMS>",
"WHATSAPP": "<WHATSAPP>",
"smsDetail": {
"message": "<message>",
"status": "<status>",
"verificationType": "<verificationType>"
}
}
}
Campo | Descripción |
---|---|
contactName | Nombre del contacto |
endDate | Fecha de finalización |
flowName | Nombre del flujo |
flowType | Tipo de flujo |
location | Objeto que contiene información de ubicación |
rigelUrl | URL de RIGEL |
score | Puntuación |
sessionID | ID de sesión |
shortKey | Clave corta |
startDate | Fecha de inicio |
status | Estado (puede ser PASS, FAIL, NEED_REVIEW, ERROR) |
updateDate | Fecha de actualización |
validation | Método de validación (puede ser AUTOMATIC, MANUAL, NEED_REVIEW) |
verification | Objeto que contiene información de verificación |
Updated about 2 months ago