Inventory Transfers
3 API calls in this section.
List Inventory Transfers
/warehousing/inventory-transfers?tenant_id={{tenant_id}}&source_warehouse_id=&destination_warehouse_id=&search=&page=1&limit=20Retrieves a paginated list of inventory transfers for the tenant. Authentication: Requires valid token with 'view:tenant' or 'manage:operations:tenant' or 'manage:module:warehouse' permission.
1curl --request GET "$ONDI_BASE_URL/warehousing/inventory-transfers?tenant_id={{tenant_id}}&source_warehouse_id=&destination_warehouse_id=&search=&page=1&limit=20" \2 --header "Authorization: Bearer {{access_token}}" \3 --header "Content-Type: application/json"Query parameters
tenant_idOptional{{tenant_id}}
UUID of the tenant (required)
source_warehouse_idOptionalFilter by source warehouse (optional)
destination_warehouse_idOptionalFilter by destination warehouse (optional)
searchOptionalSearch by reference number (optional)
pageOptional1
Page number (optional, default: 1)
limitOptional20
Items per page (optional, default: 20)
Headers
AuthorizationOptionalBearer {{access_token}}
Content-TypeOptionalapplication/json
Responses
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}1{2 "success": false,3 "message": "Tenant not found"4}Get Inventory Transfer
/warehousing/inventory-transfers/:transfer_id?tenant_id={{tenant_id}}Retrieves details of a specific inventory transfer including all linked inventory transactions. Authentication: Requires valid token with view or manage permissions.
1curl --request GET "$ONDI_BASE_URL/warehousing/inventory-transfers/:transfer_id?tenant_id={{tenant_id}}" \2 --header "Authorization: Bearer {{access_token}}" \3 --header "Content-Type: application/json"Path parameters
transfer_idRequiredUUID of the inventory transfer
Query parameters
tenant_idOptional{{tenant_id}}
UUID of the tenant (required)
Headers
AuthorizationOptionalBearer {{access_token}}
Content-TypeOptionalapplication/json
Responses
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 }18 ],19 "notes": "Internal stock rebalance",20 "performed_by": "user-uuid",21 "created_at": "2026-05-22T11:37:00Z",22 "source_warehouse": {23 "id": "wh-source-uuid",24 "name": "Warehouse A",25 "code": "WH-A"26 },27 "destination_warehouse": {28 "id": "wh-dest-uuid",29 "name": "Warehouse B",30 "code": "WH-B"31 },32 "performer": {33 "id": "user-uuid",34 "full_name": "John Doe"35 },36 "transactions": [37 {38 "id": "txn-uuid-1",39 "transaction_type": "transfer_out",40 "quantity": 10,41 "warehouse_id": "wh-source-uuid",42 "item": {43 "id": "item-uuid",44 "name": "Widget",45 "sku": "WDG-001"46 },47 "from_bin": {48 "id": "bin-source-uuid",49 "code": "A-01-01"50 },51 "to_bin": null52 },53 {54 "id": "txn-uuid-2",55 "transaction_type": "transfer_in",56 "quantity": 10,57 "warehouse_id": "wh-dest-uuid",58 "item": {59 "id": "item-uuid",60 "name": "Widget",61 "sku": "WDG-001"62 },63 "from_bin": null,64 "to_bin": {65 "id": "bin-dest-uuid",66 "code": "B-02-03"67 }68 }69 ]70 }71}1{2 "success": false,3 "message": "Not found"4}Create Inventory Transfer
/warehousing/inventory-transfers?tenant_id={{tenant_id}}Creates a cross-warehouse inventory stock transfer. Atomically decrements stock in the source warehouse and increments/creates stock in the destination warehouse. Authentication: Requires 'manage:operations:tenant' or 'manage:module:warehouse' permission. Request Body: - source_warehouse_id (required): UUID of the source warehouse - destination_warehouse_id (required): UUID of the destination warehouse (must differ from source) - reference_number (optional): Custom reference number (auto-generated if omitted) - notes (optional): Transfer notes - items (required, min 1): Array of transfer lines: - item_id (required): UUID of the inventory item - quantity (required): Positive integer quantity to transfer - source_bin_id (required): UUID of the bin in source warehouse - destination_bin_id (required): UUID of the bin in destination warehouse - lot_number (optional): Filter source stock by lot number - serial_number (optional): Filter source stock by serial number 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_stock - Increments or creates destination inventory_stock - Creates transfer_out + transfer_in inventory_transactions linked via reference_type='transfer'
1curl --request POST "$ONDI_BASE_URL/warehousing/inventory-transfers?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 "source_warehouse_id": "{{source_warehouse_id}}",7 "destination_warehouse_id": "{{destination_warehouse_id}}",8 "reference_number": "TR-000123",9 "notes": "Internal stock transfer",10 "items": [11 {12 "item_id": "item-uuid-1",13 "quantity": 10,14 "source_bin_id": "source-bin-uuid",15 "destination_bin_id": "dest-bin-uuid"16 },17 {18 "item_id": "item-uuid-2",19 "quantity": 5,20 "source_bin_id": "source-bin-uuid-2",21 "destination_bin_id": "dest-bin-uuid-2",22 "lot_number": "LOT-2026-A"23 }24 ]25}'1{2 "source_warehouse_id": "{{source_warehouse_id}}",3 "destination_warehouse_id": "{{destination_warehouse_id}}",4 "reference_number": "TR-000123",5 "notes": "Internal stock transfer",6 "items": [7 {8 "item_id": "item-uuid-1",9 "quantity": 10,10 "source_bin_id": "source-bin-uuid",11 "destination_bin_id": "dest-bin-uuid"12 },13 {14 "item_id": "item-uuid-2",15 "quantity": 5,16 "source_bin_id": "source-bin-uuid-2",17 "destination_bin_id": "dest-bin-uuid-2",18 "lot_number": "LOT-2026-A"19 }20 ]21}Query parameters
tenant_idOptional{{tenant_id}}
UUID of the tenant (required)
Request body fields
source_warehouse_idExampleExample field from the request body.
destination_warehouse_idExampleExample field from the request body.
reference_numberExampleExample field from the request body.
notesExampleExample field from the request body.
itemsExampleExample field from the request body.
items.item_idExampleExample field from the request body.
items.quantityExampleExample field from the request body.
items.source_bin_idExampleExample field from the request body.
items.destination_bin_idExampleExample field from the request body.
Headers
AuthorizationOptionalBearer {{access_token}}
Content-TypeOptionalapplication/json
Responses
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}1{2 "success": false,3 "message": "Source and destination must differ"4}1{2 "success": false,3 "message": "items[0]: insufficient stock (available: 5, requested: 10)"4}1{2 "success": false,3 "message": "Source warehouse not found"4}1{2 "success": false,3 "message": "items[0]: source_bin not found in source warehouse"4}1{2 "success": false,3 "message": "Insufficient permissions"4}