Skip to main content

Bin Transfer API

Transfer inventory between bins within the same location for warehouse reorganization and optimization.

Endpoints

MethodEndpointDescription
GET/record/v1/binTransferRetrieve list of bin transfers
GET/record/v1/binTransfer/{id}Retrieve a specific bin transfer
POST/record/v1/binTransferCreate 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

FieldTypeDescriptionRequired
tranDateDateTransaction dateYes
locationObjectLocation reference {"id": "1"}Yes
subsidiaryObjectSubsidiary referenceNo
memoStringTransaction memo/descriptionNo
tranIdStringTransaction number (auto-generated if not provided)No

Line Item Fields (item.items)

FieldTypeDescriptionRequired
itemObjectItem reference {"id": "789"}Yes
quantityNumberTotal quantity to transferYes
fromBinsObjectSource bin assignmentsYes
toBinsObjectDestination bin assignmentsYes
descriptionStringLine item descriptionNo
inventoryDetailObjectLot/serial number details (if applicable)No

Bin Sublist Fields (fromBins.items / toBins.items)

FieldTypeDescriptionRequired
binNumberObjectBin reference {"id": "10"}Yes
quantityNumberQuantity in this binYes

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 fromBins quantity must equal total toBins quantity
  • 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

  1. Document reasons: Use memo to explain why items are being moved
  2. Plan transfers: Review bin layouts before executing transfers
  3. Batch similar items: Transfer related items together for efficiency
  4. Verify inventory: Confirm source bin has inventory before transfer
  5. Use for replenishment: Regularly move items from bulk to pick bins
  6. Audit trail: Maintain records of bin transfers for cycle count reconciliation
  7. 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

  1. Bin Replenishment: Move inventory from bulk storage to pick bins
  2. Warehouse Reorganization: Consolidate or redistribute inventory
  3. Seasonal Adjustments: Move items to more accessible locations
  4. Quality Segregation: Move items to/from QC or quarantine bins
  5. Returns Processing: Move returned items to inspection bins
  6. Cycle Count Corrections: Adjust bin locations after physical count
  7. 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 fromBins must equal sum of toBins

Lot/Serial Tracking

For lot or serial tracked items:

  • Must specify inventoryDetail sublist
  • 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:

  1. Identify pick bins running low
  2. Create bin transfer from bulk to pick bins
  3. Update pick location for pickers
  4. Monitor pick bin levels

Consolidation Workflow:

  1. Identify partially filled bins
  2. Create bin transfer to consolidate inventory
  3. Free up empty bins
  4. Optimize space utilization

Quality Control Workflow:

  1. Receive items into QC bin
  2. Perform quality inspection
  3. Transfer approved items to regular bins
  4. 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 fromBins sum equals toBins sum
  • 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