Assembly Unbuild API
Disassemble assemblies back to their component parts. Assembly unbuild transactions reverse the assembly process, returning components to inventory and reducing assembled item quantities.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /record/v1/assemblyUnbuild | Retrieve list of assembly unbuilds |
| GET | /record/v1/assemblyUnbuild/{id} | Retrieve specific assembly unbuild |
| POST | /record/v1/assemblyUnbuild | Create new assembly unbuild |
| PATCH | /record/v1/assemblyUnbuild/{id} | Update existing assembly unbuild |
| DELETE | /record/v1/assemblyUnbuild/{id} | Delete assembly unbuild |
Key Fields
Header Fields
| Field | Type | Description | Required |
|---|---|---|---|
| item | Object | Assembly item to be unbuilt | Yes |
| quantity | Number | Quantity to unbuild | Yes |
| tranDate | Date | Transaction date (format: YYYY-MM-DD) | Yes |
| subsidiary | Object | Subsidiary where assembly is unbuilt | Yes |
| location | Object | Inventory location for the unbuild | Yes |
| tranId | String | Transaction number (auto-generated if not provided) | No |
| memo | String | Notes or comments about the unbuild | No |
| department | Object | Department reference | No |
| class | Object | Class reference | No |
| postingPeriod | Object | Accounting period for posting | No |
| inventoryDetail | Object | Inventory detail for lot/serial tracking | No |
| binNumbers | Object | Bin location for assembly consumption | No |
| billOfMaterials | Object | Bill of materials to use | No |
| revision | Object | BOM revision to use | No |
| total | Number | Total value of the unbuild | Read-only |
| customForm | Object | Custom form reference | No |
| createdDate | DateTime | Date transaction was created | Read-only |
| lastModifiedDate | DateTime | Date transaction was last modified | Read-only |
Sublist: Component (component)
| Field | Type | Description | Required |
|---|---|---|---|
| item | Object | Component item reference | Yes |
| quantity | Number | Quantity to return | Yes |
| quantityPer | Number | Quantity per assembly unit | No |
| units | Object | Unit of measure | No |
| componentInventoryDetail | Object | Lot/serial for component return | No |
| binNumbers | Object | Bin locations for component return | No |
Example: Create Assembly Unbuild
Request
POST /record/v1/assemblyUnbuild
Content-Type: application/json
{
"item": {
"id": "800"
},
"quantity": 5,
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"location": {
"id": "1"
},
"memo": "Defective units returned to components",
"department": {
"id": "5"
},
"class": {
"id": "3"
},
"component": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 10,
"quantityPer": 2
},
{
"item": {
"id": "790"
},
"quantity": 5,
"quantityPer": 1
}
]
}
}
Response
{
"id": "8001",
"item": {
"id": "800",
"refName": "Assembly Widget A"
},
"quantity": 5,
"tranDate": "2025-12-25",
"tranId": "AUNB-2025-001",
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"location": {
"id": "1",
"refName": "Main Warehouse"
},
"memo": "Defective units returned to components",
"department": {
"id": "5",
"refName": "Manufacturing"
},
"class": {
"id": "3",
"refName": "Production"
},
"total": 625.00,
"postingPeriod": {
"id": "101",
"refName": "Dec 2025"
},
"createdDate": "2025-12-25T15:00:00Z",
"lastModifiedDate": "2025-12-25T15:00:00Z",
"component": {
"items": [
{
"item": {
"id": "789",
"refName": "Component Part A"
},
"quantity": 10,
"quantityPer": 2,
"units": {
"id": "1",
"refName": "Each"
}
},
{
"item": {
"id": "790",
"refName": "Component Part B"
},
"quantity": 5,
"quantityPer": 1,
"units": {
"id": "1",
"refName": "Each"
}
}
]
},
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/assemblyUnbuild/8001"
}
]
}
Example: Create Unbuild with Lot Tracking
Request
POST /record/v1/assemblyUnbuild
Content-Type: application/json
{
"item": {
"id": "800"
},
"quantity": 3,
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"location": {
"id": "1"
},
"memo": "Unbuild specific lot - quality issue",
"inventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-ASSY-2025-001"
},
"quantity": 3
}
]
}
},
"component": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 6,
"componentInventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-COMP-2025-050"
},
"quantity": 6
}
]
}
}
}
]
}
}
Response
{
"id": "8002",
"tranId": "AUNB-2025-002",
"quantity": 3,
"memo": "Unbuild specific lot - quality issue",
"inventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-ASSY-2025-001",
"refName": "LOT-ASSY-2025-001"
},
"quantity": 3
}
]
}
},
"component": {
"items": [
{
"item": {
"id": "789",
"refName": "Component Part A"
},
"quantity": 6,
"componentInventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-COMP-2025-050",
"refName": "LOT-COMP-2025-050"
},
"quantity": 6
}
]
}
}
}
]
},
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/assemblyUnbuild/8002"
}
]
}
Example: Update Assembly Unbuild
Request
PATCH /record/v1/assemblyUnbuild/8001
Content-Type: application/json
{
"memo": "Defective units returned to components - Updated for rework",
"component": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 9
},
{
"item": {
"id": "790"
},
"quantity": 5
}
]
}
}
Response
{
"id": "8001",
"memo": "Defective units returned to components - Updated for rework",
"lastModifiedDate": "2025-12-25T16:20:00Z",
"component": {
"items": [
{
"item": {
"id": "789",
"refName": "Component Part A"
},
"quantity": 9
},
{
"item": {
"id": "790",
"refName": "Component Part B"
},
"quantity": 5
}
]
},
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/assemblyUnbuild/8001"
}
]
}
Sublists and Components
Component Items (component)
The component sublist defines the components returned when the assembly is unbuilt.
Fields:
item: Reference to the component itemquantity: Total quantity returned to inventoryquantityPer: Quantity per assembly unitunits: Unit of measurecomponentInventoryDetail: Lot/serial tracking for components returnedbinNumbers: Bin locations for component returns
Example:
"component": {
"items": [
{
"item": {"id": "789"},
"quantity": 10,
"quantityPer": 2
}
]
}
Inventory Detail (inventoryDetail)
For lot or serial numbered assembly items, specify which lot/serial numbers are being consumed.
Example:
"inventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {"id": "LOT-ASSY-2025-001"},
"quantity": 5
}
]
}
}
Component Inventory Detail (componentInventoryDetail)
For lot or serial numbered components, specify which lot/serial numbers are being created/returned.
Example:
"componentInventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {"id": "LOT-COMP-2025-050"},
"quantity": 10
}
]
}
}
Query Filters
Filter by Transaction Date
GET /record/v1/assemblyUnbuild?q=tranDate EQUAL '2025-12-25'
Filter by Date Range
GET /record/v1/assemblyUnbuild?q=tranDate BETWEEN '2025-12-01' AND '2025-12-31'
Filter by Assembly Item
GET /record/v1/assemblyUnbuild?q=item EQUAL 800
Filter by Subsidiary and Location
GET /record/v1/assemblyUnbuild?q=subsidiary EQUAL 1 AND location EQUAL 1
Filter by Component
GET /record/v1/assemblyUnbuild?q=component.item EQUAL 789
Expand Related Records
GET /record/v1/assemblyUnbuild/8001?expandSubResources=true
Assembly Unbuild Process
The assembly unbuild transaction performs the following in a single step:
- Consumes Assembly: Reduces assembly item inventory quantities
- Returns Components: Increases component inventory
- Reverses Costing: Returns component costs from assembly value
- Updates GL: Posts inventory and cost reversal transactions
- Tracks Lot/Serial: Records lot/serial relationships for traceability
Important Notes
-
Reverse of Assembly Build: Unbuild is the opposite of an assembly build transaction.
-
Assembly Item Availability:
- Assembly item must have sufficient inventory at the location
- Or assembly item must allow negative inventory
- Cannot unbuild more than exists in stock (unless negative allowed)
-
Component Return:
- Components are returned to inventory at the same location
- Component quantities are based on BOM and unbuild quantity
- Returned components can be used for other purposes
-
BOM Integration:
- If assembly has a BOM, components are auto-populated
- Component quantities can be manually adjusted
- Use specific BOM revision if multiple exist
-
Use Cases:
- Defective assemblies need to be disassembled
- Customer returns requiring disassembly
- Excess assemblies being broken down
- Correction of assembly build errors
- Salvaging components from obsolete assemblies
-
Inventory Location:
- Assembly is consumed from the specified location
- Components are returned to the same location
- Location must allow assembly unbuild transactions
-
Lot/Serial Tracking:
- If assembly is lot/serial tracked, use
inventoryDetailto specify which units - If components are lot/serial tracked, use
componentInventoryDetailfor returns - Maintains traceability chain between assembly and components
- If assembly is lot/serial tracked, use
-
Bin Management:
- Specify assembly source bin via
binNumberson header - Specify component destination bins via
binNumberson component lines - All bins must exist in the specified location
- Specify assembly source bin via
-
Costing:
- Assembly cost is reversed (credited)
- Component costs are restored (debited)
- May result in gain/loss if component costs have changed
- Variance accounts may be used for cost differences
-
Posting Period:
- Transaction posts to the specified accounting period
- If not specified, uses the period for the transaction date
- Period must be open for inventory posting
-
Component Condition:
- Assumes components are returned in usable condition
- For damaged components, adjust quantities or write off separately
- Quality inspection may be required before reuse
-
Partial Unbuild:
- Can unbuild a portion of available assemblies
- Can adjust component quantities (for damaged parts)
- Multiple unbuilds can be performed
-
Reversing Unbuild:
- Delete the unbuild transaction to reverse
- Deleting returns inventory to pre-unbuild state
- Cannot delete if components have been further transacted
-
Component Substitution:
- Can override BOM components
- Useful if assembly was built with substitutions
- Affects cost allocation
-
Multi-Level BOMs:
- Unbuilding only affects the top-level assembly
- Sub-assemblies are returned as sub-assembly items (not broken down further)
- Unbuild sub-assemblies separately if needed
-
Custom Forms: Custom unbuild forms may include additional fields.
-
Permissions: Requires "Assembly Unbuild" transaction permission with appropriate access level.
-
Accounting Impact:
- Credits: Finished Goods Inventory (assembly consumed)
- Debits: Raw Materials Inventory (components returned)
- May include variance or gain/loss accounts
-
Integration: Unbuilds can trigger quality inspection workflows, scrap tracking, or rework processes.
-
Regulatory Compliance: Maintains audit trail for regulated industries requiring component traceability.