Terreno y Dromivia
Conductores, celulares, rutas del día, entregas y evidencia que llega desde Dromivia.
Exportar entregas
https://api.drometra.com/v1/field/exports/deliveriesPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de consulta
- fromstring
- tostring
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/exports/deliveries" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"(text/csv)Ver la configuración de terreno
https://api.drometra.com/v1/field/settingsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Respuesta · 200
- tenantIdstring · uuidsiempre
- displayNamestring o nullsiempre
- objectsiempre
- versionintegersiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/settings" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…",
"verification": {
"workerRequired": [
"package_scan"
],
"customerAllowed": [
"otp"
],
"customerMinimum": 2,
"geofenceRadiusMeters": 1012.5,
"allowGeofenceOverride": true
},
"version": 0
}Guardar la configuración de terreno
https://api.drometra.com/v1/field/settingsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Cuerpo
- displayNamestring o null
- verificationobligatorioobject
- versionobligatoriointeger
Respuesta · 200
- tenantIdstring · uuidsiempre
- displayNamestring o nullsiempre
- objectsiempre
- versionintegersiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X PUT "https://api.drometra.com/v1/field/settings" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Content-Type: application/json" \
-d '{
"verification": {},
"version": 0
}'{
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…",
"verification": {
"workerRequired": [
"package_scan"
],
"customerAllowed": [
"otp"
],
"customerMinimum": 2,
"geofenceRadiusMeters": 1012.5,
"allowGeofenceOverride": true
},
"version": 0
}Listar conductores
https://api.drometra.com/v1/field/workersPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Respuesta · 200
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/workers" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"items": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…",
"phone": "…",
"linked": true,
"active": true,
"version": 1,
"devices": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"model": "…",
"appVersion": "…",
"enrolledAt": "2026-10-21T14:02:31Z",
"activatedAt": "2026-10-21T14:02:31Z",
"revokedAt": "2026-10-21T14:02:31Z"
}
],
"createdAt": "2026-10-21T14:02:31Z"
}
]
}Crear un conductor
https://api.drometra.com/v1/field/workersPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Cuerpo
- displayNameobligatoriostring
- phonestring
Respuesta · 201
- idstring · uuidsiempre
- tenantIdstring · uuidsiempre
- displayNamestringsiempre
- phonestring o nullsiempre
- linkedbooleansiempre
- activebooleansiempre
- versionintegersiempre
- array de objectsiempre
- createdAtstring · date-timesiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/workers" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Content-Type: application/json" \
-d '{
"displayName": "…"
}'{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…",
"phone": "…",
"linked": true,
"active": true,
"version": 1,
"devices": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"model": "…",
"appVersion": "…",
"enrolledAt": "2026-10-21T14:02:31Z",
"activatedAt": "2026-10-21T14:02:31Z",
"revokedAt": "2026-10-21T14:02:31Z"
}
],
"createdAt": "2026-10-21T14:02:31Z"
}Cambiar un conductor
https://api.drometra.com/v1/field/workers/{id}Pide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Cuerpo
- displayNamestring
- phonestring o null
- activeboolean
- versionobligatoriointeger
Respuesta · 200
- idstring · uuidsiempre
- tenantIdstring · uuidsiempre
- displayNamestringsiempre
- phonestring o nullsiempre
- linkedbooleansiempre
- activebooleansiempre
- versionintegersiempre
- array de objectsiempre
- createdAtstring · date-timesiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X PATCH "https://api.drometra.com/v1/field/workers/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Content-Type: application/json" \
-d '{
"version": 0
}'{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…",
"phone": "…",
"linked": true,
"active": true,
"version": 1,
"devices": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"model": "…",
"appVersion": "…",
"enrolledAt": "2026-10-21T14:02:31Z",
"activatedAt": "2026-10-21T14:02:31Z",
"revokedAt": "2026-10-21T14:02:31Z"
}
],
"createdAt": "2026-10-21T14:02:31Z"
}Invitar a un conductor a Dromivia
https://api.drometra.com/v1/field/workers/{id}/invitationsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 201
- idstring · uuidsiempre
- workerIdstring · uuidsiempre
- expiresAtstring · date-timesiempre
- codestringsiempre
- enrollmentUristringsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/workers/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/invitations" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"expiresAt": "2026-10-21T14:02:31Z",
"code": "…",
"enrollmentUri": "…"
}Desvincular un celular
https://api.drometra.com/v1/field/devices/{id}/revokePide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 200
- idstring · uuidsiempre
- tenantIdstring · uuidsiempre
- displayNamestringsiempre
- phonestring o nullsiempre
- linkedbooleansiempre
- activebooleansiempre
- versionintegersiempre
- array de objectsiempre
- createdAtstring · date-timesiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/devices/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/revoke" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…",
"phone": "…",
"linked": true,
"active": true,
"version": 1,
"devices": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"model": "…",
"appVersion": "…",
"enrolledAt": "2026-10-21T14:02:31Z",
"activatedAt": "2026-10-21T14:02:31Z",
"revokedAt": "2026-10-21T14:02:31Z"
}
],
"createdAt": "2026-10-21T14:02:31Z"
}Crear una ruta
https://api.drometra.com/v1/field/routesPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Cuerpo
- routePlanIdobligatoriostring · uuid
- vehicleRouteIdobligatoriostring
- workerIdobligatoriostring · uuid
- serviceDateobligatoriostring
- depotNameobligatoriostring
- vehicleobligatorioobject
- verificationobject
Respuesta · 201
- idstring · uuidsiempre
- tenantIdstring · uuidsiempre
- workerIdstring · uuidsiempre
- workerNamestringsiempre
- routePlanIdstring · uuidsiempre
- vehicleRouteIdstringsiempre
- serviceDatestringsiempre
- depotNamestringsiempre
- objectsiempre
- objectsiempre
- stateenum: assigned | in_progress | finished | cancelledsiempre
- versionintegersiempre
- createdAtstring · date-timesiempre
- vehicleConfirmedAtstring · date-time o nullsiempre
- finishedAtstring · date-time o nullsiempre
- objectsiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/routes" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"routePlanId": "…",
"vehicleRouteId": "…",
"workerId": "…",
"serviceDate": "…",
"depotName": "…",
"vehicle": {}
}'{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerName": "…",
"routePlanId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"vehicleRouteId": "…",
"serviceDate": "…",
"depotName": "…",
"vehicle": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"plate": "…",
"label": "…",
"fleetVehicleId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
},
"verification": {
"workerRequired": [
"package_scan"
],
"customerAllowed": [
"otp"
],
"customerMinimum": 2,
"geofenceRadiusMeters": 1012.5,
"allowGeofenceOverride": true
},
"state": "assigned",
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"vehicleConfirmedAt": "2026-10-21T14:02:31Z",
"finishedAt": "2026-10-21T14:02:31Z",
"progress": {
"total": 0,
"delivered": 0,
"failed": 0,
"pending": 0
},
"stops": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"sequence": 1,
"orderId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"reference": "…",
"recipientName": "…",
"address": "…",
"coordinate": {
"latitude": 0,
"longitude": 0
},
"window": {
"startsAt": "2026-10-21T14:02:31Z",
"endsAt": "2026-10-21T14:02:31Z"
},
"state": "pending",
"arrivedAt": "2026-10-21T14:02:31Z",
"outcomeAt": "2026-10-21T14:02:31Z",
"failureReason": "…",
"receiverName": "…",
"flags": [
"…"
],
"manifestSha256": "…",
"evidence": [
{
"assetId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"kind": "DELIVERY_PHOTO",
"sha256": "…",
"capturedAt": "2026-10-21T14:02:31Z",
"sizeBytes": 4194304.5
}
],
"parcels": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"code": "…",
"description": "…",
"loadStatus": "PENDING",
"deliveredAt": "2026-10-21T14:02:31Z",
"returnedAt": "2026-10-21T14:02:31Z"
}
],
"plannedArrivalAt": "2026-10-21T14:02:31Z",
"plannedDepartureAt": "2026-10-21T14:02:31Z",
"codeVerifiedAt": "2026-10-21T14:02:31Z"
}
]
}Listar rutas
https://api.drometra.com/v1/field/routesPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de consulta
- serviceDatestring
- fromstring
- tostring
- cursorstring
Respuesta · 200
- array de objectsiempre
- nextCursorstring o null
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/routes" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"items": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerName": "…",
"routePlanId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"vehicleRouteId": "…",
"serviceDate": "…",
"depotName": "…",
"vehicle": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"plate": "…",
"label": "…",
"fleetVehicleId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
},
"verification": {
"workerRequired": [],
"customerAllowed": [],
"customerMinimum": 2,
"geofenceRadiusMeters": 1012.5,
"allowGeofenceOverride": true
},
"state": "assigned",
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"vehicleConfirmedAt": "2026-10-21T14:02:31Z",
"finishedAt": "2026-10-21T14:02:31Z",
"progress": {
"total": 0,
"delivered": 0,
"failed": 0,
"pending": 0
},
"stops": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"sequence": 1,
"orderId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"reference": "…",
"recipientName": "…",
"address": "…",
"coordinate": {},
"window": {},
"state": "pending",
"arrivedAt": "2026-10-21T14:02:31Z",
"outcomeAt": "2026-10-21T14:02:31Z",
"failureReason": "…",
"receiverName": "…",
"flags": [],
"manifestSha256": "…",
"evidence": [],
"parcels": [],
"plannedArrivalAt": "2026-10-21T14:02:31Z",
"plannedDepartureAt": "2026-10-21T14:02:31Z",
"codeVerifiedAt": "2026-10-21T14:02:31Z"
}
]
}
],
"nextCursor": "…"
}Ver el avance de las rutas
https://api.drometra.com/v1/field/routes/progressPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de consulta
- serviceDateobligatoriostring
Respuesta · 200
- serviceDatestringsiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/routes/progress" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"serviceDate": "…",
"items": [
{
"routeId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"fleetVehicleId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"state": "assigned",
"total": 25,
"delivered": 25,
"failed": 25,
"pending": 25,
"next": {
"sequence": 25.5,
"name": "…"
}
}
]
}Ver una ruta
https://api.drometra.com/v1/field/routes/{id}Pide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 200
- idstring · uuidsiempre
- tenantIdstring · uuidsiempre
- workerIdstring · uuidsiempre
- workerNamestringsiempre
- routePlanIdstring · uuidsiempre
- vehicleRouteIdstringsiempre
- serviceDatestringsiempre
- depotNamestringsiempre
- objectsiempre
- objectsiempre
- stateenum: assigned | in_progress | finished | cancelledsiempre
- versionintegersiempre
- createdAtstring · date-timesiempre
- vehicleConfirmedAtstring · date-time o nullsiempre
- finishedAtstring · date-time o nullsiempre
- objectsiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/routes/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerName": "…",
"routePlanId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"vehicleRouteId": "…",
"serviceDate": "…",
"depotName": "…",
"vehicle": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"plate": "…",
"label": "…",
"fleetVehicleId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
},
"verification": {
"workerRequired": [
"package_scan"
],
"customerAllowed": [
"otp"
],
"customerMinimum": 2,
"geofenceRadiusMeters": 1012.5,
"allowGeofenceOverride": true
},
"state": "assigned",
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"vehicleConfirmedAt": "2026-10-21T14:02:31Z",
"finishedAt": "2026-10-21T14:02:31Z",
"progress": {
"total": 0,
"delivered": 0,
"failed": 0,
"pending": 0
},
"stops": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"sequence": 1,
"orderId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"reference": "…",
"recipientName": "…",
"address": "…",
"coordinate": {
"latitude": 0,
"longitude": 0
},
"window": {
"startsAt": "2026-10-21T14:02:31Z",
"endsAt": "2026-10-21T14:02:31Z"
},
"state": "pending",
"arrivedAt": "2026-10-21T14:02:31Z",
"outcomeAt": "2026-10-21T14:02:31Z",
"failureReason": "…",
"receiverName": "…",
"flags": [
"…"
],
"manifestSha256": "…",
"evidence": [
{
"assetId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"kind": "DELIVERY_PHOTO",
"sha256": "…",
"capturedAt": "2026-10-21T14:02:31Z",
"sizeBytes": 4194304.5
}
],
"parcels": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"code": "…",
"description": "…",
"loadStatus": "PENDING",
"deliveredAt": "2026-10-21T14:02:31Z",
"returnedAt": "2026-10-21T14:02:31Z"
}
],
"plannedArrivalAt": "2026-10-21T14:02:31Z",
"plannedDepartureAt": "2026-10-21T14:02:31Z",
"codeVerifiedAt": "2026-10-21T14:02:31Z"
}
]
}Ver el resumen de entregas
https://api.drometra.com/v1/field/deliveries/summaryPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de consulta
- fromobligatoriostring
- toobligatoriostring
Respuesta · 200
- objectsiempre
- objectsiempre
- objectsiempre
- objectsiempre
- array de objectsiempre
- array de objectsiempre
- array de objectsiempre
- array de objectsiempre
- objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/deliveries/summary" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"period": {
"from": "…",
"to": "…"
},
"totals": {
"stops": 0,
"delivered": 0,
"failed": 0,
"pending": 0
},
"punctuality": {
"evaluated": 0,
"onTime": 0,
"late": 0,
"onTimeRate": 0.5
},
"serviceSeconds": {
"measured": 0,
"median": 0,
"p90": 0
},
"failures": [
{
"reason": "…",
"count": 0
}
],
"days": [
{
"date": "…",
"stops": 0,
"delivered": 0,
"failed": 0,
"pending": 0,
"late": 0
}
],
"workers": [
{
"workerId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"name": "…",
"stops": 0,
"delivered": 0,
"failed": 0,
"late": 0
}
],
"places": [
{
"locationId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"name": "…",
"lastDeliveredAt": "2026-10-21T14:02:31Z",
"deliveries": 0,
"daysSinceLast": 0,
"usualIntervalDays": 0,
"overdue": true
}
],
"rules": {
"version": "…",
"onTime": "…",
"serviceTime": "…",
"places": "…",
"overdue": "…"
}
}Cancelar una ruta
https://api.drometra.com/v1/field/routes/{id}/cancelPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Cuerpo
- versionobligatoriointeger
Respuesta · 200
- idstring · uuidsiempre
- tenantIdstring · uuidsiempre
- workerIdstring · uuidsiempre
- workerNamestringsiempre
- routePlanIdstring · uuidsiempre
- vehicleRouteIdstringsiempre
- serviceDatestringsiempre
- depotNamestringsiempre
- objectsiempre
- objectsiempre
- stateenum: assigned | in_progress | finished | cancelledsiempre
- versionintegersiempre
- createdAtstring · date-timesiempre
- vehicleConfirmedAtstring · date-time o nullsiempre
- finishedAtstring · date-time o nullsiempre
- objectsiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/routes/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/cancel" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Content-Type: application/json" \
-d '{
"version": 0
}'{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"workerName": "…",
"routePlanId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"vehicleRouteId": "…",
"serviceDate": "…",
"depotName": "…",
"vehicle": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"plate": "…",
"label": "…",
"fleetVehicleId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
},
"verification": {
"workerRequired": [
"package_scan"
],
"customerAllowed": [
"otp"
],
"customerMinimum": 2,
"geofenceRadiusMeters": 1012.5,
"allowGeofenceOverride": true
},
"state": "assigned",
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"vehicleConfirmedAt": "2026-10-21T14:02:31Z",
"finishedAt": "2026-10-21T14:02:31Z",
"progress": {
"total": 0,
"delivered": 0,
"failed": 0,
"pending": 0
},
"stops": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"sequence": 1,
"orderId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"reference": "…",
"recipientName": "…",
"address": "…",
"coordinate": {
"latitude": 0,
"longitude": 0
},
"window": {
"startsAt": "2026-10-21T14:02:31Z",
"endsAt": "2026-10-21T14:02:31Z"
},
"state": "pending",
"arrivedAt": "2026-10-21T14:02:31Z",
"outcomeAt": "2026-10-21T14:02:31Z",
"failureReason": "…",
"receiverName": "…",
"flags": [
"…"
],
"manifestSha256": "…",
"evidence": [
{
"assetId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"kind": "DELIVERY_PHOTO",
"sha256": "…",
"capturedAt": "2026-10-21T14:02:31Z",
"sizeBytes": 4194304.5
}
],
"parcels": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"code": "…",
"description": "…",
"loadStatus": "PENDING",
"deliveredAt": "2026-10-21T14:02:31Z",
"returnedAt": "2026-10-21T14:02:31Z"
}
],
"plannedArrivalAt": "2026-10-21T14:02:31Z",
"plannedDepartureAt": "2026-10-21T14:02:31Z",
"codeVerifiedAt": "2026-10-21T14:02:31Z"
}
]
}Descargar una evidencia
https://api.drometra.com/v1/field/assets/{id}/contentPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/assets/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/content" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"(image/jpeg)Vincular un celular
https://api.drometra.com/v1/field/devices/enrollmentsNo pide sesión: lo abre quien tiene el enlace.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Cuerpo
- codeobligatoriostring
- deviceobligatorioobject
Respuesta · 201
- deviceIdstring · uuidsiempre
- objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/devices/enrollments" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"code": "…",
"device": {}
}'{
"deviceId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"tenant": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"name": "…"
}
}Activar un celular vinculado
https://api.drometra.com/v1/field/devices/{id}/activationPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 200
- objectsiempre
- objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/devices/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/activation" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"worker": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…"
},
"tenant": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"name": "…"
}
}Ver el conductor de este celular
https://api.drometra.com/v1/field/mePide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- x-device-idobligatoriostring · uuid
- El celular vinculado en Dromivia que hace la petición.
Respuesta · 200
- objectsiempre
- objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/me" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "x-device-id: $DROMETRA_DEVICE" \
-H "Accept: application/json"{
"worker": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"displayName": "…"
},
"tenant": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"name": "…"
}
}Ver la ruta actual del conductor
https://api.drometra.com/v1/field/routes/currentPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- x-device-idobligatoriostring · uuid
- El celular vinculado en Dromivia que hace la petición.
Respuesta · 200
- idstring · uuidsiempre
- datestringsiempre
- versionintegersiempre
- objectsiempre
- objectsiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/routes/current" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "x-device-id: $DROMETRA_DEVICE" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"date": "…",
"version": 1,
"depot": {
"name": "…"
},
"vehicle": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"plate": "…",
"label": "…"
},
"stops": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"sequence": 1,
"orderReference": "…",
"customer": {
"name": "…",
"phoneMasked": "…",
"canCall": true
},
"address": "…",
"addressDetail": "…",
"coordinate": {
"lat": 0,
"lon": 0
},
"window": {
"startsAt": "2026-10-21T14:02:31Z",
"endsAt": "2026-10-21T14:02:31Z"
},
"notes": "…",
"verification": {
"workerRequired": [],
"customerAllowed": [],
"customerMinimum": 2,
"geofenceRadiusMeters": 1012.5,
"allowGeofenceOverride": true
},
"lines": [
{
"position": 50.5,
"description": "…",
"quantity": "…"
}
],
"secrets": {
"otp": {
"saltHex": "…",
"iterations": 300500,
"hashHex": "…"
}
},
"parcels": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"code": "…",
"description": "…"
}
]
}
]
}Registrar eventos de una ruta
https://api.drometra.com/v1/field/routes/{id}/eventsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- x-device-idobligatoriostring · uuid
- El celular vinculado en Dromivia que hace la petición.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Cuerpo
- eventIdobligatoriostring
- occurredAtobligatoriostring · date-time
- eventobligatorioobject
Respuesta · 202
- eventIdstringsiempre
- duplicatebooleansiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/routes/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/events" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "x-device-id: $DROMETRA_DEVICE" \
-H "Content-Type: application/json" \
-d '{
"eventId": "…",
"occurredAt": "…",
"event": {}
}'{
"eventId": "…",
"duplicate": true
}Enviar posiciones de una ruta
https://api.drometra.com/v1/field/routes/{id}/positionsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- x-device-idobligatoriostring · uuid
- El celular vinculado en Dromivia que hace la petición.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Cuerpo
- positionsobligatorioarray de object
Respuesta · 200
- acceptedintegersiempre
- duplicatesintegersiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/routes/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/positions" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "x-device-id: $DROMETRA_DEVICE" \
-H "Content-Type: application/json" \
-d '{
"positions": []
}'{
"accepted": 50,
"duplicates": 50,
"rejected": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"reason": "stale"
}
]
}Preparar la subida de una evidencia
https://api.drometra.com/v1/field/evidence/uploadsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- x-device-idobligatoriostring · uuid
- El celular vinculado en Dromivia que hace la petición.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Cuerpo
- idobligatoriostring
- kindobligatorioenum: DELIVERY_PHOTO | FAILURE_PHOTO | SIGNATURE
- mimeTypeobligatorioenum: image/jpeg | image/svg+xml
- sizeBytesobligatoriointeger
- sha256obligatoriostring
- capturedAtMsobligatoriointeger
Respuesta · 201
- assetIdstring · uuidsiempre
- uploadUrlstringsiempre
- methodstringsiempre
- headersobjectsiempre
- expiresAtstring · date-timesiempre
- alreadyUploadedbooleansiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/evidence/uploads" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "x-device-id: $DROMETRA_DEVICE" \
-H "Content-Type: application/json" \
-d '{
"id": "…",
"kind": "…",
"mimeType": "…",
"sizeBytes": 0,
"sha256": "…",
"capturedAtMs": 0
}'{
"assetId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"uploadUrl": "…",
"method": "PUT",
"headers": {},
"expiresAt": "2026-10-21T14:02:31Z",
"alreadyUploaded": true
}Subir el contenido de una evidencia
https://api.drometra.com/v1/field/evidence/uploads/{id}/contentNo pide sesión: lo abre quien tiene el enlace.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Parámetros de consulta
- tokenobligatoriostring
El cuerpo es el archivo, con Content-Type: image/jpeg.
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X PUT "https://api.drometra.com/v1/field/evidence/uploads/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/content" \
-H "Content-Type: image/jpeg" \
--data-binary @archivo(sin cuerpo)Enviar el código al destinatario
https://api.drometra.com/v1/field/routes/{routeId}/stops/{stopId}/customer-code/dispatchPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- x-device-idobligatoriostring · uuid
- El celular vinculado en Dromivia que hace la petición.
Parámetros de ruta
- routeIdobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
- stopIdobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 400
- errorenum: invalid_request | unauthorized | forbidden | not_found | conflict | cursor_expired | …siempre
- requestIdstring · uuidsiempre
- reasonstring
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/routes/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/stops/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/customer-code/dispatch" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "x-device-id: $DROMETRA_DEVICE" \
-H "Accept: application/json"{
"error": "invalid_request",
"requestId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"reason": "…"
}Verificar el código del destinatario
https://api.drometra.com/v1/field/routes/{routeId}/stops/{stopId}/customer-code/verifyPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- x-device-idobligatoriostring · uuid
- El celular vinculado en Dromivia que hace la petición.
Parámetros de ruta
- routeIdobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
- stopIdobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Cuerpo
- codeobligatoriostring
Respuesta · 200
- validbooleansiempre
- attemptsRemainingintegersiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/field/routes/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/stops/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/customer-code/verify" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "x-device-id: $DROMETRA_DEVICE" \
-H "Content-Type: application/json" \
-d '{
"code": "…"
}'{
"valid": true,
"attemptsRemaining": 2.5
}Listar entregas
https://api.drometra.com/v1/field/deliveriesPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de consulta
- fromstring
- tostring
- outcomeenum: delivered | failed
- cursorstring
Respuesta · 200
- fromstringsiempre
- tostringsiempre
- objectsiempre
- objectsiempre
- array de objectsiempre
- nextCursorstring o nullsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/field/deliveries" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"from": "…",
"to": "…",
"rules": {
"version": "…",
"distance": "…",
"code": "…",
"window": "…"
},
"counts": {
"delivered": 0,
"failed": 0,
"partial": 0
},
"items": [
{
"stopId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"routeId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"orderId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"serviceDate": "…",
"sequence": 25.5,
"reference": "…",
"recipientName": "…",
"address": "…",
"workerName": "…",
"vehicleLabel": "…",
"vehiclePlate": "…",
"plannedArrivalAt": "2026-10-21T14:02:31Z",
"arrivedAt": "2026-10-21T14:02:31Z",
"outcomeAt": "2026-10-21T14:02:31Z",
"outcome": "delivered",
"failureReason": "…",
"receiverName": "…",
"flags": [
"…"
],
"summary": {
"methods": [],
"closeDistanceMeters": 0,
"positionAccuracyMeters": 0,
"code": "online",
"note": "…",
"appVersion": "…"
},
"parcels": {
"total": 0,
"delivered": 0
},
"assets": [
{
"assetId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"kind": "DELIVERY_PHOTO",
"sha256": "…",
"capturedAt": "2026-10-21T14:02:31Z",
"sizeBytes": 4194304.5
}
],
"manifestSha256": "…"
}
],
"nextCursor": "…"
}