API

Integra SystecGPS a tu sistema

API REST con Bearer auth para conectar a tu ERP, CRM, Slack, Zapier o app interna.

1. Generar un API token

En el dashboard ve a configuración → API tokens y crea uno con los scopes que necesites:

  • read — listar unidades, posiciones, alertas
  • write — crear/modificar geocercas, conductores
  • commands — enviar comandos al GPS (locate, restart)

El token se ve solo una vez al crearlo. Guárdalo.

2. Hacer una petición

Manda Bearer token en el header Authorization:

curl https://systecgps.mx/api/public/v1/devices \
  -H "Authorization: Bearer sk_live_..."

Respuesta:

{
  "data": [
    {
      "id": "12",
      "name": "SAVEIRO YN-310-A",
      "plate": "YN-310-A",
      "imei": "352093080123456",
      "status": "online",
      "speed": 45.2,
      "position": { "lat": 19.4326, "lng": -99.1332 },
      "lastUpdate": "2026-05-09T14:23:45Z"
    }
  ]
}

3. Endpoints principales

  • GET /api/public/v1/devices — lista flota
  • GET /api/public/v1/devices/{id}/positions?from=&to= — histórico
  • POST /api/public/v1/devices/{id}/locate — solicitar geolocalización
  • GET /api/public/v1/alerts?status=open — alertas activas

Lista completa en /api-docs.

4. Rate limits

  • 60 req/min para GET endpoints
  • 10 req/min para POST commands
  • Sobre el límite → HTTP 429 con header Retry-After

5. Webhooks (mejor que polling)

En vez de pollear, configura webhooks. SystecGPS te POSTea cuando algo pasa:

  • fuel_alert_critical — caída de combustible > 8L en 60s
  • sos — botón emergencia presionado
  • geofence_enter / geofence_exit
  • speeding / device_offline / device_online
  • maintenance_due / custom_rule_triggered

Configura URLs en /dashboard/configuracion/webhooks. Cada payload viene firmado con HMAC-SHA256 en header X-Systec-Signature. Compatible con Slack y Discord (auto-formato Block Kit).

6. Webhooks entrantes (Zapier / n8n)

Permite que tu ERP/Stripe/email cree registros en SystecGPS. Ve a webhooks entrantes y crea uno con la acción que necesites:

  • create_incident
  • create_expense
  • create_work_order
  • create_unit_note
  • log_only

Te da una URL única tipo /api/inbound/wh-abc123?secret=... que aceptan POST con JSON.

curl -X POST https://systecgps.mx/api/inbound/wh-abc123?secret=XXX \
  -H "Content-Type: application/json" \
  -d '{"deviceId":"12","amount":1500,"category":"combustible","liters":50}'

7. Errores comunes

  • 401 — token ausente o inválido
  • 403 — token sin scope para la acción
  • 429 — rate limit excedido (espera Retry-After segundos)
  • 502 — backend Traccar no responde