Canary7 WMS (0.2.0)

Download OpenAPI specification:

Canary7 Warehouse Management System (WMS) REST API.

Origin Header: All requests must include an Origin header containing your tenant's URL. This is used for multi-tenant request isolation. Example: Origin: https://your-tenant.example.com

All endpoints require a Bearer token obtained from the login endpoint, except login itself.

Timestamps are Unix epoch integers unless otherwise noted. Date strings use ISO 8601 format (YYYY-MM-DD). DateTime strings use ISO 8601 format (YYYY-MM-DDTHH:MM or YYYY-MM-DD HH:MM:SS).

auth

User login.

Authenticates a user and returns a JWT bearer token along with the user object.

query Parameters
expand
string
Default: "roles"

Relations to expand in the response (e.g. roles).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

User credentials.

email
required
string <email>
password
required
string

Responses

Response Schema: application/json
token
required
string
default_company_id
required
integer
default_warehouse_id
required
integer
id
integer
object (company)

A company/tenant in the WMS.

object (warehouseListResponse)

Warehouse record.

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": 0,
  • "token": "string",
  • "default_company_id": 0,
  • "default_warehouse_id": 0,
  • "defaultCompany": {
    },
  • "defaultWarehouse": {
    }
}

company

List companies.

Returns a paginated list of companies accessible to the authenticated user.

Authorizations:
bearerAuth
query Parameters
company_code
string

Filter by company code.

per-page
integer
Default: 100

Number of results per page.

page
integer
Default: 1

Page number.

expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
Array
id
integer
company_code
string
description
string

Response samples

Content type
application/json
[
  • {
    }
]

List company integrations.

Returns a paginated list of company-to-integration mappings.

Authorizations:
bearerAuth
query Parameters
expand
string

Relations to expand (e.g. company, integration).

per-page
integer
Default: 10

Number of results per page (required).

page
integer
Default: 1

Page number (required).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
company_id
integer
application_id
string
created_at
string <date-time>
integration_id
string
status
integer

1 = Active, 0 = Inactive

_id
string

MongoDB ObjectId

sync_time
string

Response samples

Content type
application/json
{
  • "company_id": 0,
  • "application_id": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "integration_id": "string",
  • "status": 0,
  • "_id": "string",
  • "sync_time": "string"
}

country

List countries.

Returns a list of country reference data.

Authorizations:
bearerAuth
query Parameters
name
string

Filter by country name.

expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
Array
id
required
integer
country_code
required
string
name
string

Response samples

Content type
application/json
[
  • {
    }
]

item

List items.

Returns a paginated list of items (SKUs).

Authorizations:
bearerAuth
query Parameters
item_code
string

Filter by item code.

company_id
integer

Filter by company ID.

status
integer

Filter by status (1 = Active, 0 = Inactive).

expand
string

Relations to expand.

per-page
integer
Default: 100

Number of results per page.

page
integer
Default: 1

Page number.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
item_code
string

Unique item code within the company.

description
string
long_description
string
company_id
integer
status
integer

1 = Active, 0 = Inactive

created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
base_unit_of_measure
integer
enable_batch
boolean

Whether batch/lot tracking is enabled for this item.

min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string

ABC classification (e.g. A, B, C).

item_category_1
integer
item_tracking
boolean
item_tracking_id
integer
item_group_id
integer
release_date
string <date>
company_integration_id
string
commodity_code
string
customs_description
string
country_manufacture
string

Response samples

Content type
application/json
{
  • "id": 0,
  • "item_code": "string",
  • "description": "string",
  • "long_description": "string",
  • "company_id": 0,
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "base_unit_of_measure": 0,
  • "enable_batch": true,
  • "min_stock_level": 0,
  • "max_stock_level": 0,
  • "source_code": "string",
  • "verfication_not_available": true,
  • "abc_category": "string",
  • "item_category_1": 0,
  • "item_tracking": true,
  • "item_tracking_id": 0,
  • "item_group_id": 0,
  • "release_date": "2019-08-24",
  • "company_integration_id": "string",
  • "commodity_code": "string",
  • "customs_description": "string",
  • "country_manufacture": "string"
}

Get item by ID.

Returns a single item record by its database ID.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Item ID.

expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
item_code
string

Unique item code within the company.

description
string
long_description
string
company_id
integer
status
integer

1 = Active, 0 = Inactive

created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
base_unit_of_measure
integer
enable_batch
boolean

Whether batch/lot tracking is enabled for this item.

min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string

ABC classification (e.g. A, B, C).

item_category_1
integer
item_tracking
boolean
item_tracking_id
integer
item_group_id
integer
release_date
string <date>
company_integration_id
string
commodity_code
string
customs_description
string
country_manufacture
string

Response samples

Content type
application/json
{
  • "id": 0,
  • "item_code": "string",
  • "description": "string",
  • "long_description": "string",
  • "company_id": 0,
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "base_unit_of_measure": 0,
  • "enable_batch": true,
  • "min_stock_level": 0,
  • "max_stock_level": 0,
  • "source_code": "string",
  • "verfication_not_available": true,
  • "abc_category": "string",
  • "item_category_1": 0,
  • "item_tracking": true,
  • "item_tracking_id": 0,
  • "item_group_id": 0,
  • "release_date": "2019-08-24",
  • "company_integration_id": "string",
  • "commodity_code": "string",
  • "customs_description": "string",
  • "country_manufacture": "string"
}

Create item.

Creates a new item (SKU) in the system.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Item object.

item_code
required
string
description
required
string
company_id
required
integer
long_description
string
status
integer

1 = Active, 0 = Inactive

item_group_id
integer
enable_batch
boolean
min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string
item_category_1
integer
release_date
string <date>
commodity_code
string
customs_description
string
country_manufacture
string

Responses

Response Schema: application/json
id
integer
item_code
string
description
string
long_description
string
company_id
integer
status
integer
item_group_id
integer
enable_batch
boolean
min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string
item_category_1
integer
commodity_code
string
customs_description
string
country_manufacture
string
release_date
string <date>
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Request samples

Content type
application/json
{
  • "item_code": "AC10737",
  • "description": "Germs Are Not For Sharing Book",
  • "long_description": "Full description here",
  • "company_id": 28,
  • "status": 1,
  • "item_group_id": 1,
  • "enable_batch": false,
  • "min_stock_level": 3,
  • "max_stock_level": 6,
  • "source_code": "Macmillan",
  • "verfication_not_available": false,
  • "abc_category": "A",
  • "item_category_1": 1,
  • "release_date": "2023-10-10",
  • "commodity_code": "A1",
  • "customs_description": "Test A1",
  • "country_manufacture": "England"
}

Response samples

Content type
application/json
{
  • "id": 50,
  • "item_code": "AC10737",
  • "description": "Germs Are Not For Sharing Book",
  • "company_id": 28,
  • "status": 1,
  • "created_at": 1536147450,
  • "updated_at": 1551883927,
  • "created_by": 9,
  • "updated_by": 27
}

Update item by ID.

Updates an existing item by its database ID.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Item ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Fields to update.

item_code
required
string
description
required
string
company_id
required
integer
long_description
string
status
integer

1 = Active, 0 = Inactive

item_group_id
integer
enable_batch
boolean
min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string
item_category_1
integer
release_date
string <date>
commodity_code
string
customs_description
string
country_manufacture
string

Responses

Response Schema: application/json
id
integer
item_code
string
description
string
long_description
string
company_id
integer
status
integer
item_group_id
integer
enable_batch
boolean
min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string
item_category_1
integer
commodity_code
string
customs_description
string
country_manufacture
string
release_date
string <date>
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Request samples

Content type
application/json
{
  • "description": "Updated item description",
  • "status": 1,
  • "commodity_code": "A2",
  • "customs_description": "Test A2",
  • "country_manufacture": "USA"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "item_code": "string",
  • "description": "string",
  • "long_description": "string",
  • "company_id": 0,
  • "status": 0,
  • "item_group_id": 0,
  • "enable_batch": true,
  • "min_stock_level": 0,
  • "max_stock_level": 0,
  • "source_code": "string",
  • "verfication_not_available": true,
  • "abc_category": "string",
  • "item_category_1": 0,
  • "commodity_code": "string",
  • "customs_description": "string",
  • "country_manufacture": "string",
  • "release_date": "2019-08-24",
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0
}

Update item by item code and company ID.

Updates an item identified by item_code and company_id. Useful for ERP integrations that reference items by code rather than internal ID.

Authorizations:
bearerAuth
query Parameters
item_code
required
string

Item code.

company_id
required
integer

Company ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Fields to update.

item_code
required
string
description
required
string
company_id
required
integer
long_description
string
status
integer

1 = Active, 0 = Inactive

item_group_id
integer
enable_batch
boolean
min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string
item_category_1
integer
release_date
string <date>
commodity_code
string
customs_description
string
country_manufacture
string

Responses

Response Schema: application/json
id
integer
item_code
string
description
string
long_description
string
company_id
integer
status
integer
item_group_id
integer
enable_batch
boolean
min_stock_level
integer
max_stock_level
integer
source_code
string
verfication_not_available
boolean
abc_category
string
item_category_1
integer
commodity_code
string
customs_description
string
country_manufacture
string
release_date
string <date>
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Request samples

Content type
application/json
{
  • "description": "Updated item description",
  • "status": 1,
  • "release_date": "2023-03-30"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "item_code": "string",
  • "description": "string",
  • "long_description": "string",
  • "company_id": 0,
  • "status": 0,
  • "item_group_id": 0,
  • "enable_batch": true,
  • "min_stock_level": 0,
  • "max_stock_level": 0,
  • "source_code": "string",
  • "verfication_not_available": true,
  • "abc_category": "string",
  • "item_category_1": 0,
  • "commodity_code": "string",
  • "customs_description": "string",
  • "country_manufacture": "string",
  • "release_date": "2019-08-24",
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0
}

Item Unit of Measure

List units of measure.

Returns the global unit-of-measure master list (code/name → id). Used to resolve a UOM code such as EACH or CA to the numeric preferred_uom_id on a shipment line.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
Array
id
integer
name
string

UOM code/name used as the reference match field (e.g. EACH, CA).

description
string or null
status
integer

1 = Active, 0 = Inactive

created_at
integer or null
updated_at
integer or null
created_by
integer or null
updated_by
integer or null

Response samples

Content type
application/json
[
  • {
    }
]

List item units of measure.

Returns configured unit of measure conversions for items.

Authorizations:
bearerAuth
query Parameters
item_id
integer

Filter by item ID.

unit_of_measure_id
integer

Filter by unit of measure ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
item_id
integer
unit_of_measure_id
integer
factor
number <double>

Conversion factor relative to the base unit.

Response samples

Content type
application/json
{
  • "id": 1,
  • "item_id": 1,
  • "unit_of_measure_id": 1,
  • "factor": 1
}

Create item unit of measure.

Adds a unit of measure conversion record for an item.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Item UOM object.

item_id
required
integer
unit_of_measure_id
required
integer
factor
required
number <double>

Responses

Response Schema: application/json
id
integer
factor
number <double>
item_id
integer
unit_of_measure_id
integer

Request samples

Content type
application/json
{
  • "factor": 1,
  • "item_id": 3082,
  • "unit_of_measure_id": 7
}

Response samples

Content type
application/json
{
  • "id": 3060,
  • "factor": 1,
  • "item_id": 3082,
  • "unit_of_measure_id": 7
}

Item Unit of Measure Reference

List UOM references.

Returns barcode/reference codes associated with item units of measure.

Authorizations:
bearerAuth
query Parameters
item_unit_of_measure_id
integer

Filter by item UOM ID.

reference
string

Filter by reference value (e.g. barcode).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
reference
string

Barcode or reference value (e.g. EAN, UPC).

item_unit_of_measure_id
integer
is_default
integer

1 if this is the default reference for the UOM.

Response samples

Content type
application/json
{
  • "id": 1,
  • "reference": "reference name",
  • "item_unit_of_measure_id": 123,
  • "is_default": 0
}

Create UOM reference.

Creates a barcode or reference code for an item unit of measure.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

UOM reference object.

item_unit_of_measure_id
required
integer
reference
required
string

Responses

Response Schema: application/json
id
integer
item_unit_of_measure_id
integer
reference
string

Request samples

Content type
application/json
{
  • "reference": "reference_insert",
  • "item_unit_of_measure_id": 3058,
  • "reference_type_id": 1
}

Response samples

Content type
application/json
{
  • "id": 156,
  • "reference": "reference_insert",
  • "item_unit_of_measure_id": 3058
}

shipment

List shipment types.

Returns available shipment type classifications.

Authorizations:
bearerAuth
query Parameters
per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0
}

List shipments.

Returns a paginated list of outbound shipment headers.

Authorizations:
bearerAuth
query Parameters
per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

expand
string

Relations to expand (e.g. trailingStatus, leadingStatus, carrier, items, itemsIds, company, trackingUrl, consolidationLocation, stagingLocation, address.country, shipment_load, shipment_status, location, shipmentDetails.shipment_detail_assembly_explosion).

shipment_number
string

Filter by shipment number.

trailing_status
string

Filter by trailing status ID.

leading_status
string

Filter by leading status ID.

updated_start_date
string <date-time>
Example: updated_start_date=2024-01-01T00:00

Filter by last updated date (from). Format: YYYY-MM-DDTHH:MM.

updated_end_date
string <date-time>
Example: updated_end_date=2024-12-31T23:59

Filter by last updated date (to). Format: YYYY-MM-DDTHH:MM.

shipment_sub_status_id
integer

Sub-status filter (1 = Dispatched, 2 = Cancelled).

address_id
integer

Filter by address ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
warehouse_id
integer
company_id
integer
shipment_number
string

Unique identifier for the shipment order.

customer_code
string
customer_order_reference
string

Third-party customer order number.

planned_dispatch_date
string <date>
carrier_id
integer
carrier_service_id
integer
tracking_number
string
leading_status_id
number

Leading status id (can be fractional, e.g. 7.5).

trailing_status_id
number

Trailing status id (can be fractional, e.g. 7.5).

shipment_load_id
integer
address_id
integer
object (shipmentAddressResponse)

Ship-to address for a shipment (the header's address_id, expanded). Fetched via expand=shipmentHeaders.address; the mapper exposes these under address.<field> and the nested country ISO code under address.country.country_code.

consignment_id
integer
shipment_detail_child_id_count
integer
shipment_detail_qty_sum
integer
max_item_category
integer
min_item_category
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
company_integration_id
integer
entry_number
integer
consolidation_dock_id
integer
stagging_dock_id
integer
automatic_carrier_assignment
boolean
wave_rejected
boolean
reject_reason
string
out_bound_status_flow_id
integer
routing_code
string
carrier_zone_id
integer
currency_id
integer
custom_field_1
string
custom_field_2
string
event_status_id
integer
grouping
string
hold_comment
string
hold_reason_code
string
last_event_datetime
integer
last_event_id
integer
longest_side
number
max_item_weight
number
min_item_weight
number
on_hold
integer
order_number
string
ship_to_eori_number
string
ship_to_ioss_number
string
ship_to_vat_number
string
shipment_type_id
integer
soft_allocation_status
integer

1=unallocated, 2=partial, 3=fully allocated

soft_allocation_updated_at
integer
terms_of_sale
string
total_cost
number
total_details
integer
total_net_volume
integer
total_net_weight
integer
total_quantity
integer
total_sale_value
number
shipment_sub_status_id
integer
no_of_containers
integer
container_type
string

Container packaging summary (e.g. "SE", "Multiple").

shipping_cost
number <double>
pre_consigned
integer
department_number
string
department_name
string
sort_code
string
destination_number
string
last_hold_create_timestamp
integer
last_hold_release_timestamp
integer
has_file
integer
Array of objects (shipmentDetailsResponse)

Detail (line item) records for this shipment. Present when the load view is fetched with expand=shipmentHeaders.shipmentDetails. One 945 detail loop entry per line in 'detail' carton mode.

Array of objects (shipmentContainerResponse)

Physical container/carton records for this shipment. Present when the load view is fetched with expand=shipmentHeaders.shipmentContainers. Drives 'container' / 'hl' carton modes (one carton per container).

Response samples

Content type
application/json
{
  • "id": 0,
  • "warehouse_id": 0,
  • "company_id": 0,
  • "shipment_number": "string",
  • "customer_code": "string",
  • "customer_order_reference": "string",
  • "planned_dispatch_date": "2019-08-24",
  • "carrier_id": 0,
  • "carrier_service_id": 0,
  • "tracking_number": "string",
  • "leading_status_id": 0,
  • "trailing_status_id": 0,
  • "shipment_load_id": 0,
  • "address_id": 0,
  • "address": {
    },
  • "consignment_id": 0,
  • "shipment_detail_child_id_count": 0,
  • "shipment_detail_qty_sum": 0,
  • "max_item_category": 0,
  • "min_item_category": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "company_integration_id": 0,
  • "entry_number": 0,
  • "consolidation_dock_id": 0,
  • "stagging_dock_id": 0,
  • "automatic_carrier_assignment": true,
  • "wave_rejected": true,
  • "reject_reason": "string",
  • "out_bound_status_flow_id": 0,
  • "routing_code": "string",
  • "carrier_zone_id": 0,
  • "currency_id": 0,
  • "custom_field_1": "string",
  • "custom_field_2": "string",
  • "event_status_id": 0,
  • "grouping": "string",
  • "hold_comment": "string",
  • "hold_reason_code": "string",
  • "last_event_datetime": 0,
  • "last_event_id": 0,
  • "longest_side": 0,
  • "max_item_weight": 0,
  • "min_item_weight": 0,
  • "on_hold": 0,
  • "order_number": "string",
  • "ship_to_eori_number": "string",
  • "ship_to_ioss_number": "string",
  • "ship_to_vat_number": "string",
  • "shipment_type_id": 0,
  • "soft_allocation_status": 0,
  • "soft_allocation_updated_at": 0,
  • "terms_of_sale": "string",
  • "total_cost": 0,
  • "total_details": 0,
  • "total_net_volume": 0,
  • "total_net_weight": 0,
  • "total_quantity": 0,
  • "total_sale_value": 0,
  • "shipment_sub_status_id": 0,
  • "no_of_containers": 0,
  • "container_type": "string",
  • "shipping_cost": 0.1,
  • "pre_consigned": 0,
  • "department_number": "string",
  • "department_name": "string",
  • "sort_code": "string",
  • "destination_number": "string",
  • "last_hold_create_timestamp": 0,
  • "last_hold_release_timestamp": 0,
  • "has_file": 0,
  • "shipmentDetails": [
    ],
  • "shipmentContainers": [
    ]
}

Get shipment by ID.

Returns a single shipment header by its database ID.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Shipment header ID.

expand
string

Relations to expand (e.g. trailingStatus, leadingStatus, carrier, items, address.country).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
warehouse_id
integer
company_id
integer
shipment_number
string

Unique identifier for the shipment order.

customer_code
string
customer_order_reference
string

Third-party customer order number.

planned_dispatch_date
string <date>
carrier_id
integer
carrier_service_id
integer
tracking_number
string
leading_status_id
number

Leading status id (can be fractional, e.g. 7.5).

trailing_status_id
number

Trailing status id (can be fractional, e.g. 7.5).

shipment_load_id
integer
address_id
integer
object (shipmentAddressResponse)

Ship-to address for a shipment (the header's address_id, expanded). Fetched via expand=shipmentHeaders.address; the mapper exposes these under address.<field> and the nested country ISO code under address.country.country_code.

consignment_id
integer
shipment_detail_child_id_count
integer
shipment_detail_qty_sum
integer
max_item_category
integer
min_item_category
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
company_integration_id
integer
entry_number
integer
consolidation_dock_id
integer
stagging_dock_id
integer
automatic_carrier_assignment
boolean
wave_rejected
boolean
reject_reason
string
out_bound_status_flow_id
integer
routing_code
string
carrier_zone_id
integer
currency_id
integer
custom_field_1
string
custom_field_2
string
event_status_id
integer
grouping
string
hold_comment
string
hold_reason_code
string
last_event_datetime
integer
last_event_id
integer
longest_side
number
max_item_weight
number
min_item_weight
number
on_hold
integer
order_number
string
ship_to_eori_number
string
ship_to_ioss_number
string
ship_to_vat_number
string
shipment_type_id
integer
soft_allocation_status
integer

1=unallocated, 2=partial, 3=fully allocated

soft_allocation_updated_at
integer
terms_of_sale
string
total_cost
number
total_details
integer
total_net_volume
integer
total_net_weight
integer
total_quantity
integer
total_sale_value
number
shipment_sub_status_id
integer
no_of_containers
integer
container_type
string

Container packaging summary (e.g. "SE", "Multiple").

shipping_cost
number <double>
pre_consigned
integer
department_number
string
department_name
string
sort_code
string
destination_number
string
last_hold_create_timestamp
integer
last_hold_release_timestamp
integer
has_file
integer
Array of objects (shipmentDetailsResponse)

Detail (line item) records for this shipment. Present when the load view is fetched with expand=shipmentHeaders.shipmentDetails. One 945 detail loop entry per line in 'detail' carton mode.

Array of objects (shipmentContainerResponse)

Physical container/carton records for this shipment. Present when the load view is fetched with expand=shipmentHeaders.shipmentContainers. Drives 'container' / 'hl' carton modes (one carton per container).

Response samples

Content type
application/json
{
  • "id": 0,
  • "warehouse_id": 0,
  • "company_id": 0,
  • "shipment_number": "string",
  • "customer_code": "string",
  • "customer_order_reference": "string",
  • "planned_dispatch_date": "2019-08-24",
  • "carrier_id": 0,
  • "carrier_service_id": 0,
  • "tracking_number": "string",
  • "leading_status_id": 0,
  • "trailing_status_id": 0,
  • "shipment_load_id": 0,
  • "address_id": 0,
  • "address": {
    },
  • "consignment_id": 0,
  • "shipment_detail_child_id_count": 0,
  • "shipment_detail_qty_sum": 0,
  • "max_item_category": 0,
  • "min_item_category": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "company_integration_id": 0,
  • "entry_number": 0,
  • "consolidation_dock_id": 0,
  • "stagging_dock_id": 0,
  • "automatic_carrier_assignment": true,
  • "wave_rejected": true,
  • "reject_reason": "string",
  • "out_bound_status_flow_id": 0,
  • "routing_code": "string",
  • "carrier_zone_id": 0,
  • "currency_id": 0,
  • "custom_field_1": "string",
  • "custom_field_2": "string",
  • "event_status_id": 0,
  • "grouping": "string",
  • "hold_comment": "string",
  • "hold_reason_code": "string",
  • "last_event_datetime": 0,
  • "last_event_id": 0,
  • "longest_side": 0,
  • "max_item_weight": 0,
  • "min_item_weight": 0,
  • "on_hold": 0,
  • "order_number": "string",
  • "ship_to_eori_number": "string",
  • "ship_to_ioss_number": "string",
  • "ship_to_vat_number": "string",
  • "shipment_type_id": 0,
  • "soft_allocation_status": 0,
  • "soft_allocation_updated_at": 0,
  • "terms_of_sale": "string",
  • "total_cost": 0,
  • "total_details": 0,
  • "total_net_volume": 0,
  • "total_net_weight": 0,
  • "total_quantity": 0,
  • "total_sale_value": 0,
  • "shipment_sub_status_id": 0,
  • "no_of_containers": 0,
  • "container_type": "string",
  • "shipping_cost": 0.1,
  • "pre_consigned": 0,
  • "department_number": "string",
  • "department_name": "string",
  • "sort_code": "string",
  • "destination_number": "string",
  • "last_hold_create_timestamp": 0,
  • "last_hold_release_timestamp": 0,
  • "has_file": 0,
  • "shipmentDetails": [
    ],
  • "shipmentContainers": [
    ]
}

Create shipment.

Creates a new outbound shipment header, optionally with line items and consignment pieces.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Shipment object.

One of
One of
automatic_carrier_assignment
required
any
Value: 1

Responses

Response Schema: application/json
id
integer
address_id
integer
automatic_carrier_assignment
boolean
carrier_id
integer
carrier_service_id
integer
company_id
integer
consignment_id
integer
created_at
integer

Unix timestamp

created_by
integer
customer_code
string
customer_order_reference
string
leading_status_id
integer
planned_dispatch_date
string <date>
shipment_load_id
integer
shipment_number
string
tracking_number
string
trailing_status_id
integer
updated_at
integer

Unix timestamp

updated_by
integer
warehouse_id
integer
routing_code
string

Request samples

Content type
application/json
{
  • "automatic_carrier_assignment": 0,
  • "carrier_id": 2,
  • "carrier_service_id": 2,
  • "company_id": 41,
  • "customer_code": "CUST001",
  • "customer_order_reference": "ORD-REF-123",
  • "planned_dispatch_date": "2024-10-08",
  • "shipment_load_id": 123,
  • "shipment_number": "SHIP_001",
  • "tracking_number": "123456789",
  • "warehouse_id": 3,
  • "routing_code": "DPD",
  • "shipment_address_id": 1064,
  • "details": [
    ],
  • "pieces": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "address_id": 0,
  • "automatic_carrier_assignment": true,
  • "carrier_id": 0,
  • "carrier_service_id": 0,
  • "company_id": 0,
  • "consignment_id": 0,
  • "created_at": 0,
  • "created_by": 0,
  • "customer_code": "string",
  • "customer_order_reference": "string",
  • "leading_status_id": 0,
  • "planned_dispatch_date": "2019-08-24",
  • "shipment_load_id": 0,
  • "shipment_number": "string",
  • "tracking_number": "string",
  • "trailing_status_id": 0,
  • "updated_at": 0,
  • "updated_by": 0,
  • "warehouse_id": 0,
  • "routing_code": "string"
}

Update shipment by ID.

Updates an existing shipment header. The shipment must not be in a closed or dispatched state.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Shipment header ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Fields to update.

One of
One of
automatic_carrier_assignment
required
any
Value: 1

Responses

Response Schema: application/json
id
integer
address_id
integer
automatic_carrier_assignment
boolean
carrier_id
integer
carrier_service_id
integer
company_id
integer
consignment_id
integer
created_at
integer

Unix timestamp

created_by
integer
customer_code
string
customer_order_reference
string
leading_status_id
integer
planned_dispatch_date
string <date>
shipment_load_id
integer
shipment_number
string
tracking_number
string
trailing_status_id
integer
updated_at
integer

Unix timestamp

updated_by
integer
warehouse_id
integer
routing_code
string

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": 0,
  • "address_id": 0,
  • "automatic_carrier_assignment": true,
  • "carrier_id": 0,
  • "carrier_service_id": 0,
  • "company_id": 0,
  • "consignment_id": 0,
  • "created_at": 0,
  • "created_by": 0,
  • "customer_code": "string",
  • "customer_order_reference": "string",
  • "leading_status_id": 0,
  • "planned_dispatch_date": "2019-08-24",
  • "shipment_load_id": 0,
  • "shipment_number": "string",
  • "tracking_number": "string",
  • "trailing_status_id": 0,
  • "updated_at": 0,
  • "updated_by": 0,
  • "warehouse_id": 0,
  • "routing_code": "string"
}

List shipment details.

Returns a list of shipment detail (line item) records.

Authorizations:
bearerAuth
query Parameters
expand
string

Relations to expand (e.g. trailingStatus, leadingStatus, item, shipment_header.company, allocation_rule).

start_status
integer

Filter by start status ID.

end_status
integer

Filter by end status ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
shipment_header_id
integer
item_id
integer
quantity
integer
original_qty
integer
erp_order_line_number
integer
allocation_rule_id
integer
open_quantity
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
line_item_id
string

ERP/host line reference; returned as a string (may be non-numeric).

batch_number
string
item_list_price
string

List price as returned by WMS (string; may be empty).

original_batch_number
string
each_price
number <double>
shipment_detail_assembly_explosion_id
integer
soft_allocated_qty
integer
soft_allocation_status
integer

0=unallocated, 1=fully allocated

net_weight
number
release_date
string
line_number
integer
order_number
string
allocation_reference
string
customer_item_reference
string
grouping
string
automatic_allocation_rule_master
integer
preferred_uom_id
integer
custom_field_1
string

Response samples

Content type
application/json
{
  • "id": 0,
  • "shipment_header_id": 0,
  • "item_id": 0,
  • "quantity": 0,
  • "original_qty": 0,
  • "erp_order_line_number": 0,
  • "allocation_rule_id": 0,
  • "open_quantity": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "line_item_id": "string",
  • "batch_number": "string",
  • "item_list_price": "string",
  • "original_batch_number": "string",
  • "each_price": 0.1,
  • "shipment_detail_assembly_explosion_id": 0,
  • "soft_allocated_qty": 0,
  • "soft_allocation_status": 0,
  • "net_weight": 0,
  • "release_date": "string",
  • "line_number": 0,
  • "order_number": "string",
  • "allocation_reference": "string",
  • "customer_item_reference": "string",
  • "grouping": "string",
  • "automatic_allocation_rule_master": 0,
  • "preferred_uom_id": 0,
  • "custom_field_1": "string"
}

Delete shipment header.

Deletes a shipment header by ID. Only shipments in early statuses (e.g. in-pool) can be deleted.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Shipment header ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response samples

Content type
application/json
{
  • "status": 204
}

Place shipment(s) on hold.

Sets on_hold = 1 on one or more shipment headers. Accepts either a single object or an array of objects. Returns the updated shipment header(s).

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required
One of
id
required
integer

Shipment header ID.

hold_comment
string
hold_reason
string

Responses

Response Schema: application/json
One of
id
integer
address_id
integer
automatic_carrier_assignment
boolean
carrier_id
integer
carrier_service_id
integer
company_id
integer
consignment_id
integer
created_at
integer

Unix timestamp

created_by
integer
customer_code
string
customer_order_reference
string
leading_status_id
integer
planned_dispatch_date
string <date>
shipment_load_id
integer
shipment_number
string
tracking_number
string
trailing_status_id
integer
updated_at
integer

Unix timestamp

updated_by
integer
warehouse_id
integer
routing_code
string

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[ ]

Remove hold from shipment(s).

Clears on_hold, hold_comment, and hold_reason_code on one or more shipment headers. Accepts either a single object or an array of objects. Returns lists of successfully released and failed shipment numbers.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required
One of
id
required
integer

Shipment header ID.

Responses

Response Schema: application/json
success
Array of strings

Shipment numbers successfully released from hold.

failed
Array of strings

Shipment numbers that could not be released.

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
{
  • "success": [
    ],
  • "failed": [
    ]
}

shipment load

List shipment loads.

Returns a paginated list of shipment loads (trailers/trucks grouping shipments for dispatch).

Authorizations:
bearerAuth
query Parameters
per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

expand
string

Relations to expand (e.g. carrier, leadingStatus, trailingStatus, leadingStatusDescription, trailingStatusDescription, shipment_status).

load_no
string

Filter by load number.

trailer_number
string

Filter by trailer number.

condition_id
integer

Filter by load status (1 = Open, 2 = In-progress, 3 = Closed).

updated_start_date
string <date-time>
Example: updated_start_date=2024-01-01T00:00

Filter by last updated date (from). Format: YYYY-MM-DDTHH:MM.

updated_end_date
string <date-time>
Example: updated_end_date=2024-12-31T23:59

Filter by last updated date (to). Format: YYYY-MM-DDTHH:MM.

carrier_id
integer

Filter by carrier ID.

close
integer

Close check filter (0 = Not checked, 1 = Checked).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
condition_id
integer

Load status — 1=Open, 2=In-progress, 3=Closed

load_no
string
trailer_number
string
bill_of_lading
string
carrier_id
integer
warehouse_id
integer
type
integer
print_name
string
load_preference_id
integer
container_loaded_count
integer
progressive_number
integer
shipment_id
integer
on_hold
integer
hold_reason_id
integer
last_hold_create_timestamp
integer
last_hold_release_timestamp
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
Array of objects (shipmentHeaderListingResponse)

The shipments grouped by this load. Present when fetched with expand=shipmentHeaders (as the mapper does for shipment-load/view). The mapper emits one 945 per entry.

Response samples

Content type
application/json
{
  • "id": 0,
  • "condition_id": 0,
  • "load_no": "string",
  • "trailer_number": "string",
  • "bill_of_lading": "string",
  • "carrier_id": 0,
  • "warehouse_id": 0,
  • "type": 0,
  • "print_name": "string",
  • "load_preference_id": 0,
  • "container_loaded_count": 0,
  • "progressive_number": 0,
  • "shipment_id": 0,
  • "on_hold": 0,
  • "hold_reason_id": 0,
  • "last_hold_create_timestamp": 0,
  • "last_hold_release_timestamp": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "shipmentHeaders": [
    ]
}

Get shipment load by ID.

Returns a single shipment load by its database ID. The edi-event-mapper fetches this with expand=shipmentHeaders,shipmentHeaders.shipmentDetails,shipmentHeaders.shipmentContainers to build the outbound 945 (one 945 per shipment header).

Authorizations:
bearerAuth
query Parameters
id
required
integer

Shipment load database ID.

expand
string

Relations to expand (shipmentHeaders, shipmentHeaders.shipmentDetails, shipmentHeaders.shipmentContainers).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
condition_id
integer

Load status — 1=Open, 2=In-progress, 3=Closed

load_no
string
trailer_number
string
bill_of_lading
string
carrier_id
integer
warehouse_id
integer
type
integer
print_name
string
load_preference_id
integer
container_loaded_count
integer
progressive_number
integer
shipment_id
integer
on_hold
integer
hold_reason_id
integer
last_hold_create_timestamp
integer
last_hold_release_timestamp
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
Array of objects (shipmentHeaderListingResponse)

The shipments grouped by this load. Present when fetched with expand=shipmentHeaders (as the mapper does for shipment-load/view). The mapper emits one 945 per entry.

Response samples

Content type
application/json
{
  • "id": 0,
  • "condition_id": 0,
  • "load_no": "string",
  • "trailer_number": "string",
  • "bill_of_lading": "string",
  • "carrier_id": 0,
  • "warehouse_id": 0,
  • "type": 0,
  • "print_name": "string",
  • "load_preference_id": 0,
  • "container_loaded_count": 0,
  • "progressive_number": 0,
  • "shipment_id": 0,
  • "on_hold": 0,
  • "hold_reason_id": 0,
  • "last_hold_create_timestamp": 0,
  • "last_hold_release_timestamp": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "shipmentHeaders": [
    ]
}

Shipment Detail

Create shipment detail.

Adds a line item to an existing shipment header.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Shipment detail object.

shipment_header_id
required
integer
item_id
required
integer
quantity
required
integer
erp_order_line_number
required
integer
allocation_rule_id
integer
each_price
number <double>
automatic_allocation_rule_master
boolean

Responses

Response Schema: application/json
id
integer
shipment_header_id
integer
item_id
integer
quantity
integer
original_qty
integer
erp_order_line_number
integer
allocation_rule_id
integer
open_quantity
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
line_item_id
string

ERP/host line reference; returned as a string (may be non-numeric).

batch_number
string
item_list_price
string

List price as returned by WMS (string; may be empty).

original_batch_number
string
each_price
number <double>
shipment_detail_assembly_explosion_id
integer
soft_allocated_qty
integer
soft_allocation_status
integer

0=unallocated, 1=fully allocated

net_weight
number
release_date
string
line_number
integer
order_number
string
allocation_reference
string
customer_item_reference
string
grouping
string
automatic_allocation_rule_master
integer
preferred_uom_id
integer
custom_field_1
string

Request samples

Content type
application/json
{
  • "shipment_header_id": 1,
  • "item_id": 1,
  • "quantity": 1,
  • "erp_order_line_number": 1,
  • "allocation_rule_id": 1,
  • "each_price": 1.1,
  • "automatic_allocation_rule_master": 1
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "shipment_header_id": 0,
  • "item_id": 0,
  • "quantity": 0,
  • "original_qty": 0,
  • "erp_order_line_number": 0,
  • "allocation_rule_id": 0,
  • "open_quantity": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "line_item_id": "string",
  • "batch_number": "string",
  • "item_list_price": "string",
  • "original_batch_number": "string",
  • "each_price": 0.1,
  • "shipment_detail_assembly_explosion_id": 0,
  • "soft_allocated_qty": 0,
  • "soft_allocation_status": 0,
  • "net_weight": 0,
  • "release_date": "string",
  • "line_number": 0,
  • "order_number": "string",
  • "allocation_reference": "string",
  • "customer_item_reference": "string",
  • "grouping": "string",
  • "automatic_allocation_rule_master": 0,
  • "preferred_uom_id": 0,
  • "custom_field_1": "string"
}

Carrier

List carriers.

Returns a list of configured carriers.

Authorizations:
bearerAuth
query Parameters
name
string

Filter by carrier name.

expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
Array
id
integer
name
string
carrier_class_id
string
status
integer

1 = Active, 0 = Inactive

additional_label
boolean or null
tracking_url
string or null
print_custom_carrier_label
boolean or null
rule
boolean

Response samples

Content type
application/json
[
  • {
    }
]

List carrier services.

Returns a list of carrier services. Filter by carrier_id to scope to a specific carrier.

Authorizations:
bearerAuth
query Parameters
name
string

Filter by carrier service name.

carrier_id
integer

Filter by carrier ID.

expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
Array
id
integer
carrier_id
integer
name
string
code
string
carrier_specific_field_1
string or null
carrier_specific_field_2
string or null
status
integer

1 = Active, 0 = Inactive

Response samples

Content type
application/json
[
  • {
    }
]

integration

List integrations.

Returns a list of available external integration definitions.

Authorizations:
bearerAuth
query Parameters
per-page
integer
Default: 1000

Number of results per page (required).

page
integer
Default: 1

Page number (required).

expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
_id
string

MongoDB ObjectId

created_at
string <date-time>
name
string
__v
integer

MongoDB document version.

apis
Array of strings

API keys or endpoints exposed by this integration.

Response samples

Content type
application/json
{
  • "_id": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "__v": 0,
  • "apis": [
    ]
}

inventory

Inventory summary.

Returns aggregated inventory quantities per item per location. Useful for stock-level reporting.

Authorizations:
bearerAuth
query Parameters
item_code
string

Filter by item code.

location_code
string

Filter by location code.

company_id
integer

Filter by company ID.

warehouse_id
integer

Filter by warehouse ID.

license_plate_no
string

Filter by license plate number.

show_active
boolean

When false, includes zero-quantity records.

expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
item_code
string
description
string
item_id
integer
item_unit_of_measure_id
integer
location_id
integer
inventory_status
string

e.g. available, held, quarantine

on_hand_quantity
integer
allocated_quantity
integer
in_transit_quantity
integer
free_stock
integer

on_hand_quantity minus allocated_quantity

warehouse_id
integer
unit_of_measure_name
string
unallocated_quantity
integer
company_integration_id
integer

Response samples

Content type
application/json
{
  • "item_code": "string",
  • "description": "string",
  • "item_id": 0,
  • "item_unit_of_measure_id": 0,
  • "location_id": 0,
  • "inventory_status": "string",
  • "on_hand_quantity": 0,
  • "allocated_quantity": 0,
  • "in_transit_quantity": 0,
  • "free_stock": 0,
  • "warehouse_id": 0,
  • "unit_of_measure_name": "string",
  • "unallocated_quantity": 0,
  • "company_integration_id": 0
}

List adjustment types.

Returns available inventory adjustment type definitions.

Authorizations:
bearerAuth
query Parameters
expand
string

Relations to expand.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
description
string
adjustment_class
integer

Classification identifier for the adjustment type.

created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
status
integer

1 = Active, 0 = Inactive

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "adjustment_class": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "status": 0
}

Adjust inventory.

Performs an inventory adjustment. Supports four modes controlled by adjustment_type_id:

  • Adjustment (type 1): Change quantity at a location.
  • Transfer (type 2): Move stock between locations. Requires location_to_id.
  • Status Change (type 3): Change inventory status (e.g. available → held). Does not change quantity.
  • Transfer With User (type 4): Move stock from a user back to a location. Requires user_id and location_to_id.
Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Inventory adjustment object.

adjustment_type_id
required
integer
item_id
required
integer
item_unit_of_measure_id
required
integer
location_from_id
required
integer

Source location ID.

quantity
required
integer
comment
string
inventory_status
string

Inventory status (e.g. available, held, quarantine).

location_to_id
integer

Destination location ID. Required for Transfer (type 2) and Transfer With User (type 4).

reason_code
string
user_id
integer

Required for Transfer With User (type 4).

license_plate_no
string

License plate number. Required for Transfer With User (type 4).

Responses

Response Schema: application/json
id
integer
created_at
integer

Unix timestamp

created_by
integer
inventory_status
string
item_id
integer
item_unit_of_measure_id
integer
location_id
integer
on_hand_quantity
integer
status
integer
updated_at
integer

Unix timestamp

updated_by
integer

Request samples

Content type
application/json
Example
{
  • "adjustment_type_id": 1,
  • "comment": "Write-off damaged stock",
  • "inventory_status": "available",
  • "item_id": 3112,
  • "item_unit_of_measure_id": 3090,
  • "location_from_id": 8,
  • "quantity": 550,
  • "reason_code": "AD-55"
}

Response samples

Content type
application/json
{
  • "id": 1808,
  • "created_at": 1637574485,
  • "created_by": 9,
  • "inventory_status": "available",
  • "item_id": 3112,
  • "item_unit_of_measure_id": 3090,
  • "location_id": 8,
  • "on_hand_quantity": 0,
  • "status": 1,
  • "updated_at": 1637574485,
  • "updated_by": 9
}

Inventory enquiry.

Returns a paginated list of individual inventory records.

Authorizations:
bearerAuth
query Parameters
expand
string

Relations to expand (e.g. item, item.company, batch, users, item_unit_of_measure.unit_of_measure, location.location_type, warehouse, onHandUnits, inTransitUnits, allocatedUnits, suspendedUnits, uomWithFactor).

location_code
string

Filter by location code.

company_id
integer

Filter by company ID.

warehouse_id
integer

Filter by warehouse ID.

license_plate_no
string

Filter by license plate number.

item_code
string

Filter by item code.

description
string

Filter by item description (partial match).

reference
string

Filter by item reference/barcode.

item_group_id
integer

Filter by item group ID.

batch_no
string

Filter by batch number.

inventory_status
string

Filter by inventory status (e.g. available, held, quarantine).

per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
_id
string

MongoDB ObjectId

allocatedUnits
integer
allocated_quantity
integer
batch
string
created_at
integer

Unix timestamp

inTransitUnits
integer
in_transit_quantity
integer
inventory_status
string

e.g. available, held, quarantine

location_code
string
item_id
integer
item_unit_of_measure_id
integer
on_hand_quantity
integer
suspended_quantity
integer
unit_of_measure
string
is_with_user
integer

1 if inventory is currently assigned to a user (e.g. in a picking job).

last_cycle_count_date
string <date-time>
license_plate_no
string
location_id
integer
onHandUnits
integer
suspendedUnits
integer
uomWithFactor
boolean
updated_at
integer

Unix timestamp

Response samples

Content type
application/json
{
  • "_id": "string",
  • "allocatedUnits": 0,
  • "allocated_quantity": 0,
  • "batch": "string",
  • "created_at": 0,
  • "inTransitUnits": 0,
  • "in_transit_quantity": 0,
  • "inventory_status": "string",
  • "location_code": "string",
  • "item_id": 0,
  • "item_unit_of_measure_id": 0,
  • "on_hand_quantity": 0,
  • "suspended_quantity": 0,
  • "unit_of_measure": "string",
  • "is_with_user": 0,
  • "last_cycle_count_date": "2019-08-24T14:15:22Z",
  • "license_plate_no": "string",
  • "location_id": 0,
  • "onHandUnits": 0,
  • "suspendedUnits": 0,
  • "uomWithFactor": true,
  • "updated_at": 0
}

logs

Inventory transaction logs.

Returns a paginated audit trail of all inventory movements and adjustments.

Authorizations:
bearerAuth
query Parameters
start_date
string <date-time>
Example: start_date=2024-01-01 00:00:00

Filter by transaction date (from). Format: YYYY-MM-DD HH:MM:SS.

end_date
string <date-time>

Filter by transaction date (to).

location_code
string

Filter by location code.

company_code
string

Filter by company code.

warehouse_code
string

Filter by warehouse code.

license_plate_no
string

Filter by license plate number.

item_code
string

Filter by item code.

inventory_id
integer

Filter by inventory record ID.

transaction_type
string
Example: transaction_type=Adjustment

Filter by transaction type (e.g. Adjustment, Transfer, Receipt, Shipment).

reference
string

Filter by reference number.

username
string

Filter by username.

batch_no
string

Filter by batch number.

per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
inventory_id
integer
created_at
integer

Unix timestamp

reason_code
string
comment
string
_id
string

MongoDB ObjectId

transaction_time
string <date-time>
item_code
string
company_code
string
location_code
string
warehouse_code
string
status
string
batch_no
string
license_plate_no
string
transaction_type
string

e.g. Adjustment, Transfer, Receipt, Shipment

direction
string

IN or OUT

quantity
integer
username
string
on_hand_quantity
integer
allocated_quantity
integer
in_transit_quantity
integer
suspended_quantity
integer
on_hand_quantity_before
integer
allocated_quantity_before
integer
in_transit_quantity_before
integer
suspended_quantity_before
integer
unit_of_measure
string
factor
number <double>
reference
string
application_id
string
__v
integer

Response samples

Content type
application/json
{
  • "inventory_id": 0,
  • "created_at": 0,
  • "reason_code": "string",
  • "comment": "string",
  • "_id": "string",
  • "transaction_time": "2019-08-24T14:15:22Z",
  • "item_code": "string",
  • "company_code": "string",
  • "location_code": "string",
  • "warehouse_code": "string",
  • "status": "string",
  • "batch_no": "string",
  • "license_plate_no": "string",
  • "transaction_type": "string",
  • "direction": "string",
  • "quantity": 0,
  • "username": "string",
  • "on_hand_quantity": 0,
  • "allocated_quantity": 0,
  • "in_transit_quantity": 0,
  • "suspended_quantity": 0,
  • "on_hand_quantity_before": 0,
  • "allocated_quantity_before": 0,
  • "in_transit_quantity_before": 0,
  • "suspended_quantity_before": 0,
  • "unit_of_measure": "string",
  • "factor": 0.1,
  • "reference": "string",
  • "application_id": "string",
  • "__v": 0
}

warehouse

List warehouses.

Returns a list of all warehouses accessible to the authenticated user.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
Array
id
integer
warehouse_code
string
description
string
status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
address_id
integer

Response samples

Content type
application/json
[
  • {
    }
]

Get warehouse by ID.

Returns a single warehouse record.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Warehouse ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
warehouse_code
string
description
string
status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
address_id
integer

Response samples

Content type
application/json
{
  • "id": 0,
  • "warehouse_code": "string",
  • "description": "string",
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "address_id": 0
}

Address

List addresses.

Returns a list of delivery addresses.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
ship_to_address1
string
ship_to_address2
string
ship_to_address3
string
ship_to_attention_to
string
ship_to_city
string
ship_to_country_id
integer
ship_to_email_address
string
ship_to_instructions
string
ship_to_kind
string

e.g. Company, Individual

ship_to_name
string
ship_to_phone_num
string
ship_to_postcode
string
ship_to_state
string

Response samples

Content type
application/json
{
  • "id": 0,
  • "ship_to_address1": "string",
  • "ship_to_address2": "string",
  • "ship_to_address3": "string",
  • "ship_to_attention_to": "string",
  • "ship_to_city": "string",
  • "ship_to_country_id": 0,
  • "ship_to_email_address": "string",
  • "ship_to_instructions": "string",
  • "ship_to_kind": "string",
  • "ship_to_name": "string",
  • "ship_to_phone_num": "string",
  • "ship_to_postcode": "string",
  • "ship_to_state": "string"
}

Get address by ID.

Returns a single delivery address record.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Address ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
ship_to_address1
string
ship_to_address2
string
ship_to_address3
string
ship_to_attention_to
string
ship_to_city
string
ship_to_country_id
integer
ship_to_email_address
string
ship_to_instructions
string
ship_to_kind
string

e.g. Company, Individual

ship_to_name
string
ship_to_phone_num
string
ship_to_postcode
string
ship_to_state
string

Response samples

Content type
application/json
{
  • "id": 0,
  • "ship_to_address1": "string",
  • "ship_to_address2": "string",
  • "ship_to_address3": "string",
  • "ship_to_attention_to": "string",
  • "ship_to_city": "string",
  • "ship_to_country_id": 0,
  • "ship_to_email_address": "string",
  • "ship_to_instructions": "string",
  • "ship_to_kind": "string",
  • "ship_to_name": "string",
  • "ship_to_phone_num": "string",
  • "ship_to_postcode": "string",
  • "ship_to_state": "string"
}

Create address.

Creates a new delivery address record.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Address object.

ship_to_country_id
required
integer
ship_to_address1
string
ship_to_address2
string
ship_to_address3
string
ship_to_attention_to
string
ship_to_city
string
ship_to_email_address
string <email>
ship_to_instructions
string
ship_to_kind
string

e.g. Company, Individual

ship_to_name
string
ship_to_phone_num
string

Pattern: /^[+][(]{0,1}[0-9]{1,4}[)]{0,1}[-\s.0-9]$/

ship_to_postcode
string
ship_to_state
string

Responses

Response Schema: application/json
id
integer
ship_to_address1
string
ship_to_address2
string
ship_to_address3
string
ship_to_attention_to
string
ship_to_city
string
ship_to_country_id
integer
ship_to_email_address
string
ship_to_instructions
string
ship_to_kind
string
ship_to_name
string
ship_to_phone_num
string
ship_to_postcode
string
ship_to_state
string

Request samples

Content type
application/json
{
  • "ship_to_address1": "239 DRUM ROAD",
  • "ship_to_address2": "COOKSTOWN",
  • "ship_to_attention_to": "Thomas Edison",
  • "ship_to_city": "COOKSTOWN",
  • "ship_to_country_id": 235,
  • "ship_to_email_address": "[email protected]",
  • "ship_to_instructions": "Leave at reception.",
  • "ship_to_kind": "Company",
  • "ship_to_name": "Thomas Wright",
  • "ship_to_phone_num": "01234567890",
  • "ship_to_postcode": "BT80 9HP",
  • "ship_to_state": "County Tyrone"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "ship_to_address1": "string",
  • "ship_to_address2": "string",
  • "ship_to_address3": "string",
  • "ship_to_attention_to": "string",
  • "ship_to_city": "string",
  • "ship_to_country_id": 0,
  • "ship_to_email_address": "string",
  • "ship_to_instructions": "string",
  • "ship_to_kind": "string",
  • "ship_to_name": "string",
  • "ship_to_phone_num": "string",
  • "ship_to_postcode": "string",
  • "ship_to_state": "string"
}

Allocation Rule

List allocation rules.

Returns a list of inventory allocation rules used during pick job creation.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
status
integer

1 = Active, 0 = Inactive

created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
sequence
integer

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "sequence": 0
}

Locating Rule

List locating rules.

Returns a list of put-away locating rules used during receipt processing.

Authorizations:
bearerAuth
query Parameters
expand
string

Relations to expand (e.g. allocationRule, locationSelection, location_selection, allocation_rule).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
special_rule
integer
status
integer

1 = Active, 0 = Inactive

created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
sequence
integer

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "special_rule": 0,
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "sequence": 0
}

Locations

List location classes.

Returns location class definitions (e.g. Bulk, Pick Face, Staging, Receiving Dock).

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
description
string
status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
system_created
boolean

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "system_created": true
}

List location types.

Returns location type definitions including physical dimensions and weight limits.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
length
number <double>
width
number <double>
height
number <double>
max_weight
number <double>
status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "length": 0.1,
  • "width": 0.1,
  • "height": 0.1,
  • "max_weight": 0.1,
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0
}

List locations.

Returns a paginated list of warehouse locations.

Authorizations:
bearerAuth
query Parameters
expand
string

Relations to expand.

per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

location_class_id
integer

Filter by location class ID.

location_type_id
integer

Filter by location type ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
location_code
string
description
string
warehouse_id
integer
status
boolean
allow_multiple_items
boolean
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
enable_license_plate
integer
location_type_id
integer
location_class_id
integer
allocation_zone_id
integer
work_zone_id
integer
locating_zone_id
integer
template_field_1
string
template_field_2
string
template_field_3
string
template_field_4
string
template_field_5
string
template_field_6
string
location_template_id
integer
check_digit
string
p_n_d_entry
integer
p_n_d_exit
integer
machine_id
integer
position_id
integer
pick_sequence
integer

Response samples

Content type
application/json
{
  • "id": 0,
  • "location_code": "string",
  • "description": "string",
  • "warehouse_id": 0,
  • "status": true,
  • "allow_multiple_items": true,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "enable_license_plate": 0,
  • "location_type_id": 0,
  • "location_class_id": 0,
  • "allocation_zone_id": 0,
  • "work_zone_id": 0,
  • "locating_zone_id": 0,
  • "template_field_1": "string",
  • "template_field_2": "string",
  • "template_field_3": "string",
  • "template_field_4": "string",
  • "template_field_5": "string",
  • "template_field_6": "string",
  • "location_template_id": 0,
  • "check_digit": "string",
  • "p_n_d_entry": 0,
  • "p_n_d_exit": 0,
  • "machine_id": 0,
  • "position_id": 0,
  • "pick_sequence": 0
}

Receipt

List receipt headers.

Returns a paginated list of inbound receipt headers.

Authorizations:
bearerAuth
query Parameters
updated_start_date
string <date-time>
Example: updated_start_date=2024-01-01T00:00

Filter by last updated date (from). Format: YYYY-MM-DDTHH:MM.

updated_end_date
string <date-time>

Filter by last updated date (to).

start_date
string <date>

Filter by expected receipt date (from). Format: YYYY-MM-DD.

end_date
string <date>

Filter by expected receipt date (to).

per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
receipt_type_id
integer
receipt_date
string <date>
company_id
integer
warehouse_id
integer
source_id
string

Vendor/supplier identifier.

source_address
string
source_city
string
source_state
string
source_zipcode
string
source_country_id
integer
leading_status
integer
trailing_status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
receipt_num
string

Unique receipt reference number.

order_number
string
start_date
string <date>
end_date
string <date>
company_integration_id
string
object

Expanded leading status details.

object

Expanded trailing status details.

Response samples

Content type
application/json
{
  • "id": 0,
  • "receipt_type_id": 0,
  • "receipt_date": "2019-08-24",
  • "company_id": 0,
  • "warehouse_id": 0,
  • "source_id": "string",
  • "source_address": "string",
  • "source_city": "string",
  • "source_state": "string",
  • "source_zipcode": "string",
  • "source_country_id": 0,
  • "leading_status": 0,
  • "trailing_status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "receipt_num": "string",
  • "order_number": "string",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "company_integration_id": "string",
  • "leadingStatus": {
    },
  • "trailingStatus": {
    }
}

Update receipt header by ID.

Updates a receipt header. Only headers in editable statuses can be modified.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Receipt header ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Fields to update.

id
integer
receipt_type_id
integer
receipt_date
string <date>
company_id
integer
warehouse_id
integer
source_id
string
source_address
string
source_city
string
source_state
string
source_zipcode
string
source_country_id
integer
order_number
string

Responses

Response Schema: application/json
id
integer
receipt_type_id
integer
receipt_date
string <date>
company_id
integer
warehouse_id
integer
source_id
string

Vendor/supplier identifier.

source_address
string
source_city
string
source_state
string
source_zipcode
string
source_country_id
integer
leading_status
integer
trailing_status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
receipt_num
string

Unique receipt reference number.

order_number
string
start_date
string <date>
end_date
string <date>
company_integration_id
string
object

Expanded leading status details.

object

Expanded trailing status details.

Request samples

Content type
application/json
{
  • "receipt_type_id": 1,
  • "receipt_date": "2023-08-17",
  • "company_id": 60,
  • "warehouse_id": 1,
  • "source_id": "VENDOR-001",
  • "source_address": "123 Supplier Street",
  • "source_city": "London",
  • "source_state": "England",
  • "source_zipcode": "EC1A 1BB",
  • "source_country_id": 236,
  • "order_number": "PO-2024-001"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "receipt_type_id": 0,
  • "receipt_date": "2019-08-24",
  • "company_id": 0,
  • "warehouse_id": 0,
  • "source_id": "string",
  • "source_address": "string",
  • "source_city": "string",
  • "source_state": "string",
  • "source_zipcode": "string",
  • "source_country_id": 0,
  • "leading_status": 0,
  • "trailing_status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "receipt_num": "string",
  • "order_number": "string",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "company_integration_id": "string",
  • "leadingStatus": {
    },
  • "trailingStatus": {
    }
}

List receipt details.

Returns a list of receipt detail (line item) records.

Authorizations:
bearerAuth
query Parameters
updated_start_date
string <date-time>

Filter by last updated date (from). Format: YYYY-MM-DDTHH:MM.

updated_end_date
string <date-time>

Filter by last updated date (to).

per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
receipt_header_id
integer
item_id
integer
quantity
integer
erp_order_line_number
integer
order_line_number
string
receipt_date
string <date>
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
open_quantity
integer
locating_rule_id
integer
line_item_id
integer
custom_field_1
string
custom_field_2
string

Response samples

Content type
application/json
{
  • "id": 0,
  • "receipt_header_id": 0,
  • "item_id": 0,
  • "quantity": 0,
  • "erp_order_line_number": 0,
  • "order_line_number": "string",
  • "receipt_date": "2019-08-24",
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "open_quantity": 0,
  • "locating_rule_id": 0,
  • "line_item_id": 0,
  • "custom_field_1": "string",
  • "custom_field_2": "string"
}

Update receipt details by ID.

Updates one or more receipt detail lines. Accepts a single object or an array for bulk updates.

Authorizations:
bearerAuth
query Parameters
id
integer

Receipt detail ID (used for single-record updates).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Receipt detail object or array of objects for bulk update.

One of
id
integer
receipt_header_id
integer
item_id
integer
quantity
integer
erp_order_line_number
integer
order_line_number
string
receipt_date
string <date>
open_quantity
integer
locating_rule_id
integer
line_item_id
integer
custom_field_1
string
custom_field_2
string
expected_batch_no
string
presale
integer

1 if this is a pre-sale allocation.

automatic_locating_assignment
integer

Set to 1 to auto-assign the locating rule.

Responses

Response Schema: application/json
id
integer
receipt_header_id
integer
item_id
integer
quantity
integer
erp_order_line_number
integer
order_line_number
string
receipt_date
string <date>
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
open_quantity
integer
locating_rule_id
integer
line_item_id
integer
custom_field_1
string
custom_field_2
string

Request samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": 0,
  • "receipt_header_id": 0,
  • "item_id": 0,
  • "quantity": 0,
  • "erp_order_line_number": 0,
  • "order_line_number": "string",
  • "receipt_date": "2019-08-24",
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "open_quantity": 0,
  • "locating_rule_id": 0,
  • "line_item_id": 0,
  • "custom_field_1": "string",
  • "custom_field_2": "string"
}

List receipt containers.

Returns receipt container records (physical units/pallets received).

Authorizations:
bearerAuth
query Parameters
updated_start_date
string <date-time>

Filter by last updated date (from).

updated_end_date
string <date-time>

Filter by last updated date (to).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
receipt_detail_id
integer
receipt_header_id
integer
item_id
integer
quantity
integer
batch_id
integer
license_plate_no
string
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
status_id
integer
to_location_id
integer
license_plate_assignment_method
integer
receiving_profile_id
integer
item_unit_of_measure_id
integer
job_id
integer
container_type_id
integer
receiving_dock_id
integer
job_instruction_id
integer
object

Response samples

Content type
application/json
{
  • "id": 0,
  • "receipt_detail_id": 0,
  • "receipt_header_id": 0,
  • "item_id": 0,
  • "quantity": 0,
  • "batch_id": 0,
  • "license_plate_no": "string",
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "status_id": 0,
  • "to_location_id": 0,
  • "license_plate_assignment_method": 0,
  • "receiving_profile_id": 0,
  • "item_unit_of_measure_id": 0,
  • "job_id": 0,
  • "container_type_id": 0,
  • "receiving_dock_id": 0,
  • "job_instruction_id": 0,
  • "status": {
    }
}

Create receipt.

Creates a new inbound receipt header, optionally with expected line items.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Receipt object.

company_id
required
integer
warehouse_id
required
integer
receipt_type_id
required
integer
receipt_date
string <date>
receipt_num
string

Unique receipt number. Auto-generated if omitted.

order_number
string
source_address
string
source_city
string
source_country_id
integer
source_id
string
source_state
string
source_zipcode
string
Array of objects or objects

Expected line items on this receipt.

Responses

Response Schema: application/json
id
integer
company_id
integer
receipt_date
string <date>
receipt_type_id
integer
receipt_num
string
order_number
string
source_address
string
source_city
string
source_country_id
integer
source_id
string
source_state
string
source_zipcode
string
warehouse_id
integer
leading_status
integer
trailing_status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer
object
object

Request samples

Content type
application/json
{
  • "company_id": 42,
  • "receipt_date": "2024-06-09",
  • "receipt_type_id": 1,
  • "receipt_num": "PO-2024-001",
  • "order_number": "12345",
  • "source_address": "123 Supplier Road",
  • "source_city": "Manchester",
  • "source_country_id": 236,
  • "source_id": "VENDOR-001",
  • "source_state": "England",
  • "source_zipcode": "M1 1AE",
  • "warehouse_id": 3,
  • "details": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "company_id": 0,
  • "receipt_date": "2019-08-24",
  • "receipt_type_id": 0,
  • "receipt_num": "string",
  • "order_number": "string",
  • "source_address": "string",
  • "source_city": "string",
  • "source_country_id": 0,
  • "source_id": "string",
  • "source_state": "string",
  • "source_zipcode": "string",
  • "warehouse_id": 0,
  • "leading_status": 0,
  • "trailing_status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0,
  • "leadingStatus": {
    },
  • "trailingStatus": {
    }
}

Delete receipt.

Deletes a receipt header by ID. Only receipts that have not yet been started can be deleted.

Authorizations:
bearerAuth
query Parameters
id
required
integer

Receipt header ID.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
status
integer

Response samples

Content type
application/json
{
  • "status": 202
}

List receipt types.

Returns available receipt type classifications (e.g. Purchase Order, Return).

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0
}

Shipment Header

Close shipments.

Closes (dispatches) one or more shipments. Moves shipments to Closed status and triggers consignment completion.

Authorizations:
bearerAuth
header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json
required

Array of shipments to close.

Array
shipment_number
required
string
company_id
required
integer
total_container
integer

Total number of parcels/containers for this shipment.

Responses

Response Schema: application/json
failed
string

Comma-separated list of shipment numbers that failed to close.

success
string

Comma-separated list of shipment numbers successfully closed.

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "failed": "string",
  • "success": "string"
}

Process Logs

Process history logs.

Returns a paginated audit trail of system process events (e.g. wave creation, job assignment, receipt processing).

Authorizations:
bearerAuth
query Parameters
start_date
string <date-time>
Example: start_date=2024-01-01 00:00:00

Filter by activity date (from). Format: YYYY-MM-DD HH:MM:SS.

end_date
string <date-time>

Filter by activity date (to).

company_id
integer

Filter by company ID.

reference
string

Filter by reference (e.g. shipment number, receipt number).

process
string

Filter by process name (e.g. SHIPMENT, RECEIPT, WAVE).

action
string

Filter by action (e.g. CREATE, UPDATE, DELETE).

per-page
integer
Default: 10

Number of results per page.

page
integer
Default: 1

Page number.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
process
string

Process name (e.g. SHIPMENT, RECEIPT, WAVE).

action
string

Action performed (e.g. CREATE, UPDATE, DELETE).

message
string
company_id
integer
identifier_1
string
identifier_2
string
identifier_3
string
identifier_4
string
data
Array of objects

Additional structured data associated with the log entry.

activity_date_time
string <date-time>
created_at
string <date-time>
updated_at
string <date-time>
application_id
string
reference
string
wave_id
integer
reason
string

Response samples

Content type
application/json
{
  • "process": "string",
  • "action": "string",
  • "message": "string",
  • "company_id": 0,
  • "identifier_1": "string",
  • "identifier_2": "string",
  • "identifier_3": "string",
  • "identifier_4": "string",
  • "data": [
    ],
  • "activity_date_time": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "application_id": "string",
  • "reference": "string",
  • "wave_id": 0,
  • "reason": "string"
}

Replenishment

List replenishment templates.

Returns replenishment template configurations used to trigger replenishment runs.

Authorizations:
bearerAuth
query Parameters
expand
string

Relations to expand (e.g. allocationRule, locationSelection, allocation_rule).

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Responses

Response Schema: application/json
id
integer
name
string
location_selection_id
integer
allocation_rule_id
integer
item_selection_id
integer
demand_id
integer
locating_rule_id
integer
status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Daily Pick Face Replenishment",
  • "location_selection_id": 1,
  • "allocation_rule_id": 2,
  • "status": 1,
  • "created_at": 1658219849,
  • "updated_at": 1658219849,
  • "created_by": 9,
  • "updated_by": 9,
  • "item_selection_id": 1,
  • "demand_id": 1,
  • "locating_rule_id": 2
}

Run replenishment template.

Triggers a replenishment run based on the specified template, generating jobs to move stock to pick faces.

Authorizations:
bearerAuth
query Parameters
template_id
required
integer

Replenishment template ID to run.

header Parameters
Origin
required
string
Example: https://your-tenant.example.com

The tenant's URL used for multi-tenant request isolation. Must match the URL of your Canary7 instance (e.g., https://your-tenant.example.com). Required on all requests.

Request Body schema: application/json

Optional additional parameters. Leave body empty if none required.

object

Responses

Response Schema: application/json
id
integer
name
string
location_selection_id
integer
allocation_rule_id
integer
item_selection_id
integer
demand_id
integer
locating_rule_id
integer
status
integer
created_at
integer

Unix timestamp

updated_at
integer

Unix timestamp

created_by
integer
updated_by
integer

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "location_selection_id": 0,
  • "allocation_rule_id": 0,
  • "item_selection_id": 0,
  • "demand_id": 0,
  • "locating_rule_id": 0,
  • "status": 0,
  • "created_at": 0,
  • "updated_at": 0,
  • "created_by": 0,
  • "updated_by": 0
}