Skip to main content
PATCH
Update a delivery

Authorizations

Authorization
string
header
required

OAuth 2.0 client credentials. Exchange your client_id and client_secret for an access token scoped to the organisation that provides data access.

Headers

Cula-Organisation-Id
string
required

ID of the organisation the request operates on behalf of (e.g. org_...). Must be an organisation the API client has access to.

Example:

"org_01k83mfmhgchya944v86ryvhpq"

Path Parameters

id
string
required
Example:

"dlv_01k204p7hghzdtwjb3n48s5fs5"

Body

application/json
status
enum<string>

Target lifecycle status: finished finishes a draft delivery. Finished deliveries cannot be changed back to draft.

Available options:
finished
Example:

"finished"

occurred_at
string<date-time>

When the delivery took place: an ISO 8601 date-time with an explicit UTC offset (Z or ±hh:mm). Requires the delivery to be a draft. Setting this re-reads every machine-fed data point over the new time window.

Example:

"2026-01-15T08:00:00Z"

legs
object[]

The transport legs of the delivery, in full and in travel order — reconciled by leg id: a named leg is updated in place, an entry without id adds a leg, and a leg absent from the array is removed. Requires the delivery to be a draft.

Required array length: 1 element
external_id
string | null

An optional custom ID that can be set to an internal ID from your system. This ID must be unique within all objects of the organisation you operate in. You can later use this external ID to reference and query this object. Be aware that you can update this ID later. If you need an immutable ID, use the object ID returned when creating the object. Pass null to remove it.

Required string length: 1 - 100
Pattern: ^[A-Za-z0-9\-_]+$
Example:

"MY-CUSTOM-ID"

data_points
object[]

Data points to be patched, based on the delivery config's data_point_configs list. Updating data points might also affect existing payload containers. Only the listed data points change, providing null as value clears the data point. Requires the delivery to be draft.

Maximum array length: 100
payload_containers
(Existing Container · object | New Container · object)[]

Full list of payload containers to be used for the delivery, based on the delivery config's payload_configs list. Keep or update existing containers by passing their id. Create new ones the same way as when creating the delivery. Previous payload containers absent from the list will be deleted. Requires the delivery to be a draft.

Maximum array length: 100

References an existing payload container by its ID, optionally updating the listed data points.

Response

The updated delivery.

id
string
required

The ID of the delivery.

Example:

"dlv_01k204p7hghzdtwjb3n48s5fs5"

config_id
string
required

The ID of the delivery config the delivery was created from.

Example:

"dlvc_01kkygy9cxxqhhr93aw74aycbr"

config_version_id
string
required

The ID of the exact delivery config version the delivery was created from.

Example:

"dlvcv_01kkw6g3ayad6f092rbkbjcaxq"

external_id
string | null
required

Optional external ID of the delivery.

Example:

"MY-CUSTOM-ID"

display_id
string
required

Human-readable, server-generated identifier scoped to the issuing site.

Example:

"D-148"

status
enum<string>
required

Lifecycle status. draft deliveries are still being prepared and may be missing data point values, payload or leg sites; finished deliveries are complete.

Available options:
draft,
finished
Example:

"finished"

site
object
required

The site that issued the delivery (owns its config).

legs
object[]
required

The transport legs of the delivery, in order.

occurred_at
string<date-time>
required

When the delivery took place.

Example:

"2026-01-15T08:00:00Z"

created_at
string<date-time>
required

When the delivery was recorded in Cula.

Example:

"2026-01-15T08:00:00Z"

data_points
(short_text · object | long_text · object | multi_text · object | number · object | percentage · object | amount · object | timestamp · object | duration · object | boolean · object | material · object | material_batch · object | container_type · object | material_pool · object)[]
required

Data points set on the delivery itself.

Data point holding a single line of text.

payload_containers
object[]
required

The material containers carried by the delivery.

payload
object[]
required
deprecated

Deprecated: use payload_containers instead.

files
object[]
required

Files attached to the delivery. Lists only the files your organisation can access: a counterparty of the delivery does not see the files you attached, and vice versa.