Saltar al contenido principal

Errores

Un error responde un código de estado y un sobre JSON con dos campos: code, estable, para su programa, y detail, un mensaje para una persona en español que puede cambiar de redacción en cualquier momento. Decida por code, nunca por detail.

{ "detail": "El rango no puede pasar de 92 días.", "code": "range_too_long" }

Todos los códigos​

EstadocodeSignificado
400range_too_longDe date_from a date_to hay más de 92 días.
400location_forbiddenUna location que no es una sede de la empresa.
400(ninguno)Un parámetro es inválido: ver abajo.
401not_authenticatedNo hay llave en Authorization: Bearer.
401api_key_invalidLa llave no existe o fue revocada.
401api_key_expiredLa llave pasó su fecha de vencimiento.
401company_suspendedLa empresa está suspendida o cerrada.
403api_not_includedEl plan de la empresa no incluye el API.
404not_foundUna página del Detalle después de la última.
429throttledDemasiadas peticiones para la llave, o demasiadas llaves inválidas desde la dirección. Lleva retry_after.
503maintenanceKabal está en mantenimiento. Lleva Retry-After.

Autenticación explica el 401 y el 403, Límites el 429 y el 503.

Un parámetro inválido​

Cuando un parámetro no se puede leer (una fecha que no es fecha, un id que no es un UUID, date_to antes de date_from), el 400 no lleva code: es un mapa de cada parámetro equivocado a sus mensajes.

{ "date_to": ["El fin es anterior al inicio."] }

Su programa distingue las dos clases de 400 por la presencia de code. Ninguna vale la pena repetirla: corrija la llamada.

Qué repetir​

Estado¿Repetir?
400, 401, 403, 404No. La misma llamada recibe la misma respuesta.
429Sí, después de Retry-After segundos.
503 maintenanceSí, después de Retry-After segundos.
502, 503 sin código, 504, un error de redSí, unas cuantas veces con una espera que crece. Una llamada solo lee, así que repetirla siempre es seguro.