Consultas GET de Sincronización
Estos endpoints permiten al integrador consultar qué registros sincronizados existen en Smartfleet.
Patrón general
Listar todos:
Buscar por source_id:
Query Params
Para getAll
Importante:
getAllsiempre pagina. No existe un modo "traer todo en una sola llamada"; para recorrer un recurso completo iterá las páginas usandometa.total_pages. Esto evita respuestas que superan el límite de la API (6 MB) en recursos grandes como facturas o guías.
| Parámetro | Default | Descripción |
|---|---|---|
page | 1 | Número de página (entero positivo) |
page_size | 100 | Registros por página (máx. 200; valores mayores se recortan a 200) |
source_system | — | Filtra por sistema de origen |
searchQuery | — | Búsqueda libre sobre el recurso |
La respuesta incluye en meta: total (total de registros), page, page_size, total_pages. Para traer todo, recorré desde page=1 hasta page = total_pages.
Para \{sourceId\}
| Parámetro | Descripción |
|---|---|
source_system | Opcional pero recomendado para evitar ambigüedad |
Recursos disponibles para GET
| Recurso | Listar | Por source_id |
|---|---|---|
| Productos | GET /transportes/sync/products/getAll | GET /transportes/sync/products/{sourceId} |
| Clientes | GET /transportes/sync/clients/getAll | GET /transportes/sync/clients/{sourceId} |
| Proyectos | GET /transportes/sync/projects/getAll | GET /transportes/sync/projects/{sourceId} |
| Sedes | GET /transportes/sync/hubs/getAll | GET /transportes/sync/hubs/{sourceId} |
| Almacenes de sede | GET /transportes/sync/hubs/warehouses/getAll | GET /transportes/sync/hubs/warehouses/{sourceId} |
| Proveedores | GET /transportes/sync/suppliers/getAll | GET /transportes/sync/suppliers/{sourceId} |
| Tipos de vehículo | GET /transportes/sync/vehicles/vehicle-types/getAll | GET /transportes/sync/vehicles/vehicle-types/{sourceId} |
| Tipos de licencia | GET /transportes/sync/drivers/licenses/types/getAll | GET /transportes/sync/drivers/licenses/types/{sourceId} |
| Vehículos | GET /transportes/sync/vehicles/getAll | GET /transportes/sync/vehicles/{sourceId} |
| Choferes | GET /transportes/sync/drivers/getAll | GET /transportes/sync/drivers/{sourceId} |
| Tipos de factura | GET /transportes/sync/receipts/types/getAll | GET /transportes/sync/receipts/types/{sourceId} |
| Tipos de restricción | GET /transportes/sync/restrictions/types/getAll | GET /transportes/sync/restrictions/types/{sourceId} |
| Tipos de parada | GET /transportes/sync/stops/types/getAll | GET /transportes/sync/stops/types/{sourceId} |
| Facturas | GET /transportes/sync/receipts/getAll | GET /transportes/sync/receipts/{sourceId} |
| Recolecciones | GET /transportes/sync/pickups/getAll | GET /transportes/sync/pickups/{sourceId} |
| Traslados | GET /transportes/sync/transfers/getAll | GET /transportes/sync/transfers/{sourceId} |
| Devoluciones | GET /transportes/sync/returns/getAll | GET /transportes/sync/returns/{sourceId} |
| Guías | GET /transportes/sync/dispatch/getAll | GET /transportes/sync/dispatch/{sourceId} |
Ejemplos por recurso — {sourceId}
Productos
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "product.product:1",
"source_system": "external_erp",
"product_id": 1,
"product_code": "PROD-001",
"product_description": "Producto de ejemplo",
"weight": 2.5,
"volume": 0.01,
"is_active": true
},
"meta": {
"route": "/transportes/sync/products/product.product:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "product.product:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Clientes
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "client.client:1",
"source_system": "external_erp",
"client_id": 1,
"client_code": "CLI-001",
"name": "Empresa XYZ",
"phone": "+1234567890",
"email": "contacto@xyz.com",
"is_active": true
},
"meta": {
"route": "/transportes/sync/clients/client.client:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "client.client:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Proyectos
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "project.project:1",
"source_system": "external_erp",
"project_id": 1,
"project_code": "PROY-001",
"project_name": "Proyecto Ejemplo",
"client_id": 1,
"exact_address": "Calle Principal 123",
"latitude": 9.9281,
"longitude": -84.0907,
"is_active": true
},
"meta": {
"route": "/transportes/sync/projects/project.project:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "project.project:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Sedes
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "hub.hub:1",
"source_system": "external_erp",
"hub_id": 1,
"name": "Sede Principal",
"address": "Calle Principal 123",
"phone": "1234567890",
"latitude": 9.9281,
"longitude": -84.0907,
"is_active": true
},
"meta": {
"route": "/transportes/sync/hubs/hub.hub:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "hub.hub:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Almacenes de Sede
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "warehouse.location:1",
"source_system": "external_erp",
"warehouse_id": 1,
"hub_id": 1,
"warehouse_code": "W-MAIN-01",
"description": "Almacen Principal de Sede Principal",
"is_active": true
},
"meta": {
"route": "/transportes/sync/hubs/warehouses/warehouse.location:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "warehouse.location:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Proveedores
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "supplier.supplier:1",
"source_system": "external_erp",
"supplier_id": 1,
"supplier_code": "PROV-001",
"supplier_description": "Proveedor ABC",
"supplier_phone": "+1234567890",
"supplier_address": "Zona Industrial 456",
"is_active": true
},
"meta": {
"route": "/transportes/sync/suppliers/supplier.supplier:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "supplier.supplier:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Tipos de Vehículo
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "vehicle.type:1",
"source_system": "external_erp",
"vehicle_type_id": 1,
"vehicle_type_description": "Furgon",
"max_weight": 1500,
"max_volume": 20,
"max_length": 5,
"is_active": true
},
"meta": {
"route": "/transportes/sync/vehicles/vehicle-types/vehicle.type:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "vehicle.type:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Tipos de Licencia
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "license.type:1",
"source_system": "external_erp",
"license_type_id": 1,
"license_type_code": "B1",
"license_type_description": "Licencia para vehiculo liviano",
"is_active": true
},
"meta": {
"route": "/transportes/sync/drivers/licenses/types/license.type:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "license.type:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Vehículos
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "vehicle.vehicle:1",
"source_system": "external_erp",
"vehicle_id": 1,
"plate": "ABC-123",
"vehicle_type_id": 1,
"vehicle_description": "Toyota Hiace 2023",
"extra_weight": 1000,
"extra_volume": 15,
"is_active": true
},
"meta": {
"route": "/transportes/sync/vehicles/vehicle.vehicle:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "vehicle.vehicle:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Choferes
Nota: El POST acepta
licensescomo arreglo de objetos. El GET devuelvelicense_codesylicense_expiration_datescomo strings formateados, que es el formato almacenado en la base de datos.
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "driver.driver:1",
"source_system": "external_erp",
"driver_id": 1,
"employee_code": "EMP-001",
"national_id": "123456789",
"driver_name": "Juan Perez",
"phone": "+1234567890",
"license_codes": "B1",
"license_expiration_dates": "31/12/2027",
"is_active": true
},
"meta": {
"route": "/transportes/sync/drivers/driver.driver:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "driver.driver:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Tipos de Factura
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "receipt.type:1",
"source_system": "external_erp",
"receipt_type_id": 1,
"receipt_type_code": "STD",
"receipt_type_description": "Factura Estandar ERP",
"is_active": true
},
"meta": {
"route": "/transportes/sync/receipts/types/receipt.type:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "receipt.type:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Tipos de Restricción
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "restriction.type:1",
"source_system": "external_erp",
"restriction_type_id": 1,
"restriction_type_description": "Zona Restringida - No transitar en horas pico",
"is_active": true
},
"meta": {
"route": "/transportes/sync/restrictions/types/restriction.type:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "restriction.type:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Tipos de Parada
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "stop.type:1",
"source_system": "external_erp",
"stop_type_id": 1,
"stop_code": "ENT_FAC",
"stop_description": "Entrega de Factura",
"is_active": true
},
"meta": {
"route": "/transportes/sync/stops/types/stop.type:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "stop.type:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Facturas
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "receipt.receipt:1",
"source_system": "external_erp",
"receipt_id": 1,
"receipt_code": "FAC-001",
"receipt_type_id": 1,
"hub_id": 1,
"project_id": 1,
"address": "Calle Principal 123",
"recipient_name": "Juan Perez",
"recipient_phone": "+1234567890",
"latitude": 9.9281,
"longitude": -84.0907,
"status_id": 1,
"is_active": true
},
"meta": {
"route": "/transportes/sync/receipts/receipt.receipt:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "receipt.receipt:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Recolecciones
pickups tiene un query param adicional:
| Parámetro | Valores | Descripción |
|---|---|---|
pickup_type | OC / TRANSFER | Filtra por tipo de recolección |
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "purchase.order:1",
"source_system": "external_erp",
"pickup_id": 1,
"pickup_type": "OC",
"document_code": "OC-001",
"receipt_code": "FAC-001",
"supplier_id": 1,
"hub_id": null,
"status_id": 1,
"is_purchase_confirmed": false,
"is_transfer_confirmed": null,
"source_warehouse": null,
"target_warehouse": null,
"is_active": true
},
"meta": {
"route": "/transportes/sync/pickups/purchase.order:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "purchase.order:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Traslados
Nota: El backend fuerza automáticamente
pickup_type = TRANSFERpara/transportes/sync/transfers/*.
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "transfer:1",
"source_system": "external_erp",
"pickup_id": 2,
"pickup_type": "TRANSFER",
"document_code": "TR-001",
"receipt_code": "FAC-001",
"hub_id": 1,
"status_id": 1,
"is_purchase_confirmed": null,
"is_transfer_confirmed": false,
"source_warehouse": null,
"target_warehouse": null,
"is_active": true
},
"meta": {
"route": "/transportes/sync/transfers/transfer:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "transfer:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Devoluciones
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": {
"source_id": "return.return:1",
"source_system": "external_erp",
"return_id": 1,
"receipt_id": 2,
"reason": "Cliente no disponible",
"is_active": true
},
"meta": {
"route": "/transportes/sync/returns/return.return:1",
"method": "SyncGetHandler",
"operation": "get_by_source_id",
"source_id": "return.return:1",
"source_system": "external_erp",
"timestamp": "2026-04-07T12:00:00.000Z"
}
}Guías (Dispatch)
{
"ok": true,
"code": "SYNC_OK",
"message": "Sync processed successfully.",
"data": [
{
"dispatch_id": 1,
"receipt_id": 1,
"receipt_type_id": 1,
"hub_id": 1,
"status_id": 1,
"dispatch_date": "2026-04-07T12:00:00.000Z",
"is_active": true
}
],
"meta": {
"route": "/transportes/sync/dispatch/getAll",
"method": "SyncGetHandler",
"operation": "list",
"total": 1,
"page": 1,
"page_size": 100,
"total_pages": 1,
"search_query": null,
"source_system": null,
"timestamp": "2026-04-07T12:00:00.000Z"
}
}GET /transportes/sync/dispatch/guia.despacho:501?source_system=external_erpRequiere que el dispatch haya sido creado con source_id en el payload de POST /transportes/sync/dispatch. Si el dispatch fue creado sin source_id, usar getAll y filtrar por dispatch_id.