Saltar al contenido

Desarrolladores

Dos formas de recibir los datos

PULZ te empuja cada evento a tu endpoint, o tu sistema los pide a la API cuando quiere. Las dos entregan el mismo evento JSON versionado.

Un evento
{
  "event_id": "ca978112ca1bbdcafac231b39a23dc4d…",
  "schema_version": 1,
  "event_type": "telemetry",
  "device_id": "350000000000001",
  "event_time": "2026-10-20T15:42:10.000Z",
  "received_at": "2026-10-20T15:42:11.000Z",
  "data": {
    "speed_kmh": 12,
    "ignition": true,
    "ext_v_mv": 13800,
    "position": { "lat": -34.17021, "lon": -70.74063, "alt_m": 520, "heading": 90, "sats": 11 },
    "avl": { "239": 1 }
  }
}

Push

Webhook: un POST por evento

Tu sistema expone una URL HTTPS pública y PULZ le manda cada evento de los equipos que elegiste.

  • Cuerpo

    Un evento por request, como objeto JSON. Sin arreglos ni sobres.

  • Autenticación

    La clave de recepción en X-TCIT-Api-Key, que genera PULZ y se muestra una sola vez; o Authorization: Bearer con un token OAuth de tu proveedor de identidad.

  • Respuesta

    Cualquier 2xx en menos de 5 segundos acepta el evento. Lo demás se reintenta durante 24 horas.

  • Semántica

    Al menos una vez y sin orden garantizado: deduplica por event_id y ordena por event_time.

Lo que recibe tu sistema
POST /tu/endpoint HTTP/1.1
Content-Type: application/json; charset=utf-8
X-TCIT-Destination-Id: erp-a1b2c3
X-TCIT-Api-Key: tcit_whk_…

Hay receptores de referencia en TypeScript y Ruby que validan la clave en tiempo constante y deduplican. Ver los receptores.

Pull

API de lectura

REST, solo lectura, con la misma información que ves en el portal. Tu sistema no necesita exponer nada a internet.

Rutas de la API pública, bajo /api/v1/public
GET /devicesLos dispositivos de tu empresa, paginados.
GET /devices/{imei}Un dispositivo: destinos, entrega pausada, última conexión.
GET /devices/{imei}/stateLos últimos valores conocidos del dispositivo.
GET /devices/{imei}/telemetryLas lecturas en una ventana de tiempo, paginadas.
GET /eventsTodas las lecturas de tu empresa en orden de llegada, con cursor, para sincronizar de forma continua.

Las claves de API las crea un administrador en el portal. Se muestran una sola vez, dan solo lectura sobre los datos de tu empresa y puedes tener hasta 10 activas. Revocar una la desactiva de inmediato.

GET /api/v1/public/devices
curl -sS "https://app.pulz.cl/api/v1/public/devices?limit=100" \
  -H "Authorization: Bearer $PULZ_API_KEY"

Preguntas frecuentes

¿Tengo que exponer un endpoint para recibir datos?

Solo si quieres que te los empujemos. La alternativa es la API de lectura: tu sistema pide los eventos con un cursor, a su ritmo, y no necesitas abrir nada hacia internet.

¿Los eventos llegan en orden y una sola vez?

No, y conviene diseñar para eso. La entrega es «al menos una vez» y sin orden garantizado: deduplica por event_id y ordena por event_time, que es la hora del equipo y no la de llegada.

¿Cuánto tiempo tengo para responder?

5 segundos. Cualquier 2xx acepta el evento; cualquier otra respuesta, o el silencio, se reintenta durante 24 horas. Para descartar un evento que no te interesa, responde 2xx.

¿Cómo autentico las llamadas a la API?

Con una clave de API que crea un administrador en el portal, en el encabezado Authorization: Bearer o X-Api-Key. Se muestra una sola vez, da solo lectura y tu empresa puede tener hasta 10 activas.

¿Cuánta historia guardan?

La telemetría se guarda 400 días y se puede consultar por ventana de tiempo en la API.

¿Quieres probarlo con tus sistemas?

Cuéntanos qué sistema va a recibir los datos y te mostramos la integración funcionando.