Inventory Transfers
3 API calls in this section.
Endpoints for managing cross-warehouse inventory stock transfers. Transfers atomically move stock from a source warehouse/bin to a destination warehouse/bin, creating paired inventory transactions for full traceability.
List Inventory Transfers
/warehousing/inventory-transfersRetrieves a paginated list of inventory transfers for the tenant.
Requires valid token with 'view:tenant' or 'manage:operations:tenant' or 'manage:module:warehouse' permission.
Query parameters
| Parameter | Type | Description |
|---|---|---|
tenant_idRequired | string | UUID of the tenant (required) Example: |
source_warehouse_idOptional | string | Filter by source warehouse (optional) |
destination_warehouse_idOptional | string | Filter by destination warehouse (optional) |
searchOptional | string | Search by reference number (optional) |
pageOptional | string | Page number (optional, default: 1) Example: |
limitOptional | string | Items per page (optional, default: 20) Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/warehousing/inventory-transfers?tenant_id=${TENANT_ID}&source_warehouse_id=&destination_warehouse_id=&search=&page=1&limit=20" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json"Response examples
1{2 "success": true,3 "message": "Inventory transfers retrieved successfully",4 "inventory_transfers": [5 {6 "id": "transfer-uuid-1",7 "tenant_id": "tenant-uuid",8 "reference_number": "TR-20260522-A1B2C3",9 "source_warehouse_id": "wh-source-uuid",10 "destination_warehouse_id": "wh-dest-uuid",11 "status": "completed",12 "items": [13 {14 "item_id": "item-uuid",15 "quantity": 10,16 "source_bin_id": "bin-source-uuid",17 "destination_bin_id": "bin-dest-uuid",18 "lot_number": null,19 "serial_number": null20 }21 ],22 "notes": "Internal stock rebalance",23 "performed_by": "user-uuid",24 "created_at": "2026-05-22T11:37:00Z",25 "source_warehouse": {26 "id": "wh-source-uuid",27 "name": "Warehouse A",28 "code": "WH-A"29 },30 "destination_warehouse": {31 "id": "wh-dest-uuid",32 "name": "Warehouse B",33 "code": "WH-B"34 },35 "performer": {36 "id": "user-uuid",37 "full_name": "John Doe"38 }39 }40 ],41 "page": 1,42 "limit": 20,43 "total": 144}Get Inventory Transfer
/warehousing/inventory-transfers/:transfer_idRetrieves details of a specific inventory transfer including all linked inventory transactions.
Requires valid token with view or manage permissions.
Path parameters
| Parameter | Type | Description |
|---|---|---|
transfer_idRequired | string | UUID of the inventory transfer |
Query parameters
| Parameter | Type | Description |
|---|---|---|
tenant_idRequired | string | UUID of the tenant (required) Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/warehousing/inventory-transfers/${TRANSFER_ID}?tenant_id=${TENANT_ID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json"Response examples
1{2 "success": true,3 "message": "Inventory transfer retrieved successfully",4 "inventory_transfer": {5 "id": "transfer-uuid-1",6 "tenant_id": "tenant-uuid",7 "reference_number": "TR-20260522-A1B2C3",8 "source_warehouse_id": "wh-source-uuid",9 "destination_warehouse_id": "wh-dest-uuid",10 "status": "completed",11 "items": [12 {13 "item_id": "item-uuid",14 "quantity": 10,15 "source_bin_id": "bin-source-uuid",16 "destination_bin_id": "bin-dest-uuid",17 "lot_number": null,18 "serial_number": null,19 "item": {20 "id": "item-uuid",21 "name": "Widget",22 "sku": "WDG-001",23 "barcode": "INV12345",24 "brand": "Acme",25 "model": "Pro",26 "unit_size": 1,27 "is_active": true28 },29 "source_bin": {30 "id": "bin-source-uuid",31 "code": "A-01-01",32 "name": "Aisle A - Shelf 1"33 },34 "destination_bin": {35 "id": "bin-dest-uuid",36 "code": "B-02-03",37 "name": "Aisle B - Shelf 2"38 }39 }40 ],41 "notes": "Internal stock rebalance",42 "performed_by": "user-uuid",43 "created_at": "2026-05-22T11:37:00Z",44 "source_warehouse": {45 "id": "wh-source-uuid",46 "name": "Warehouse A",47 "code": "WH-A"48 },49 "destination_warehouse": {50 "id": "wh-dest-uuid",51 "name": "Warehouse B",52 "code": "WH-B"53 },54 "performer": {55 "id": "user-uuid",56 "full_name": "John Doe"57 },58 "transactions": [59 {60 "id": "txn-uuid-1",61 "transaction_type": "transfer_out",62 "quantity": 10,63 "warehouse_id": "wh-source-uuid",64 "item": {65 "id": "item-uuid",66 "name": "Widget",67 "sku": "WDG-001"68 },69 "from_bin": {70 "id": "bin-source-uuid",71 "code": "A-01-01"72 },73 "to_bin": null74 },75 {76 "id": "txn-uuid-2",77 "transaction_type": "transfer_in",78 "quantity": 10,79 "warehouse_id": "wh-dest-uuid",80 "item": {81 "id": "item-uuid",82 "name": "Widget",83 "sku": "WDG-001"84 },85 "from_bin": null,86 "to_bin": {87 "id": "bin-dest-uuid",88 "code": "B-02-03"89 }90 }91 ]92 }93}Create Inventory Transfer
/warehousing/inventory-transfersCreates a cross-warehouse inventory stock transfer. Atomically decrements stock in the source warehouse and increments/creates stock in the destination warehouse.
Requires 'manage:operations:tenant' or 'manage:module:warehouse' permission.
Behavior
Validates both warehouses exist and belong to the tenant
Validates source bins belong to source warehouse, destination bins to destination warehouse
Checks available stock quantity at source
Decrements source
inventory_stockIncrements or creates destination
inventory_stockCreates
transfer_out+transfer_ininventory_transactionslinked viareference_type='transfer'
Query parameters
| Parameter | Type | Description |
|---|---|---|
tenant_idRequired | string | UUID of the tenant (required) Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
source_warehouse_idRequired | string | UUID of the source warehouse |
destination_warehouse_idRequired | string | UUID of the destination warehouse (must differ from source) |
reference_numberOptional | string | Custom reference number (auto-generated if omitted) |
notesOptional | string | Transfer notes |
itemsRequired | array<object> | (required, min 1): Array of transfer lines: |
items.item_idRequired | string | UUID of the inventory item |
items.quantityRequired | number | Positive integer quantity to transfer |
items.source_bin_idRequired | string | UUID of the bin in source warehouse |
items.destination_bin_idRequired | string | UUID of the bin in destination warehouse |
items.lot_numberOptional | string | Filter source stock by lot number |
items.serial_numberOptional | string | Filter source stock by serial number |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/warehousing/inventory-transfers?tenant_id=${TENANT_ID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "source_warehouse_id": "{{source_warehouse_id}}",6 "destination_warehouse_id": "{{destination_warehouse_id}}",7 "reference_number": "TR-000123",8 "notes": "Internal stock transfer",9 "items": [10 {11 "item_id": "item-uuid-1",12 "quantity": 10,13 "source_bin_id": "source-bin-uuid",14 "destination_bin_id": "dest-bin-uuid"15 },16 {17 "item_id": "item-uuid-2",18 "quantity": 5,19 "source_bin_id": "source-bin-uuid-2",20 "destination_bin_id": "dest-bin-uuid-2",21 "lot_number": "LOT-2026-A"22 }23 ]24}'Replace {{placeholders}} with your own values before sending.
Response examples
1{2 "success": true,3 "message": "Inventory transfer created successfully",4 "inventory_transfer": {5 "id": "transfer-uuid-1",6 "tenant_id": "tenant-uuid",7 "reference_number": "TR-20260522-A1B2C3",8 "source_warehouse_id": "wh-source-uuid",9 "destination_warehouse_id": "wh-dest-uuid",10 "status": "completed",11 "items": [12 {13 "item_id": "item-uuid-1",14 "quantity": 10,15 "source_bin_id": "source-bin-uuid",16 "destination_bin_id": "dest-bin-uuid",17 "lot_number": null,18 "serial_number": null19 }20 ],21 "notes": "Internal stock transfer",22 "performed_by": "user-uuid",23 "created_at": "2026-05-22T11:37:00Z"24 }25}