---
title: "Creates a new bill of materials for a production item, including its components."
method: POST
path: "/v2/production-items/{productionItemId}/bills-of-materials/create"
tags: ["CreateCommand"]
---

# Creates a new bill of materials for a production item, including its components.

`POST /v2/production-items/{productionItemId}/bills-of-materials/create`

## Request

- Base URL: `https://scx-sbx.api.jtl-software.com`
- URL: `https://scx-sbx.api.jtl-software.com/v2/production-items/{productionItemId}/bills-of-materials/create`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://auth.jtl-cloud.com/oauth2/auth`
    - Token URL: `https://auth.jtl-cloud.com/oauth2/token` scopes: `pps.write`
  - OAuth 2
    - Client credentials
    - Token URL: `https://auth.jtl-cloud.com/oauth2/token` scopes: `pps.write`
- TypeScript: <https://skmtc.dev/jtl-software/apis/scx-authentication-api/docs/v2/production-items/:productionItemId/bills-of-materials/create/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `productionItemId` string, uuid, required: Der Schlüssel eines Produktionsartikels.

## Headers

- `x-tenant-id` string, uuid, required
- `x-runas` string
- `x-companyid` string

## Request body

- JTLPPSProductionItemsPublicApiDataTransferObjectsV2CreateCreateBillOfMaterialsCommandRequest: Creates a new bill of materials for a production item, including its components. - Request
  - `productionItemId` string, uuid: Der Schlüssel eines Produktionsartikels.
  - `input` JTLPPSProductionItemsPublicApiDataTransferObjectsV2CreateCreateBillOfMaterialsInput: Represents the input for creating a bill of materials as part of a production item.
    - `name` string: The name of the bill of materials.
    - `description` string: An optional description of the bill of materials.
    - `componentPostingsShelfLifeEndDateRequirements` 0 | 1: 0 = None, 1 = Identical
    - `componentPostingsBatchNumberRequirements` 0 | 1: 0 = None, 1 = Identical
    - `shelfLifeEndDateGenerationMode` 0 | 1 | 2: 0 = Earliest, 1 = Latest, 2 = ProductionDate
    - `additionalShelfLifeEndDateTime` string, duration: A time span that is added when calculating the shelf life end date of the produced item after completing a lot. Required when ShelfLifeEndDateGenerationMode is ProductionDate; optional when ShelfLifeEndDateGenerationMode is Earliest or Latest; is ignored when ShelfLifeEndDateGenerationMode is not specified.
    - `operations` JTLPPSProductionItemsPublicApiDataTransferObjectsV2CreateCreateBillOfMaterialsOperationInput[]: The operations of this bill of materials. At least one operation is required, and across all operations at least one item must be present.
      - `operationId` string, uuid
      - `items` JTLPPSProductionItemsPublicApiDataTransferObjectsV2CreateCreateBillOfMaterialsItemInput[]: The bill of materials items assigned to this operation. Optional per individual operation, but at least one component must be present across all operations within the bill of materials.
        - `itemId` string, uuid
        - `quantity` number: The required quantity of this component for the production of the production item. Must be greater than zero.
        - `measurementUnitId` string, uuid
        - `componentPostingsShelfLifeEndDateRequirements` 0 | 1 | 2: 0 = Inherited, 1 = None, 2 = Identical
        - `componentPostingsBatchNumberRequirements` 0 | 1 | 2: 0 = Inherited, 1 = None, 2 = Identical

## Response `201`

Successfully created a bill of materials.

---

[API](https://skmtc.dev/jtl-software/apis/scx-authentication-api.md) - [All operations](https://skmtc.dev/jtl-software/apis/scx-authentication-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jtl-software/apis/scx-authentication-api/revisions/f979b1ea6951?raw)
