Skip to main content

Picking Orders

4 API calls in this section.

List Picking Orders

Warehousing / Picking Orders
GET/warehousing/picking-orders?tenant_id={{tenant_id}}&warehouse_id=&status=&order_type=&priority=&completed=&search=&page=1&limit=20
Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/warehousing/picking-orders?tenant_id={{tenant_id}}&warehouse_id=&status=&order_type=&priority=&completed=&search=&page=1&limit=20" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json"

Query parameters

tenant_idOptional
query string

{{tenant_id}}

UUID of the tenant (required if not in auth)

warehouse_idOptional
query string

Filter by specific warehouse UUID (optional)

statusOptional
query string

Filter by order status: pending, in_progress, completed, cancelled (optional)

order_typeOptional
query string

Filter by order type: individual, batch, waybill (optional)

priorityOptional
query string

Sort by priority: asc or desc (optional)

completedOptional
query string

Filter by completion status: true (completed), false (not completed) (optional)

searchOptional
query string

Search by reference number (case insensitive) (optional)

pageOptional
query string

1

Page number for pagination (optional, default: 1)

limitOptional
query string

20

Number of items per page (optional, default: 20, max: 100)

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success Response200
Response body
json
1{2  "success": true,3  "message": "Picking orders retrieved successfully",4  "orders": [5    {6      "id": "01234567-89ab-cdef-0123-456789abcdef",7      "tenant_id": "f6a1b2c3-d4e5-4321-8901-f1234567890a",8      "warehouse_id": "w1e2f3a4-b5c6-7890-1234-56789abcdef0",9      "reference_number": "PKO-00001",10      "external_reference": "ORD-2024-001",11      "order_type": "individual",12      "priority": 1,13      "status": "pending",14      "due_date": "2024-01-15T10:00:00Z",15      "completed_date": null,16      "item_details": [17        {18          "item_id": "i1e2f3a4-b5c6-7890-1234-56789abcdef0",19          "bin_id": "l1e2f3a4-b5c6-7890-1234-56789abcdef0",20          "quantity": 10,21          "picked_quantity": 0,22          "status": "pending"23        }24      ],25      "picking_progress": {26        "total_items": 10,27        "picked_items": 0,28        "start_time": null,29        "end_time": null,30        "picker_notes": ""31      },32      "notes": "Express shipment for VIP customer",33      "assigned_to": "u1e2f3a4-b5c6-7890-1234-56789abcdef0",34      "created_by": "admin-uuid-1234",35      "created_at": "2024-01-10T10:00:00Z",36      "updated_at": "2024-01-10T10:00:00Z",37      "created_by_user": {38        "id": "admin-uuid-1234",39        "full_name": "Admin User"40      },41      "assigned_to_user": {42        "id": "u1e2f3a4-b5c6-7890-1234-56789abcdef0",43        "full_name": "John Picker"44      },45      "warehouse": {46        "id": "w1e2f3a4-b5c6-7890-1234-56789abcdef0",47        "name": "Main Warehouse",48        "code": "WH001"49      }50    }51  ],52  "status_matrix": {53    "pending": 5,54    "in_progress": 2,55    "completed": 10,56    "handed_off": 3,57    "cancelled": 1,58    "total": 2159  },60  "page": 1,61  "limit": 20,62  "total": 163}
Error - Tenant Not Found404
Response body
json
1{2  "success": false,3  "message": "Tenant not found"4}
Error - Insufficient Permissions403
Response body
json
1{2  "success": false,3  "message": "Insufficient permissions"4}
Error - Server Error500
Response body
json
1{2  "success": false,3  "message": "Internal server error"4}

Create Picking Order

Warehousing / Picking Orders
POST/warehousing/picking-orders?tenant_id={{tenant_id}}
Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request POST "$ONDI_BASE_URL/warehousing/picking-orders?tenant_id={{tenant_id}}" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "warehouse_id": "{{warehouse_id}}",7  "reference_number": "PKO-00012",8  "external_reference": "EXT-12345",9  "order_type": "individual",10  "priority": 1,11  "status": "pending",12  "item_details": [13    {14      "item_id": "{{item_id_1}}",15      "bin_id": "{{bin_id_1}}",16      "quantity": 10,17      "picked_quantity": 0,18      "status": "pending"19    },20    {21      "item_id": "{{item_id_2}}",22      "bin_id": "{{bin_id_2}}",23      "quantity": 5,24      "picked_quantity": 0,25      "status": "pending"26    }27  ],28  "picking_progress": {29    "total_items": 15,30    "picked_items": 0,31    "start_time": null,32    "end_time": null,33    "picker_notes": ""34  },35  "notes": "Express shipment for VIP customer",36  "assigned_to": "{{user_id}}",37  "due_date": "2023-07-01T10:00:00Z"38}'
Request body
json
1{2  "warehouse_id": "{{warehouse_id}}",3  "reference_number": "PKO-00012",4  "external_reference": "EXT-12345",5  "order_type": "individual",6  "priority": 1,7  "status": "pending",8  "item_details": [9    {10      "item_id": "{{item_id_1}}",11      "bin_id": "{{bin_id_1}}",12      "quantity": 10,13      "picked_quantity": 0,14      "status": "pending"15    },16    {17      "item_id": "{{item_id_2}}",18      "bin_id": "{{bin_id_2}}",19      "quantity": 5,20      "picked_quantity": 0,21      "status": "pending"22    }23  ],24  "picking_progress": {25    "total_items": 15,26    "picked_items": 0,27    "start_time": null,28    "end_time": null,29    "picker_notes": ""30  },31  "notes": "Express shipment for VIP customer",32  "assigned_to": "{{user_id}}",33  "due_date": "2023-07-01T10:00:00Z"34}

Query parameters

tenant_idOptional
query string

{{tenant_id}}

UUID of the tenant (required if not in auth)

Request body fields

warehouse_idExample
string

Example field from the request body.

reference_numberExample
string

Example field from the request body.

external_referenceExample
string

Example field from the request body.

order_typeExample
string

Example field from the request body.

priorityExample
number

Example field from the request body.

statusExample
string

Example field from the request body.

item_detailsExample
array<object>

Example field from the request body.

item_details.item_idExample
string

Example field from the request body.

item_details.bin_idExample
string

Example field from the request body.

item_details.quantityExample
number

Example field from the request body.

item_details.picked_quantityExample
number

Example field from the request body.

item_details.statusExample
string

Example field from the request body.

picking_progressExample
object

Example field from the request body.

picking_progress.total_itemsExample
number

Example field from the request body.

picking_progress.picked_itemsExample
number

Example field from the request body.

picking_progress.start_timeExample
null

Example field from the request body.

picking_progress.end_timeExample
null

Example field from the request body.

picking_progress.picker_notesExample
string

Example field from the request body.

notesExample
string

Example field from the request body.

assigned_toExample
string

Example field from the request body.

due_dateExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success Response201
Response body
json
1{2  "success": true,3  "message": "Picking order created successfully",4  "order": {5    "id": "order-uuid",6    "tenant_id": "tenant-uuid",7    "warehouse_id": "warehouse-uuid",8    "reference_number": "PKO-00012",9    "external_reference": "EXT-12345",10    "order_type": "individual",11    "priority": 1,12    "status": "pending",13    "item_details": [14      {15        "item_id": "item-uuid-1",16        "bin_id": "bin-uuid-1",17        "quantity": 10,18        "picked_quantity": 0,19        "status": "pending"20      },21      {22        "item_id": "item-uuid-2",23        "bin_id": "bin-uuid-2",24        "quantity": 5,25        "picked_quantity": 0,26        "status": "pending"27      }28    ],29    "picking_progress": {30      "total_items": 15,31      "picked_items": 0,32      "start_time": null,33      "end_time": null,34      "picker_notes": ""35    },36    "notes": "Express shipment for VIP customer",37    "assigned_to": "user-uuid",38    "due_date": "2023-07-01T10:00:00Z",39    "created_by": "admin-uuid",40    "created_at": "2023-06-01T10:00:00Z",41    "updated_at": "2023-06-01T10:00:00Z"42  }43}
Error - Missing Required Field400
Response body
json
1{2  "success": false,3  "message": "Field required: warehouse_id"4}
Error - Invalid Order Type400
Response body
json
1{2  "success": false,3  "message": "Must be one of: individual, batch, waybill"4}
Error - Invalid Status400
Response body
json
1{2  "success": false,3  "message": "Invalid status: unknown. Must be one of: pending, in_progress, completed, cancelled"4}
Error - Invalid Item Details400
Response body
json
1{2  "success": false,3  "message": "Item details must be a non-empty array"4}
Error - Missing Item Fields400
Response body
json
1{2  "success": false,3  "message": "Each item must have item_id, quantity, and bin_id"4}
Error - Invalid Quantity400
Response body
json
1{2  "success": false,3  "message": "Quantity must be positive (item_id: item-uuid-1)"4}
Error - Insufficient Stock400
Response body
json
1{2  "success": false,3  "message": "Insufficient stock (item_id: item-uuid-1, bin_id: bin-uuid-1, available: 5, requested: 10)"4}
Error - Item Not Found404
Response body
json
1{2  "success": false,3  "message": "Item not found (item_id: item-uuid-1)"4}
Error - Item Not In Bin404
Response body
json
1{2  "success": false,3  "message": "Item not in specified bin (item_id: item-uuid-1, bin_id: bin-uuid-1)"4}
Error - Bin Not Found404
Response body
json
1{2  "success": false,3  "message": "Bin not found (bin_id: bin-uuid-1)"4}
Error - Warehouse Not Found404
Response body
json
1{2  "success": false,3  "message": "Warehouse not found"4}
Error - Assigned User Not Found404
Response body
json
1{2  "success": false,3  "message": "Assigned user not found"4}
Error - Tenant Not Found404
Response body
json
1{2  "success": false,3  "message": "Tenant not found"4}
Error - Insufficient Permissions403
Response body
json
1{2  "success": false,3  "message": "Insufficient permissions"4}
Error - Server Error500
Response body
json
1{2  "success": false,3  "message": "Internal server error"4}

Get Picking Order

Warehousing / Picking Orders
GET/warehousing/picking-orders/:id?tenant_id={{tenant_id}}
Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/warehousing/picking-orders/:id?tenant_id={{tenant_id}}" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json"

Path parameters

idRequired
path string

UUID of the picking order to retrieve (required)

Query parameters

tenant_idOptional
query string

{{tenant_id}}

UUID of the tenant (required if not in auth)

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success Response200
Response body
json
1{2  "success": true,3  "message": "Picking order retrieved successfully",4  "order": {5    "id": "order-uuid",6    "tenant_id": "tenant-uuid",7    "warehouse_id": "warehouse-uuid",8    "reference_number": "PKO-00012",9    "external_reference": "EXT-12345",10    "order_type": "individual",11    "priority": 1,12    "status": "pending",13    "item_details": [14      {15        "item_id": "item-uuid-1",16        "bin_id": "bin-uuid-1",17        "quantity": 10,18        "picked_quantity": 0,19        "status": "pending"20      },21      {22        "item_id": "item-uuid-2",23        "bin_id": "bin-uuid-2",24        "quantity": 5,25        "picked_quantity": 0,26        "status": "pending"27      }28    ],29    "picking_progress": {30      "total_items": 15,31      "picked_items": 0,32      "start_time": null,33      "end_time": null,34      "picker_notes": ""35    },36    "notes": "Express shipment for VIP customer",37    "assigned_to": "user-uuid",38    "due_date": "2023-07-01T10:00:00Z",39    "created_by": "admin-uuid",40    "created_at": "2023-06-01T10:00:00Z",41    "updated_at": "2023-06-01T10:00:00Z",42    "warehouse": {43      "id": "warehouse-uuid",44      "name": "Main Warehouse",45      "code": "WH001"46    },47    "created_by_user": {48      "id": "admin-uuid",49      "first_name": "Admin",50      "last_name": "User",51      "email": "admin@example.com"52    },53    "assigned_to_user": {54      "id": "user-uuid",55      "first_name": "John",56      "last_name": "Picker",57      "email": "john.picker@example.com"58    }59  }60}
Error - Order ID Required400
Response body
json
1{2  "success": false,3  "message": "Picking order ID required"4}
Error - Order Not Found404
Response body
json
1{2  "success": false,3  "message": "Picking order not found"4}
Error - Tenant Not Found404
Response body
json
1{2  "success": false,3  "message": "Tenant not found"4}
Error - Insufficient Permissions403
Response body
json
1{2  "success": false,3  "message": "Insufficient permissions"4}
Error - Server Error500
Response body
json
1{2  "success": false,3  "message": "Internal server error"4}

Update Picking Order

Warehousing / Picking Orders
PUT/warehousing/picking-orders/:id?tenant_id={{tenant_id}}
Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request PUT "$ONDI_BASE_URL/warehousing/picking-orders/:id?tenant_id={{tenant_id}}" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "status": "in_progress",7  "assigned_to": "{{new_user_id}}",8  "item_details": [9    {10      "item_id": "{{item_id_1}}",11      "bin_id": "{{bin_id_1}}",12      "quantity": 10,13      "picked_quantity": 5,14      "status": "in_progress"15    },16    {17      "item_id": "{{item_id_2}}",18      "bin_id": "{{bin_id_2}}",19      "quantity": 5,20      "picked_quantity": 3,21      "status": "in_progress"22    }23  ],24  "picking_progress": {25    "total_items": 15,26    "picked_items": 8,27    "start_time": "2023-06-01T11:00:00Z",28    "end_time": null,29    "picker_notes": "In progress, some items located"30  },31  "notes": "Updated priority for this order",32  "due_date": "2023-06-30T10:00:00Z"33}'
Request body
json
1{2  "status": "in_progress",3  "assigned_to": "{{new_user_id}}",4  "item_details": [5    {6      "item_id": "{{item_id_1}}",7      "bin_id": "{{bin_id_1}}",8      "quantity": 10,9      "picked_quantity": 5,10      "status": "in_progress"11    },12    {13      "item_id": "{{item_id_2}}",14      "bin_id": "{{bin_id_2}}",15      "quantity": 5,16      "picked_quantity": 3,17      "status": "in_progress"18    }19  ],20  "picking_progress": {21    "total_items": 15,22    "picked_items": 8,23    "start_time": "2023-06-01T11:00:00Z",24    "end_time": null,25    "picker_notes": "In progress, some items located"26  },27  "notes": "Updated priority for this order",28  "due_date": "2023-06-30T10:00:00Z"29}

Path parameters

idRequired
path string

UUID of the picking order to retrieve (required)

Query parameters

tenant_idOptional
query string

{{tenant_id}}

UUID of the tenant (required if not in auth)

Request body fields

statusExample
string

Example field from the request body.

assigned_toExample
string

Example field from the request body.

item_detailsExample
array<object>

Example field from the request body.

item_details.item_idExample
string

Example field from the request body.

item_details.bin_idExample
string

Example field from the request body.

item_details.quantityExample
number

Example field from the request body.

item_details.picked_quantityExample
number

Example field from the request body.

item_details.statusExample
string

Example field from the request body.

picking_progressExample
object

Example field from the request body.

picking_progress.total_itemsExample
number

Example field from the request body.

picking_progress.picked_itemsExample
number

Example field from the request body.

picking_progress.start_timeExample
string

Example field from the request body.

picking_progress.end_timeExample
null

Example field from the request body.

picking_progress.picker_notesExample
string

Example field from the request body.

notesExample
string

Example field from the request body.

due_dateExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success Response200
Response body
json
1{2  "success": true,3  "message": "Picking order updated successfully",4  "order": {5    "id": "order-uuid",6    "tenant_id": "tenant-uuid",7    "warehouse_id": "warehouse-uuid",8    "reference_number": "PKO-00012",9    "external_reference": "EXT-12345",10    "order_type": "individual",11    "priority": 1,12    "status": "in_progress",13    "item_details": [14      {15        "item_id": "item-uuid-1",16        "bin_id": "bin-uuid-1",17        "quantity": 10,18        "picked_quantity": 5,19        "status": "in_progress"20      },21      {22        "item_id": "item-uuid-2",23        "bin_id": "bin-uuid-2",24        "quantity": 5,25        "picked_quantity": 3,26        "status": "in_progress"27      }28    ],29    "picking_progress": {30      "total_items": 15,31      "picked_items": 8,32      "start_time": "2023-06-01T11:00:00Z",33      "end_time": null,34      "picker_notes": "In progress, some items located"35    },36    "notes": "Updated priority for this order",37    "due_date": "2023-06-30T10:00:00Z",38    "created_by": "admin-uuid",39    "created_at": "2023-06-01T10:00:00Z",40    "updated_at": "2023-06-01T10:00:00Z",41    "warehouse": {42      "id": "warehouse-uuid",43      "name": "Main Warehouse",44      "code": "WH001"45    },46    "created_by_user": {47      "id": "admin-uuid",48      "first_name": "Admin",49      "last_name": "User",50      "email": "admin@example.com"51    },52    "assigned_to_user": {53      "id": "user-uuid",54      "first_name": "John",55      "last_name": "Picker",56      "email": "john.picker@example.com"57    }58  }59}
Error - Order ID Required400
Response body
json
1{2  "success": false,3  "message": "Picking order ID required"4}
Error - Order Not Found404
Response body
json
1{2  "success": false,3  "message": "Picking order not found"4}
Error - Tenant Not Found404
Response body
json
1{2  "success": false,3  "message": "Tenant not found"4}
Error - Insufficient Permissions403
Response body
json
1{2  "success": false,3  "message": "Insufficient permissions"4}
Error - Server Error500
Response body
json
1{2  "success": false,3  "message": "Internal server error"4}