Update order

Update the details of an existing order in your Routific workspace

A PUT request to the /orders endpoint allows you to update the order details for the orderUuid specified in the request url. It uses the same format as the Create orders endpoint, so you can reference that page for accepted fields.

Request URL

❗️

This is a PUT request

Make sure to include everything in the body because if you don't any previous values assigned to a field will be reset to NULL.
For example, if you've previously assigned a phone number to the order upon creation, and during this update request if you haven't included the phone number field with its original value, then the original value for the field will be cleared.


Sample Request Payload

{
  "name": "Metro",
  "locations": [
    {
      "address": "510 W 8th Ave, Vancouver, BC V5Z 1C5",
      "latitude": 49.26413,
      "longitude": -123.11499
    }
  ],
  "phone": "+16043215582",
  "email": "[email protected]",
  "duration": 600, // in seconds
  "load": 1,
  "instructions": "Deliver at loading bay at the back of the building.",
  "timeWindows": [
    {
      "startTime": "09:00",
      "endTime": "10:00"
    }
  ],
  "customerOrderNumber": "external-1",
  "deliveryDate": "2026-08-01",
  "tags": [
    "refrigerated"
  ],
  "packages": [
    {
      "barcode": "ref-10000"
    }
  ]
}

Sample Response Payload: Applied Immediately (200 OK)

Returned when the order is unscheduled, or when a scheduled order is edited without changing any of the five timing fields.

{
  "actionName": "update",
  "status": "finished",
  "actionSummary": {
    "orderUri": "/v2/orders/019da4e3-eaa4-44c4-9b65-f487aa2b3ee9",
    "unpublishedChanges": true,
    "routeUuid": "ba4651ec-e75d-44ed-8d99-27bcf2e3403d",
    "routeDate": "2026-07-31"
  }
}

Note: If the order was unscheduled, the response will not return arouteUuid and routeDate.

Sample Response Payload: Re-optimization in progress (202 Accepted)

Returned when one or more of the following fields change for a scheduled order: load, name,
duration, locations, timeWindows, or tags and the route must be re-optimized.

{
    "actionUuid": "d25490a5-5699-4445-bc36-1ac9e67d1263",
    "actionName": "update",
    "status": "pending"
}

This is an asynchronous operation, and the edit is not applied till the action reports finished

📘

Check the status of an asynchronous action

If you receive a 202, use the returned actionUuid to poll for the outcome. See Fetch order action status for the request format and response fields.

The response payload can include the following fields:

FieldTypeDescription
actionNameStringThe action being performed. Always update for this endpoint.
actionUuidStringIdentifier for the asynchronous action. Returned on 202 only, use it to poll for the outcome. Not returned on 200, where the update is already applied and there is nothing to poll.
statusStringStatus of the action. Returns finished on a 200 andpending on a 202.
actionSummaryObjectDetails of the applied update. Returned on 200 only. On a 202 it is returned by the status endpoint once the action completes.
actionSummary.orderUriStringThe URI to fetch the updated order.
actionSummary.unpublishedChangesBooleantrue when the order's route was already published and now differs from what was published, meaning the route needs to be published again. false when the route was never published.
actionSummary.routeUuidStringThe route the order is scheduled on. Only returned when the order is scheduled.
actionSummary.routeDateStringThe date of that route, in yyyy-mm-dd format. Only returned when the order is scheduled.