Miridia
Portal
Manufacturing

Bills of material

The bills of material operations of the Core API.

Base URL: https://api.miridia.io. Read Authentication and Conventions before you call these operations.

MethodPathOperation
GET/api/v1/bomGet BOMs
POST/api/v1/bomCreate BOM
GET/api/v1/bom/{bomId}Get BOM
PUT/api/v1/bom/{bomId}Update BOM
DELETE/api/v1/bom/{bomId}Delete BOM
POST/api/v1/bom/{bomId}/activateActivate BOM
POST/api/v1/bom/{bomId}/line-itemsAdd BOM line item
PUT/api/v1/bom/{bomId}/line-items/{lineItemId}Update BOM line item
DELETE/api/v1/bom/{bomId}/line-items/{lineItemId}Delete BOM line item
GET/api/v1/bom/{bomId}/costGet BOM cost
GET/api/v1/bom/{bomId}/work-ordersGet BOM work orders

Get BOMs

GET/api/v1/bom

Access. Send a bearer token or an API key. The caller needs the Products view permission.

Parameters

NameInTypeRequiredDescription
Pagequeryinteger (int32)NoLimits: minimum 1.
PageSizequeryinteger (int32)NoLimits: minimum 1, maximum 100.
$orderbyquerystringNoExample: "created_at desc" or "name asc"
$filterquerystringNoApply a ODATA style filter to the query to add a fixed constraint. For example, if you want to filter by the creation date, you would set the filter to "created_at ge 2022-01-01". Or if you want to filter by a specific status, you would set the filter to "status eq 'active'".
$searchquerystringNoProvide a search value which would inherit the 'CONTAINS' behaviour.

Response

200. Returns a PagedResult envelope. Each item in data is BomResponse.

Request
curl -X GET "https://api.miridia.io/api/v1/bom" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "count": 0,
  "totalCount": 0,
  "page": 0,
  "finalPage": 0,
  "pageSize": 0,
  "hasMore": true,
  "statusCode": "OK",
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "parentProductTitle": "string",
      "parentProductCode": "string",
      "title": "string",
      "description": "string",
      "bomType": "Assembly",
      "status": "Draft",
      "revisionNumber": 0,
      "effectiveDate": "2026-09-29T08:00:00Z",
      "expiryDate": "2026-09-29T08:00:00Z",
      "assemblyInstructions": "string",
      "outputQuantity": 0,
      "lineItems": [
        {}
      ],
      "costLines": [
        {}
      ],
      "dateModified": "2026-09-29T08:00:00Z",
      "dateCreated": "2026-09-29T08:00:00Z"
    }
  ],
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ]
}

Create BOM

POST/api/v1/bom

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Request body

Send JSON with the shape CreateBomCommand.

FieldTypeRequiredDescription
parentProductIdstring (uuid)No
titlestringNo
descriptionstringNo
bomTypeenum BomTypeNoOne of: Assembly, Kit.
statusenum BomStatusNoOne of: Draft, Active, Blocked, Superseded.
revisionNumberinteger (int32)No
effectiveDatestring (date-time)No
expiryDatestring (date-time)No
assemblyInstructionsstringNo
outputQuantitynumber (double)No
lineItemsBomLineItemRequest[]No
costLinesBomCostLineRequest[]No

Response

200. Returns a SingleResult envelope. The data field is BomResponse.

Request
curl -X POST "https://api.miridia.io/api/v1/bom" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "description": "string",
  "bomType": "Assembly",
  "status": "Draft",
  "revisionNumber": 0,
  "effectiveDate": "2026-09-29T08:00:00Z",
  "expiryDate": "2026-09-29T08:00:00Z",
  "assemblyInstructions": "string",
  "outputQuantity": 0,
  "lineItems": [
    {
      "componentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "quantityRequired": 0,
      "unit": "Each",
      "scrapFactorPercent": 0,
      "sortOrder": 0,
      "notes": "string"
    }
  ],
  "costLines": [
    {
      "description": "string",
      "costType": "FixedPerUnit",
      "costAmount": 0,
      "glAccountCode": "string",
      "sortOrder": 0
    }
  ]
}'
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductTitle": "string",
    "parentProductCode": "string",
    "title": "string",
    "description": "string",
    "bomType": "Assembly",
    "status": "Draft",
    "revisionNumber": 0,
    "effectiveDate": "2026-09-29T08:00:00Z",
    "expiryDate": "2026-09-29T08:00:00Z",
    "assemblyInstructions": "string",
    "outputQuantity": 0,
    "lineItems": [
      {}
    ],
    "costLines": [
      {}
    ],
    "dateModified": "2026-09-29T08:00:00Z",
    "dateCreated": "2026-09-29T08:00:00Z"
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Get BOM

GET/api/v1/bom/{bomId}

Access. Send a bearer token or an API key. The caller needs the Products view permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is BomResponse.

Request
curl -X GET "https://api.miridia.io/api/v1/bom/{bomId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductTitle": "string",
    "parentProductCode": "string",
    "title": "string",
    "description": "string",
    "bomType": "Assembly",
    "status": "Draft",
    "revisionNumber": 0,
    "effectiveDate": "2026-09-29T08:00:00Z",
    "expiryDate": "2026-09-29T08:00:00Z",
    "assemblyInstructions": "string",
    "outputQuantity": 0,
    "lineItems": [
      {}
    ],
    "costLines": [
      {}
    ],
    "dateModified": "2026-09-29T08:00:00Z",
    "dateCreated": "2026-09-29T08:00:00Z"
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Update BOM

PUT/api/v1/bom/{bomId}

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes

Request body

Send JSON with the shape UpdateBomCommand.

FieldTypeRequiredDescription
idstring (uuid)No
parentProductIdstring (uuid)No
titlestringNo
descriptionstringNo
bomTypeenum BomTypeNoOne of: Assembly, Kit.
statusenum BomStatusNoOne of: Draft, Active, Blocked, Superseded.
revisionNumberinteger (int32)No
effectiveDatestring (date-time)No
expiryDatestring (date-time)No
assemblyInstructionsstringNo
outputQuantitynumber (double)No
lineItemsBomLineItemRequest[]No
costLinesBomCostLineRequest[]No

Response

200. Returns a SingleResult envelope. The data field is BomResponse.

Request
curl -X PUT "https://api.miridia.io/api/v1/bom/{bomId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "description": "string",
  "bomType": "Assembly",
  "status": "Draft",
  "revisionNumber": 0,
  "effectiveDate": "2026-09-29T08:00:00Z",
  "expiryDate": "2026-09-29T08:00:00Z",
  "assemblyInstructions": "string",
  "outputQuantity": 0,
  "lineItems": [
    {
      "componentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "quantityRequired": 0,
      "unit": "Each",
      "scrapFactorPercent": 0,
      "sortOrder": 0,
      "notes": "string"
    }
  ],
  "costLines": [
    {
      "description": "string",
      "costType": "FixedPerUnit",
      "costAmount": 0,
      "glAccountCode": "string",
      "sortOrder": 0
    }
  ]
}'
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductTitle": "string",
    "parentProductCode": "string",
    "title": "string",
    "description": "string",
    "bomType": "Assembly",
    "status": "Draft",
    "revisionNumber": 0,
    "effectiveDate": "2026-09-29T08:00:00Z",
    "expiryDate": "2026-09-29T08:00:00Z",
    "assemblyInstructions": "string",
    "outputQuantity": 0,
    "lineItems": [
      {}
    ],
    "costLines": [
      {}
    ],
    "dateModified": "2026-09-29T08:00:00Z",
    "dateCreated": "2026-09-29T08:00:00Z"
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Delete BOM

DELETE/api/v1/bom/{bomId}

Access. Send a bearer token or an API key. The caller needs the Products delete permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is boolean.

Request
curl -X DELETE "https://api.miridia.io/api/v1/bom/{bomId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": true,
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Activate BOM

POST/api/v1/bom/{bomId}/activate

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is BomResponse.

Request
curl -X POST "https://api.miridia.io/api/v1/bom/{bomId}/activate" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductTitle": "string",
    "parentProductCode": "string",
    "title": "string",
    "description": "string",
    "bomType": "Assembly",
    "status": "Draft",
    "revisionNumber": 0,
    "effectiveDate": "2026-09-29T08:00:00Z",
    "expiryDate": "2026-09-29T08:00:00Z",
    "assemblyInstructions": "string",
    "outputQuantity": 0,
    "lineItems": [
      {}
    ],
    "costLines": [
      {}
    ],
    "dateModified": "2026-09-29T08:00:00Z",
    "dateCreated": "2026-09-29T08:00:00Z"
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Add BOM line item

POST/api/v1/bom/{bomId}/line-items

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes

Request body

Send JSON with the shape AddBomLineItemCommand.

FieldTypeRequiredDescription
bomIdstring (uuid)No
componentProductIdstring (uuid)No
quantityRequirednumber (double)No
unitenum UnitOfMeasureNoOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
scrapFactorPercentnumber (double)No
sortOrderinteger (int32)No
notesstringNo

Response

200. Returns a SingleResult envelope. The data field is BomResponse.

Request
curl -X POST "https://api.miridia.io/api/v1/bom/{bomId}/line-items" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "bomId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "componentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "quantityRequired": 0,
  "unit": "Each",
  "scrapFactorPercent": 0,
  "sortOrder": 0,
  "notes": "string"
}'
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductTitle": "string",
    "parentProductCode": "string",
    "title": "string",
    "description": "string",
    "bomType": "Assembly",
    "status": "Draft",
    "revisionNumber": 0,
    "effectiveDate": "2026-09-29T08:00:00Z",
    "expiryDate": "2026-09-29T08:00:00Z",
    "assemblyInstructions": "string",
    "outputQuantity": 0,
    "lineItems": [
      {}
    ],
    "costLines": [
      {}
    ],
    "dateModified": "2026-09-29T08:00:00Z",
    "dateCreated": "2026-09-29T08:00:00Z"
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Update BOM line item

PUT/api/v1/bom/{bomId}/line-items/{lineItemId}

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes
lineItemIdpathstring (uuid)Yes

Request body

Send JSON with the shape UpdateBomLineItemCommand.

FieldTypeRequiredDescription
bomIdstring (uuid)No
lineItemIdstring (uuid)No
componentProductIdstring (uuid)No
quantityRequirednumber (double)No
unitenum UnitOfMeasureNoOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
scrapFactorPercentnumber (double)No
sortOrderinteger (int32)No
notesstringNo

Response

200. Returns a SingleResult envelope. The data field is BomResponse.

Request
curl -X PUT "https://api.miridia.io/api/v1/bom/{bomId}/line-items/{lineItemId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "bomId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "lineItemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "componentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "quantityRequired": 0,
  "unit": "Each",
  "scrapFactorPercent": 0,
  "sortOrder": 0,
  "notes": "string"
}'
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductTitle": "string",
    "parentProductCode": "string",
    "title": "string",
    "description": "string",
    "bomType": "Assembly",
    "status": "Draft",
    "revisionNumber": 0,
    "effectiveDate": "2026-09-29T08:00:00Z",
    "expiryDate": "2026-09-29T08:00:00Z",
    "assemblyInstructions": "string",
    "outputQuantity": 0,
    "lineItems": [
      {}
    ],
    "costLines": [
      {}
    ],
    "dateModified": "2026-09-29T08:00:00Z",
    "dateCreated": "2026-09-29T08:00:00Z"
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Delete BOM line item

DELETE/api/v1/bom/{bomId}/line-items/{lineItemId}

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes
lineItemIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is BomResponse.

Request
curl -X DELETE "https://api.miridia.io/api/v1/bom/{bomId}/line-items/{lineItemId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentProductTitle": "string",
    "parentProductCode": "string",
    "title": "string",
    "description": "string",
    "bomType": "Assembly",
    "status": "Draft",
    "revisionNumber": 0,
    "effectiveDate": "2026-09-29T08:00:00Z",
    "expiryDate": "2026-09-29T08:00:00Z",
    "assemblyInstructions": "string",
    "outputQuantity": 0,
    "lineItems": [
      {}
    ],
    "costLines": [
      {}
    ],
    "dateModified": "2026-09-29T08:00:00Z",
    "dateCreated": "2026-09-29T08:00:00Z"
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Get BOM cost

GET/api/v1/bom/{bomId}/cost

Access. Send a bearer token or an API key. The caller needs the Products view permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes
asOfDatequerystring (date-time)No

Response

200. Returns a SingleResult envelope. The data field is BomCostBreakdownResponse.

Request
curl -X GET "https://api.miridia.io/api/v1/bom/{bomId}/cost" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "bomId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "asOfDate": "2026-09-29T08:00:00Z",
    "lineCosts": [
      {}
    ],
    "materialSubtotal": 0,
    "scrapTotal": 0,
    "productionSubtotal": 0,
    "productionCosts": [
      {}
    ],
    "totalCost": 0,
    "outputQuantity": 0,
    "unitMaterialCost": 0,
    "unitProductionCost": 0,
    "unitCost": 0,
    "sellingPrice": 0,
    "grossMargin": 0,
    "marginPercent": 0
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Get BOM work orders

GET/api/v1/bom/{bomId}/work-orders

Returns the work orders that used this bill of materials, in the same page shape as GET /work-orders.

Access. Send a bearer token or an API key. The caller needs the Products view permission.

Parameters

NameInTypeRequiredDescription
bomIdpathstring (uuid)Yes
Pagequeryinteger (int32)NoLimits: minimum 1.
PageSizequeryinteger (int32)NoLimits: minimum 1, maximum 100.
$orderbyquerystringNoExample: "created_at desc" or "name asc"
$filterquerystringNoApply a ODATA style filter to the query to add a fixed constraint. For example, if you want to filter by the creation date, you would set the filter to "created_at ge 2022-01-01". Or if you want to filter by a specific status, you would set the filter to "status eq 'active'".
$searchquerystringNoProvide a search value which would inherit the 'CONTAINS' behaviour.

Response

200. Returns a PagedResult envelope. Each item in data is WorkOrderResponse.

Request
curl -X GET "https://api.miridia.io/api/v1/bom/{bomId}/work-orders" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"

Models

The operations on this page use these object types. Select a type to see its fields.

ActivityTrace

Refer to ActionMessage. An activity trace becomes an action message once the response to the client is sent.

FieldTypeDescription
idstring (uuid)
activityTypeenum ActivityTypeOne of: System, User.
userIdstring (uuid)
codestring
titlestring
messagestring
sourcestring
actionLinkstring
levelenum NotificationLevelOne of: Standard, Info, Warning, Error, Success, Recommendation.
dateOfActivitystring (date-time)
isDashboardOnlyboolean
iconenum MdiIconOne of: None, SyncAlert, Autorenew, Check, CheckMarkedCircle, AlertCircle, TruckDeliveryOutline, TruckFastOutline, PackageCheck, Warehouse, SwapHorizontal, AccountCheck, AccountRemove, AccountCancel, Delete.
BomCostBreakdownResponse
FieldTypeDescription
bomIdstring (uuid)
asOfDatestring (date-time)
lineCostsBomLineCostResponse[]
materialSubtotalnumber (double)
scrapTotalnumber (double)
productionSubtotalnumber (double)
productionCostsBomProductionCostResponse[]Per-cost-line detail behind ProductionSubtotal. The ResolvedCost values sum to it.
totalCostnumber (double)Batch cost. To produce OutputQuantity finished units.
outputQuantitynumber (double)The BOM's batch yield (finished units per run).
unitMaterialCostnumber (double)
unitProductionCostnumber (double)
unitCostnumber (double)Cost per finished unit (TotalCost ÷ OutputQuantity). Compares to SellingPrice.
sellingPricenumber (double)
grossMarginnumber (double)Per-unit margin: SellingPrice − UnitCost.
marginPercentnumber (double)
BomCostLineRequest
FieldTypeDescription
descriptionstring
costTypeenum BomCostTypeOne of: FixedPerUnit, Percentage, HourlyRate.
costAmountnumber (double)
glAccountCodestring
sortOrderinteger (int32)
BomCostLineResponse
FieldTypeDescription
idstring (uuid)
descriptionstring
costTypeenum BomCostTypeOne of: FixedPerUnit, Percentage, HourlyRate.
costAmountnumber (double)
glAccountCodestring
sortOrderinteger (int32)
BomLineCostResponse
FieldTypeDescription
lineItemIdstring (uuid)
componentProductIdstring (uuid)
componentTitlestring
unitPricenumber (double)Price of one CostedUnit (pack-normalised).
quantityRequirednumber (double)Recipe quantity as authored, in RecipeUnit.
recipeUnitenum UnitOfMeasureOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
costedQuantitynumber (double)Recipe quantity converted into the price's unit (what UnitPrice multiplies).
costedUnitenum UnitOfMeasureOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
unitMismatchbooleanTrue when the recipe unit couldn't convert to the price unit; raw quantity was used.
scrapFactorPercentnumber (double)
baseMaterialCostnumber (double)
lineMaterialCostnumber (double)
BomLineItemRequest
FieldTypeDescription
componentProductIdstring (uuid)
quantityRequirednumber (double)
unitenum UnitOfMeasureOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
scrapFactorPercentnumber (double)
sortOrderinteger (int32)
notesstring
BomLineItemResponse
FieldTypeDescription
idstring (uuid)
componentProductIdstring (uuid)
componentTitlestring
componentCodestring
componentSkustring
componentTypeenum ProductTypeOne of: FinishedGood, RawMaterial, Component, Consumable, Service.
quantityRequirednumber (double)
unitenum UnitOfMeasureOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
scrapFactorPercentnumber (double)
sortOrderinteger (int32)
notesstring
isExpandableboolean
BomProductionCostResponse
FieldTypeDescription
costLineIdstring (uuid)
descriptionstring
costTypeenum BomCostTypeOne of: FixedPerUnit, Percentage, HourlyRate.
costAmountnumber (double)The amount as authored on the cost line. For Percentage this is the percentage, not money.
glAccountCodestring
sortOrderinteger (int32)
resolvedCostnumber (double)The money this line contributes to the batch, after its cost type is applied.
BomResponse
FieldTypeDescription
idstring (uuid)
parentProductIdstring (uuid)
parentProductTitlestring
parentProductCodestring
titlestring
descriptionstring
bomTypeenum BomTypeOne of: Assembly, Kit.
statusenum BomStatusOne of: Draft, Active, Blocked, Superseded.
revisionNumberinteger (int32)
effectiveDatestring (date-time)
expiryDatestring (date-time)
assemblyInstructionsstring
outputQuantitynumber (double)
lineItemsBomLineItemResponse[]
costLinesBomCostLineResponse[]
dateModifiedstring (date-time)
dateCreatedstring (date-time)
MetadataFileAttachment

Not quite as complete as the normal FileAttachment aggregate.

FieldTypeDescription
idstring (uuid)
typeenum MetadataAttachmentTypeOne of: File, Link.
fileAttachmentIdstring (uuid)Left as Guid.Empty for Link entries.
titlestring
urlstring
contentTypestring
descriptionstring
WorkOrderMaterialResponse
FieldTypeDescription
idstring (uuid)
componentProductIdstring (uuid)
componentTitlestring
componentCodestring
componentSkustring
componentTypeenum ProductTypeOne of: FinishedGood, RawMaterial, Component, Consumable, Service.
plannedQuantitynumber (double)
consumedQuantitynumber (double)
unitenum UnitOfMeasureOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
WorkOrderProducedLotResponse
FieldTypeDescription
idstring (uuid)
lotNumberstring
expiryDatestring (date-time)
WorkOrderResponse
FieldTypeDescription
idstring (uuid)
referencestring
descriptionstring
revisionNumberinteger (int32)
outputProductIdstring (uuid)
outputProductTitlestring
outputProductCodestring
bomIdstring (uuid)
bomRevisionNumberinteger (int32)
processIdstring (uuid)
processRevisionNumberinteger (int32)
productionLocationIdstring (uuid)
productionLocationTitlestring
assignedToUserIdstring (uuid)The user who should run this work order. Null when unassigned.
assignedToNamestring
statusenum WorkOrderStatusOne of: Planned, InProgress, Completed, Cancelled.
plannedQuantitynumber (double)
producedQuantitynumber (double)
scrappedQuantitynumber (double)
scrapReasonstringExplains the scrapped quantity. Null when nothing was scrapped.
scheduledStartstring (date-time)
actualStartstring (date-time)
actualEndstring (date-time)
totalCostnumber (double)
unitCostnumber (double)
materialsWorkOrderMaterialResponse[]
stepsWorkOrderStepResponse[]
producedLotWorkOrderProducedLotResponse
serialNumbersWorkOrderSerialNumberResponse[]
attachmentsMetadataFileAttachment[]File attachments associated with the work order (batch records, quality certificates, photographs).
tracesActivityTrace[]Activity traces recorded against the work order.
WorkOrderSerialNumberResponse
FieldTypeDescription
idstring (uuid)
serialNumberstring
statusenum SerialNumberStatusOne of: Available, Consumed, Shipped, Scrapped.
WorkOrderStepResponse
FieldTypeDescription
idstring (uuid)
stepNumberinteger (int32)
titlestring
instructionsstring
statusenum WorkOrderStepStatusOne of: Pending, InProgress, Done, Skipped.
startedAtstring (date-time)
completedAtstring (date-time)
completedByUserIdstring (uuid)
completedByNamestring
assignedToUserIdstring (uuid)The user who should carry out this step. Null when unassigned.
assignedToNamestring
requiresQualityCheckbooleanMarks this step as a quality checkpoint.
qualityCheckPassedbooleanThe recorded pass/fail result of the quality check. Null until recorded.
notesstring