Retraced Product / BOM Lines API
The Product / BOM Lines API from Retraced — 3 operation(s) for product / bom lines.
The Product / BOM Lines API from Retraced — 3 operation(s) for product / bom lines.
openapi: 3.0.3
info:
title: Public API Reference Certificates Product / BOM Lines API
description: 'The retraced API comprises all publicly enabled options to make
machine-to-machine changes in the retraced platform. The retraced dashboard uses the
same endpoints, but also in addition more. If you wish to use the API of the dashboard,
it is possible but not versioned cleanly like the public API.
## Authentication
The authentication procedure is passwordless and uses an API key in the header. To get
an API key log into the Retraced Platform and navigate to **Developers HQ > API Keys**
then click **Create**. Be sure to copy the key somewhere safe, as you won''t be able to
view it again. If you don''t see Developers HQ in the sidebar contact your Customer
Success Manager to enable this for you. You can now set the key directly in request
headers. To authenticate using an API key, set the header key `companyapikey` to the
value of your API key.
## Getting Started
Retraced has 2 environments against which you can send your requests and receive the
expected response: staging (for development and testing) and production. Your API key
is scoped for both environments. The staging Base URL is
https://publicapi.staging.retraced.com. Staging copies production data once daily, and
all changes made on staging will be deleted.
Find detailed guides on how to use the endpoints and how we recommend building an
integration given your use case in our
[guides](https://publicapi.retraced.com/api/v2/guides). A history of public API
changes is available in the
[release notes](https://publicapi.retraced.com/api/v2/release-notes).'
version: 2.938.1
servers: []
tags:
- name: Product / BOM Lines
paths:
/api/v2/bom-lines/:
post:
tags:
- Product / BOM Lines
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
bomHeaderId:
type: string
minLength: 1
placementId:
anyOf:
- type: string
- type: 'null'
entity:
type: object
properties:
styleId:
type: string
minLength: 1
required:
- styleId
quantity:
anyOf:
- type: number
minimum: 0
- type: 'null'
quantityUnit:
anyOf:
- type: string
enum:
- PIECES
- PAIR
- PERCENTAGE
- DENIER
- JUTE
- ENGLISH_COUNT
- METRIC_COUNT
- WORSTED_COUNT
- TEX
- GRAM
- KILOGRAM
- LITRE
- METRIC_TON
- MILLIMETRE
- CENTIMETRE
- METRE
- SQUARE_CENTIMETRE
- SQUARE_METRE
- type: 'null'
weight:
anyOf:
- type: number
minimum: 0
- type: 'null'
weightUnit:
anyOf:
- type: string
enum:
- GRAM
- GRAM_PER_SQUARE_METER
- GRAM_PER_SQUARE_FOOT
- GRAM_PER_SQUARE_YARD
- OUNCE_PER_SQUARE_YARD
- MILLIGRAM
- KILOGRAM
- METRIC_TON
- POUNDS
- SHORT_TON
- LONG_TON
- HUNDREDWEIGHT
- SHORT_HUNDREDWEIGHT
- LONG_HUNDREDWEIGHT
- OUNCE
- DRAM
- GRAIN
- PENNYWEIGHT
- SCRUPLE
- STONE
- type: 'null'
countryOfOrigin:
anyOf:
- type: string
maxLength: 100
- type: 'null'
isMainComponent:
default: false
type: boolean
component:
type: object
properties:
styleId:
type: string
minLength: 1
required:
- styleId
required:
- bomHeaderId
- entity
- component
responses:
'201':
description: Default Response
content:
application/json:
schema:
type: object
properties:
metadata:
type: object
properties:
success:
default: true
type: boolean
pagination:
type: object
properties:
page:
default: 1
type: number
limit:
default: 10
type: number
total:
default: 0
type: number
totalPages:
default: 0
type: number
required:
- page
- limit
- total
- totalPages
additionalProperties: false
required:
- success
additionalProperties: false
data:
type: object
properties:
id:
type: string
bomHeaderId:
type: string
placementId:
anyOf:
- type: string
- type: 'null'
styleId:
anyOf:
- type: string
- type: 'null'
quantity:
anyOf:
- type: number
- type: 'null'
quantityUnit:
anyOf:
- type: string
- type: 'null'
weight:
anyOf:
- type: number
- type: 'null'
weightUnit:
anyOf:
- type: string
- type: 'null'
countryOfOrigin:
anyOf:
- type: string
- type: 'null'
isMainComponent:
type: boolean
createdAt:
type: string
createdByUserId:
anyOf:
- type: string
- type: 'null'
createdByCompanyId:
anyOf:
- type: string
- type: 'null'
updatedAt:
type: string
updatedByUserId:
anyOf:
- type: string
- type: 'null'
updatedByCompanyId:
anyOf:
- type: string
- type: 'null'
required:
- id
- bomHeaderId
- placementId
- styleId
- quantity
- quantityUnit
- weight
- weightUnit
- countryOfOrigin
- isMainComponent
- createdAt
- createdByUserId
- createdByCompanyId
- updatedAt
- updatedByUserId
- updatedByCompanyId
additionalProperties: false
required:
- metadata
- data
additionalProperties: false
get:
tags:
- Product / BOM Lines
parameters:
- schema:
default: 1
type: integer
minimum: 1
maximum: 9007199254740991
in: query
name: page
required: false
- schema:
default: 20
type: integer
minimum: 1
maximum: 100
in: query
name: limit
required: false
- schema:
default: desc
type: string
enum:
- asc
- desc
- ASC
- DESC
in: query
name: order
required: false
- schema:
default: createdAt
type: string
enum:
- createdAt
- updatedAt
- quantity
- weight
in: query
name: sort
required: false
- schema:
type: string
in: query
name: bomHeaderId
required: false
- schema:
type: string
in: query
name: styleId
required: false
- schema:
type: string
in: query
name: placementId
required: false
- schema:
type: string
in: query
name: countryOfOrigin
required: false
- schema:
anyOf:
- type: boolean
- type: string
enum:
- 'true'
- type: string
enum:
- 'false'
in: query
name: isMainComponent
required: false
- schema:
type: string
in: query
name: include
required: false
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
metadata:
type: object
properties:
success:
default: true
type: boolean
pagination:
type: object
properties:
page:
default: 1
type: number
limit:
default: 10
type: number
total:
default: 0
type: number
totalPages:
default: 0
type: number
required:
- page
- limit
- total
- totalPages
additionalProperties: false
required:
- success
additionalProperties: false
data:
type: array
items:
type: object
properties:
id:
type: string
bomHeaderId:
type: string
placementId:
anyOf:
- type: string
- type: 'null'
styleId:
anyOf:
- type: string
- type: 'null'
quantity:
anyOf:
- type: number
- type: 'null'
quantityUnit:
anyOf:
- type: string
- type: 'null'
weight:
anyOf:
- type: number
- type: 'null'
weightUnit:
anyOf:
- type: string
- type: 'null'
countryOfOrigin:
anyOf:
- type: string
- type: 'null'
isMainComponent:
type: boolean
createdAt:
type: string
createdByUserId:
anyOf:
- type: string
- type: 'null'
createdByCompanyId:
anyOf:
- type: string
- type: 'null'
updatedAt:
type: string
updatedByUserId:
anyOf:
- type: string
- type: 'null'
updatedByCompanyId:
anyOf:
- type: string
- type: 'null'
entity:
type: object
properties:
id:
type: string
forCompanyId:
type: string
codes:
type: array
items:
type: object
properties:
codeId:
type: string
codeValue:
type: string
required:
- codeId
- codeValue
additionalProperties: false
name:
type: string
suppliers:
anyOf:
- type: array
items:
type: string
- type: 'null'
mainSupplier:
anyOf:
- type: string
- type: 'null'
required:
- id
- forCompanyId
- codes
- name
- suppliers
- mainSupplier
additionalProperties: false
placement:
type: object
properties:
id:
type: string
value:
type: string
forCompanyId:
type: string
required:
- id
- value
- forCompanyId
additionalProperties: false
required:
- id
- bomHeaderId
- placementId
- styleId
- quantity
- quantityUnit
- weight
- weightUnit
- countryOfOrigin
- isMainComponent
- createdAt
- createdByUserId
- createdByCompanyId
- updatedAt
- updatedByUserId
- updatedByCompanyId
additionalProperties: false
required:
- metadata
- data
additionalProperties: false
/api/v2/bom-lines/delete:
post:
tags:
- Product / BOM Lines
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
bomLineIds:
minItems: 1
maxItems: 100
type: array
items:
type: string
minLength: 1
styleId:
type: string
minLength: 1
required:
- bomLineIds
- styleId
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
metadata:
type: object
properties:
success:
default: true
type: boolean
pagination:
type: object
properties:
page:
default: 1
type: number
limit:
default: 10
type: number
total:
default: 0
type: number
totalPages:
default: 0
type: number
required:
- page
- limit
- total
- totalPages
additionalProperties: false
required:
- success
additionalProperties: false
data:
type: object
properties:
deletedLines:
description: IDs of successfully deleted BOM lines
type: array
items:
type: string
duplicatedHeaders:
description: Details of headers that were duplicated for child entities
type: array
items:
type: object
properties:
originalHeaderId:
type: string
newHeaderId:
type: string
forEntityId:
type: string
entityType:
type: string
enum:
- style
- variant
- sku
required:
- originalHeaderId
- newHeaderId
- forEntityId
- entityType
additionalProperties: false
orphanedHeaders:
description: IDs of headers that were cleaned up
type: array
items:
type: string
errors:
description: Errors encountered during deletion process
type: array
items:
type: object
properties:
bomLineId:
type: string
error:
type: string
required:
- bomLineId
- error
additionalProperties: false
required:
- deletedLines
- duplicatedHeaders
- orphanedHeaders
- errors
additionalProperties: false
required:
- metadata
- data
additionalProperties: false
/api/v2/bom-lines/{id}:
put:
tags:
- Product / BOM Lines
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
entity:
type: object
properties:
styleId:
type: string
minLength: 1
required:
- styleId
component:
type: object
properties:
styleId:
type: string
minLength: 1
required:
- styleId
placementId:
anyOf:
- type: string
- type: 'null'
quantity:
anyOf:
- type: number
minimum: 0
- type: 'null'
quantityUnit:
anyOf:
- type: string
enum:
- PIECES
- PAIR
- PERCENTAGE
- DENIER
- JUTE
- ENGLISH_COUNT
- METRIC_COUNT
- WORSTED_COUNT
- TEX
- GRAM
- KILOGRAM
- LITRE
- METRIC_TON
- MILLIMETRE
- CENTIMETRE
- METRE
- SQUARE_CENTIMETRE
- SQUARE_METRE
- type: 'null'
weight:
anyOf:
- type: number
minimum: 0
- type: 'null'
weightUnit:
anyOf:
- type: string
enum:
- GRAM
- GRAM_PER_SQUARE_METER
- GRAM_PER_SQUARE_FOOT
- GRAM_PER_SQUARE_YARD
- OUNCE_PER_SQUARE_YARD
- MILLIGRAM
- KILOGRAM
- METRIC_TON
- POUNDS
- SHORT_TON
- LONG_TON
- HUNDREDWEIGHT
- SHORT_HUNDREDWEIGHT
- LONG_HUNDREDWEIGHT
- OUNCE
- DRAM
- GRAIN
- PENNYWEIGHT
- SCRUPLE
- STONE
- type: 'null'
countryOfOrigin:
anyOf:
- type: string
maxLength: 100
- type: 'null'
isMainComponent:
type: boolean
required:
- entity
- component
parameters:
- schema:
type: string
minLength: 1
in: path
name: id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
metadata:
type: object
properties:
success:
default: true
type: boolean
pagination:
type: object
properties:
page:
default: 1
type: number
limit:
default: 10
type: number
total:
default: 0
type: number
totalPages:
default: 0
type: number
required:
- page
- limit
- total
- totalPages
additionalProperties: false
required:
- success
additionalProperties: false
data:
type: object
properties:
id:
type: string
bomHeaderId:
type: string
placementId:
anyOf:
- type: string
- type: 'null'
styleId:
anyOf:
- type: string
- type: 'null'
quantity:
anyOf:
- type: number
- type: 'null'
quantityUnit:
anyOf:
- type: string
- type: 'null'
weight:
anyOf:
- type: number
- type: 'null'
weightUnit:
anyOf:
- type: string
- type: 'null'
countryOfOrigin:
anyOf:
- type: string
- type: 'null'
isMainComponent:
type: boolean
createdAt:
type: string
createdByUserId:
anyOf:
- type: string
- type: 'null'
createdByCompanyId:
anyOf:
- type: string
- type: 'null'
updatedAt:
type: string
updatedByUserId:
anyOf:
- type: string
- type: 'null'
updatedByCompanyId:
anyOf:
- type: string
- type: 'null'
required:
- id
- bomHeaderId
- placementId
- styleId
- quantity
- quantityUnit
- weight
- weightUnit
- countryOfOrigin
- isMainComponent
- createdAt
- createdByUserId
- createdByCompanyId
- updatedAt
- updatedByUserId
- updatedByCompanyId
additionalProperties: false
required:
- metadata
- data
additionalProperties: false