Bin API
Manage warehouse bins/locations for advanced bin management and warehouse organization.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /record/v1/bin | Retrieve list of bins |
| GET | /record/v1/bin/{id} | Retrieve a specific bin |
| POST | /record/v1/bin | Create a new bin |
| PATCH | /record/v1/bin/{id} | Update an existing bin |
| DELETE | /record/v1/bin/{id} | Delete a bin |
Key Fields
| Field | Type | Description | Required |
|---|---|---|---|
binNumber | String | Unique bin identifier/number | Yes |
location | Object | Location reference {"id": "1"} | Yes |
memo | String | Description or notes about the bin | No |
isInactive | Boolean | Whether the bin is inactive | No |
Example: Create Bin
Request
POST /record/v1/bin
Content-Type: application/json
{
"binNumber": "A-01-001",
"location": {"id": "1"},
"memo": "Aisle A, Row 1, Position 1 - Standard Storage"
}
Response
{
"id": "56789",
"binNumber": "A-01-001",
"location": {
"id": "1",
"refName": "Main Warehouse"
},
"memo": "Aisle A, Row 1, Position 1 - Standard Storage",
"isInactive": false,
"links": [
{
"rel": "self",
"href": "https://{{account}}.suitetalk.api.netsuite.com/services/rest/record/v1/bin/56789"
}
]
}
Example: Create Multiple Bins
Request - Bin for Refrigerated Storage
POST /record/v1/bin
Content-Type: application/json
{
"binNumber": "R-01-001",
"location": {"id": "1"},
"memo": "Refrigerated Section - Aisle R, Row 1, Position 1"
}
Request - Bin for High-Value Items
POST /record/v1/bin
Content-Type: application/json
{
"binNumber": "SECURE-001",
"location": {"id": "1"},
"memo": "Secured Storage - High Value Items"
}
Example: Update Bin
Request
PATCH /record/v1/bin/56789
Content-Type: application/json
{
"memo": "Aisle A, Row 1, Position 1 - Standard Storage - Reserved for Widgets",
"isInactive": false
}
Response
{
"id": "56789",
"binNumber": "A-01-001",
"memo": "Aisle A, Row 1, Position 1 - Standard Storage - Reserved for Widgets",
"isInactive": false,
"links": [
{
"rel": "self",
"href": "https://{{account}}.suitetalk.api.netsuite.com/services/rest/record/v1/bin/56789"
}
]
}
Example: Deactivate Bin
Request
PATCH /record/v1/bin/56789
Content-Type: application/json
{
"isInactive": true,
"memo": "Aisle A, Row 1, Position 1 - INACTIVE - Under Maintenance"
}
Response
{
"id": "56789",
"binNumber": "A-01-001",
"isInactive": true,
"memo": "Aisle A, Row 1, Position 1 - INACTIVE - Under Maintenance",
"links": [
{
"rel": "self",
"href": "https://{{account}}.suitetalk.api.netsuite.com/services/rest/record/v1/bin/56789"
}
]
}
Sublists/Line Items
Bins themselves don't have sublists, but they are referenced in other transaction sublists:
Referenced in Bin Transfer
{
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 25,
"fromBins": {
"items": [
{"binNumber": {"id": "56789"}, "quantity": 25}
]
},
"toBins": {
"items": [
{"binNumber": {"id": "56790"}, "quantity": 25}
]
}
}
]
}
}
Referenced in Item Receipt
{
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 100,
"binNumbers": {
"items": [
{
"binNumber": {"id": "56789"},
"quantity": 50
},
{
"binNumber": {"id": "56790"},
"quantity": 50
}
]
}
}
]
}
}
Referenced in Item Fulfillment
{
"item": {
"items": [
{
"item": {"id": "789"},
"quantity": 30,
"binNumbers": {
"items": [
{
"binNumber": {"id": "56789"},
"quantity": 30
}
]
}
}
]
}
}
Query Filters
Filter by Bin Number
GET /record/v1/bin?q=binNumber = 'A-01-001'
Filter by Location
GET /record/v1/bin?q=location.id = 1
Filter by Active Status
GET /record/v1/bin?q=isInactive = false
Filter by Inactive Status
GET /record/v1/bin?q=isInactive = true
Search by Bin Number Pattern
GET /record/v1/bin?q=binNumber LIKE 'A-01-%'
Filter by Location and Active
GET /record/v1/bin?q=location.id = 1 AND isInactive = false
Complex Query with Sorting
GET /record/v1/bin?q=location.id = 1 AND isInactive = false&orderby=binNumber ASC&limit=100
Important Notes
Bin Management Requirements
Prerequisites:
- Advanced Bin / Numbered Bin Management must be enabled in NetSuite
- Location must have bin management enabled
- Items must be bin-enabled to use bins
- Bin usage is location-specific
Bin Naming Conventions
Establish a consistent naming scheme for easy identification:
- Aisle-Row-Position:
A-01-001,B-02-015 - Zone-Section-Slot:
PICK-A-001,BULK-B-050 - Floor-Aisle-Shelf:
F1-A-S1,F2-B-S3 - Special Purpose:
STAGING-01,RETURNS-05,QC-01
Bin Types and Uses
Storage Bins:
- Standard warehouse storage locations
- Long-term inventory holding
- Example:
A-01-001throughA-10-999
Staging Bins:
- Temporary holding areas
- Pre-shipping staging
- Example:
STAGE-01,STAGE-02
Special Purpose Bins:
- Quality control areas
- Return processing
- Damaged goods
- Example:
QC-01,RETURNS-01,DAMAGED-01
Pick Bins:
- High-velocity picking locations
- Optimized for order fulfillment
- Example:
PICK-A-001,PICK-B-010
Permissions Required
- Create: Lists > Bins > Create
- Edit: Lists > Bins > Edit
- Delete: Lists > Bins > Delete
- View: Lists > Bins > View
Best Practices
- Logical naming: Use systematic bin numbering for easy navigation
- Zone organization: Group bins by product type, velocity, or characteristics
- Reserve bins: Designate special bins for specific purposes
- Regular audits: Verify bin contents match system records
- Optimize layout: Place high-velocity items in accessible bins
- Document changes: Update memos when changing bin purposes
- Inactive handling: Mark damaged or under-maintenance bins as inactive
Limitations
- Cannot delete bins with inventory in them
- Cannot change bin number once created
- Cannot change location once created
- Inactive bins may still appear in some reports
- Maximum number of bins may be limited by account settings
Bin vs Location
Location (Warehouse):
- Physical warehouse or storage facility
- High-level inventory tracking
- Example: Main Warehouse, Distribution Center
Bin (Storage Position):
- Specific position within a location
- Detailed inventory tracking
- Example: A-01-001 in Main Warehouse
Advanced Bin Features
Bin Capacity Management:
- Some NetSuite versions support bin capacity limits
- Track cubic feet, weight, or unit capacity
- Prevent over-allocation
Bin Replenishment:
- Set up replenishment rules
- Automatic transfer suggestions
- Maintain optimal stock levels in pick bins
Bin Strategies:
- Fixed Bin: Specific items always in same bins
- Random Bin: Items stored in any available bin
- Zone Picking: Organize by pick zones
Data Validation
binNumbermust be unique within the location- Bin number should follow established naming conventions
- Location must have bin management enabled
- Cannot use special characters that may cause sorting issues
Common Use Cases
- Warehouse Setup: Create bin structure when setting up new warehouse
- Reorganization: Update bin memos when reorganizing warehouse layout
- Expansion: Add new bins when expanding storage capacity
- Seasonal Storage: Create temporary bins for seasonal inventory
- Quarantine: Designate bins for quality control or quarantined items
- Returns Processing: Special bins for returned merchandise
Integration Tips
- Validate location supports bins before creating
- Check for duplicate bin numbers before creation
- Use batch processing for creating multiple bins
- Implement naming convention validation
- Store warehouse layout maps in external system
- Synchronize bin status with warehouse management system
Bin Status Management
Active Bins:
- Available for inventory storage
- Can receive and fulfill from these bins
- Show in bin selection lists
Inactive Bins:
- Temporarily disabled (maintenance, damaged)
- Cannot receive new inventory
- Existing inventory should be moved out
- Hidden from most selection lists
Warehouse Optimization
Use bin data for:
- Slotting Analysis: Optimize bin assignments based on velocity
- Space Utilization: Track empty vs. occupied bins
- Pick Path Optimization: Organize bins for efficient picking
- Inventory Density: Monitor inventory concentration
- Cycle Counting: Schedule bin-level cycle counts
Reporting and Analytics
Query bins for:
- Bin utilization reports
- Empty bin identification
- Inventory by bin location
- Bin occupancy rates
- Pick path analysis