Bin Transfer API
Transfer inventory between bins within the same location for warehouse reorganization and optimization.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /record/v1/binTransfer | Retrieve list of bin transfers |
| GET | /record/v1/binTransfer/{id} | Retrieve a specific bin transfer |
| POST | /record/v1/binTransfer | Create a new bin transfer |
| PATCH | /record/v1/binTransfer/{id} | Update an existing bin transfer |
| DELETE | /record/v1/binTransfer/{id} | Delete a bin transfer |
Key Fields
Header Fields
| Field | Type | Description | Required |
|---|---|---|---|
tranDate | Date | Transaction date | Yes |
location | Object | Location reference {"id": "1"} | Yes |
subsidiary | Object | Subsidiary reference | No |
memo | String | Transaction memo/description | No |
tranId | String | Transaction number (auto-generated if not provided) | No |
Line Item Fields (item.items)
| Field | Type | Description | Required |
|---|---|---|---|
item | Object | Item reference {"id": "789"} | Yes |
quantity | Number | Total quantity to transfer | Yes |
fromBins | Object | Source bin assignments | Yes |
toBins | Object | Destination bin assignments | Yes |
description | String | Line item description | No |
inventoryDetail | Object | Lot/serial number details (if applicable) | No |
Bin Sublist Fields (fromBins.items / toBins.items)
| Field | Type | Description | Required |
|---|---|---|---|
binNumber | Object | Bin reference {"id": "10"} | Yes |
quantity | Number | Quantity in this bin | Yes |
Example: Create Bin Transfer
Request
POST /record/v1/binTransfer
Content-Type: application/json
{
"tranDate": "2025-12-25",
"location": {"id": "1"},
"memo": "Reorganize bins - Move items from bulk to pick locations",
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 25,
"description": "Widget A - Move to pick bin",
"fromBins": {
"items": [
{
"binNumber": {"id": "10"},
"quantity": 25
}
]
},
"toBins": {
"items": [
{
"binNumber": {"id": "11"},
"quantity": 25
}
]
}
}
]
}
}
Response
{
"id": "67890",
"tranDate": "2025-12-25",
"tranId": "BINXFR-2025-001",
"location": {
"id": "1",
"refName": "Main Warehouse"
},
"memo": "Reorganize bins - Move items from bulk to pick locations",
"item": {
"items": [
{
"item": {
"id": "789",
"refName": "Widget A"
},
"quantity": 25,
"description": "Widget A - Move to pick bin",
"fromBins": {
"items": [
{
"binNumber": {
"id": "10",
"refName": "BULK-A-001"
},
"quantity": 25
}
]
},
"toBins": {
"items": [
{
"binNumber": {
"id": "11",
"refName": "PICK-A-001"
},
"quantity": 25
}
]
}
}
]
},
"links": [
{
"rel": "self",
"href": "https://{{account}}.suitetalk.api.netsuite.com/services/rest/record/v1/binTransfer/67890"
}
]
}
Example: Multi-Bin Transfer
Transfer from multiple source bins to multiple destination bins:
Request
POST /record/v1/binTransfer
Content-Type: application/json
{
"tranDate": "2025-12-25",
"location": {"id": "1"},
"memo": "Consolidate inventory from multiple bins",
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 100,
"description": "Widget A - Consolidation",
"fromBins": {
"items": [
{
"binNumber": {"id": "10"},
"quantity": 50
},
{
"binNumber": {"id": "12"},
"quantity": 30
},
{
"binNumber": {"id": "13"},
"quantity": 20
}
]
},
"toBins": {
"items": [
{
"binNumber": {"id": "11"},
"quantity": 80
},
{
"binNumber": {"id": "14"},
"quantity": 20
}
]
}
}
]
}
}
Response
{
"id": "67891",
"tranDate": "2025-12-25",
"tranId": "BINXFR-2025-002",
"location": {
"id": "1",
"refName": "Main Warehouse"
},
"memo": "Consolidate inventory from multiple bins",
"item": {
"items": [
{
"item": {
"id": "789",
"refName": "Widget A"
},
"quantity": 100,
"description": "Widget A - Consolidation"
}
]
},
"links": [
{
"rel": "self",
"href": "https://{{account}}.suitetalk.api.netsuite.com/services/rest/record/v1/binTransfer/67891"
}
]
}
Example: Update Bin Transfer
Request
PATCH /record/v1/binTransfer/67890
Content-Type: application/json
{
"memo": "Reorganize bins - Move items from bulk to pick locations - Updated"
}
Response
{
"id": "67890",
"memo": "Reorganize bins - Move items from bulk to pick locations - Updated",
"links": [
{
"rel": "self",
"href": "https://{{account}}.suitetalk.api.netsuite.com/services/rest/record/v1/binTransfer/67890"
}
]
}
Sublists/Line Items
Item Sublist Structure
The item.items array contains bin transfer line items. Each line represents an item being moved between bins.
{
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 25,
"fromBins": {
"items": [
{"binNumber": {"id": "10"}, "quantity": 25}
]
},
"toBins": {
"items": [
{"binNumber": {"id": "11"}, "quantity": 25}
]
}
}
]
}
}
With Lot/Serial Numbers
For lot or serial tracked items, specify inventory details:
{
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 50,
"fromBins": {
"items": [
{"binNumber": {"id": "10"}, "quantity": 50}
]
},
"toBins": {
"items": [
{"binNumber": {"id": "11"}, "quantity": 50}
]
},
"inventoryDetail": {
"items": [
{
"inventoryNumber": {"id": "500"},
"quantity": 25,
"fromBins": {
"items": [
{"binNumber": {"id": "10"}, "quantity": 25}
]
},
"toBins": {
"items": [
{"binNumber": {"id": "11"}, "quantity": 25}
]
}
},
{
"inventoryNumber": {"id": "501"},
"quantity": 25,
"fromBins": {
"items": [
{"binNumber": {"id": "10"}, "quantity": 25}
]
},
"toBins": {
"items": [
{"binNumber": {"id": "11"}, "quantity": 25}
]
}
}
]
}
}
]
}
}
Multiple Items Transfer
Transfer multiple items in a single transaction:
{
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 25,
"fromBins": {
"items": [{"binNumber": {"id": "10"}, "quantity": 25}]
},
"toBins": {
"items": [{"binNumber": {"id": "11"}, "quantity": 25}]
}
},
{
"item": {"id": "790"},
"quantity": 15,
"fromBins": {
"items": [{"binNumber": {"id": "12"}, "quantity": 15}]
},
"toBins": {
"items": [{"binNumber": {"id": "13"}, "quantity": 15}]
}
}
]
}
}
Query Filters
Filter by Date Range
GET /record/v1/binTransfer?q=tranDate BETWEEN '2025-01-01' AND '2025-12-31'
Filter by Location
GET /record/v1/binTransfer?q=location.id = 1
Filter by Transaction ID
GET /record/v1/binTransfer?q=tranId = 'BINXFR-2025-001'
Filter by Date and Location
GET /record/v1/binTransfer?q=tranDate >= '2025-01-01' AND location.id = 1
Complex Query with Sorting
GET /record/v1/binTransfer?q=tranDate >= '2025-01-01' AND location.id = 1&orderby=tranDate DESC&limit=100
Important Notes
Bin Transfer Requirements
Prerequisites:
- Advanced Bin / Numbered Bin Management must be enabled
- Location must have bin management enabled
- Items must be bin-enabled
- Source bins must have sufficient inventory
Location Constraints
- Same Location Only: Bin transfers only work within a single location
- For transfers between locations, use Inventory Transfer instead
- All bins (source and destination) must belong to the specified location
Quantity Validation
- Total
fromBinsquantity must equal totaltoBinsquantity - Total bin quantities must match line
quantity - Source bins must have sufficient inventory available
- Quantities must be positive numbers
Accounting Impact
- Bin transfers do not create journal entries
- No GL impact - inventory value remains the same
- Only the physical bin location changes
- Tracked for warehouse management and auditing purposes
Permissions Required
- Create: Transactions > Bin Transfer > Create
- Edit: Transactions > Bin Transfer > Edit
- Delete: Transactions > Bin Transfer > Delete
- View: Transactions > Bin Transfer > View
Best Practices
- Document reasons: Use memo to explain why items are being moved
- Plan transfers: Review bin layouts before executing transfers
- Batch similar items: Transfer related items together for efficiency
- Verify inventory: Confirm source bin has inventory before transfer
- Use for replenishment: Regularly move items from bulk to pick bins
- Audit trail: Maintain records of bin transfers for cycle count reconciliation
- Schedule wisely: Perform transfers during low-activity periods
Limitations
- Cannot transfer to the same bin (source = destination)
- Cannot transfer between different locations
- Source bins must contain the specified items and quantities
- Cannot transfer negative quantities
- Closed accounting periods may restrict transfers
- Some item types may not support bin transfers
Common Use Cases
- Bin Replenishment: Move inventory from bulk storage to pick bins
- Warehouse Reorganization: Consolidate or redistribute inventory
- Seasonal Adjustments: Move items to more accessible locations
- Quality Segregation: Move items to/from QC or quarantine bins
- Returns Processing: Move returned items to inspection bins
- Cycle Count Corrections: Adjust bin locations after physical count
- Damage Isolation: Move damaged items to designated bins
Bin Transfer vs Inventory Transfer
Bin Transfer (this API):
- Within same location
- Between different bins
- No GL impact
- Warehouse organization
Inventory Transfer:
- Between different locations
- May include bin assignments
- No GL impact
- Inter-location movement
Data Validation
- All bins must exist and be active
- Bins must belong to the specified location
- Items must be enabled for the bins
- Quantities must be available in source bins
- Transaction date must be within an open period
- Sum of
fromBinsmust equal sum oftoBins
Lot/Serial Tracking
For lot or serial tracked items:
- Must specify
inventoryDetailsublist - Lot/serial numbers must be available in source bins
- Total lot/serial quantities must match line quantity
- Each lot/serial must specify its bin movements
Workflow Scenarios
Replenishment Workflow:
- Identify pick bins running low
- Create bin transfer from bulk to pick bins
- Update pick location for pickers
- Monitor pick bin levels
Consolidation Workflow:
- Identify partially filled bins
- Create bin transfer to consolidate inventory
- Free up empty bins
- Optimize space utilization
Quality Control Workflow:
- Receive items into QC bin
- Perform quality inspection
- Transfer approved items to regular bins
- Transfer rejected items to damaged bin
Integration Tips
- Validate bin availability before creating transfers
- Check inventory levels in source bins
- Use batch processing for multiple transfers
- Implement error handling for insufficient inventory
- Track transfer patterns for optimization analysis
- Integrate with warehouse management system
Reporting and Analytics
Use bin transfer data for:
- Bin movement history
- Replenishment patterns
- Warehouse efficiency metrics
- Audit trail for inventory movements
- Bin utilization analysis
- Cycle count reconciliation
Error Handling
Common errors and solutions:
Insufficient Inventory:
- Verify source bin has enough quantity
- Check for committed inventory
- Review inventory detail (lot/serial) availability
Quantity Mismatch:
- Ensure
fromBinssum equalstoBinssum - Verify line quantity matches bin totals
- Check lot/serial quantity allocation
Invalid Bin:
- Confirm bins exist and are active
- Verify bins belong to the location
- Check bin is enabled for the item
Performance Tips
- Batch multiple item transfers in one transaction
- Use during off-peak hours for large transfers
- Minimize number of bin-to-bin movements
- Plan efficient transfer routes
- Consolidate related transfers