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.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/xentral-product-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.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
- 'null'
description: Description of the product.
example: This is a detailed description of the product.
internalComment:
type:
- string
- 'null'
description: Text only for internal information.
example: Handle with care; sensitive material.
shortDescription:
type:
- string
- 'null'
description: Short description of the product.
example: A compact and efficient shipping solution.
customsTariffNumber:
type:
- string
- 'null'
description: Customs tariff number of the product.
example: 1234.56.78
ean:
type:
- string
- 'null'
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
- 'null'
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
- 'null'
enum:
- ''
- '16'
- '18'
description: Sets an age rating for the product. Currently only used for the shipping service provider DHL.
example: '18'
countryOfOrigin:
type:
- string
- 'null'
pattern: '[A-Z]{2}'
description: Two-digit ISO country code for country of origin of the product.
example: DE
unit:
type:
- string
- 'null'
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
- 'null'
description: Name of the manufacturer.
example: Test Innovations
number:
type:
- string
- 'null'
description: Product number at the manufacturer.
example: TEST-987654
link:
type:
- string
- 'null'
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
- 'null'
additionalProperties: false
required:
- id
properties:
id:
type:
- string
- 'null'
pattern: \d+
x-example-ignore: true
description: Nullable resource identifier
description: Reference to a standard supplier for this product
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
- 'null'
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
- 'null'
description: Define triggers that will execute the calculatory purchase price recalculation.
items:
type: string
enum:
- onPurchaseOrderCompletion
- onGoodsReceipt
maxItems: 1
example:
- onPurchaseOrderCompletion
calculatoryPurchasePriceRecalculationMethod:
type:
- string
- 'null'
enum:
- allRecordedPurchasesWeightedAverage
- latestPurchaseOrdersWeightedAverage
- movingAverage
description: defines the calculation method or price recalculation
example: allRecordedPurchasesWeightedAverage
example:
addPurchasePriceToCalculationTriggers:
- onPurchaseOrderCompletion
calculatoryPurchasePriceRecalculationTriggers:
- onPurchaseOrderCompletion
calculatoryPurchasePriceRecalculationMethod: latestPurchaseOrdersWeightedAverage
regionOfOrigin:
type:
- string
- 'null'
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
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
- 'null'
format: float
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 de
# --- truncated at 32 KB (1109 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-product-api-openapi.yml