univoozAPI
Orders

The order object

Every field that an order endpoint returns.

Every order endpoint returns this object. Webhooks send it as data.

{
  "reference": "ORD-260729-LD4Q",
  "externalOrderId": "PO-88213",
  "status": "assigned",
  "livemode": true,

  "branch": { "reference": "noerrebro", "name": "Norrebro Bakery" },
  "fleet": { "name": "Copenhagen Couriers" },
  "zone": { "code": "CZ-K7M2PQR4", "name": "Central Zone" },

  "pickup": {
    "street": "Jagtvej 12",
    "city": "Copenhagen",
    "postcode": "2200",
    "coordinates": { "latitude": 55.6969, "longitude": 12.5461 },
    "contact": { "name": "Back counter", "phone": "+4535121212" },
    "instructions": "Ask at the back counter"
  },
  "delivery": {
    "street": "Sortedam Dossering 55",
    "city": "Copenhagen",
    "postcode": "2100",
    "coordinates": { "latitude": 55.6928, "longitude": 12.5701 },
    "instructions": "Gate code 4471, second floor"
  },

  "customer": {
    "reference": "cust_8821",
    "firstName": "Alex",
    "lastName": "Doe",
    "companyName": null,
    "email": "alex@example.com",
    "phone": "+4520123456"
  },

  "schedule": {
    "mode": "asap",
    "resolved": {
      "pickupTime": "2026-07-29T14:20:00+02:00",
      "deliveryTime": "2026-07-29T14:50:00+02:00",
      "basis": "busy_hours"
    }
  },

  "weight": 2.5,
  "numberOfPackages": 1,
  "orderAmount": 249.00,
  "distance": 3.4,
  "co2Kg": 0.41,

  "realPickupTime": null,
  "realDeliveryTime": null,

  "metadata": { "table": "12", "channel": "web" },

  "createdAt": "2026-07-29T13:58:00+02:00",
  "updatedAt": "2026-07-29T14:02:00+02:00"
}

Identity

FieldNotes
referenceThe Univooz id. Unique in your organization, in both modes.
externalOrderIdYour id. Also unique in both modes.
livemodefalse for an order from a test key.

GET, PATCH and cancel accept both identifiers.

Destination

branch, fleet and zone show where the order went.

These fields keep the values from the time of creation. If you change a branch later, old orders do not change.

Times

schedule.resolved is present for all modes, so you always know the agreed times. See Scheduling.

realPickupTime and realDeliveryTime are what occurred. They are null until the courier arrives.

Measurements

FieldNotes
weightKilograms.
numberOfPackagesA whole number.
orderAmountThe value of the goods. It is not a delivery price. Univooz does not price deliveries.
distanceKilometres, two decimals.
co2Kgnull until the fleet selects a driver. It comes from that driver's vehicle.

Metadata

Text keys and text values. Univooz stores them without change and returns them everywhere.

Limits: 50 keys, keys of 64 characters, values of 500 characters. Values must be text. Univooz rejects objects inside metadata.

In a PATCH, metadata and pickupContact replace the old value. Univooz does not merge them.

Not in the object

  • No driver name and no driver position. This API gives no driver location data.
  • No request_id. That field belongs to the response, not to the order. It is absent from data[] in a list, and from data in a webhook.

On this page