Skip to main content

Assembly Build API

Build assemblies without work orders for immediate manufacturing. Assembly builds are used for quick, unplanned assembly production that doesn't require the full work order process.

Endpoints

MethodEndpointDescription
GET/record/v1/assemblyBuildRetrieve list of assembly builds
GET/record/v1/assemblyBuild/{id}Retrieve specific assembly build
POST/record/v1/assemblyBuildCreate new assembly build
PATCH/record/v1/assemblyBuild/{id}Update existing assembly build
DELETE/record/v1/assemblyBuild/{id}Delete assembly build

Key Fields

Header Fields

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

Sublist: Component (component)

FieldTypeDescriptionRequired
itemObjectComponent item referenceYes
quantityNumberQuantity requiredYes
quantityPerNumberQuantity per assembly unitNo
unitsObjectUnit of measureNo
componentInventoryDetailObjectLot/serial for component consumptionNo
binNumbersObjectBin locations for componentNo

Example: Create Assembly Build

Request

POST /record/v1/assemblyBuild
Content-Type: application/json
{
"item": {
"id": "800"
},
"quantity": 10,
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"location": {
"id": "1"
},
"memo": "Emergency build for customer order",
"department": {
"id": "5"
},
"class": {
"id": "3"
},
"component": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 20,
"quantityPer": 2
},
{
"item": {
"id": "790"
},
"quantity": 10,
"quantityPer": 1
}
]
}
}

Response

{
"id": "7001",
"item": {
"id": "800",
"refName": "Assembly Widget A"
},
"quantity": 10,
"tranDate": "2025-12-25",
"tranId": "ABLD-2025-001",
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"location": {
"id": "1",
"refName": "Main Warehouse"
},
"memo": "Emergency build for customer order",
"department": {
"id": "5",
"refName": "Manufacturing"
},
"class": {
"id": "3",
"refName": "Production"
},
"total": 1250.00,
"postingPeriod": {
"id": "101",
"refName": "Dec 2025"
},
"createdDate": "2025-12-25T11:00:00Z",
"lastModifiedDate": "2025-12-25T11:00:00Z",
"component": {
"items": [
{
"item": {
"id": "789",
"refName": "Component Part A"
},
"quantity": 20,
"quantityPer": 2,
"units": {
"id": "1",
"refName": "Each"
}
},
{
"item": {
"id": "790",
"refName": "Component Part B"
},
"quantity": 10,
"quantityPer": 1,
"units": {
"id": "1",
"refName": "Each"
}
}
]
},
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/assemblyBuild/7001"
}
]
}

Example: Create Build with Lot Tracking

Request

POST /record/v1/assemblyBuild
Content-Type: application/json
{
"item": {
"id": "800"
},
"quantity": 5,
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"location": {
"id": "1"
},
"memo": "Lot-tracked assembly build",
"inventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-ASSY-2025-001"
},
"quantity": 5
}
]
}
},
"component": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 10,
"componentInventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-2025-100"
},
"quantity": 10
}
]
}
}
}
]
}
}

Response

{
"id": "7002",
"tranId": "ABLD-2025-002",
"quantity": 5,
"memo": "Lot-tracked assembly build",
"inventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-ASSY-2025-001",
"refName": "LOT-ASSY-2025-001"
},
"quantity": 5
}
]
}
},
"component": {
"items": [
{
"item": {
"id": "789",
"refName": "Component Part A"
},
"quantity": 10,
"componentInventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {
"id": "LOT-2025-100",
"refName": "LOT-2025-100"
},
"quantity": 10
}
]
}
}
}
]
},
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/assemblyBuild/7002"
}
]
}

Example: Update Assembly Build

Request

PATCH /record/v1/assemblyBuild/7001
Content-Type: application/json
{
"memo": "Emergency build for customer order - Expedited shipping",
"component": {
"items": [
{
"item": {
"id": "789"
},
"quantity": 22
},
{
"item": {
"id": "790"
},
"quantity": 10
}
]
}
}

Response

{
"id": "7001",
"memo": "Emergency build for customer order - Expedited shipping",
"lastModifiedDate": "2025-12-25T13:30:00Z",
"component": {
"items": [
{
"item": {
"id": "789",
"refName": "Component Part A"
},
"quantity": 22
},
{
"item": {
"id": "790",
"refName": "Component Part B"
},
"quantity": 10
}
]
},
"links": [
{
"rel": "self",
"href": "https://your-account.suitetalk.api.netsuite.com/services/rest/record/v1/assemblyBuild/7001"
}
]
}

Sublists and Components

Component Items (component)

The component sublist defines the components consumed to build the assembly.

Fields:

  • item: Reference to the component item
  • quantity: Total quantity consumed
  • quantityPer: Quantity needed per assembly unit
  • units: Unit of measure
  • componentInventoryDetail: Lot/serial tracking for component consumption
  • binNumbers: Bin locations for components

Example:

"component": {
"items": [
{
"item": {"id": "789"},
"quantity": 20,
"quantityPer": 2
}
]
}

Inventory Detail (inventoryDetail)

For lot or serial numbered assembly items, specify the lot/serial numbers being created.

Example:

"inventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {"id": "LOT-ASSY-2025-001"},
"quantity": 10
}
]
}
}

Component Inventory Detail (componentInventoryDetail)

For lot or serial numbered components, specify which lot/serial numbers are being consumed.

Example:

"componentInventoryDetail": {
"inventoryAssignment": {
"items": [
{
"issueInventoryNumber": {"id": "LOT-2025-100"},
"quantity": 10
}
]
}
}

Query Filters

Filter by Transaction Date

GET /record/v1/assemblyBuild?q=tranDate EQUAL '2025-12-25'

Filter by Date Range

GET /record/v1/assemblyBuild?q=tranDate BETWEEN '2025-12-01' AND '2025-12-31'

Filter by Assembly Item

GET /record/v1/assemblyBuild?q=item EQUAL 800

Filter by Subsidiary and Location

GET /record/v1/assemblyBuild?q=subsidiary EQUAL 1 AND location EQUAL 1

Filter by Component

GET /record/v1/assemblyBuild?q=component.item EQUAL 789
GET /record/v1/assemblyBuild/7001?expandSubResources=true

Assembly Build Process

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

  1. Consumes Components: Reduces component inventory quantities
  2. Creates Assembly: Increases assembly item inventory
  3. Costs Assembly: Calculates assembly cost from component costs
  4. Updates GL: Posts inventory and cost transactions
  5. Tracks Lot/Serial: Records lot/serial relationships

Important Notes

  1. Immediate Build: Assembly builds are immediate transactions that don't require work order planning or tracking.

  2. Assembly Item Type:

    • Item must be type "Assembly/Bill of Materials"
    • Item must have an active BOM defined
    • BOM components are automatically populated
  3. Component Requirements:

    • Components must have sufficient inventory at the location
    • Or components must allow negative inventory
    • Component quantities are based on BOM and build quantity
  4. BOM Integration:

    • If assembly item has a BOM, components are auto-populated
    • Component quantities can be manually adjusted
    • Multiple BOM revisions: specify which revision to use
  5. Inventory Location:

    • Assembly is received into the specified location
    • Components are consumed from the same location
    • Location must allow assembly builds
  6. Lot/Serial Tracking:

    • If assembly is lot/serial tracked, use inventoryDetail
    • If components are lot/serial tracked, use componentInventoryDetail
    • Both assembly and component lot/serial can be tracked simultaneously
  7. Bin Management:

    • Specify assembly bin via binNumbers on header
    • Specify component bins via binNumbers on component lines
    • All bins must exist in the specified location
  8. Costing:

    • Assembly cost equals sum of component costs
    • Additional overhead can be included via costing preferences
    • Standard cost items maintain their standard cost
  9. 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
  10. vs Work Orders:

    • Use assembly builds for simple, immediate builds
    • Use work orders for planned production with scheduling
    • Assembly builds don't support routing or advanced MRP
  11. Quantity Limits:

    • No limit on build quantity
    • Limited only by component availability
    • Fractional quantities allowed if item supports
  12. Reversing Builds:

    • Delete the build transaction to reverse
    • Use Assembly Unbuild for partial reversal
    • Cannot delete if inventory has been further transacted
  13. Component Substitution:

    • Can override BOM components
    • Can add additional components not on BOM
    • Affects final assembly cost
  14. Multi-Level BOMs:

    • Supports assemblies with sub-assemblies
    • Sub-assembly components are consumed automatically
    • Or build sub-assemblies separately first
  15. Custom Forms: Custom assembly build forms may include additional fields.

  16. Permissions: Requires "Assembly Build" transaction permission with appropriate access level.

  17. Accounting Impact:

    • Debits: Finished Goods Inventory (assembly)
    • Credits: Raw Materials Inventory (components)
    • May include manufacturing overhead accounts
  18. Integration: Builds can trigger automated quality checks, labeling, or put-away processes.