Respuestas

En esta guía, hablaremos sobre qué sucede cuando algo sale mal mientras trabajas con el API.

Puedes saber si tu solicitud fue exitosa verificando el código de estado al recibir una respuesta del API. Si la respuesta no fue exitosa, puedes utilizar el tipo de error y el mensaje de error para entender qué salió mal y realizar algunas depuraciones básicas (antes de contactar al soporte).


Esquema de Respuesta

Todas las respuestas de nuestros APIs poseen la siguiente estructura:

  • Name
    type
    Type
    Description

    Indica el tipo de respuesta. Los valores para los tipos se detallean en la sección tipos de respuesta.

  • Name
    status
    Type
    Description

    El código de estado corresponde al código de la respuesta de la solicitud. Los valores para los códigos de estaddo se detallean en la sección códigos de respuesta

  • Name
    message
    Type
    Description

    Es el mensaje que resume el resultado de la solicitud realizada.

  • Name
    errors
    Type
    opcional | nullable
    Description

    En este atributo se consignará, de existir y se necesario, un arreglo con los errores correspondientes a la solicitud, caso contrario el valor puede ser nulo. Este atributo estará presente en todas las respuestas de error.

  • Name
    data
    Type
    opcional | nullable
    Description

    Este atributo consignará, de existir y ser necesario, un objeto o arreglo que corresponda a los datos retornados en respuesta a la solicitud procesada, caso contrario el valor puede ser nulo. Este atributo estará presente en todas las respuesta exitosas.

Objeto respuesta

{
  "type": "...",
  "status": XXX,
  "message": "...",
  "errors": [...],
  "data": {...},
}

Códigos de Respuesta

Aquí tienes una lista de los diferentes códigos de respuesta devueltos por el API de VerificaID. Utilízalos para entender si una solicitud fue exitosa.

  • Name
    200
    Type
    Description

    Indica que la solicitud se la procesado con éxito.

  • Name
    401
    Type
    Description

    Indica que la solicitud fue rechazada por caracer de autenticación.

  • Name
    402
    Type
    Description

    Indica que la solicitud fue rechazada porque la solicitud autenticada carece de tokens disponibles para procesar la solicitud.

  • Name
    404
    Type
    Description

    Indica que el endpoint solicitado es inexistente.

  • Name
    405
    Type
    Description

    Indica que el método solicitado por el endpoint no está soportado.

  • Name
    422
    Type
    Description

    Indica que la solicitud fue rechazada porque contiene errores.

  • Name
    429
    Type
    Description

    Indica que se ha alcanzado el límite de solicitudes por rango de tiempo.

  • Name
    500
    Type
    Description

    Indica que ha ocurrido un problema interno en el servidor.

  • Name
    503
    Type
    Description

    Indica que la solicitud no puede ser procesada en este momento.


Tipos de Respuesta

Ahora hablaremos sobre qué sucede cuando algo sale mal mientras trabajas con el API. Veamos algunos códigos de estado y tipos de errores que podrías encontrar.

  • Name
    result
    Type
    Description

    Indica que la solicitud se resolvió de manera exitosa.

  • Name
    unauthorized
    Type
    Description

    La solicitud fue rechazada por caracer de autorización. Esto quiere decir que el API key usado para la solicitud es inválido.

  • Name
    payment_required
    Type
    Description

    Este tipo de respuesta indica que la solicitud fue rechazada por falta de una condición de pago.

  • Name
    invalid_request
    Type
    Description

    La solicitud fue rechazada porque contiene datos inválido o en formatos incorrectos.

  • Name
    too_many_requests
    Type
    Description

    Se ha superado el límite permitido de solicitudes por rango de tiempo. Los diferentes endpoints puede tener diferentes límites.

  • Name
    api_error
    Type
    Description

    Significa que ha ocurrido un error al procesar la solicitud del lado del servidor.

result

{
    "type": "result",
    "status": 200,
    "message": "Se ha validado la información correctamente.",
    "data": { ... }
}

result (datos inexistentes)

{
    "type": "result",
    "status": 200,
    "message": "El DNI no existe o pertenece a un menor de edad.",
    "data": null
}

unauthorized

{
  "type": "invalid_request",
  "status": 401,
  "message": "Sin autenticar. Necesitas una API Key válida para realizar una solicitud correctamente.",
  "errors": null
}

payment_required

{
  "type": "payment_required",
  "status": 402,
  "message": "No tienes tokens disponibles para realizar la solicitud.",
  "errors": null
}

unauthorized

{
  "type": "invalid_request",
  "status": 404,
  "message": "La ruta /v2/consulta/empresasx es inexistente.",
  "errors": null
}

invalid_request

{
  "type": "invalid_request",
  "status": 405,
  "message": "El método GET no esta soportado para esta ruta.",
  "errors": null
}

invalid_request

{
  "type": "invalid_request",
  "status": 422,
  "message": "El campo ruc debe tener 11 dígitos.",
  "errors": {
    "ruc": [
      "El campo ruc debe tener 11 dígitos."
    ]
  }
}

too_many_requests

{
  "type": "too_many_requests",
  "status": 429,
  "message": "Has alcanzado el limite de solicitudes, intenta nuevamente en: 48 segundos",
  "errors": null
}

api_error

{
  "type": "api_error",
  "status": 500,
  "message": "Ha ocurrido un error al procesar tu solicitud. Intentalo nuevamente en unos minutos.",
  "errors": null
}

api_error

{
  "type": "api_error",
  "status": 503,
  "message": "La solicitud no puede ser atendida en este momento. Por favor intenta nuevamente en algunos segundos.",
  "errors": null
}