Productos · API pública
Integra tu operación con una API por cliente
Conecta tu ERP, tu e-commerce o la plataforma de tus clientes al TMS. Ellos crean paquetes por API y reciben cada evento de estatus con reintentos y traza por intento. Una capacidad que ofreces como tuya.
Una API key por cliente
Emites una llave por cada cliente tuyo y cada uno opera en su propio espacio, sin ver los datos de los demás. Revocas o rotas una llave cuando haga falta, sin afectar al resto.
- Una llave por cliente, aislada
- Prefijo visible y secreto hasheado
- Rotación y revocación sin downtime
API keys
Llaves por cliente
- TTienda Cumbretms_live_8f2a••••copiadaactiva
- AAndes Markettms_live_3c77••••activa
- PPampa Logísticatms_live_b19e••••revocada
Crea paquetes por API
Un POST con origen, destino y metadata crea la orden y devuelve el identificador y su guía. El mismo ciclo de vida que la consola, disparado desde el ERP o el e-commerce de tu cliente.
- Origen, destino y metadata en un POST
- Respuesta con id y número de guía
- El paquete entra al mismo ciclo de vida
Crear paquete
201 created
Request
{
"customerId": "cus_8f2a",
"origin": { "city": "CDMX" },
"destination": { "city": "Guadalajara" },
"metadata": { "orderId": "SO-10432" }
}Response
201{
"id": "pkg_9c1d",
"trackingNumber": "TMS-4471-2290",
"status": "created"
}Webhooks por estatus
Tu cliente se suscribe a los estatus que le importan y recibe el evento en su endpoint con el payload firmado. Envía solo lo que necesita, sin polling ni consultas constantes.
- Suscripción por estatus
- Payload firmado y versionado
- Endpoint propio por cliente
Suscripción
Eventos por estatus
package:status-createdpackage:status-assignedpackage:status-in_transitpackage:status-out_for_deliverypackage:status-delivered
Workers en segundo plano
Colas BullMQ que procesan eventos y tareas asíncronas sin bloquear la operación ni las respuestas de la API. La entrega de webhooks ocurre fuera del request que la originó.
- Procesamiento asíncrono en colas
- La API responde sin esperar al webhook
- Escalable por worker
Cola de despacho
BullMQ · webhook-dispatch
12
waiting
4
active
1,284
completed
3
failed
Reintentos con backoff
Si el endpoint del cliente falla, el worker reintenta a los 15s, 1m, 5m, 15m y 1h hasta el máximo configurado. Un pico de carga no se convierte en eventos perdidos.
- Reintentos 15s · 1m · 5m · 15m · 1h
- Máximo de intentos configurable
- Cada intento re-agendado con backoff
Intentos de entrega
webhook-dispatch · TMS-4471-2290
- Intento #1backoff 15s09:12:04falló
- Intento #2backoff 1m09:13:04falló
- Intento #3backoff 5m09:18:04falló
- Intento #4backoff 15m09:33:04entregado
- Intento #5backoff 1h10:33:04programado
Trazabilidad por intento
Cada intento guarda payload, respuesta, headers, duración y error, para diagnosticar cualquier entrega. Sabes qué se envió, qué contestó el endpoint y cuánto tardó.
- Payload de envío y respuesta guardados
- Headers, duración y error por intento
- Diagnóstico de cualquier entrega
Detalle del intento
customer_webhook_delivery_attempt
Intento
#4
Respuesta
200 ok
Duración
142 ms
Reintentos
3
Respuesta del endpoint
application/json{
"received": true,
"trackingNumber": "TMS-4471-2290"
}Para construir encima
Dale a tus clientes una API para crecer con ellos
Cada cliente tuyo obtiene su propia API key y webhooks, de modo que sus clientes crean paquetes por API y reciben cada cambio de estatus. Una capacidad que ofreces como tuya para cerrar cuentas más grandes.
Eventos que tu cliente puede suscribir
package:status-createdPaquete registrado en la plataformapackage:status-assignedMensajero asignado a la ordenpackage:status-in_transitEl paquete salió a rutapackage:status-out_for_deliveryEntra a última millapackage:status-deliveredEntrega confirmada con evidencia
# API key que emites a tu cliente
curl -X POST https://api.trackerguy.lat/v1/packages \
-H "Authorization: ApiKey $CLIENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customerId": "cus_8f2a",
"origin": { "address": "Av. Reforma 222", "city": "CDMX" },
"destination": { "address": "Av. Chapultepec 15", "city": "Guadalajara" },
"metadata": { "orderId": "SO-10432" }
}'// Evento entrante firmado
{
"event": "package:status-delivered",
"statusCode": "delivered",
"changedAt": "2026-03-14T18:22:07.000Z",
"package": { "id": "pkg_9c1d", "trackingNumber": "TMS-4471-2290" }
}