Terreno y Dromivia

Conductores, celulares, rutas del día, entregas y evidencia que llega desde Dromivia.

Exportar entregas

GEThttps://api.drometra.com/v1/field/exports/deliveries

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 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.

petición
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"
respuesta · 200
(text/csv)

Ver la configuración de terreno

GEThttps://api.drometra.com/v1/field/settings

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.

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.

petición
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"
respuesta · 200
{
  "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

PUThttps://api.drometra.com/v1/field/settings

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.

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.

petición
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
  }'
respuesta · 200
{
  "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "displayName": "…",
  "verification": {
    "workerRequired": [
      "package_scan"
    ],
    "customerAllowed": [
      "otp"
    ],
    "customerMinimum": 2,
    "geofenceRadiusMeters": 1012.5,
    "allowGeofenceOverride": true
  },
  "version": 0
}

Listar conductores

GEThttps://api.drometra.com/v1/field/workers

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.

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.

petición
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"
respuesta · 200
{
  "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

POSThttps://api.drometra.com/v1/field/workers

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.

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.

petición
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": "…"
  }'
respuesta · 201
{
  "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

PATCHhttps://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.

petición
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
  }'
respuesta · 200
{
  "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

POSThttps://api.drometra.com/v1/field/workers/{id}/invitations

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 · 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.

petición
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"
respuesta · 201
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "workerId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "expiresAt": "2026-10-21T14:02:31Z",
  "code": "…",
  "enrollmentUri": "…"
}

Desvincular un celular

POSThttps://api.drometra.com/v1/field/devices/{id}/revoke

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
  • 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.

petición
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"
respuesta · 200
{
  "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

POSThttps://api.drometra.com/v1/field/routes

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.
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.

petición
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": {}
  }'
respuesta · 201
{
  "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

GEThttps://api.drometra.com/v1/field/routes

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 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.

petición
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"
respuesta · 200
{
  "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

GEThttps://api.drometra.com/v1/field/routes/progress

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 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.

petición
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"
respuesta · 200
{
  "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

GEThttps://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.

petición
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"
respuesta · 200
{
  "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

GEThttps://api.drometra.com/v1/field/deliveries/summary

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 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.

petición
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"
respuesta · 200
{
  "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

POSThttps://api.drometra.com/v1/field/routes/{id}/cancel

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

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.

petición
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
  }'
respuesta · 200
{
  "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

GEThttps://api.drometra.com/v1/field/assets/{id}/content

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

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
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"
respuesta · 200
(image/jpeg)

Vincular un celular

POSThttps://api.drometra.com/v1/field/devices/enrollments

No 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.

petición
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": {}
  }'
respuesta · 201
{
  "deviceId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "tenant": {
    "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
    "name": "…"
  }
}

Activar un celular vinculado

POSThttps://api.drometra.com/v1/field/devices/{id}/activation

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

  • 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.

petición
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"
respuesta · 200
{
  "worker": {
    "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
    "displayName": "…"
  },
  "tenant": {
    "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
    "name": "…"
  }
}

Ver el conductor de este celular

GEThttps://api.drometra.com/v1/field/me

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.
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.

petición
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"
respuesta · 200
{
  "worker": {
    "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
    "displayName": "…"
  },
  "tenant": {
    "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
    "name": "…"
  }
}

Ver la ruta actual del conductor

GEThttps://api.drometra.com/v1/field/routes/current

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.
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.

petición
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"
respuesta · 200
{
  "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

POSThttps://api.drometra.com/v1/field/routes/{id}/events

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.
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.

petición
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": {}
  }'
respuesta · 202
{
  "eventId": "…",
  "duplicate": true
}

Enviar posiciones de una ruta

POSThttps://api.drometra.com/v1/field/routes/{id}/positions

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.
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.

petición
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": []
  }'
respuesta · 200
{
  "accepted": 50,
  "duplicates": 50,
  "rejected": [
    {
      "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
      "reason": "stale"
    }
  ]
}

Preparar la subida de una evidencia

POSThttps://api.drometra.com/v1/field/evidence/uploads

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.
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.

petición
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
  }'
respuesta · 201
{
  "assetId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "uploadUrl": "…",
  "method": "PUT",
  "headers": {},
  "expiresAt": "2026-10-21T14:02:31Z",
  "alreadyUploaded": true
}

Subir el contenido de una evidencia

PUThttps://api.drometra.com/v1/field/evidence/uploads/{id}/content

No 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.

petición
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
respuesta · 204
(sin cuerpo)

Enviar el código al destinatario

POSThttps://api.drometra.com/v1/field/routes/{routeId}/stops/{stopId}/customer-code/dispatch

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.
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.

petición
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"
respuesta · 400
{
  "error": "invalid_request",
  "requestId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "reason": "…"
}

Verificar el código del destinatario

POSThttps://api.drometra.com/v1/field/routes/{routeId}/stops/{stopId}/customer-code/verify

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.
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.

petición
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": "…"
  }'
respuesta · 200
{
  "valid": true,
  "attemptsRemaining": 2.5
}

Listar entregas

GEThttps://api.drometra.com/v1/field/deliveries

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 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.

petición
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"
respuesta · 200
{
  "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": "…"
}