URL base
Todas las solicitudes van a un único host. Actualmente hay un servidor de producción.El acceso al sandbox se aprovisiona por cliente. Contacta a developers@tread.io para solicitar un tenant de sandbox.
Autenticación
La API usa tokens bearer. Existen dos flujos según quién esté llamando.- Tokens de sesión de usuario: para usuarios humanos. Stytch emite un JWT de corta duración después de que un usuario inicia sesión (correo + contraseña, magic link o SSO). Úsalo cuando construyas herramientas que actúan en nombre de un usuario con sesión iniciada.
- Tokens de máquina a máquina (M2M): para integraciones servidor a servidor. Tread emite un Client ID y un Client Secret. Intercámbialos en el endpoint de autenticación por un token de acceso usando el flujo de OAuth 2.0 client credentials.
Bearer.
401 unauthorized, solicita uno nuevo. Consulta Generar un token de autenticación para ver la forma exacta de la solicitud, además del resto del grupo de Autenticación en la barra lateral. Para obtener credenciales M2M, escribe a developers@tread.io.
Encabezados obligatorios
| Encabezado | Obligatorio | Valor |
|---|---|---|
Authorization | Sí | Bearer <token> |
Content-Type | En POST, PUT, PATCH | application/json |
Accept | No | application/json (predeterminado) |
Accept-Language | No | en-ca, es-us o fr-ca. Traduce los mensajes de error. |
Content-Type inválido devuelve 415 unsupported_media_type. Un Accept inválido devuelve 406 not_acceptable.
Paginación
Los endpoints de listado usan paginación basada en cursor. Pasapage[limit] para definir el tamaño de página. El valor predeterminado es 25 y el máximo es 100.
Link con URLs next y prev cuando existen más resultados.
next hasta que el encabezado ya no lo incluya. El cursor page[after] es opaco: no lo analices.
Errores
Cada respuesta de error usa el mismo envoltorio. Elcode refleja el estado HTTP.
| HTTP | code | Cuándo lo verás |
|---|---|---|
| 400 | bad_request | Solicitud malformada. |
| 401 | unauthorized | Token ausente o expirado. |
| 403 | forbidden | El usuario no tiene permiso para esta acción. |
| 404 | object_not_found | El recurso no existe o no es visible. |
| 409 | conflict | La acción viola una regla de la máquina de estados. |
| 415 | unsupported_media_type | Content-Type es incorrecto. |
| 422 | unprocessable_content | La validación falló. El arreglo errors indica el campo. |
| 500 | internal_server_error | Contacta a soporte. |
| 503 | service_unavailable | Reintenta tras un breve backoff. Las solicitudes expiran a los 60 segundos. |
409 y 422 incluyen un arreglo errors con campos model, field y message que puedes mostrar a los usuarios finales.
Recursos
La API expone la mayor parte de lo que Horizon administra. Familias principales de recursos:| Familia | Notas |
|---|---|
| Projects, Orders, Jobs, Loads | La jerarquía de despacho. Un proyecto contiene órdenes. Una orden contiene trabajos. Un trabajo es la labor de un conductor. Una carga es un ciclo. |
| Tickets, Timesheets, DriverDays | Prueba del trabajo. Los tickets capturan material. Los DriverDays capturan horas. |
| Users, Drivers, Foremen | Personas con acceso, definidas por Roles y Permisos. |
| Sites | Ubicaciones de recogida y entrega con geocercas. |
| Companies, CompanyShares | La empresa con la que operas, más las relaciones padre/hijo. |
| Equipment, EquipmentTypes | Camiones y el tipo al que pertenecen. La capacidad vive en el Tipo. |
| Materials, MaterialRates | Lo que acarreas y cómo se cotiza. |
| Rates, AddOns, FuelSurcharges | El modelo de precios: tarifas base, cargos, ajustes por combustible. |
| Settlements, Invoices | Pago a conductores/proveedores y facturación a clientes. |
| Integrations, Telematics, Agave | Conexiones a QuickBooks, Sage, Samsara, Geotab, telemetría de pavimentadoras y HCSS. |
Webhooks
Tread puede empujar eventos a tu endpoint cuando cambien registros: órdenes aceptadas, cargas aprobadas, tickets creados y más. Los webhooks se configuran por empresa. Consulta la página de integración de Webhooks para la configuración, el comportamiento de reintentos y el catálogo de eventos.Empresas hijas y multi-entidad
Una empresa puede tener una matriz. Un usuario en la matriz tiene el mismo rol y nivel de permiso en cada hija. La mayoría de los endpoints se acotan a una empresa vía la URL. Por ejemplo,GET /v1/companies/{company-id}/projects lista los proyectos de una empresa específica. Usa la variante acotada por empresa cuando necesites leer o escribir datos dentro de una hija.
parent_company_id se establece en la creación y no puede cambiarse. Las referencias circulares se rechazan. Lista las empresas hijas con GET /v1/companies/{company-id}/children.
Ejemplo rápido
Obtén la primera página de proyectos para una empresa.Continuar
Generar un token de autenticación
Inicia sesión e intercambia credenciales por un token bearer.
Webhooks
Suscríbete a eventos y recíbelos en tiempo real.
App Tread Horizon
Inicia sesión en la plataforma que respalda esta API.
Estado
Disponibilidad en vivo e historial de incidentes.