Xentral Product API

Product represents the services or things given company sells in the business.

OpenAPI Specification

xentral-product-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xentral Account Product API
  version: v0.1
  description: Xentral is an ERP platform.
  contact:
    name: Xentral
    url: https://xentral.com
    email: api@xentral.com
servers:
- url: https://{xentralId}.xentral.biz
  description: Your Xentral Instance
  variables:
    xentralId:
      default: xentral
- url: https://{domain}
  description: Xentral at a custom domain
  variables:
    domain:
      default: xentral.com
security:
- BearerAuth: []
tags:
- name: Product
  description: Product represents the services or things given company sells in the business.
paths:
  /api/v2/products:
    patch:
      tags:
      - Product
      operationId: product.updateMultipleV2
      summary: Update multiple products V2
      description: Update multiple products at once.
      requestBody:
        description: Updates multiple products at once.
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                type: object
                additionalProperties: false
                properties:
                  id:
                    type: string
                    pattern: \d+
                    example: '17'
                    description: Resource identifier.
                  name:
                    type: string
                    description: Name of the product.
                    example: Shipping Discount Small
                  number:
                    type: string
                    description: Number / SKU of the product.
                    example: SKU123456
                  project:
                    description: Reference to another resource
                    type: object
                    additionalProperties: false
                    required:
                    - id
                    properties:
                      id:
                        type: string
                        pattern: \d+
                        example: '17'
                        description: Resource identifier.
                    example:
                      id: '1337'
                  description:
                    type: string
                    nullable: true
                    description: Description of the product.
                    example: This is a detailed description of the product.
                  internalComment:
                    type: string
                    nullable: true
                    description: Text only for internal information.
                    example: Handle with care; sensitive material.
                  shortDescription:
                    type: string
                    nullable: true
                    description: Short description of the product.
                    example: A compact and efficient shipping solution.
                  customsTariffNumber:
                    type: string
                    nullable: true
                    description: Customs tariff number of the product.
                    example: 1234.56.78
                  ean:
                    type: string
                    nullable: true
                    description: EAN of the product.
                    example: '1234567890123'
                  minimumOrderQuantity:
                    type: number
                    description: Numerical minimum order quantity of the product.
                    example: 10
                  minimumStorageQuantity:
                    type: number
                    description: Numerical minimum storage quantity of the product.
                    example: 5
                  allowPurchaseFromAllSuppliers:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  hasBatches:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  serialNumbersMode:
                    type: string
                    enum:
                    - disabled
                    - user
                    - product
                    - productAndWarehouse
                    description: 4 different modes available if the product has serial numbers or not and how they are handled. For more information about the different modes have a look into our handbook.
                    example: user
                  hasBestBeforeDate:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  hasBillOfMaterials:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  isAssembledJustInTime:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  isProductionProduct:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  isExternallyProduced:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  isDisabled:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  disabledReason:
                    type: string
                    nullable: true
                    description: Shows the reason why the product is locked when clicking into the product.
                    example: Product is out of stock.
                  hidePriceOnDocuments:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  ageRating:
                    type: string
                    enum:
                    - ''
                    - '16'
                    - '18'
                    nullable: true
                    description: Sets an age rating for the product. Currently only used for the shipping service provider DHL.
                    example: '18'
                  countryOfOrigin:
                    type: string
                    pattern: '[A-Z]{2}'
                    nullable: true
                    description: Two-digit ISO country code for country of origin of the product.
                    example: DE
                  unit:
                    type: string
                    nullable: true
                    description: Unit of the product.
                    example: Pack
                  measurements:
                    description: Measurements of the product.
                    type: object
                    additionalProperties: false
                    properties:
                      width:
                        x-description-missing: true
                        type: object
                        additionalProperties: false
                        required:
                        - value
                        - unit
                        properties:
                          value:
                            type: number
                            format: float
                          unit:
                            type: string
                            enum:
                            - cm
                            description: Currently only cm as unit allowed.
                        example:
                          value: 20
                          unit: cm
                      height:
                        x-description-missing: true
                        type: object
                        additionalProperties: false
                        required:
                        - value
                        - unit
                        properties:
                          value:
                            type: number
                            format: float
                          unit:
                            type: string
                            enum:
                            - cm
                            description: Currently only cm as unit allowed.
                        example:
                          value: 20
                          unit: cm
                      length:
                        x-description-missing: true
                        type: object
                        additionalProperties: false
                        required:
                        - value
                        - unit
                        properties:
                          value:
                            type: number
                            format: float
                          unit:
                            type: string
                            enum:
                            - cm
                            description: Currently only cm as unit allowed.
                        example:
                          value: 20
                          unit: cm
                      weight:
                        x-description-missing: true
                        type: object
                        additionalProperties: false
                        required:
                        - value
                        - unit
                        properties:
                          value:
                            type: number
                            format: float
                            example: 10.5
                          unit:
                            type: string
                            enum:
                            - kg
                            description: Currently only kg as unit allowed.
                            example: kg
                        example:
                          value: 20
                          unit: kg
                      netWeight:
                        x-description-missing: true
                        type: object
                        additionalProperties: false
                        required:
                        - value
                        - unit
                        properties:
                          value:
                            type: number
                            format: float
                            example: 10.5
                          unit:
                            type: string
                            enum:
                            - kg
                            description: Currently only kg as unit allowed.
                            example: kg
                        example:
                          value: 20
                          unit: kg
                    example:
                      width:
                        value: 20
                        unit: cm
                      height:
                        value: 10
                        unit: cm
                      length:
                        value: 30
                        unit: cm
                      weight:
                        value: 2
                        unit: kg
                      netWeight:
                        value: 1.5
                        unit: kg
                  manufacturer:
                    description: Information about the manufacturer of the product.
                    type: object
                    additionalProperties: false
                    properties:
                      name:
                        type: string
                        nullable: true
                        description: Name of the manufacturer.
                        example: Test Innovations
                      number:
                        type: string
                        nullable: true
                        description: Product number at the manufacturer.
                        example: TEST-987654
                      link:
                        type: string
                        nullable: true
                        description: URI of the manufacturer.
                        example: https://www.samplesite.com
                    example:
                      name: Test Innovations
                      number: AC12345
                      link: https://www.samplesite.com
                  isStockItem:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  isStockTakingDisabled:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  hideJustInTimeItemsOnDocuments:
                    description: Loose boolean type which accepts boolean, number 0 or 1 and string 'true' or 'false'
                    example: '''true'''
                    oneOf:
                    - type: boolean
                    - type: number
                      enum:
                      - 0
                      - 1
                    - type: string
                      enum:
                      - 'true'
                      - 'false'
                      - 'True'
                      - 'False'
                      - 'TRUE'
                      - 'FALSE'
                  salesTax:
                    type: string
                    enum:
                    - standard
                    - reduced
                    - free
                    description: Selection of three possible values for the sales tax of the product.
                    example: reduced
                  merchandiseGroup:
                    description: Reference to another resource
                    type: object
                    additionalProperties: false
                    required:
                    - id
                    properties:
                      id:
                        type: string
                        pattern: \d+
                        example: '17'
                        description: Resource identifier.
                    example:
                      id: '1337'
                  categories:
                    type: array
                    items:
                      type: object
                      additionalProperties: false
                      required:
                      - id
                      properties:
                        id:
                          type: string
                          pattern: \d+
                          example: '17'
                          description: Resource identifier.
                    example:
                    - id: '1'
                    - id: '2'
                  standardSupplier:
                    type: object
                    additionalProperties: false
                    required:
                    - id
                    properties:
                      id:
                        type: string
                        pattern: \d+
                        nullable: true
                        x-example-ignore: true
                        description: Nullable resource identifier
                    description: Reference to a standard supplier for this product
                    nullable: true
                    example:
                      id: '12345'
                  isShippingCostsProduct:
                    type: boolean
                    description: Determines if a product is used as a shipping costs product. For more information have a look into our handbook.
                    example: true
                  isMatrixProduct:
                    type: boolean
                    description: Determines if a product is a matrix product. For more information have a look into our handbook.
                    example: false
                  discount:
                    description: Discount settings of the product.
                    type: object
                    additionalProperties: false
                    properties:
                      isDiscountProduct:
                        type: boolean
                        description: Determines if a product is used as a discount. For more information have a look into our handbook.
                        example: true
                      discountPercentage:
                        type: number
                        format: float
                        description: Sets the discount value if the product is a discount. For more information have a look into our handbook.
                        example: 15.5
                    example:
                      isDiscountProduct: false
                      discountPercentage: 15.5
                  stockTaking:
                    type: object
                    additionalProperties: false
                    description: Contains settings for stock taking.
                    properties:
                      hasStockTakingValue:
                        type: boolean
                        description: Shows if the stock taking value should be used instead of the purchase price for stock taking.
                        example: true
                      stockTakingValue:
                        type: number
                        format: float
                        description: Shows the stock taking value for stock taking.
                        example: 100.75
                    example:
                      hasStockTakingValue: true
                      stockTakingValue: 100.75
                  calculatedPurchasePrice:
                    type: object
                    additionalProperties: false
                    description: Contains settings for the calculated purchase price.
                    properties:
                      hasCalculatedPurchasePrice:
                        type: boolean
                        description: Sets if the calculatedPurchasePrice should be used.
                        example: true
                      price:
                        description: Money object with amount and currency. If no currency is set, EUR is returned.
                        example:
                          amount: '13.37'
                          currency: EUR
                        type: object
                        additionalProperties: false
                        properties:
                          amount:
                            description: A string representing the amount
                            type: string
                            format: float
                          currency:
                            type: string
                            pattern: '[A-Z]{3}'
                            enum:
                            - EUR
                            - USD
                            - JPY
                            - BGN
                            - CZK
                            - DKK
                            - GBP
                            - HUF
                            - PLN
                            - RON
                            - SEK
                            - CHF
                            - ISK
                            - NOK
                            - HRK
                            - RUB
                            - TRY
                            - AUD
                            - BRL
                            - CAD
                            - CNY
                            - HKD
                            - IDR
                            - ILS
                            - INR
                            - KRW
                            - MXN
                            - MYR
                            - NZD
                            - PHP
                            - SGD
                            - THB
                            - ZAR
                            - ARS
                            - CLP
                            - SAR
                            - AED
                            - QAR
                            description: Currency matches one of currency values as specified in ISO-4217.
                            example: PLN
                    example:
                      hasCalculatedPurchasePrice: false
                      price:
                        amount: '100.00'
                        currency: EUR
                  calculatoryPurchasePriceSettings:
                    type: object
                    additionalProperties: false
                    description: Contains settings for the calculatory purchase price triggers.
                    properties:
                      addPurchasePriceToCalculationTriggers:
                        type: array
                        nullable: true
                        description: Define triggers that will add a purchase price to the product calculation.
                        items:
                          type: string
                          enum:
                          - onPurchaseOrderCompletion
                          - onGoodsReceipt
                        maxItems: 1
                        example:
                        - onPurchaseOrderCompletion
                      calculatoryPurchasePriceRecalculationTriggers:
                        type: array
                        nullable: true
                        description: Define triggers that will execute the calculatory purchase price recalculation.
                        items:
                          type: string
                          enum:
                          - onPurchaseOrderCompletion
                          - onGoodsReceipt
                        maxItems: 1
                        example:
                        - onPurchaseOrderCompletion
                      calculatoryPurchasePriceRecalculationMethod:
                        type: string
                        nullable: true
                        enum:
                        - allRecordedPurchasesWeightedAverage
                        - latestPurchaseOrdersWeightedAverage
                        - movingAverage
                        description: defines the calculation method or price recalculation
                        example: allRecordedPurchasesWeightedAverage
                    example:
                      addPurchasePriceToCalculationTriggers:
                      - onPurchaseOrderCompletion
                      calculatoryPurchasePriceRecalculationTriggers:
                      - onPurchaseOrderCompletion
                      calculatoryPurchasePriceRecalculationMethod: latestPurchaseOrdersWeightedAverage
                  regionOfOrigin:
                    type: string
                    enum:
                    - ''
                    - '01'
                    - '02'
                    - '03'
                    - '04'
                    - '05'
                    - '06'
                    - '07'
                    - 08
                    - 09
                    - '10'
                    - '11'
                    - '12'
                    - '13'
                    - '14'
                    - '15'
                    - '16'
                    - '99'
                    description: 01 - Schleswig-Holstein, 02 - Hamburg, 03 - Niedersachsen, 04 - Bremen, 05 - Nordhrein-Westfalen, 06 - Hessen, 07 - Rheinland-Pfalz, 08 - Baden-Württemberg, 09 - Bayern, 10 - Saarland, 11 - Berlin, 12 - Brandenburg, 13 - Mecklenburg-Vorpommern, 14 - Sachsen, 15 - Sachsen-Anhalt, 16 - Thüringen, 99 - foreign origin
                    nullable: true
                    example: '04'
                  salesChannel:
                    type: object
                    additionalProperties: false
                    description: General sales channel information that is valid for all sales channels, if not overridden by individual sales channel information.
                    properties:
                      description:
                        type: string
                        description: Description of the product for sales channels.
                        example: A high-quality product.
                      meta:
                        type: object
                        additionalProperties: false
                        description: Meta information for sales channels.
                        properties:
                          title:
                            type: string
                            description: Meta title of the product for sales channels.
                            example: Sample Product Title
                          description:
                            type: string
                            description: Meta description of the product for sales channels.
                            example: This product is designed for everyday use.
                          keywords:
                            type: string
                            description: Meta keywords of the product for sales channels.
                            example: product, products
                        example:
                          title: Sample Product Title
                          description: This product is designed for everyday use.
                          keywords: product, products
                      isStockNumberSyncActive:
                        type: boolean
                        description: Determines if the stock number synchronization to the sales channel is active.
                        example: true
                      isSoldOut:
                        type: boolean
                        description: Determines if the product is sold out.
                        example: true
                      isRemainingQuantity:
                        type: boolean
                        description: Determines if only the remaining quantity of the product is left.
                        example: true
                      isVisible:
                        type: boolean
                        description: This field was formerly called isVisibleInOnlineShops. Determines if a product is visible in all sales channels
                        example: true
                      suggestedRetailPrice:
                        type: string
                        format: float
                        nullable: true
                        description: This field was formerly called shopPriceDisplay. Sets the suggested retail price for sales channels. Only used by some online shops. For more information have a look into our handbook.
                        example: '25.99'
                      suggestedStockQuantity:
                        type: string
                        description: Sets the suggested stock quantity for all sales channels.
                        example: '100'
                      deliveryTime:
                        type: string
                        description: Sets the delivery time for all sales channels.
                        example: 1 week
                      createNewProductDuringImport:
                        type: boolean
                        description: Determines if a new product is generated during the sales order import from all sales channels.
                        example: true
                    example:
                      description: This is a product description.
                      meta:
                        title: Product Title
                        description: Detailed product description.
                        keywords: keyword1, keyword2, keyword3
                      isStockNumberSyncActive: true
                      isSoldOut: false
                      isRemaini

# --- truncated at 32 KB (1098 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-product-api-openapi.yml