Errores
Estructura de errores
Cada respuesta JSON enviada por nuestros servicios incluirá un objeto Error
, que se inicializará dependiendo del estado resultante de la operación.
-
Cuando
Status=OK
, el objetoError
se establece comonull
. -
Cuando
Status=ERROR
. significa que la petición fue ejecutada pero no se obtuvo el resultado esperado. En este escenario el objetoError
estará compuesto por 3 elementos, todos ellos cadenas:- Code
- Type
- Description
El detalle de cada campo es el siguiente:
Code
El valor es un código interno utilizado por Khipu para agrupar y clasificar los casos de error más comunes.
Las subdivisiones son:
Código de Error |
Descripción |
---|---|
A000 |
Error de autenticación. Hay un problema con el token JWT (está vencido, revocado o no es válido). |
E100 - E199 |
Errores de inicio de sesión declarados por el servicio de destino, como credenciales no válidas o cuenta bloqueada. |
E2xx - E299 |
Estos códigos se devuelven cuando el servicio de destino no está disponible o tiene problemas para servir la solicitud. |
E3xx - E399 |
No hay datos disponibles. El proceso ha finalizado correctamente, pero no ha podido encontrar la información esperada. Por ejemplo, solicitar movimientos bancarios de un mes que aún no está disponible. |
E4xx - E499 |
Errores de usuario relacionados con valores erróneos de los parámetros, como pasar fechas no válidas o una moneda inexistente. |
E5xx - E599 |
Este grupo está dedicado a los errores relacionados con los servicios de Pago Automático. |
E999 |
Mensaje de error personalizado que va acompañado de un texto descriptivo. Se utiliza cuando la información no puede clasificarse en los grupos anteriores. |
E000 |
Se utiliza para errores genéricos que no tienen descripción. |
D000 |
Falta información para completar el proceso. Esto significa que el servicio de raspado debe estar completo antes de devolver un resultado satisfactorio. |
F000 |
Error durante la función de procesamiento de datos que genera la respuesta JSON. |
T000 |
Tiempo de espera agotado en el servicio de destino. |
I001 - I003 |
Errores de infraestructura. Se utiliza para indicar que falta un componente interno o que las respuestas generadas no son válidas. |
P001 - P003 |
Se utiliza cuando hay errores en los parámetros de la solicitud, como una URL no válida para llamadas asíncronas. |
L000 |
Se envía este código al webhook de una llamada asíncrona cuando se agota el tiempo máximo para intentar obtener los datos. |
Type
Este valor indica cómo puede manejar un error, basándose en sus características. Por ejemplo, si una respuesta contiene un error que indica que las credenciales no son válidas y que la cuenta se bloqueará en el siguiente intento erróneo, probablemente no deberías reintentar la misma petición. Por otro lado, si una respuesta indica que el servicio de destino no está disponible momentáneamente, puedes reintentar la solicitud sin problemas. También existe la posibilidad de que tengamos que arreglar algo en un servicio específico, en este caso se le indicará cuándo puede reintentar su solicitud.
Tipo de Error |
Descripción |
---|---|
DO_NOT_RETRY |
Evita enviar la misma solicitud ya que está claro que no funcionará (se utiliza en casos de credenciales incompletas/malas o cuentas bloqueadas). |
RETRY_IMMEDIATELY |
Puede reintentar la misma solicitud sin problemas. El error se debió a un tiempo de espera de lectura o a algún contratiempo en el servicio de destino. |
WAIT_4_HOURS_BEFORE_RETRY |
Por favor, espere a que transcurra el periodo especificado antes de reintentar su solicitud. Hay trabajo que hacer por nuestra parte. |
Description
Este campo explica el error con más detalle, para que comprenda mejor qué ha fallado. Puede ser el mensaje específico devuelto por la fuente de datos o una descripción genérica que se ajuste a todos los errores que utilicen un determinado código.
Ejemplo
He aquí un ejemplo del aspecto de un objeto Error
en una respuesta incorrecta:
{
"OperationId": "6baf6c19-e485-463b-ae24-a821b025c8a4",
"Status": "ERROR",
"Data": null,
"AdditionalInformation": null,
"Error": {
"Code": "E201",
"Type": "RETRY_IMMEDIATELY",
"Description": "El servicio destino utilizado para la extracción de datos no se encuentra disponible."
},
"LifeSpan": null
}