API reference

Fulfillment API

The Carriyo Fulfillment API covers the work between order allocation and carrier handoff: picking items off shelves, packing them into parcels, and managing customer-collection handovers. Bin-location mappings for the picker app are also managed here.

Serverhttps://api.carriyo.comAuthOAuth 2.0 + API KeySpecfulfillment.yaml

Picks

A Pick is the picker's work order. It represents the lifecycle of one picker pulling line items from shelves at a fulfillment location for one or more fulfillment orders. Items can be picked off the shelf, restocked back, or recorded as mispicks when something goes wrong (wrong item, damaged unit).

State changes go through dedicated action endpoints (/start, /complete, /items/pick, /items/restock, /items/mispick) rather than a generic PUT, so the action verb is part of the audit trail.

11 operations · 0 objects

post/orders/picks

Create a pick

Creates a pick work order for one or more fulfillment-order line items at a single location.

When to use this

Call this when you want to create a pick manually. In many setups the Fulfillment App auto-creates picks on allocation (when auto_create_picks is enabled in the location's Fulfillment App settings), so a manual create is only needed when auto-creation is off or when you want fine-grained control over which items go into which pick.

Behavior

Carriyo determines the pick type from the items you supply:

Scenario Pick type Requirement
All items belong to one fulfillment order ORDER_PICK None.
Items span multiple fulfillment orders and every FO is fully included CLUSTER_PICK cluster_picking_enabled must be true in the location's Fulfillment App settings.
Items span multiple fulfillment orders but only a subset of each FO's items is included ZONE_PICK split_picking_enabled must be true.

On success, Carriyo:

  1. Moves each referenced fulfillment-order line item from allocated to pick_in_progress. If the requested quantity is less than the line item's total, the line item is split: the original keeps the remaining quantity as allocated, and a new line item is created with the requested quantity as pick_in_progress.
  2. Assigns a picker (if not provided in the request, assignment uses the configured strategy: work_load or manual).
  3. Generates a pick list document (PDF) attached to the pick.

Validation

  • location_id is required. All items must belong to fulfillment orders at this location.
  • At least one item is required.
  • Each line item must be in allocated status.
  • Each line item must not already belong to another active (non-terminal) pick.
  • quantity must not exceed the line item's available allocated quantity.
  • If picker is provided, the user must have pick permission for the location.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: pick-requestrequired
  • location_idstringrequired
    The fulfillment location where the pick takes place. All items in the request must belong to fulfillment orders allocated to this location.
  • pickerstring
    The user to assign as the picker (typically an email or user ID). If omitted, Carriyo assigns a picker automatically using the location's configured strategy (work_load assigns the picker with the fewest active picks; manual leaves the pick unassigned until a picker claims it or you call reassign). When provided, the user must have pick permission for the location in Fulfillment App access settings.
  • itemspick-item-request[]required
    The fulfillment-order line items to include in this pick. At least one item is required.

Responses

201Pick created.Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Validation failed. The response body contains a plain-text error message.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/picks/{pickId}

Get a pick

Returns the full pick record, including all items, documents, and timestamps.

Use this endpoint when you need the complete pick data. The list endpoints (/order/{orderId}, /fulfillment-order/{foId}) return lookup records with only summary fields (pick_id, location_id, status, creation_date); they do not include items, documents, or detailed timestamps.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier (e.g. `PIK_123`).

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200The full pick record.Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick not found.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/picks/order/{orderId}

List picks for an order

Returns all picks associated with an order.

These are lookup records containing only summary fields: pick_id, tenant, location_id, status, and creation_date. To get the full pick (items, documents, timestamps), call Get pick with the pick_id.

Path parameters

NameTypeRequiredDescription
orderIdstringYesThe order identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of pick summary records. May be empty if no picks exist for this order.
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/picks/fulfillment-order/{fulfillmentOrderId}

List picks for a fulfillment order

Returns all picks associated with a fulfillment order.

These are lookup records containing only summary fields: pick_id, tenant, location_id, status, and creation_date. To get the full pick (items, documents, timestamps), call Get pick with the pick_id.

Path parameters

NameTypeRequiredDescription
fulfillmentOrderIdstringYesThe fulfillment order identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of pick summary records. May be empty if no picks exist for this fulfillment order.
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/picks/{pickId}/start

Start a pick

Transitions the pick from open to processing. The picker is now walking the floor.

Validation

  • The pick must be in open status.
  • A picker must already be assigned (set at creation or via Reassign pick).

No request body is required.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Pick started. Status is now `processing`.Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick is not in `open` status, or no picker is assigned.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/picks/{pickId}/cancel

Cancel a pick

Cancels the pick. The outcome depends on the current status and whether any items have been picked.

Behavior

Current status Items picked? Result Line-item effect
open n/a cancelled All line items revert to allocated.
processing No cancelled All line items revert to allocated.
processing Yes stopped No revert. Items stay pick_in_progress.
stopped n/a cancelled All line items revert to allocated.

A stopped pick means items were partially picked and the pick was cancelled mid-flow. You can cancel a stopped pick again to fully cancel it and revert line items.

Picks in completed or cancelled status cannot be cancelled.

The request body is optional. If provided, reason_code is stored on the pick for auditing.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: cancel-pick-request
  • reason_codestring
    A reason code for the cancellation, stored on the pick for auditing. Free-text.

Responses

200Pick cancelled (or stopped if items were partially picked).Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick is already in a terminal status (`completed` or `cancelled`).

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/picks/{pickId}/reassign

Reassign a pick

Reassigns the pick to a different picker.

Validation

  • The pick must be in open status.
  • The new picker must have pick permission for the pick's location.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: reassign-pick-requestrequired
  • pickerstringrequired
    The new picker to assign (email or user ID). Must have pick permission for the pick's location.

Responses

200Pick reassigned.Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick is not in `open` status, or the picker does not have `pick` permission.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/picks/{pickId}/complete

Complete a pick

Completes the pick and hands it over to packing. This is the handover step.

Validation

  • The pick must be in processing status.
  • Every item must be fully accounted for: quantity_picked + sum(mispick quantities) == quantity for each item.

Behavior

On completion, Carriyo updates each fulfillment-order line item based on what was picked:

Outcome Line-item effect
Item fully picked (no mispicks) pick_in_progresspicked
Item partially picked with mispicks picked (quantity adjusted to the picked amount)
Item fully mispicked (zero picked) Line item cancelled

If every item in the pick has quantity_picked = 0 (all mispicked), the pick status becomes cancelled instead of completed, and all line items revert to allocated.

No request body is required.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Pick completed (or cancelled if all items were mispicked).Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick is not in `processing` status, or not all items are accounted for.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/picks/{pickId}/items/pick

Record items picked off shelf

Records that the picker has collected items from the shelf. Call this incrementally as the picker works through the list.

Behavior

For each item in the request, Carriyo increments quantity_picked on the matching pick item. The fulfillment-order line items stay in pick_in_progress until you call Complete pick.

You can call this endpoint multiple times. Each call adds to the running total.

Validation

  • The pick must be in processing status.
  • Each item must exist in the pick (matched by fulfillment_order_id + line_item_id).
  • quantity must not exceed item.quantity - item.quantity_picked - sum(mispick quantities).

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonrequired
  • fulfillment_order_idstringrequired
    The fulfillment order containing the line item.
  • line_item_idstringrequired
    The line item to pick or restock.
  • quantityintegerrequired
    Number of units to pick or restock. For pick: must not exceed item.quantity - item.quantity_picked - sum(mispick quantities). For restock: must not exceed item.quantity_picked.

Responses

200Updated pick with incremented `quantity_picked` values.Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick is not in `processing` status, or quantity exceeds what remains to be picked.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/picks/{pickId}/items/restock

Restock items back to shelf

Reverses a previous pick action, putting items back on the shelf. Use this when items were picked in error.

Behavior

Decrements quantity_picked on each matching pick item. If the fulfillment-order line item was already moved to picked (e.g. in a prior partial completion), it reverts to pick_in_progress.

Validation

  • The pick must be in processing or stopped status.
  • quantity must not exceed the item's current quantity_picked.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonrequired
  • fulfillment_order_idstringrequired
    The fulfillment order containing the line item.
  • line_item_idstringrequired
    The line item to pick or restock.
  • quantityintegerrequired
    Number of units to pick or restock. For pick: must not exceed item.quantity - item.quantity_picked - sum(mispick quantities). For restock: must not exceed item.quantity_picked.

Responses

200Updated pick with decremented `quantity_picked` values.Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick is not in `processing` or `stopped` status, or quantity exceeds what was picked.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/picks/{pickId}/items/mispick

Record mispicked items

Records items that could not be picked: out of stock, damaged, wrong item, or any other warehouse-floor issue.

Behavior

Appends a mispick record (quantity + reason) to the matching pick item's mispicks array. The fulfillment-order line item status does not change until Complete pick.

At completion, items that are fully mispicked (zero picked, all mispicked) are cancelled. Items with a mix of picked and mispicked quantities have their quantity adjusted to the picked amount.

Validation

  • The pick must be in processing status.
  • quantity must not exceed item.quantity - item.quantity_picked - sum(existing mispick quantities).
  • reason is a free-text string describing why the item couldn't be picked.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonrequired
  • fulfillment_order_idstringrequired
    The fulfillment order containing the line item.
  • line_item_idstringrequired
    The line item that was mispicked.
  • quantityintegerrequired
    Number of units that could not be picked. Must not exceed the remaining unpicked, un-mispicked quantity.
  • reasonstring
    Free-text reason explaining why the item couldn't be picked.

Responses

200Updated pick with mispick records appended.Schema: pick-response
  • tenantstring
    Tenant identifier.
  • pick_idstring
    Unique pick identifier, prefixed PIK_ (e.g. PIK_142).
  • location_idstring
    The fulfillment location this pick belongs to.
  • pickerstring
    The assigned picker (email or user ID). May be null if picker assignment strategy is manual and no picker has been assigned yet.
  • pick_typestring
    How Carriyo classified this pick based on the items provided at creation. - ORDER_PICK: all items belong to a single fulfillment order (the default). - CLUSTER_PICK: items span multiple fulfillment orders, all fully included. Requires cluster_picking_enabled in the location's Fulfillment App settings. - ZONE_PICK: items span multiple fulfillment orders, but only a subset of each FO's items. Requires split_picking_enabled.
    Values:ORDER_PICKZONE_PICKCLUSTER_PICK
  • statusstring
    The pick lifecycle state. - open: created, waiting for the picker to start. - processing: the picker is actively working. - stopped: the pick was cancelled while items were partially picked. The pick can be cancelled again to fully cancel and revert line items. - completed: all items accounted for; handover to packing is done. Terminal. - cancelled: the pick was voided. Terminal.
    Values:openprocessingstoppedcompletedcancelled
  • creation_datestringformat: date-time
    When the pick was created (ISO 8601).
  • update_datestringformat: date-time
    When the pick was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pick was started (openprocessing). Null until started.
  • cancel_datestringformat: date-time
    When the pick was cancelled or stopped. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pick was cancelled. Null if not cancelled or no reason was given.
  • completed_datestringformat: date-time
    When the pick was completed. Null until completed.
  • itemspick-item[]
    The line items in this pick with their picking progress. Only present on full pick records (not on lookup records from list endpoints).
  • documentsfulfillment-document[]
    Documents generated for this pick (typically a pick-list PDF). Only present on full pick records.
  • creation_sourcerequest-source
    Which system or actor created this pick.
  • update_sourcerequest-source
    Which system or actor last modified this pick.
400Pick is not in `processing` status, or quantity exceeds what remains.

Need the full machine-readable spec? Download the OpenAPI document →

Packs

A Pack is the packer's work order. It represents one packer at a packing station consolidating items from a completed pick into one or more parcels (packages). Completing a pack can produce a shipment (for delivery fulfillment orders) or trigger Collection creation (for click-and-collect fulfillment orders).

State changes go through dedicated action endpoints (/start, /complete, /items/pack, /items/unpack, /packages, /create-shipment).

16 operations · 0 objects

post/orders/packs

Create a pack

Creates a pack work order for one or more fulfillment-order line items at a single location.

When to use this

Call this after items have been picked (or directly after allocation if your workflow skips the pick stage). Each item in the request must be in allocated or picked status.

Behavior

On success, Carriyo:

  1. Moves each referenced line item from allocated or picked to pack_in_progress. If the requested quantity is less than the line item's total, the line item is split.
  2. Generates a packing list document (PDF) attached to the pack.
  3. Creates one default empty package per unique fulfillment order in the pack.

Validation

  • location_id is required. All items must belong to fulfillment orders at this location.
  • At least one item is required.
  • Each line item must be in allocated or picked status.
  • Each line item must not already belong to another active (non-terminal) pack.
  • quantity must not exceed the line item's available quantity.
  • If pick_id is provided on an item, the referenced pick must be in completed status.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: pack-requestrequired
  • location_idstringrequired
    The fulfillment location where packing takes place. All items must belong to fulfillment orders at this location.
  • packing_stationstring
    The packing station where the work happens. Optional at creation, but required before the pack can be started.
  • packerstring
    The user doing the packing (email or user ID). Optional at creation, but required before the pack can be started. The user must have pack permission for the location.
  • itemspack-item-request[]required
    The fulfillment-order line items to include in this pack. At least one item is required.

Responses

201Pack created.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Validation failed.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/packs/{packId}

Get a pack

Returns the full pack record, including all items, packages, documents, and timestamps.

The list endpoints (/order/{orderId}, /fulfillment-order/{foId}, /pick/{pickId}) return lookup records with only summary fields. Use this endpoint for the complete data.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier (e.g. `PAK_123`).

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200The full pack record.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack not found.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/packs/order/{orderId}

List packs for an order

Returns all packs associated with an order. These are lookup records with only summary fields. Use Get pack for the full record.

Path parameters

NameTypeRequiredDescription
orderIdstringYesThe order identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of pack summary records.
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/packs/fulfillment-order/{fulfillmentOrderId}

List packs for a fulfillment order

Returns all packs associated with a fulfillment order. These are lookup records with only summary fields. Use Get pack for the full record.

Path parameters

NameTypeRequiredDescription
fulfillmentOrderIdstringYesThe fulfillment order identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of pack summary records.
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/packs/pick/{pickId}

List packs for a pick

Returns all packs that reference a given pick. Use this to find which packs were created from a completed pick.

Path parameters

NameTypeRequiredDescription
pickIdstringYesThe pick identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of pack summary records.
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/start

Start a pack

Transitions the pack from open to processing. The packer is now at the station building parcels.

Validation

  • The pack must be in open status.
  • Both packing_station and packer must be set (either at creation or via Reassign pack).

No request body is required.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Pack started. Status is now `processing`.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack is not in `open` status, or packing station / packer not assigned.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/reassign

Reassign a pack

Reassigns the pack to a different packer and/or packing station. At least one of packing_station or packer must be provided.

Validation

  • The pack must be in open status.
  • If packing_station is provided, it must be a valid station for the location.
  • If packer is provided, the user must have pack permission for the location.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: reassign-pack-requestrequired
  • packing_stationstring
    The new packing station. Must be a valid station for the location.
  • packerstring
    The new packer (email or user ID). Must have pack permission for the location.

Responses

200Pack reassigned.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack is not in `open` status, or validation failed.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/packages

Add a package to the pack

Adds a new physical package (parcel) to the pack. Each package is assigned a unique package_id (prefixed PKG_).

A pack can have many packages. Each package belongs to one order and one fulfillment order. Items are placed into packages via Pack items.

Behavior

The package is created empty with the provided dimensions and weight constraints. You then use Pack items to assign line items into it.

Validation

  • The pack must be in open or processing status.
  • order_id and fulfillment_order_id are required and must match items in the pack.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: add-package-requestrequired
  • order_idstringrequired
    The order this package belongs to. Must match an item in the pack.
  • fulfillment_order_idstringrequired
    The fulfillment order this package belongs to. Must match an item in the pack.
  • package_typestring
    The carton type from the packaging catalog.
  • dimensiondimension
    Physical dimensions of a package.
  • empty_weightweight
    Weight of the empty carton.
  • max_weightweight
    Maximum weight capacity.

Responses

200Package added. The full pack is returned with the new package in the `packages` array.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack not in an active status, or order/FO mismatch.

Need the full machine-readable spec? Download the OpenAPI document →

put/orders/packs/{packId}/packages/{packageId}

Update a package

Updates the physical properties of a package (carton type, dimensions, weight). All fields are optional; only provided fields are updated.

Validation

  • The pack must be in open or processing status.
  • The package must not have an active (non-cancelled) shipment. Once a shipment is booked for a package, update the shipment directly.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.
packageIdstringYesThe package identifier (e.g. `PKG_456`).

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: update-package-requestrequired
  • package_typestring
    The carton type.
  • dimensiondimension
    Physical dimensions of a package.
  • empty_weightweight
    Weight of the empty carton.
  • max_weightweight
    Maximum weight capacity.

Responses

200Package updated.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack not in an active status, or package has an active shipment.

Need the full machine-readable spec? Download the OpenAPI document →

delete/orders/packs/{packId}/packages/{packageId}

Remove a package

Removes a package from the pack. Any items in the package are unpacked first (their quantity_packed on the pack item is decremented).

Validation

  • The pack must be in open or processing status.
  • The package must not have an active (non-cancelled) shipment.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.
packageIdstringYesThe package identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Package removed. The full pack is returned without the deleted package.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack not in an active status, or package has an active shipment.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/reset-packages

Reset packages on the pack

Clears all packing progress and replaces all packages with one default empty package per unique fulfillment order in the pack.

Use this when the packer needs to start over. All items are unpacked (quantity_packed reset to 0) and existing packages are deleted.

Validation

  • The pack must be in open or processing status.
  • No package in the pack can have an active (non-cancelled) shipment.

No request body is required.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Pack reset with fresh default packages.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack not in an active status, or a package has an active shipment.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/items/pack

Place items into packages

Places line items into a specific package. Call this as the packer scans or places each item into a parcel.

Behavior

For each item in the request, Carriyo increments quantity_packed on the matching pack item and adds a PackageItem entry to the target package's items array.

You can call this endpoint multiple times. Each call adds to the running total.

Validation

  • The pack must be in processing status.
  • Each package_id must exist in the pack and belong to the same fulfillment order as the line item.
  • quantity must not exceed item.quantity - item.quantity_packed.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonrequired
  • line_item_idstringrequired
    The line item to pack.
  • fulfillment_order_idstringrequired
    The fulfillment order the line item belongs to.
  • package_idstringrequired
    The package to place the item into. Must belong to the same fulfillment order.
  • quantityintegerrequired
    Number of units to place. Must not exceed item.quantity - item.quantity_packed.
  • selection_methodstring
    How the packer confirmed this item.
    Values:SCANNERCAMERAMANUAL

Responses

200Updated pack with incremented `quantity_packed` values and items added to the package.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack is not in `processing` status, or quantity/package validation failed.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/items/unpack

Remove items from packages

Removes items from a package, reversing a previous pack action. Use this when an item was placed in the wrong parcel.

Behavior

Decrements quantity_packed on the matching pack item and removes the corresponding quantity from the package's items array.

Validation

  • The pack must be in processing status.
  • quantity must not exceed the item's current packed quantity in the specified package.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonrequired
  • line_item_idstringrequired
    The line item to unpack.
  • package_idstringrequired
    The package to remove the item from.
  • quantityintegerrequired
    Number of units to remove. Must not exceed the item's packed quantity in this package.

Responses

200Updated pack with decremented `quantity_packed` values.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack is not in `processing` status, or quantity exceeds what was packed.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/complete

Complete a pack

Completes the pack. This is the handoff from fulfillment to shipping (or to collection for click-and-collect orders).

Behavior

On completion, Carriyo:

  1. Moves all line items to fulfilled via createFulfillment.
  2. For each package with a shipment_id, marks the shipment as ready_to_ship and applies the ship_zone if provided.
  3. For fulfillment orders with delivery_method = COLLECTION and a customer_collection_address, auto-creates a Collection record in open status. No shipment is created for store-pickup collection FOs.

The ready_to_ship transition fires the shipment-status webhook. That's the signal your systems receive at the fulfillment/shipping boundary.

Validation

  • The pack must be in processing status.
  • Every item must be fully packed (quantity_packed >= quantity).
  • Every non-digital, non-collection package must have a shipment_id (created via Create shipment from pack).
  • If any package has a shipment_id, ship_zone is required in the request body.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: complete-pack-request
  • ship_zonestring
    The ship zone for the destination. Required when any package in the pack has a shipment_id. Applied to all shipments in the pack on completion.

Responses

200Pack completed. Line items fulfilled, shipments ready to ship.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Not all items packed, shipments missing, or ship zone required but not provided.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/cancel

Cancel a pack

Cancels the pack and reverts all side effects.

Behavior

On cancellation:

  1. All pack_in_progress line items revert to picked (if a pick_id was set on the pack item) or allocated (if no pick).
  2. Any active (non-cancelled) shipments on the pack's packages are cancelled via the shipment operations queue.
  3. Similar line items on the fulfillment order are merged back together.

The request body is optional. If provided, reason_code is stored on the pack for auditing.

Validation

  • The pack must not be in completed or cancelled status.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: cancel-pack-request
  • reason_codestring
    A reason code for the cancellation, stored for auditing. Free-text.

Responses

200Pack cancelled. Line items reverted, shipments cancelled.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Pack is already completed or cancelled.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/packs/{packId}/create-shipment

Create a shipment from the pack

Books a shipment for one or more packages in the pack. All selected packages must belong to the same order and fulfillment order.

Behavior

Carriyo builds a shipment from the selected packages: each package becomes a parcel in the shipment, with its dimensions, weight, and items. The shipment_id is stored on each package.

If a carrier_account is provided, the shipment is booked with that carrier. Otherwise, Carriyo uses the default carrier selection rules.

Validation

  • The pack must be in processing status.
  • All packages must belong to the same order and fulfillment order.
  • Each package must have items (you must call Pack items first).
  • Store-pickup collection FOs are blocked. Collections are auto-created on pack complete instead.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: create-pack-shipment-requestrequired
  • package_idsstring[]required
    The packages to include in the shipment. All must belong to the same order and fulfillment order, and each must have items.
  • carrier_accountcarrier-account-request
    Identifies which carrier account to use for a shipment.

Responses

200Shipment created. Packages now have `shipment_id` set.Schema: pack-response
  • tenantstring
    Tenant identifier.
  • pack_idstring
    Unique pack identifier, prefixed PAK_ (e.g. PAK_87).
  • location_idstring
    The fulfillment location this pack belongs to.
  • packing_stationstring
    The packing station where this pack is being worked.
  • packerstring
    The assigned packer (email or user ID).
  • statusstring
    The pack lifecycle state. - open: created, waiting for packer to start. - processing: the packer is actively building parcels. - completed: all items packed, shipments booked, handed off. Terminal. - cancelled: the pack was voided, line items reverted. Terminal.
    Values:openprocessingcompletedcancelled
  • creation_datestringformat: date-time
    When the pack was created (ISO 8601).
  • update_datestringformat: date-time
    When the pack was last modified (ISO 8601).
  • start_datestringformat: date-time
    When the pack was started. Null until started.
  • cancel_datestringformat: date-time
    When the pack was cancelled. Null if not cancelled.
  • cancellation_reason_codestring
    The reason code provided when the pack was cancelled.
  • cancelled_byrequest-source
    Which system or actor cancelled this pack.
  • completed_datestringformat: date-time
    When the pack was completed. Null until completed.
  • itemspack-item[]
    The line items in this pack with packing progress. Only present on full pack records.
  • packagespack-package[]
    The physical packages (parcels) being built. Each package can hold items from a single fulfillment order. Only present on full pack records.
  • documentsfulfillment-document[]
    Documents generated for this pack (typically a packing-list PDF). Only present on full pack records.
  • creation_sourcerequest-source
    Which system or actor created this pack.
  • update_sourcerequest-source
    Which system or actor last modified this pack.
400Packages empty, mixed FOs, or store-collection FO.

Need the full machine-readable spec? Download the OpenAPI document →

Collections

A Collection is the customer-pickup runtime entity. When a Pack completes for a click-and-collect fulfillment order, the platform auto-creates a Collection. The customer later arrives at the location, identity is verified via OTP, and items are handed over.

There is no POST /orders/collections; Collections are a side effect of POST /orders/packs/{packId}/complete. The endpoints below cover the lifecycle from creation onwards.

11 operations · 0 objects

get/orders/collections/{collectionId}

Get a collection

Returns the full collection record, including packages, customer, verification state, and all timestamps.

The list endpoints (/order/{orderId}, /fulfillment-order/{foId}, /pack/{packId}, /shipment/{shipmentId}) return lookup records with only summary fields. Use this endpoint for the complete data.

Path parameters

NameTypeRequiredDescription
collectionIdstringYesThe collection identifier (e.g. `COL_123`).

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200The full collection record.Schema: collection-response
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.
400Collection not found.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/collections/order/{orderId}

List collections for an order

Returns all collections associated with an order. These are lookup records with only summary fields. Use Get collection for the full record.

Path parameters

NameTypeRequiredDescription
orderIdstringYesThe order identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of collection summary records.
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/collections/fulfillment-order/{fulfillmentOrderId}

List collections for a fulfillment order

Returns all collections associated with a fulfillment order. These are lookup records with only summary fields. Use Get collection for the full record.

Path parameters

NameTypeRequiredDescription
fulfillmentOrderIdstringYesThe fulfillment order identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of collection summary records.
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/collections/pack/{packId}

List collections for a pack

Returns all collections created from a given pack. Use this to find which collections were auto-created when the pack completed.

Path parameters

NameTypeRequiredDescription
packIdstringYesThe pack identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of collection summary records.
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.

Need the full machine-readable spec? Download the OpenAPI document →

get/orders/collections/shipment/{shipmentId}

List collections for a shipment

Returns all collections linked to a given shipment. Relevant for remote-collection scenarios where a shipment moves parcels to a different pickup location.

Path parameters

NameTypeRequiredDescription
shipmentIdstringYesThe shipment identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Array of collection summary records.
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/collections/{collectionId}/ready

Mark collection ready for pickup

Transitions the collection from open to ready_to_collect. The parcel is at the collection point and the customer can be notified.

Behavior

On success, Carriyo sets ready_date and optionally schedules an auto-expire job. If customer_collection_auto_expire_enabled is on in the tenant's order management settings, the collection will automatically transition to expired after customer_collection_auto_expire_days days (default 7).

Validation

  • The collection must be in open status.

No request body is required.

Path parameters

NameTypeRequiredDescription
collectionIdstringYesThe collection identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Collection is now `ready_to_collect`.Schema: collection-response
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.
400Collection is not in `open` status.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/collections/{collectionId}/reopen

Reopen a collection

Sends a ready_to_collect collection back to open. Use this when the parcel needs to go back to the warehouse (e.g. the customer rescheduled).

Behavior

Resets the verification state to pending and clears OTP data. Auto-expire and auto-cancel schedules are dropped.

Validation

  • The collection must be in ready_to_collect status.

No request body is required.

Path parameters

NameTypeRequiredDescription
collectionIdstringYesThe collection identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Collection reopened. Status is now `open`.Schema: collection-response
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.
400Collection is not in `ready_to_collect` status.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/collections/{collectionId}/cancel

Cancel a collection

Cancels the collection. The request body is optional; if provided, cancellation_reason is stored for auditing.

Behavior

Cancellation clears any pending auto-expire or auto-cancel schedules and resets verification state.

When a collection is cancelled (or collected), Carriyo checks whether all collections linked to each affected line item are now terminal (collected or cancelled). If so, the line item moves to closed, and the fulfillment order and order statuses are recomputed.

Validation

  • The collection must not be in collected or cancelled status.

Path parameters

NameTypeRequiredDescription
collectionIdstringYesThe collection identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: cancel-collection-request
  • cancellation_reasonstring
    Free-text reason for the cancellation, stored for auditing.

Responses

200Collection cancelled.Schema: collection-response
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.
400Collection is already `collected` or `cancelled`.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/collections/{collectionId}/unexpire

Reverse auto-expiry

Reverses an auto-expired collection back to ready_to_collect. Use this when the customer turns up late and you want to give them another pickup window.

Behavior

Drops the pending auto-cancel schedule (if any) and re-schedules a fresh auto-expire window.

Validation

  • The collection must be in expired status.

No request body is required.

Path parameters

NameTypeRequiredDescription
collectionIdstringYesThe collection identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Collection is back to `ready_to_collect`.Schema: collection-response
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.
400Collection is not in `expired` status.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/collections/{collectionId}/verification/send-otp

Send pickup OTP to customer

Generates a 6-digit OTP and sends it to the customer's email address. The OTP is hashed (SHA-256) before storage; the plaintext is never persisted.

Behavior

The response includes masked_email (e.g. j***n@example.com) and otp_expires_at so staff can tell the customer where to look and how long they have.

OTP constraints

  • 6 digits.
  • Expires after 5 minutes.
  • Maximum 5 verification attempts before the OTP is invalidated (customer must request a new one).
  • 60-second cooldown between resends.

Validation

  • The collection must be in ready_to_collect status.
  • The customer must have an email address on file.
  • At least 60 seconds must have passed since the last OTP was sent.

No request body is required.

Path parameters

NameTypeRequiredDescription
collectionIdstringYesThe collection identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200OTP sent.Schema: send-otp-response
  • messagestring
    Confirmation message.
  • otp_sent_atstringformat: date-time
    When the OTP was sent (ISO 8601).
  • otp_expires_atstringformat: date-time
    When the OTP expires (5 minutes after send).
  • masked_emailstring
    The customer's email with most characters masked, so staff can see where the code went without leaking the full address.
400Collection not in `ready_to_collect`, no customer email, or resend cooldown not elapsed.

Need the full machine-readable spec? Download the OpenAPI document →

post/orders/collections/{collectionId}/verification/verify-and-collect

Verify OTP and complete handover

Verifies the OTP supplied by the customer and marks the collection as collected. This is the final handover step.

Two modes

OTP verification: Send otp in the request. Carriyo compares the SHA-256 hash against the stored hash. On match, the collection moves to collected with verification.status = verified.

Staff override: Send override: true (no otp needed). The collection moves to collected with verification.status = overridden. Use this when the customer can prove identity but cannot access the OTP.

Behavior on collect

When a collection reaches collected, Carriyo checks each linked fulfillment-order line item. If all collections referenced by a line item are now terminal (collected or cancelled), the line item moves to closed. The fulfillment order and order statuses are then recomputed.

Validation

  • The collection must be in ready_to_collect status.
  • An OTP must have been sent (unless using override).
  • The OTP must not be expired (5-minute window).
  • The maximum attempt count (5) must not be exceeded. Each failed attempt increments the counter.

Path parameters

NameTypeRequiredDescription
collectionIdstringYesThe collection identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: verify-and-collect-requestrequired
  • otpstring
    The 6-digit OTP from the customer. Required unless override is true.
  • overrideboolean
    Set to true to bypass OTP verification. The collection moves to collected with verification.status = overridden. Use for staff exceptions when the customer can prove identity but cannot access the OTP.

Responses

200Collection is now `collected`. Handover complete.Schema: collection-response
  • tenantstring
    Tenant identifier.
  • collection_idstring
    Unique collection identifier, prefixed COL_ (e.g. COL_58).
  • statusstring
    The collection lifecycle state. - open: created but not yet at the collection point. - ready_to_collect: at the collection point, customer can be notified and verified. - collected: handed over to the customer. Terminal (success). - expired: customer didn't collect within the configured window. Recoverable via unexpire. - cancelled: explicitly cancelled or auto-cancelled after expiry. Terminal.
    Values:openready_to_collectcollectedexpiredcancelled
  • location_idstring
    The pickup location where the customer collects the parcel.
  • addressobject
    The customer collection address (the pickup location's address). Uses the same Address structure as the fulfillment order's customer_collection_address.
  • packagescollection-package[]
    The packages available for pickup, copied from the pack that created this collection.
  • customercollection-customer
    The customer who will collect the order.
  • verificationcollection-verification
    The OTP verification state for the collection. Tracks whether identity verification is pending, verified, or overridden.
  • customer_collection_scheduleobject
    The customer's preferred collection schedule, copied from the fulfillment order.
  • creation_datestringformat: date-time
    When the collection was created (ISO 8601).
  • update_datestringformat: date-time
    When the collection was last modified (ISO 8601).
  • ready_datestringformat: date-time
    When the collection was marked ready for pickup. Null until ready.
  • collected_datestringformat: date-time
    When the collection was handed over. Null until collected.
  • expiry_datestringformat: date-time
    When the collection expired. Null if not expired.
  • cancel_datestringformat: date-time
    When the collection was cancelled. Null if not cancelled.
  • cancellation_reasonstring
    The reason provided when the collection was cancelled.
  • expire_schedule_idstring
    Internal identifier for the auto-expire EventBridge schedule. Null if auto-expire is not active.
  • cancel_schedule_idstring
    Internal identifier for the auto-cancel EventBridge schedule. Null if auto-cancel is not active.
  • partner_order_referencestring
    The merchant's own order reference.
  • partner_fulfillment_order_referencestring
    The merchant's own fulfillment order reference.
  • pack_idstring
    The pack that created this collection.
  • notesstring
    Free-text notes on the collection.
  • carriyo_metadataobject[]
    Custom key-value metadata entries.
400Wrong OTP, expired OTP, max attempts exceeded, or collection not in `ready_to_collect`.

Need the full machine-readable spec? Download the OpenAPI document →

Bin Locations

A Bin location is an SKU-to-bin mapping within a fulfillment location: which physical bins on the warehouse floor hold a given SKU. The picker app reads these mappings to direct pickers efficiently.

Records are keyed by (tenantId, locationId, sku). Bulk import is supported for tenants migrating from another system.

6 operations · 0 objects

post/bin-locations/{locationId}

Create bin location

Creates a bin-location mapping for an SKU at the given fulfillment location.

Path parameters

NameTypeRequiredDescription
locationIdstringYesFulfillment location ID.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: bin-location-requestrequired
  • location_idstring
    The fulfillment location identifier. Usually inferred from the URL path; included on the body for bulk imports.
  • skustringrequired
    Product SKU.
  • binsstring[]required
    Bin identifiers in the warehouse where this SKU is stored at the given location.

Responses

201Created.Schema: bin-location-response
  • tenant_idstring
    Tenant identifier.
  • location_idstring
    Fulfillment location identifier.
  • skustring
    Product SKU.
  • binsstring[]
    Bin identifiers in the warehouse where this SKU is stored.
  • creation_datestringformat: date-time
    Creation timestamp (ISO 8601).
  • update_datestringformat: date-time
    Last update timestamp (ISO 8601).

Need the full machine-readable spec? Download the OpenAPI document →

get/bin-locations/{locationId}/{sku}

Get bin location by SKU

Path parameters

NameTypeRequiredDescription
locationIdstringYesFulfillment location ID.
skustringYesSKU.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Success.Schema: bin-location-response
  • tenant_idstring
    Tenant identifier.
  • location_idstring
    Fulfillment location identifier.
  • skustring
    Product SKU.
  • binsstring[]
    Bin identifiers in the warehouse where this SKU is stored.
  • creation_datestringformat: date-time
    Creation timestamp (ISO 8601).
  • update_datestringformat: date-time
    Last update timestamp (ISO 8601).

Need the full machine-readable spec? Download the OpenAPI document →

put/bin-locations/{locationId}/{sku}

Update bin location

Path parameters

NameTypeRequiredDescription
locationIdstringYesFulfillment location ID.
skustringYesSKU.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: bin-location-requestrequired
  • location_idstring
    The fulfillment location identifier. Usually inferred from the URL path; included on the body for bulk imports.
  • skustringrequired
    Product SKU.
  • binsstring[]required
    Bin identifiers in the warehouse where this SKU is stored at the given location.

Responses

200Success.Schema: bin-location-response
  • tenant_idstring
    Tenant identifier.
  • location_idstring
    Fulfillment location identifier.
  • skustring
    Product SKU.
  • binsstring[]
    Bin identifiers in the warehouse where this SKU is stored.
  • creation_datestringformat: date-time
    Creation timestamp (ISO 8601).
  • update_datestringformat: date-time
    Last update timestamp (ISO 8601).

Need the full machine-readable spec? Download the OpenAPI document →

delete/bin-locations/{locationId}/{sku}

Delete bin location

Path parameters

NameTypeRequiredDescription
locationIdstringYesFulfillment location ID.
skustringYesSKU.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

204Deleted.

Need the full machine-readable spec? Download the OpenAPI document →

put/bin-locations/{locationId}/{sku}/update-sku

Rename the SKU on a bin-location mapping

Changes the SKU key on an existing bin-location mapping, preserving the bin assignment.

Path parameters

NameTypeRequiredDescription
locationIdstringYesFulfillment location ID.
skustringYesCurrent SKU on the mapping.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: update-sku-requestrequired
  • new_skustringrequired
    The new SKU to assign to the existing bin mapping.

Responses

200Success.Schema: bin-location-response
  • tenant_idstring
    Tenant identifier.
  • location_idstring
    Fulfillment location identifier.
  • skustring
    Product SKU.
  • binsstring[]
    Bin identifiers in the warehouse where this SKU is stored.
  • creation_datestringformat: date-time
    Creation timestamp (ISO 8601).
  • update_datestringformat: date-time
    Last update timestamp (ISO 8601).

Need the full machine-readable spec? Download the OpenAPI document →

post/bin-locations/{locationId}/bulk/import

Bulk import bin locations

Bulk-imports an array of bin-location mappings for the given fulfillment location. Each item is processed independently and the response reports per-item outcomes.

Path parameters

NameTypeRequiredDescription
locationIdstringYesFulfillment location ID.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonrequired
  • location_idstring
    The fulfillment location identifier. Usually inferred from the URL path; included on the body for bulk imports.
  • skustringrequired
    Product SKU.
  • binsstring[]required
    Bin identifiers in the warehouse where this SKU is stored at the given location.

Responses

200Success.
  • tenant_idstring
    Tenant identifier.
  • location_idstring
    Fulfillment location identifier.
  • skustring
    Product SKU.
  • binsstring[]
    Bin identifiers in the warehouse where this SKU is stored.
  • creation_datestringformat: date-time
    Creation timestamp (ISO 8601).
  • update_datestringformat: date-time
    Last update timestamp (ISO 8601).

Need the full machine-readable spec? Download the OpenAPI document →