Partially update an order by its external id
const url = 'https://example.com/api/v1/integration/orders/externalid/example';const options = { method: 'PATCH', headers: {'Content-Type': 'application/json'}, body: '{"externalId":"example","customId":"example","price":1,"planDeliveryPeriod":{"startDate":"2026-04-15T12:00:00Z","endDate":"2026-04-15T12:00:00Z"},"planPickupPeriod":{"startDate":"2026-04-15T12:00:00Z","endDate":"2026-04-15T12:00:00Z"},"addressFrom":{"line":"example","lat":1,"long":1,"details":"example","commentary":"example","domofon":"example","flat":"example","floor":"example","porch":"example"},"addressTo":{"line":"example","lat":1,"long":1,"details":"example","commentary":"example","domofon":"example","flat":"example","floor":"example","porch":"example"},"appType":"example","volume":1,"weight":1,"priority":1,"deliveryPrice":1,"additionalDetails":"example","details":"example","assembled":true,"statusGroup":"example","packaging":"example","assignedDriverId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","assignedVehicleId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://example.com/api/v1/integration/orders/externalid/example \ --header 'Content-Type: application/json' \ --data '{ "externalId": "example", "customId": "example", "price": 1, "planDeliveryPeriod": { "startDate": "2026-04-15T12:00:00Z", "endDate": "2026-04-15T12:00:00Z" }, "planPickupPeriod": { "startDate": "2026-04-15T12:00:00Z", "endDate": "2026-04-15T12:00:00Z" }, "addressFrom": { "line": "example", "lat": 1, "long": 1, "details": "example", "commentary": "example", "domofon": "example", "flat": "example", "floor": "example", "porch": "example" }, "addressTo": { "line": "example", "lat": 1, "long": 1, "details": "example", "commentary": "example", "domofon": "example", "flat": "example", "floor": "example", "porch": "example" }, "appType": "example", "volume": 1, "weight": 1, "priority": 1, "deliveryPrice": 1, "additionalDetails": "example", "details": "example", "assembled": true, "statusGroup": "example", "packaging": "example", "assignedDriverId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "assignedVehicleId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'A field left null keeps its current value. Omitting the price keeps the current price, while an explicit value - including 0 - sets it exactly. The external id itself cannot be changed here.
Authorizations
Заголовок раздела «Authorizations»Parameters
Заголовок раздела «Parameters»Path Parameters
Заголовок раздела «Path Parameters»Request Bodyrequired
Заголовок раздела «Request Bodyrequired»A partial update of an order. Every field is optional: one left null keeps its current value.
object
Ignored on a patch. The id a source system knows the order by cannot be changed here.
Your own reference for the order.
Price of the goods. Leaving it out keeps the current price; an explicit value, including 0, sets it exactly.
Where the goods come from. The operative address for a Pickup or a Return.
object
The whole address on one line.
Latitude in WGS 84 degrees. A latitude and a longitude that are both exactly 0 read as “no coordinates”; an order pushed through the API whose addresses all read that way is refused with 400.
Longitude in WGS 84 degrees.
Free-text extra detail about the address.
Free-text comment about the address.
Free-text door-phone (intercom) code for the entrance.
Free-text flat or apartment.
Free-text floor.
Free-text entrance, or porch, of the building.
Where the goods go. The operative address for a Delivery or a Rebox.
object
The whole address on one line.
Latitude in WGS 84 degrees. A latitude and a longitude that are both exactly 0 read as “no coordinates”; an order pushed through the API whose addresses all read that way is refused with 400.
Longitude in WGS 84 degrees.
Free-text extra detail about the address.
Free-text comment about the address.
Free-text door-phone (intercom) code for the entrance.
Free-text flat or apartment.
Free-text floor.
Free-text entrance, or porch, of the building.
Free-form classification. Stored and returned unchanged.
Volume of the whole order.
Weight of the whole order.
Relative priority of the order.
What the delivery itself costs, apart from the goods.
Free-form notes on the order.
Free-form notes on the order.
Whether the goods are already assembled.
Free-form grouping. It is not the order’s status.
Description of the packaging the goods are in.
Driver this order must go to, sent together with the vehicle. Null keeps the stored pair: a patch cannot clear an assignment.
Vehicle this order must go on, sent together with the Driver.
Examplegenerated
{ "externalId": "example", "customId": "example", "price": 1, "planDeliveryPeriod": { "startDate": "2026-04-15T12:00:00Z", "endDate": "2026-04-15T12:00:00Z" }, "planPickupPeriod": { "startDate": "2026-04-15T12:00:00Z", "endDate": "2026-04-15T12:00:00Z" }, "addressFrom": { "line": "example", "lat": 1, "long": 1, "details": "example", "commentary": "example", "domofon": "example", "flat": "example", "floor": "example", "porch": "example" }, "addressTo": { "line": "example", "lat": 1, "long": 1, "details": "example", "commentary": "example", "domofon": "example", "flat": "example", "floor": "example", "porch": "example" }, "appType": "example", "volume": 1, "weight": 1, "priority": 1, "deliveryPrice": 1, "additionalDetails": "example", "details": "example", "assembled": true, "statusGroup": "example", "packaging": "example", "assignedDriverId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "assignedVehicleId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}Responses
Заголовок раздела «Responses»OK
One order, as the pull feed reports it.
object
The order’s id in PickUpper.
The id the source system created the order under, or null for an order created in PickUpper.
The short human-readable code operators use to refer to the order.
Where the order stands, as a name: New, InPlanning, Planned, InProgress, FullyDelivered, PartiallyDelivered, Returned, Collected, PartiallyCollected, NotCollected, Refused, Cancelled or Closed. A Pickup or Return order ends Collected, PartiallyCollected or NotCollected where a Delivery order ends FullyDelivered, PartiallyDelivered or Returned; a Rebox order uses the delivery values and is FullyDelivered only when the new item was handed over and the old one collected. New values may be added: treat a value you do not know as not final.
The tenant’s own sub-status within the current status, by name, or null when none is set. It is a label the tenant configures, not part of the status machine.
What the order is for, as a name: Delivery, Pickup, Return or Rebox.
The reference the source system sent with the order, stored and returned unchanged.
When the order was created (UTC).
When the order last changed (UTC). This is the value the feed orders by and that the since parameter compares against.
The ids of the tags on the order, always an array. Resolve a tag id through the tag endpoints.
Example
{ "status": "New", "type": "Delivery"}Validation failed
The body of a 400 response, served as application/problem+json. It follows the RFC 9457 problem-details shape: type, title, status and detail are the standard members, and errors is an extension that lists the offending fields.
object
A stable, machine-readable code for the error. Branch on this rather than on the wording of the title or the detail.
A short label for the kind of failure, such as Validation failed.
The HTTP status code of the response, which for this body is 400.
A human-readable explanation of this particular failure, or null.
The fields the request was rejected over, one entry each. Omitted entirely when the failure carries no field-level context, so a 400 can arrive without this member.
One field the request was rejected over.
object
The name of the offending field, spelled as the request body spells it.
A stable, machine-readable code for this field’s failure.
The rejected value. Always present, and null when it was not safe to echo back.
A human-readable explanation of what is wrong with the field.
Set only by the dispatcher application’s manual planning operations — integration endpoints never set it. True when every problem in this refusal is a tenant-policy refusal the operator may override by re-sending the same request with force: true. Omitted otherwise.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "errors": [ { "field": "example", "code": "example", "value": "example", "message": "example" } ], "overridable": true}Missing or invalid credentials
Authenticated, but the role or scope does not allow this
Not found
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Conflict
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Rate limit exceeded, or an Idempotency-Key request is still in flight; retry after the Retry-After header
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Unexpected error
RFC 9457 problem body returned on every failure. type carries a stable machine-readable error code (see docs/api/error-codes.yaml), title a short human summary, status the HTTP status, detail the specific message.
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}