Xentral Product API
Product represents the services or things given company sells in the business.
Product represents the services or things given company sells in the business.
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