Resultados de Sesión KYC


Consulta detalles de session

A continuación, te mostramos cómo visualizar las sesiones KYC realizadas mediante API.

Puedes utilizar la siguiente URL para buscar

Endpoint

URL: /api/v1/kyc/session/<sessionID>
Método: GET
Tipo de contenido: application/json

El parámetro <sessionID> en la URL de arriba, corresponde con el parámetro sessionID de una Sesión KYC. Este parámetro sessionID se puede encontrar dentro de las propiedades preliminares al listar las sesiones KYC

Autenticación

Este endpoint requiere autenticación mediante Bearer Token de tipo API Key, el cual se obtiene desde el Dashboard de JAAK.

Authorization: Bearer {API_KEY_FROM_DASHBOARD}

⚠️ Nota importante: Este Bearer Token es diferente al access_token del endpoint de validación de licencia. Este debe ser una API Key obtenida directamente desde tu dashboard de JAAK.


Headers Requeridos

HeaderTipoRequeridoDescripción
AuthorizationstringBearer token con tu API Key del dashboard
Origin-DevicestringOrigen del dispositivo. Valores: web, android, ios

Ejemplo de Headers

Authorization: Bearer sk_live_abc123xyz789...
Origin-Device: web

Respuestas

200 - OK

Retorna el token JWT de sesión junto con los assets procesados (documento y liveness).

Headers de Respuesta:

  • X-Trace-ID (string): OpenTelemetry trace ID para distributed tracing
{
  "sessionId": "string",
  "accessToken": "string",
  "step": 0,
  "document": "string",
  "assets": {
    "document": {
      "status": true,
      "message": "string",
      "requestId": "string",
      "eventId": "string",
      "processingTime": "string",
      "documentType": {
        "type": "UNDEFINED",
        "country": "UNDEFINED"
      },
      "documentMetadata": "string",
      "documentData": {
        "mechanicalReadingZone": "string",
        "generalData": {
          "type": "string",
          "name": "string",
          "secondName": "string",
          "surname": "string",
          "motherSurname": "string",
          "gender": "string",
          "birthDate": "string",
          "country": "string",
          "validUntil": "string",
          "address": {
            "street": "string",
            "externalNumber": "string",
            "internalNumber": "string",
            "neighborhood": "string",
            "city": "string",
            "council": "string",
            "state": "string",
            "zipCode": "string",
            "fullAddress": "string"
          },
          "documentImage": {
            "photo": "string",
            "position": {
              "top": 0,
              "left": 0,
              "bottom": 0,
              "right": 0
            }
          }
        },
        "specificData": [
          {
            "label": "string",
            "value": "string"
          }
        ]
      },
      "state": {
        "supportedDocument": true,
        "isExpired": true,
        "isUnderAge": true,
        "message": "string"
      }
    },
    "liveness": {
      "requestId": "string",
      "eventId": "string",
      "score": 0,
      "processTime": 0,
      "bestFrame": "string",
      "state": {
        "isRealPerson": true,
        "message": "string"
      }
    }
  }
}

Campos de la Respuesta

Campos Principales:

  • sessionId (string): ID de la sesión KYC
  • accessToken (string): Token JWT de sesión
  • step (number): Paso actual del flujo KYC
  • document (string): Tipo de documento procesado

Assets - Document:

  • status (boolean): Estado del procesamiento del documento
  • message (string): Mensaje descriptivo del resultado
  • documentType: Tipo y país del documento procesado
  • documentData: Datos extraídos del documento
    • generalData: Información general (nombre, apellidos, género, fecha de nacimiento, dirección, etc.)
    • mechanicalReadingZone: Zona de lectura mecánica (MRZ)
    • specificData: Datos específicos del documento (CURP, CIC, etc.)
  • state: Estado del documento
    • supportedDocument: Si el documento es soportado
    • isExpired: Si el documento está vencido
    • isUnderAge: Si la persona es menor de edad

Assets - Liveness:

  • score (number): Puntuación de la prueba de vida (0-100)
  • bestFrame (string): Mejor frame capturado en base64
  • state: Estado de la prueba
    • isRealPerson: Si se detectó una persona real
    • message: Mensaje descriptivo del resultado

400 - Bad Request

{
  "statusCode": 400,
  "message": "string",
  "errorCode": "string",
  "eventId": "string"
}

Causas comunes:

  • Headers faltantes (Short-Key u Origin-Device)
  • Shortkey expirado o inválido
  • Estado de sesión inválido

500 - Internal Server Error

{
  "statusCode": 500,
  "message": "string",
  "errorCode": "string",
  "eventId": "string"
}

Ejemplo de Uso

curl -X GET https://api.jaak.mx/api/v1/kyc/session \
  -H "Authorization: Bearer sk_live_abc123xyz789..." \
  -H "Short-Key: 7f3e4d2c1b9a8f6e5d4c3b2a1" \
  -H "Origin-Device: web"

Respuesta Ejemplo

HTTP/1.1 200 OK
X-Trace-ID: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
Content-Type: application/json

{
  "sessionId": "sess_abc123",
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "step": 2,
  "document": "INE",
  "assets": {
    "document": {
      "status": true,
      "message": "Documento procesado exitosamente",
      ...
    },
    "liveness": {
      "score": 95,
      "state": {
        "isRealPerson": true,
        "message": "Persona real detectada"
      },
      ...
    }
  }
}

Descargar Reporte PDF de Sesión KYC

Descripción

Descarga un reporte PDF completo con el resumen de una sesión de verificación KYC.

Este endpoint requiere autenticación mediante Bearer Token de tipo API Key, el cual se obtiene desde el Dashboard de JAAK.


Endpoint

GET /api/v1/kyc/session/{id}/pdf

URL Completa:

https://api.jaak.mx/api/v1/kyc/session/{id}/pdf

Parámetros

Path Parameters

ParámetroTipoRequeridoDescripciónEjemplo
idstring✅ SíID único de la sesión KYC06722190-9de7-4d1b-a9ad-1559a5ab8cb9

Headers

HeaderValorRequerido
AuthorizationBearer {API_KEY}✅ Sí
Acceptapplication/pdf⚪ Opcional

Configuración en Postman

1. Configuración Básica

  • Método: GET
  • URL: https://api.jaak.mx/api/v1/kyc/session/06722190-9de7-4d1b-a9ad-1559a5ab8cb9/pdf

2. Headers

Authorization: Bearer YOUR_API_KEY
Accept: application/pdf

3. Guardar Respuesta

  • Click en "Send and Download"
  • O habilita "Save Response" → "Save to a file"

Respuestas

✅ 200 - OK

Content-Type: application/pdf

Body: Archivo PDF binario descargable


❌ 400 - Bad Request

{
  "errorCode": "INVALID_SESSION_ID",
  "eventId": "3683b971-8448-4fcb-88df-376fe34a4621",
  "message": "La sesión especificada no existe o no está disponible",
  "statusCode": 400
}

Códigos de Error:

  • INVALID_SESSION_ID - ID de sesión inválido
  • SESSION_NOT_FOUND - Sesión no encontrada
  • SESSION_INCOMPLETE - Sesión no completada
  • PDF_GENERATION_FAILED - Error al generar PDF

🔒 401 - Unauthorized

{
  "errorCode": "UNAUTHORIZED",
  "message": "API Key inválida o no proporcionada",
  "statusCode": 401
}

⏱️ 404 - Not Found

{
  "errorCode": "SESSION_NOT_FOUND",
  "message": "No existe una sesión con el ID proporcionado",
  "statusCode": 404
}

Contenido del PDF

El reporte incluye:

  • ✅ Información general de la sesión
  • 👤 Datos personales extraídos
  • 📍 Dirección completa
  • 🆔 Números de identificación (CIC, CURP, Clave de Elector, RFC)
  • 📅 Fechas de emisión y vencimiento
  • ✅ Validaciones realizadas
  • 🖼️ Imágenes del documento (frente y reverso)
  • 📸 Fotografía del rostro

Notas Importantes

⏱️ Disponibilidad: El PDF está disponible inmediatamente después de completar la verificación

💾 Tamaño: Entre 500 KB y 2 MB aproximadamente

🔐 Seguridad: El PDF contiene información sensible (PII) - manejar con cuidado

📝 Retención: Los PDFs pueden estar disponibles por tiempo limitado (30-90 días)