Conceptos

Errores

Formas de error de la API de la plataforma, qué significa cada código HTTP y cómo reaccionar, incluidos los errores que llegan con HTTP 200.

Estado: Verificado · Revisada el 5 de octubre de 2026

Qué se verificó y cómo: Verificado por lectura del código y diff contra producción; las formas de error se midieron en un entorno de pruebas. El 429 es inferido del comportamiento estándar y no se midió.

La API devuelve errores con tres formas distintas. Conocerlas evita que trates como correcta una respuesta que no lo es.

Formas de error #

Autenticación (401):

JSON
{
  "status": 0,
  "message": "Wrong credentials."
}

El texto de message se traduce según el idioma de la petición.

Errores estándar (403, 404, 422, 500): un objeto con statusCode (igual al código HTTP), message, status en 0, y, cuando aplica, errors con un arreglo de mensajes por campo. En los 403 llega además perm en 0.

Validación del inicio de sesión (422): sin statusCode:

JSON
{
  "status": 0,
  "errors": {
    "email": ["The Email field is required."],
    "password": ["The Password field is required."]
  }
}

Errores con HTTP 200: algunas validaciones, por ejemplo point_in_geofences sin lat o lng, responden 200 con {"status": 0, "errors": {...}}. Revisa siempre status, no solo el código HTTP.

Códigos y cómo reaccionar #

Códigos y cómo reaccionar
CódigoSignificadoQué hacer
200 con status en 0Validación fallida con HTTP 200Corrige los parámetros que indica errors
401Hash ausente o incorrecto, usuario inactivo, suscripción vencida o API deshabilitadaVerifica el hash y vuelve a iniciar sesión; si persiste, contacta a quien administra tu cuenta
403Sin permiso del rol para el módulo, vehículo de otro usuario o cuenta restringida por facturaciónRevisa tus permisos con get_user_data; usa solo id de vehículos que te devolvió tu propia lista
404Recurso inexistente (vehículo, o usuario sin geocercas en las consultas de geocercas)Verifica el id
422Faltan parámetros, formato de hora inválido, rango mayor de 31 días en get_history o vehículo vencidoCorrige la petición
429Límite de peticiones superado (inferido; no medido)Espera y reintenta con retroceso exponencial. Mira Límites
500Error interno; el mensaje es genéricoReintenta una vez; si persiste, contacta a soporte

Un caso conocido de 500 #

En un entorno de pruebas, get_devices y get_devices_latest fallaron con 500 cuando algún vehículo de la cuenta tenía el icono sin asignar. No sabemos cuántos vehículos de producción están en ese caso. Si recibes un 500 constante en esas dos operaciones, avisa a quien administra tu cuenta.

Buenas prácticas #

  • Registra el código HTTP, el message y la ruta, pero nunca el hash.
  • Reintenta solo errores 429 y 5xx, con espera creciente. No reintentes 401, 403, 404 ni 422 sin cambiar algo.
  • Trata 403 y 404 como datos: pueden significar "este usuario no tiene acceso", no "la API falló".