Skip to main content
Manufacturing API (Roadmap)roadmap

Roadmap: BOM (Bill of Materials)

Planned: full CRUD plus where-used analytics and material requirements explosion. Currently lives on the internal route /bom — not on /public/v1.

Status

Public API: not yet exposed. Internal HTTP surface: live at /bom/* (HelloBooks frontend only). gRPC layer: HelloBooks-Backend-Accounting-V3/controllers/bom.grpc.controller.js.

The shape below is extracted from the internal surface and previews what the public-API curated subset will look like.

Planned endpoints

MethodPlanned pathActionPlanned scope
GET/orgs/:o/entities/:e/bomsList BOMs (filterable by status, item, search)bom:read
GET/orgs/:o/entities/:e/boms/:idRead one BOMbom:read
GET/orgs/:o/entities/:e/items/:itemId/active-bomGet active BOM for an item (used by Work Order creation)bom:read
GET/orgs/:o/entities/:e/items/:itemId/where-usedFind all BOMs that consume this itembom:read
POST/orgs/:o/entities/:e/bomsCreate BOMbom:create
PUT/orgs/:o/entities/:e/boms/:idUpdate BOMbom:update
DELETE/orgs/:o/entities/:e/bomsSoft-archive (bulk; body { ids: [...] })bom:delete
PUT/orgs/:o/entities/:e/boms/restoreUn-archive (bulk; body { ids: [...] })bom:update
GET/orgs/:o/entities/:e/bom-reports/cost-analysisBOM cost analysis reportbom:read
GET/orgs/:o/entities/:e/bom-reports/component-usageComponents ranked by reusebom:read
GET/orgs/:o/entities/:e/boms/:id/material-requirementsExplode BOM × plannedQty into component needsbom:read

URL paths are illustrative — the curated subset may consolidate or rename routes.

Planned response shape — BOM

Single-BOM response (extracted from bom.repository.js include block):

{
  "id": "string",
  "EntityRefId": "string",
  "OrgRefId": "string",
  "Name": "string",
  "ItemRefId": "string | null",
  "ItemName": "string | null",
  "ItemCode": "string | null",
  "Version": "string | null",
  "Status": "Draft | Active | Archived",
  "Notes": "string | null",
  "IsArchived": false,
  "TotalCost": 0.0,
  "CreatedAt": "ISO-8601",
  "UpdatedAt": "ISO-8601",
  "Lines": [
    {
      "id": "string",
      "ItemRefId": "string",
      "ItemCode": "string | null",
      "ItemName": "string | null",
      "Quantity": 0.0,
      "UnitRefId": "string | null",
      "UnitCost": 0.0,
      "WastePercentage": 0.0,
      "Notes": "string | null",
      "Unit": { "id": "string", "Name": "string" },
      "ComputedLineCost": 0.0,
      "ComputedUnitCost": 0.0
    }
  ]
}

TotalCost and ComputedLineCost are server-rolled-up values — do not compute them client-side.

Planned webhook events

  • bom.created — fired on successful POST
  • bom.updated — fired on successful PUT
  • bom.archived — fired on successful DELETE (soft-archive)
  • bom.restored — fired on successful restore
    Roadmap: HelloBooks BOM API