QvaPay API
User

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

CampoTipoDescripcion
data.uuidstringUUID del usuario
data.kycbooleanSi la verificacion KYC esta aprobada
data.kyc_statusstringEstado actual: none, pending, approved, declined
data.session_statusstringEstado de la sesion en el proveedor: Not Started, In Progress, Submitted, Processing, In Review, Declined, Approved, Expired, Kyc Expired, Abandoned
data.on_holdbooleanEl caso esta retenido por el equipo. No hay accion posible del usuario
data.can_retrybooleanEl 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:

CondicionPantalla
kyc: trueVerificado
on_hold: true"En revision manual, hasta 3 dias laborables". Sin boton
can_retry: trueBoton 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

CampoTipoDescripcion
datastringURL de la sesion de verificacion KYC
session_tokenstring | nullToken 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

CodigoDescripcion
400El 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
401No autorizado o token invalido
403El caso esta retenido por el equipo o se alcanzo el limite de intentos (reason: compliance o limit)
409La verificacion esta en revision, debe esperar el resultado
500Error al crear la sesion de verificacion
502Error al comunicarse con el proveedor de verificacion