Dispatch Lane
Endpoints for dispatch lane.
All endpoints require a bearer token (oh_... API key or user JWT) and are served under https://api.orderly-hub.com. Use the Try it consoles to run a request against the Preview (test) server.
Packing-slip template documents
A custom template's document contains page, header, body, footer, and itemTable.
Text blocks interpolate supported fields with {{binding}}. Order custom fields use metadata.custom.<field>; SKU custom fields use item.custom.<field>.
Text block fields
| Field | Type | Description |
|---|---|---|
type | text | Block type |
x, y | number | Position in points inside the header, body, or footer region |
value | string | Literal text containing zero or more supported {{binding}} tokens |
size | number | Font size in points |
bold | boolean | Use the bold font |
align | left | right | Horizontal alignment |
newLine | boolean | For a right-aligned editor row, force a new PDF row instead of sharing the preceding left row |
format | string | date_short, date_medium, date_long, uppercase, or lowercase |
condition | object | Optional structured visibility rule |
Blocks on the same y position share one visual row. Conditional blocks are removed before layout, so a hidden row leaves no empty vertical space. Long text is measured against the embedded PDF font and truncated with an ellipsis before it can overlap adjacent content or leave the printable area.
Date formatters recognize ISO dates, validate the calendar date, and render in en-US using UTC. Invalid dates remain unchanged.
Conditions
{
"binding": "metadata.custom.gift",
"operator": "equals",
"value": "true"
}
operator must be exists, not_exists, equals, or not_equals. Values are exact strings with a maximum length of 500 characters. Header, body, and footer conditions use order bindings. Item-column conditions use item bindings and are evaluated independently for each item cell.
Item table columns
| Field | Type | Description |
|---|---|---|
binding | string | Supported item.* or item.custom.* value |
label | string | Customer-defined column header, 1–80 characters |
width | number | Preferred width in points; all selected columns are proportionally fitted to the printable page |
align | left | right | Cell alignment |
format | string | Optional supported formatter |
condition | object | Optional per-item cell visibility rule |
Uploaded template images must be PNG or JPEG. The portal limits uploads to 5 MB.
Get the organization's dispatch lane plan capabilities and usage allowances
/api/v1/dispatch-lane/entitlementsResponses
200 Entitlements
Response fields:
| Field | Type | Description |
|---|---|---|
plan | string | |
capabilities | object | |
usage | object |
{
"data": {
"plan": "string",
"capabilities": {
"dispatch_lane_access": true,
"live_rating": true,
"carrier_service_assignment": true,
"label_purchase": true,
"bulk_label_purchase": true,
"label_voiding": true,
"packing_slip_generation": true,
"packing_slip_custom_templates": true,
"managed_carrier_accounts": true,
"customer_carrier_accounts": true
},
"usage": {}
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/entitlementsGet the organization's dispatch lane plan capabilities and usage allowances
https://api-test.orderly-hub.com/api/v1/dispatch-lane/entitlementsList purchased/failed/voided labels for the organization
/api/v1/dispatch-lane/labelsParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
status | query | no | string | |
search | query | no | string | Matches tracking number or carrier |
limit | query | no | integer |
Responses
200 List of labels
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
order_id | string | |
tracking_number | string | |
master_tracking_number | string | |
carrier | string | |
service | string | |
label_status | string | |
label_url | string | |
label_format | string | |
customer_cost_cents | integer | |
currency | string | |
provider | string | |
label_batch_id | string | |
created_at | string | |
voided_at | string |
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"tracking_number": "string",
"master_tracking_number": "string",
"carrier": "string",
"service": "string",
"label_status": "string",
"label_url": "string",
"label_format": "2026-07-23T12:00:00Z",
"customer_cost_cents": 0,
"currency": "USD",
"provider": "string",
"label_batch_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2026-07-23T12:00:00Z",
"voided_at": "2026-07-23T12:00:00Z"
}
]
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/labelsList purchased/failed/voided labels for the organization
https://api-test.orderly-hub.com/api/v1/dispatch-lane/labelsBuy labels and/or generate packing slips for many orders and merge into one print-ready PDF
/api/v1/dispatch-lane/labels/batchesRequest body
| Field | Type | Description |
|---|---|---|
order_ids | array | |
buy_labels | boolean | |
make_slips | boolean | |
collation | collated | separated | |
template_id | string |
{
"order_ids": [
"string"
],
"buy_labels": true,
"make_slips": true,
"collation": "collated",
"template_id": "550e8400-e29b-41d4-a716-446655440000"
}
Responses
200 Slip-only batches run inline and return the completed result immediately
Response fields:
| Field | Type | Description |
|---|---|---|
batch_id | string | |
succeeded | integer | |
failed | integer | |
results | array | |
download_url | string | |
page_count | integer | |
status | queued | completed | completed_with_errors | failed |
{
"data": {
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"succeeded": 0,
"failed": 0,
"results": [
{
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"label": {
"shipment_id": null,
"tracking_number": null,
"status": null
},
"slip": {
"document_id": null,
"pages": null
},
"error": "string"
}
],
"download_url": "string",
"page_count": 0,
"status": "queued"
}
}
201 Label-buying batches are queued asynchronously via QStash
Response fields:
| Field | Type | Description |
|---|---|---|
batch_id | string | |
status | queued | completed | completed_with_errors | |
download_url | string |
{
"data": {
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"download_url": "string"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
402 Insufficient balance to cover the batch
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/labels/batchesBuy labels and/or generate packing slips for many orders and merge into one print-ready PDF
https://api-test.orderly-hub.com/api/v1/dispatch-lane/labels/batchesGet label batch status for polling
/api/v1/dispatch-lane/labels/batches/{id}Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string |
Responses
200 Batch status
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
status | queued | processing | completed | completed_with_errors | failed | |
total_count | integer | |
succeeded_count | integer | |
failed_count | integer | |
page_count | integer | |
results | array | |
created_at | string | |
completed_at | string | |
download_url | string |
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"total_count": 0,
"succeeded_count": 0,
"failed_count": 0,
"page_count": 0,
"results": [
{
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"label": {
"shipment_id": null,
"tracking_number": null,
"status": null
},
"slip": {
"document_id": null,
"pages": null
},
"error": "string"
}
],
"created_at": "2026-07-23T12:00:00Z",
"completed_at": "2026-07-23T12:00:00Z",
"download_url": "string"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Batch not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/labels/batches/{id}Get label batch status for polling
https://api-test.orderly-hub.com/api/v1/dispatch-lane/labels/batches/Manually mark a shipment as delivered
/api/v1/dispatch-lane/labels/{shipmentId}/mark-deliveredParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
shipmentId | path | yes | string |
Responses
200 Shipment marked delivered
/api/v1/dispatch-lane/labels/{shipmentId}/mark-deliveredManually mark a shipment as delivered
https://api-test.orderly-hub.com/api/v1/dispatch-lane/labels//mark-deliveredManually mark a purchased label's shipment as physically shipped
/api/v1/dispatch-lane/labels/{shipmentId}/mark-shippedParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
shipmentId | path | yes | string |
Responses
200 Shipment marked shipped
Response fields:
| Field | Type | Description |
|---|---|---|
shipment_id | string | |
changed | boolean | |
lifecycle_state | string |
{
"data": {
"shipment_id": "550e8400-e29b-41d4-a716-446655440000",
"changed": true,
"lifecycle_state": "string"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Shipment not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/labels/{shipmentId}/mark-shippedManually mark a purchased label's shipment as physically shipped
https://api-test.orderly-hub.com/api/v1/dispatch-lane/labels//mark-shippedVoid a purchased label and credit the ledger when confirmed
/api/v1/dispatch-lane/labels/{shipmentId}/voidParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
shipmentId | path | yes | string |
Responses
200 Void requested or completed
Response fields:
| Field | Type | Description |
|---|---|---|
shipment_id | string | |
label_status | string | |
shipment_status | string | |
lifecycle_state | string | |
credited | boolean |
{
"data": {
"shipment_id": "550e8400-e29b-41d4-a716-446655440000",
"label_status": "string",
"shipment_status": "string",
"lifecycle_state": "string",
"credited": true
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Shipment not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
409 Label cannot be voided in its current state
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
422 Void rejected by the carrier or provider
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/labels/{shipmentId}/voidVoid a purchased label and credit the ledger when confirmed
https://api-test.orderly-hub.com/api/v1/dispatch-lane/labels//voidList eligible orders in the dispatch lane with reason codes and current assignments
/api/v1/dispatch-lane/ordersParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_ids | query | no | string | Comma-separated list of order UUIDs to restrict the feed to |
Responses
200 Eligibility feed
Response fields:
| Field | Type | Description |
|---|---|---|
order_id | string | |
order_number | string | |
customer_name | string | |
destination | string | |
item_count | integer | |
skus | array | |
fulfillment_location | object | |
label_status | string | |
packing_slip_ready | boolean | |
eligible | boolean | |
reasons | array | |
assigned_service | object |
{
"data": [
{
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"order_number": "string",
"customer_name": "string",
"destination": "string",
"item_count": 0,
"skus": [
"string"
],
"fulfillment_location": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jane Doe"
},
"label_status": "string",
"packing_slip_ready": true,
"eligible": true,
"reasons": [
"already_dispatched"
],
"assigned_service": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"carrier": "string",
"service": "string",
"quoted_customer_cents": 0,
"currency": "USD",
"rate_expires_at": "2026-07-23T12:00:00Z",
"status": "pending"
}
}
]
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/ordersList eligible orders in the dispatch lane with reason codes and current assignments
https://api-test.orderly-hub.com/api/v1/dispatch-lane/ordersAssign an explicit chosen quote to each order in a batch
/api/v1/dispatch-lane/orders/assign-bulkRequest body
| Field | Type | Description |
|---|---|---|
assignments | array |
{
"assignments": [
{
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"parcel": {
"weight_oz": 0,
"length_in": 0,
"width_in": 0,
"height_in": 0
},
"carrier_account_id": "550e8400-e29b-41d4-a716-446655440000",
"carrier": "string",
"service": "string",
"quoted_customer_cents": 0,
"currency": "USD",
"provider": "easypost",
"rate_source": "carrier_live"
}
]
}
Responses
200 Bulk assignment result
Response fields:
| Field | Type | Description |
|---|---|---|
assigned | integer | |
failed | integer | |
results | array |
{
"data": {
"assigned": 0,
"failed": 0,
"results": [
{
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"ok": true,
"error": "string"
}
]
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/assign-bulkAssign an explicit chosen quote to each order in a batch
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders/assign-bulkBulk-assign (or clear) a fulfillment location for orders
/api/v1/dispatch-lane/orders/locationRequest body
| Field | Type | Description |
|---|---|---|
order_ids | array | |
location_id | string |
{
"order_ids": [
"string"
],
"location_id": "550e8400-e29b-41d4-a716-446655440000"
}
Responses
200 Number of orders updated
Response fields:
| Field | Type | Description |
|---|---|---|
updated | integer |
{
"data": {
"updated": "2026-07-23T12:00:00Z"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Location not found or inactive
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/locationBulk-assign (or clear) a fulfillment location for orders
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders/locationRate and assign a service to each order per a chosen bulk strategy (cheapest, fastest, preferred carrier/service)
/api/v1/dispatch-lane/orders/rate-assign-bulkRequest body
| Field | Type | Description |
|---|---|---|
order_ids | array | |
fallback_parcel | object | |
strategy | cheapest | fastest | preferred_carrier | preferred_service | |
preferred_carrier | string | |
preferred_service | string | |
max_cents | integer |
{
"order_ids": [
"string"
],
"fallback_parcel": {
"weight_oz": 0,
"length_in": 0,
"width_in": 0,
"height_in": 0
},
"strategy": "cheapest",
"preferred_carrier": "string",
"preferred_service": "string",
"max_cents": 0
}
Responses
200 Bulk rate-and-assign result
Response fields:
| Field | Type | Description |
|---|---|---|
assigned | integer | |
failed | integer | |
results | array |
{
"data": {
"assigned": 0,
"failed": 0,
"results": [
{
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"service": "string",
"amount_cents": 0,
"weight_oz": 0,
"weight_source": "items",
"error": "string"
}
]
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/rate-assign-bulkRate and assign a service to each order per a chosen bulk strategy (cheapest, fastest, preferred carrier/service)
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders/rate-assign-bulkRate multiple orders against all carrier accounts and return the full quote set per order
/api/v1/dispatch-lane/orders/rate-bulkRequest body
| Field | Type | Description |
|---|---|---|
order_ids | array | |
fallback_parcel | object |
{
"order_ids": [
"string"
],
"fallback_parcel": {
"weight_oz": 0,
"length_in": 0,
"width_in": 0,
"height_in": 0
}
}
Responses
200 Per-order quote sets
Response fields:
| Field | Type | Description |
|---|---|---|
results | array |
{
"data": {
"results": [
{
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"weight_oz": 0,
"weight_source": "items",
"error": "string",
"quotes": []
}
]
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/rate-bulkRate multiple orders against all carrier accounts and return the full quote set per order
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders/rate-bulkPurchase a shipping label from the order's assigned carrier service
/api/v1/dispatch-lane/orders/{orderId}/labelsParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
orderId | path | yes | string |
Request body
| Field | Type | Description |
|---|---|---|
parcel_index | integer | |
attempt | integer |
{
"parcel_index": 0,
"attempt": 0
}
Responses
200 Label purchased (or idempotent replay)
Response fields:
| Field | Type | Description |
|---|---|---|
shipment_id | string | |
order_id | string | |
tracking_number | string | |
carrier | string | |
service | string | |
label_url | string | |
label_format | string | |
customer_cost_cents | integer | |
currency | string | |
label_status | string | |
idempotent_replay | boolean |
{
"data": {
"shipment_id": "550e8400-e29b-41d4-a716-446655440000",
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"tracking_number": "string",
"carrier": "string",
"service": "string",
"label_url": "string",
"label_format": "2026-07-23T12:00:00Z",
"customer_cost_cents": 0,
"currency": "USD",
"label_status": "string",
"idempotent_replay": true
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Order not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/{orderId}/labelsPurchase a shipping label from the order's assigned carrier service
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders//labelsGenerate and store a packing slip for an order, returning a signed download URL
/api/v1/dispatch-lane/orders/{orderId}/packing-slipsParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
orderId | path | yes | string |
Request body
| Field | Type | Description |
|---|---|---|
template_id | string |
{
"template_id": "550e8400-e29b-41d4-a716-446655440000"
}
Responses
201 Packing slip generated
Response fields:
| Field | Type | Description |
|---|---|---|
document_id | string | |
file_path | string | |
pages | integer | |
download_url | string |
{
"data": {
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"file_path": "string",
"pages": 0,
"download_url": "string"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Order or template not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
409 Template is not published
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/{orderId}/packing-slipsGenerate and store a packing slip for an order, returning a signed download URL
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders//packing-slipsGet live shipping quotes for an order's parcel from every eligible carrier account
/api/v1/dispatch-lane/orders/{orderId}/rateParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
orderId | path | yes | string |
Request body
| Field | Type | Description |
|---|---|---|
parcel | object |
{
"parcel": {
"weight_oz": 0,
"length_in": 0,
"width_in": 0,
"height_in": 0
}
}
Responses
200 Quotes for the order
Response fields:
| Field | Type | Description |
|---|---|---|
origin_location | string | |
quotes | array |
{
"data": {
"origin_location": "string",
"quotes": [
{
"carrier_account_id": "550e8400-e29b-41d4-a716-446655440000",
"account_name": "string",
"owner_type": "string",
"provider": "easypost",
"rate_source": "carrier_live",
"carrier": "string",
"service": "string",
"service_name": "string",
"amount_cents": 0,
"currency": "USD",
"usd_amount_cents": 0,
"fx_rate": 0,
"transit_days": 0,
"provider_rate_id": "550e8400-e29b-41d4-a716-446655440000"
}
]
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Order not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/{orderId}/rateGet live shipping quotes for an order's parcel from every eligible carrier account
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders//rateRate an order and assign the cheapest (or a specific) quote in one call
/api/v1/dispatch-lane/orders/{orderId}/rate-and-assignParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
orderId | path | yes | string |
Request body
| Field | Type | Description |
|---|---|---|
parcel | object | |
strategy | cheapest | specific | |
carrier_account_id | string | |
service | string |
{
"parcel": {
"weight_oz": 0,
"length_in": 0,
"width_in": 0,
"height_in": 0
},
"strategy": "cheapest",
"carrier_account_id": "550e8400-e29b-41d4-a716-446655440000",
"service": "string"
}
Responses
200 Assignment created from the chosen quote
Response fields:
| Field | Type | Description |
|---|---|---|
assignment | object | The persisted order_shipping_services row |
chosen | object |
{
"data": {
"assignment": {},
"chosen": {
"carrier_account_id": "550e8400-e29b-41d4-a716-446655440000",
"account_name": "string",
"owner_type": "string",
"provider": "easypost",
"rate_source": "carrier_live",
"carrier": "string",
"service": "string",
"service_name": "string",
"amount_cents": 0,
"currency": "USD",
"usd_amount_cents": 0,
"fx_rate": 0,
"transit_days": 0,
"provider_rate_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Order not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
409 Selected service is no longer available
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
422 No carrier returned a rate for this order
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/{orderId}/rate-and-assignRate an order and assign the cheapest (or a specific) quote in one call
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders//rate-and-assignAssign a carrier service to an order's parcel
/api/v1/dispatch-lane/orders/{orderId}/shipping-serviceParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
orderId | path | yes | string |
Request body
| Field | Type | Description |
|---|---|---|
parcel_index | integer | |
parcel | object | |
carrier_account_id | string | |
carrier | string | |
service | string | |
quoted_customer_cents | integer | |
currency | string | |
provider | easypost | fedex_direct | |
rate_source | carrier_live | orderly_rate_card | |
provider_rate_id | string | |
calculation_snapshot | object | |
rate_expires_at | string |
{
"parcel_index": 0,
"parcel": {
"weight_oz": 0,
"length_in": 0,
"width_in": 0,
"height_in": 0
},
"carrier_account_id": "550e8400-e29b-41d4-a716-446655440000",
"carrier": "string",
"service": "string",
"quoted_customer_cents": 0,
"currency": "USD",
"provider": "easypost",
"rate_source": "carrier_live",
"provider_rate_id": "550e8400-e29b-41d4-a716-446655440000",
"calculation_snapshot": {},
"rate_expires_at": "2026-07-23T12:00:00Z"
}
Responses
200 Assignment created
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
order_id | string | |
parcel_index | integer | |
carrier | string | |
service | string | |
status | string | |
quoted_customer_cents | integer | |
currency | string |
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"parcel_index": 0,
"carrier": "string",
"service": "string",
"status": "pending",
"quoted_customer_cents": 0,
"currency": "USD"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Order not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/{orderId}/shipping-serviceAssign a carrier service to an order's parcel
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders//shipping-serviceClear an order's assigned carrier service for a parcel
/api/v1/dispatch-lane/orders/{orderId}/shipping-serviceParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
orderId | path | yes | string | |
parcel_index | query | no | integer |
Responses
200 Assignment cleared
Response fields:
| Field | Type | Description |
|---|---|---|
success | boolean |
{
"data": {
"success": true
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/orders/{orderId}/shipping-serviceClear an order's assigned carrier service for a parcel
https://api-test.orderly-hub.com/api/v1/dispatch-lane/orders//shipping-serviceList uploaded packing-slip images
/api/v1/dispatch-lane/packing-slip-assetsResponses
200 Image assets with temporary preview URLs
PackingSlipAsset[] object:
| Field | Type | Description |
|---|---|---|
id | string | |
name | string | |
mime_type | image/png | image/jpeg | |
size_bytes | integer | |
preview_url | string | |
created_at | string |
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jane Doe",
"mime_type": "image/png",
"size_bytes": 0,
"preview_url": "string",
"created_at": "2026-07-23T12:00:00Z"
}
]
}
/api/v1/dispatch-lane/packing-slip-assetsList uploaded packing-slip images
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-assetsUpload a PNG or JPEG for packing-slip templates
/api/v1/dispatch-lane/packing-slip-assetsRequest body
| Field | Type | Description |
|---|---|---|
file | string | PNG or JPEG image, up to 5 MB. File content is verified. |
Responses
201 Image uploaded
PackingSlipAsset object:
| Field | Type | Description |
|---|---|---|
id | string | |
name | string | |
mime_type | image/png | image/jpeg | |
size_bytes | integer | |
preview_url | string | |
created_at | string |
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jane Doe",
"mime_type": "image/png",
"size_bytes": 0,
"preview_url": "string",
"created_at": "2026-07-23T12:00:00Z"
}
}
400 Missing, invalid, or oversized image
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
500 Upload failed
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slip-assetsUpload a PNG or JPEG for packing-slip templates
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-assetsList packing slip templates available to the organization (including the built-in Orderly default)
/api/v1/dispatch-lane/packing-slip-templatesResponses
200 List of templates
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
organization_id | string | |
name | string | |
description | string | |
status | draft | published | |
version | integer | |
is_default | boolean | |
updated_at | string |
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"organization_id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jane Doe",
"description": "string",
"status": "draft",
"version": 0,
"is_default": true,
"updated_at": "2026-07-23T12:00:00Z"
}
]
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slip-templatesList packing slip templates available to the organization (including the built-in Orderly default)
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-templatesCreate a packing slip template
/api/v1/dispatch-lane/packing-slip-templatesRequest body
| Field | Type | Description |
|---|---|---|
name | string | |
description | string | |
document | object | JSON template document (page, header, footer, body, itemTable) |
{
"name": "Jane Doe",
"description": "string",
"document": {}
}
Responses
201 Template created as a draft
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
name | string | |
status | draft | published | |
version | integer |
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jane Doe",
"status": "draft",
"version": 0
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
422 Template validation failed
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slip-templatesCreate a packing slip template
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-templatesList packing-slip variables and SKU grouping fields
/api/v1/dispatch-lane/packing-slip-templates/bindingsPass an order UUID or order number to include its metadata.custom and lineItems[].properties fields.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
order_id | query | no | string | Test order UUID. Do not combine with order_number. |
order_number | query | no | string | Test order number. The newest exact match is used. Do not combine with order_id. |
Responses
200 Available order, line-item, and grouping bindings
Response fields:
| Field | Type | Description |
|---|---|---|
order | PackingSlipBinding[] | |
items | PackingSlipBinding[] | |
groupBy | PackingSlipBinding[] |
{
"data": {
"order": [
{
"binding": "string",
"label": "string",
"section": "string",
"groupable": true,
"dynamic": true
}
],
"items": [
{
"binding": "string",
"label": "string",
"section": "string",
"groupable": true,
"dynamic": true
}
],
"groupBy": [
{
"binding": "string",
"label": "string",
"section": "string",
"groupable": true,
"dynamic": true
}
]
}
}
400 Invalid order reference
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Order not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slip-templates/bindingsList packing-slip variables and SKU grouping fields
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-templates/bindingsPreview a template using an order UUID or order number
/api/v1/dispatch-lane/packing-slip-templates/previewProvide exactly one of order_id or order_number. Uploaded images are referenced by image-block assetId.
Request body
| Field | Type | Description |
|---|---|---|
document | object | |
order_id | string | |
order_number | string |
{
"document": {},
"order_number": "Testing-Orders-6"
}
Responses
200 Rendered PDF preview
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Order not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
422 Template validation failed
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slip-templates/previewPreview a template using an order UUID or order number
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-templates/previewUpdate a packing slip template (reverts it to draft status)
/api/v1/dispatch-lane/packing-slip-templates/{id}Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string |
Request body
| Field | Type | Description |
|---|---|---|
name | string | |
description | string | |
document | object |
{
"name": "Jane Doe",
"description": "string",
"document": {}
}
Responses
200 Template updated
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
name | string | |
status | draft | published | |
version | integer |
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jane Doe",
"status": "draft",
"version": 0
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
422 Template validation failed
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slip-templates/{id}Update a packing slip template (reverts it to draft status)
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-templates/Publish a packing slip template, snapshotting a new version
/api/v1/dispatch-lane/packing-slip-templates/{id}/publishParameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string |
Responses
200 Template published
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
status | published | |
version | integer |
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "published",
"version": 0
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Template not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
422 Fix validation errors before publishing
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slip-templates/{id}/publishPublish a packing slip template, snapshotting a new version
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slip-templates//publishRe-download a previously generated packing slip via a fresh signed URL
/api/v1/dispatch-lane/packing-slips/{documentId}Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
documentId | path | yes | string |
Responses
200 Packing slip document
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | |
order_id | string | |
file_path | string | |
page_count | integer | |
template_id | string | |
template_version | integer | |
created_at | string | |
download_url | string |
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"order_id": "550e8400-e29b-41d4-a716-446655440000",
"file_path": "string",
"page_count": 0,
"template_id": "550e8400-e29b-41d4-a716-446655440000",
"template_version": 0,
"created_at": "2026-07-23T12:00:00Z",
"download_url": "string"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Document not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/packing-slips/{documentId}Re-download a previously generated packing slip via a fresh signed URL
https://api-test.orderly-hub.com/api/v1/dispatch-lane/packing-slips/Get customer-facing rates for a platform-managed carrier account priced from the Orderly rate card
/api/v1/dispatch-lane/rate-card-quotesRequest body
| Field | Type | Description |
|---|---|---|
carrier_account_id | string | |
origin_zip | string | |
dest_zip | string | |
service | string | |
weight_oz | number | |
length_in | number | |
width_in | number | |
height_in | number | |
residential | boolean |
{
"carrier_account_id": "550e8400-e29b-41d4-a716-446655440000",
"origin_zip": "string",
"dest_zip": "string",
"service": "string",
"weight_oz": 0,
"length_in": 0,
"width_in": 0,
"height_in": 0,
"residential": true
}
Responses
200 Rate card quotes
Response fields:
| Field | Type | Description |
|---|---|---|
rate_source | orderly_rate_card | |
rate_card_id | string | |
rate_card_version | integer | |
carrier | string | |
service | string | |
zone | string | |
actual_weight_oz | number | |
dim_weight_oz | number | |
billable_weight_oz | number | |
base_charge_cents | integer | |
surcharges | object | |
customer_charge_cents | integer | |
currency | string | |
expires_at | string |
{
"data": [
{
"rate_source": "orderly_rate_card",
"rate_card_id": "550e8400-e29b-41d4-a716-446655440000",
"rate_card_version": 0,
"carrier": "string",
"service": "string",
"zone": "string",
"actual_weight_oz": 0,
"dim_weight_oz": 0,
"billable_weight_oz": 0,
"base_charge_cents": 0,
"surcharges": {},
"customer_charge_cents": 0,
"currency": "USD",
"expires_at": "2026-07-23T12:00:00Z"
}
]
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
403 Carrier account unavailable to this organization
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/rate-card-quotesGet customer-facing rates for a platform-managed carrier account priced from the Orderly rate card
https://api-test.orderly-hub.com/api/v1/dispatch-lane/rate-card-quotesGet org dispatch defaults (collation, default packing-slip template, label/slip page size)
/api/v1/dispatch-lane/settingsResponses
200 Dispatch settings
Response fields:
| Field | Type | Description |
|---|---|---|
collation | collated | separated | |
default_template_id | string | |
auto_generate_slips | boolean | |
label_size | 4x6 | letter | |
packing_slip_size | 4x6 | letter |
{
"data": {
"collation": "collated",
"default_template_id": "550e8400-e29b-41d4-a716-446655440000",
"auto_generate_slips": true,
"label_size": "4x6",
"packing_slip_size": "4x6"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/settingsGet org dispatch defaults (collation, default packing-slip template, label/slip page size)
https://api-test.orderly-hub.com/api/v1/dispatch-lane/settingsUpdate org dispatch defaults
/api/v1/dispatch-lane/settingsRequest body
| Field | Type | Description |
|---|---|---|
collation | collated | separated | |
default_template_id | string | |
auto_generate_slips | boolean | |
label_size | 4x6 | letter | |
packing_slip_size | 4x6 | letter |
{
"collation": "collated",
"default_template_id": "550e8400-e29b-41d4-a716-446655440000",
"auto_generate_slips": true,
"label_size": "4x6",
"packing_slip_size": "4x6"
}
Responses
200 Updated dispatch settings
Response fields:
| Field | Type | Description |
|---|---|---|
collation | collated | separated | |
default_template_id | string | |
auto_generate_slips | boolean | |
label_size | 4x6 | letter | |
packing_slip_size | 4x6 | letter |
{
"data": {
"collation": "collated",
"default_template_id": "550e8400-e29b-41d4-a716-446655440000",
"auto_generate_slips": true,
"label_size": "4x6",
"packing_slip_size": "4x6"
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/settingsUpdate org dispatch defaults
https://api-test.orderly-hub.com/api/v1/dispatch-lane/settingsGet operational summary cards for the dispatch lane home page
/api/v1/dispatch-lane/summaryResponses
200 Lane summary
Response fields:
| Field | Type | Description |
|---|---|---|
orders_ready_to_rate | integer | |
orders_with_assigned_services | integer | |
orders_ready_for_labels | integer | |
labels_created_today | integer | |
failed_labels_today | integer |
{
"data": {
"orders_ready_to_rate": 0,
"orders_with_assigned_services": 0,
"orders_ready_for_labels": 0,
"labels_created_today": 0,
"failed_labels_today": 0
}
}
400 Bad request
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
401 Unauthorized
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
404 Not found
Response fields:
| Field | Type | Description |
|---|---|---|
error | object |
{
"error": {
"code": "string",
"message": "string"
}
}
/api/v1/dispatch-lane/summaryGet operational summary cards for the dispatch lane home page
https://api-test.orderly-hub.com/api/v1/dispatch-lane/summary