Retraced Product / BOM Lines API

The Product / BOM Lines API from Retraced — 3 operation(s) for product / bom lines.

OpenAPI Specification

retraced-product-bom-lines-api-openapi.yml Raw ↑
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