Verificacion KYC
Consultar el estado de verificacion KYC y solicitar una nueva sesion de verificacion.
GET /user/kyc
Retorna el estado actual de la verificacion KYC del usuario autenticado.
Autenticacion
Bearer Token (Authorization: Bearer {token}).
Request
curl -X GET https://api.qvapay.com/user/kyc \
-H "Authorization: Bearer {token}"Response
{
"result": "OK",
"data": {
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"kyc": false,
"kyc_status": "declined",
"session_status": "Declined",
"on_hold": false,
"can_retry": true
}
}Campos de respuesta
| Campo | Tipo | Descripcion |
|---|---|---|
data.uuid | string | UUID del usuario |
data.kyc | boolean | Si la verificacion KYC esta aprobada |
data.kyc_status | string | Estado actual: none, pending, approved, declined |
data.session_status | string | Estado de la sesion en el proveedor: Not Started, In Progress, Submitted, Processing, In Review, Declined, Approved, Expired, Kyc Expired, Abandoned |
data.on_hold | boolean | El caso esta retenido por el equipo. No hay accion posible del usuario |
data.can_retry | boolean | El usuario puede abrir o continuar una sesion (POST /user/kyc devolvera una URL) |
on_hold y can_retry solo se incluyen cuando kyc es false y el proveedor responde; si
el proveedor no responde se omiten, y su ausencia significa "desconocido" (reintente), nunca
false. session_status ademas se omite cuando on_hold es true.
Que pintar en pantalla
No decida por kyc_status solo. declined lo escriben tanto un rechazo ordinario de
documento (foto borrosa, documento vencido, reintentable) como una retencion del equipo, y
distinguirlos es exactamente para lo que estan on_hold y can_retry:
| Condicion | Pantalla |
|---|---|
kyc: true | Verificado |
on_hold: true | "En revision manual, hasta 3 dias laborables". Sin boton |
can_retry: true | Boton de verificar/continuar. Si kyc_status es declined, explique que el intento anterior no paso y que puede repetirlo |
| ninguna de las anteriores | "En revision, espera el resultado". Sin boton |
POST /user/kyc
Solicita una nueva sesion de verificacion KYC. Retorna una URL para completar el proceso de verificacion de identidad.
Autenticacion
Bearer Token (Authorization: Bearer {token}).
Request
curl -X POST https://api.qvapay.com/user/kyc \
-H "Authorization: Bearer {token}"Response
{
"result": "OK",
"data": "https://verify.didit.me/es/session/tLMCAwzh3B3K",
"session_token": null
}Campos de respuesta
| Campo | Tipo | Descripcion |
|---|---|---|
data | string | URL de la sesion de verificacion KYC |
session_token | string | null | Token para el SDK nativo. Es null en sesiones reutilizadas |
Si el usuario ya tiene una sesion abierta se devuelve esa misma en vez de crear otra, y en
ese caso session_token viene null: el proveedor solo entrega el token al crear la sesion y
no hay forma de recuperarlo despues. Un cliente que use el SDK nativo tiene que caer a abrir
data cuando session_token sea null. No fuerce la creacion de una sesion nueva para
obtener token: tiene costo y descarta la que el usuario ya lleva a medias.
Errores
| Codigo | Descripcion |
|---|---|
400 | El KYC ya esta verificado. Tambien se devuelve cuando la peticion detecta que el proveedor ya habia aprobado al usuario y lo resuelve en el momento: es un exito, no un fallo |
401 | No autorizado o token invalido |
403 | El caso esta retenido por el equipo o se alcanzo el limite de intentos (reason: compliance o limit) |
409 | La verificacion esta en revision, debe esperar el resultado |
500 | Error al crear la sesion de verificacion |
502 | Error al comunicarse con el proveedor de verificacion |