Process and consolidate picks
curl --request POST \
--url https://clarus-api.com/api/goods_out_processes/process_and_consolidate_picks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Clarus-Subdomain: <api-key>' \
--data '
{
"ids": [
1,
2,
3
]
}
'import requests
url = "https://clarus-api.com/api/goods_out_processes/process_and_consolidate_picks"
payload = { "ids": [1, 2, 3] }
headers = {
"Authorization": "Bearer <token>",
"X-Clarus-Subdomain": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-Clarus-Subdomain': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({ids: [1, 2, 3]})
};
fetch('https://clarus-api.com/api/goods_out_processes/process_and_consolidate_picks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"process_references": [
"abc123def456"
]
}{
"error": "<string>"
}{
"errors": [
{
"code": 123,
"symbol": "<string>",
"details": "<string>",
"source": "<string>",
"context": {}
}
]
}Goods Out: Pick Lists
Process and consolidate picks
Process multiple goods out orders into a single consolidated pick list. All orders must have the same pick_type (standard or tote). Crossdock orders are always processed separately.
POST
/
api
/
goods_out_processes
/
process_and_consolidate_picks
Process and consolidate picks
curl --request POST \
--url https://clarus-api.com/api/goods_out_processes/process_and_consolidate_picks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Clarus-Subdomain: <api-key>' \
--data '
{
"ids": [
1,
2,
3
]
}
'import requests
url = "https://clarus-api.com/api/goods_out_processes/process_and_consolidate_picks"
payload = { "ids": [1, 2, 3] }
headers = {
"Authorization": "Bearer <token>",
"X-Clarus-Subdomain": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-Clarus-Subdomain': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({ids: [1, 2, 3]})
};
fetch('https://clarus-api.com/api/goods_out_processes/process_and_consolidate_picks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"process_references": [
"abc123def456"
]
}{
"error": "<string>"
}{
"errors": [
{
"code": 123,
"symbol": "<string>",
"details": "<string>",
"source": "<string>",
"context": {}
}
]
}Request Structure
{
"ids": [101, 102, 103],
"goods_out_pick_list_attributes": {
"goods_out_pick_list_reference": "BATCH-2024-001",
"expected_date_of_dispatch": "2024-01-20T14:00:00Z",
"goods_out_bay_id": 42
}
}
Key Fields
| Field | Required | Description |
|---|---|---|
ids | Yes | Array of goods out order IDs to consolidate |
goods_out_pick_list_attributes | No | Optional attributes for the created pick list |
goods_out_pick_list_reference | No | Custom reference for the consolidated pick list |
expected_date_of_dispatch | No | Target dispatch date for the pick list |
goods_out_bay_id | No | Staging location ID (must be location_type: GOBAY) |
Prerequisites
- Orders must be in PENDING or ALLOCATED status
- All orders must have the same
pick_type(standard or tote)
Behavior
- Returns process_references for tracking pick list generation
- Merges multiple orders into a single consolidated pick list
- Crossdock orders are always processed separately (not consolidated)
- Sales orders and work orders can be consolidated together if same pick_type
Tracking Status
Poll for completion via GraphQL:query {
pickProcessingRequests(filter: { process_reference: { eq: "abc123def456" } }) {
edges {
node {
id
status
process_reference
message
}
}
}
}
pending, completed, failed
Error Codes
| Code | Symbol | Description |
|---|---|---|
| 36 | empty_ids_provided | No order IDs provided |
| 37 | invalid_ids_provided | Some IDs do not exist |
| 39 | not_enough_stocks_for_picking | Insufficient stock available |
| 59 | goods_out_already_allocated | Order already processed |
| 318 | goods_outs_with_different_pick_types_cannot_be_consolidated | Mixed pick types in batch |
Authorizations
OAuth 2.0 authentication. Use the client credentials or authorization code flow to obtain an access token.
FlowAuthorization Code
- Authorization URL
- https://clarus-api.com/oauth/authorize
- Token URL
- https://clarus-api.com/oauth/token
FlowClient Credentials
- Token URL
- https://clarus-api.com/oauth/token
The subdomain/tenant name identifying which tenant's data to access. Required for all API requests.
Body
application/json
Response
Pick processing queued successfully
Response containing process references for tracking pick processing status
Array of process reference strings for tracking the queued pick processing jobs via GraphQL

