Skip to main content

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

MethodEndpointDescription
GET/record/v1/assemblyUnbuildRetrieve list of assembly unbuilds
GET/record/v1/assemblyUnbuild/{id}Retrieve specific assembly unbuild
POST/record/v1/assemblyUnbuildCreate new assembly unbuild
PATCH/record/v1/assemblyUnbuild/{id}Update existing assembly unbuild
DELETE/record/v1/assemblyUnbuild/{id}Delete assembly unbuild

Key Fields

Header Fields

FieldTypeDescriptionRequired
itemObjectAssembly item to be unbuiltYes
quantityNumberQuantity to unbuildYes
tranDateDateTransaction date (format: YYYY-MM-DD)Yes
subsidiaryObjectSubsidiary where assembly is unbuiltYes
locationObjectInventory location for the unbuildYes
tranIdStringTransaction number (auto-generated if not provided)No
memoStringNotes or comments about the unbuildNo
departmentObjectDepartment referenceNo
classObjectClass referenceNo
postingPeriodObjectAccounting period for postingNo
inventoryDetailObjectInventory detail for lot/serial trackingNo
binNumbersObjectBin location for assembly consumptionNo
billOfMaterialsObjectBill of materials to useNo
revisionObjectBOM revision to useNo
totalNumberTotal value of the unbuildRead-only
customFormObjectCustom form referenceNo
createdDateDateTimeDate transaction was createdRead-only
lastModifiedDateDateTimeDate transaction was last modifiedRead-only

Sublist: Component (component)

FieldTypeDescriptionRequired
itemObjectComponent item referenceYes
quantityNumberQuantity to returnYes
quantityPerNumberQuantity per assembly unitNo
unitsObjectUnit of measureNo
componentInventoryDetailObjectLot/serial for component returnNo
binNumbersObjectBin locations for component returnNo

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 item
  • quantity: Total quantity returned to inventory
  • quantityPer: Quantity per assembly unit
  • units: Unit of measure
  • componentInventoryDetail: Lot/serial tracking for components returned
  • binNumbers: 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
GET /record/v1/assemblyUnbuild/8001?expandSubResources=true

Assembly Unbuild Process

The assembly unbuild transaction performs the following in a single step:

  1. Consumes Assembly: Reduces assembly item inventory quantities
  2. Returns Components: Increases component inventory
  3. Reverses Costing: Returns component costs from assembly value
  4. Updates GL: Posts inventory and cost reversal transactions
  5. Tracks Lot/Serial: Records lot/serial relationships for traceability

Important Notes

  1. Reverse of Assembly Build: Unbuild is the opposite of an assembly build transaction.

  2. 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)
  3. 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
  4. BOM Integration:

    • If assembly has a BOM, components are auto-populated
    • Component quantities can be manually adjusted
    • Use specific BOM revision if multiple exist
  5. 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
  6. Inventory Location:

    • Assembly is consumed from the specified location
    • Components are returned to the same location
    • Location must allow assembly unbuild transactions
  7. Lot/Serial Tracking:

    • If assembly is lot/serial tracked, use inventoryDetail to specify which units
    • If components are lot/serial tracked, use componentInventoryDetail for returns
    • Maintains traceability chain between assembly and components
  8. Bin Management:

    • Specify assembly source bin via binNumbers on header
    • Specify component destination bins via binNumbers on component lines
    • All bins must exist in the specified location
  9. 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
  10. 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
  11. 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
  12. Partial Unbuild:

    • Can unbuild a portion of available assemblies
    • Can adjust component quantities (for damaged parts)
    • Multiple unbuilds can be performed
  13. Reversing Unbuild:

    • Delete the unbuild transaction to reverse
    • Deleting returns inventory to pre-unbuild state
    • Cannot delete if components have been further transacted
  14. Component Substitution:

    • Can override BOM components
    • Useful if assembly was built with substitutions
    • Affects cost allocation
  15. 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
  16. Custom Forms: Custom unbuild forms may include additional fields.

  17. Permissions: Requires "Assembly Unbuild" transaction permission with appropriate access level.

  18. Accounting Impact:

    • Credits: Finished Goods Inventory (assembly consumed)
    • Debits: Raw Materials Inventory (components returned)
    • May include variance or gain/loss accounts
  19. Integration: Unbuilds can trigger quality inspection workflows, scrap tracking, or rework processes.

  20. Regulatory Compliance: Maintains audit trail for regulated industries requiring component traceability.