0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
}
},
"storageCountry": {
"type": "string",
"nullable": true,
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use storageCountry for external fulfillment without delivery notes to set the country of fulfillment. If using delivery notes, do not use storageCountry."
},
"preferredWarehouse": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"nullable": false
}
},
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use preferredWarehouse for fulfillment with delivery notes to define which warehouse should be used."
},
"shippingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"city",
"country",
"zipCode",
"street"
],
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
}
}
},
{
"type": "object",
"required": [
"shippingMethod"
],
"properties": {
"shippingMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"deliveryTerms": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"email": {
"type": "string",
"format": "email"
},
"conditions": {
"type": "string"
}
}
}
],
"description": "Delivery information for the delivery note",
"example": {
"autoShipping": true,
"fastLane": true,
"shippingMethod": {
"id": "1"
},
"shippingCosts": [
{
"id": "1",
"quantity": 3,
"shippingCostProduct": {
"id": "1"
}
}
],
"email": "user.email@email.org",
"conditions": "none"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"type": {
"type": "string",
"nullable": true
},
"title": {
"type": "string",
"nullable": true
}
}
},
"description": "Tags associated with the delivery note",
"example": [
{
"id": "1"
}
]
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"product",
"quantity"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When editing/creating a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When editing/creating a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true
},
"desiredDeliveryDateAsCalendarWeek": {
"type": "boolean",
"description": "Flag indicating whether a calendar week should be printed on documents"
}
}
},
"description": "Items included within the delivery note",
"example": [
{
"product": {
"id": "1"
},
"quantity": 5
}
]
}
},
"description": "Data representation of a single delivery note",
"example": {
"id": "1",
"documentNumber": "200001",
"salesOrder": {
"id": "1"
},
"transactionNumber": "transaction1",
"customerOrderNumber": "customerOrder1",
"salesChannel": {
"id": "1"
},
"bodyIntroduction": "Initial info",
"bodyOutroduction": "Additional info",
"internalDesignation": "internalDN1",
"date": "2025-01-01",
"status": "completed",
"customer": {
"id": "1"
},
"comment": "A comment about this delivery note",
"project": {
"id": "1"
},
"language": {
"iso2": "DE"
},
"log": {
"createdAt": "2023-12-01 00:00:00",
"createdBy": {
"id": "1",
"name": "User 1"
}
},
"delivery": {
"autoShipping": true,
"fastLane": true,
"shippingMethod": {
"id": "1"
},
"shippingCosts": [
{
"id": "1",
"quantity": 3,
"shippingCostProduct": {
"id": "1"
}
}
],
"email": "user.email@email.org",
"conditions": "none"
},
"tags": [
{
"id": "1"
}
],
"positions": [
{
"product": {
"id": "1"
},
"quantity": 5
}
]
}
}
}
}
},
"application/pdf": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
}
}
}
},
"/api/v1/deliveryNotesTags": {
"get": {
"tags": [
"Delivery Note Tag"
],
"operationId": "deliveryNoteTag.list",
"summary": "List delivery notes tags",
"description": "Returns a collection with all delivery notes tags.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"name",
"id"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all delivery notes tags": {
"value": {
"data": [
{
"id": "1",
"name": "Done",
"color": "339966"
},
{
"id": "5",
"name": "Prio",
"color": "ff00ff"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/deliveryNotes/{id}/deliveries": {
"get": {
"tags": [
"Delivery Note"
],
"operationId": "deliveryNote.deliveries.list",
"description": "Details of delivery note",
"summary": "View delivery note deliveries aka shipments",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Delivery list",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"deliveryNote",
"tracking",
"salesOrder",
"shippingMethod"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"tracking": {
"type": "object",
"required": [
"number"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "string",
"description": "The tracking number provided by the carrier."
},
"link": {
"type": "string",
"description": "Carrier tracking link"
},
"carrier": {
"type": "string",
"description": "Carrier that shipping the delivery"
}
},
"description": "Tracking information for the delivery",
"example": {
"number": "101010101010101"
}
},
"deliveryNote": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"salesOrder": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"shippingMethod": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"sentAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date when the delivery was sent",
"example": "2022-01-07"
},
"sentAtTimestamp": {
"type": "string",
"format": "datetime",
"nullable": true,
"description": "Timestamp when the delivery was sent",
"example": "2022-01-07 00:00:00"
},
"label": {
"type": "object",
"nullable": true,
"required": [
"fileType",
"fileContent"
],
"additionalProperties": false,
"properties": {
"fileType": {
"type": "string",
"description": "Label's file type",
"example": "image/gif"
},
"fileContent": {
"type": "string",
"description": "Base 64 encoded label",
"example": "R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
}
},
"description": "Shipping label for the delivery",
"example": {
"fileType": "image/gif",
"fileContent": "R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
}
}
},
"example": {
"id": "DEL-12345",
"tracking": {
"number": "101010101010101",
"link": "https://carrier.example.com/track/101010101010101",
"carrier": "DHL"
},
"deliveryNote": {
"id": "DN-54321"
},
"salesOrder": {
"id": "SO-98765"
},
"shippingMethod": {
"id": "SM-12345"
},
"sentAt": "2022-01-07",
"sentAtTimestamp": "2022-01-07 00:00:00",
"label": {
"fileType": "image/gif",
"fileContent": "R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
}
},
"description": "Data representation of a single delivery aka shipment"
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/deliveryNotes/{id}/shipments": {
"get": {
"tags": [
"Delivery Note"
],
"operationId": "deliveryNote.shipments.list",
"description": "Details of delivery note shipments",
"summary": "View delivery note shipments aka deliveries",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Delivery list",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"deliveryNote",
"tracking",
"salesOrder",
"shippingMethod"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"tracking": {
"type": "object",
"required": [
"number"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "string",
"description": "The tracking number provided by the carrier."
},
"link": {
"type": "string",
"description": "Carrier tracking link"
},
"carrier": {
"type": "string",
"description": "Carrier that shipping the delivery"
}
},
"description": "Tracking information for the delivery",
"example": {
"number": "101010101010101"
}
},
"deliveryNote": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"salesOrder": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"shippingMethod": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"sentAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date when the delivery was sent",
"example": "2022-01-07"
},
"sentAtTimestamp": {
"type": "string",
"format": "datetime",
"nullable": true,
"description": "Timestamp when the delivery was sent",
"example": "2022-01-07 00:00:00"
},
"label": {
"type": "object",
"nullable": true,
"required": [
"fileType",
"fileContent"
],
"additionalProperties": false,
"properties": {
"fileType": {
"type": "string",
"description": "Label's file type",
"example": "image/gif"
},
"fileContent": {
"type": "string",
"description": "Base 64 encoded label",
"example": "R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
}
},
"description": "Shipping label for the delivery",
"example": {
"fileType": "image/gif",
"fileContent": "R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
}
}
},
"example": {
"id": "DEL-12345",
"tracking": {
"number": "101010101010101",
"link": "https://carrier.example.com/track/101010101010101",
"carrier": "DHL"
},
"deliveryNote": {
"id": "DN-54321"
},
"salesOrder": {
"id": "SO-98765"
},
"shippingMethod": {
"id": "SM-12345"
},
"sentAt": "2022-01-07",
"sentAtTimestamp": "2022-01-07 00:00:00",
"label": {
"fileType": "image/gif",
"fileContent": "R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
}
},
"description": "Data representation of a single delivery aka shipment"
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/deliveryTerms": {
"get": {
"tags": [
"Delivery Terms"
],
"operationId": "DeliveryTerms.list",
"summary": "List Delivery Terms",
"description": "Lists existing Delivery Terms",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"designation"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Delivery Terms list",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"designation"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"designation": {
"type": "string",
"description": "Designation of delivery term",
"example": "Term"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/employees": {
"get": {
"tags": [
"Employee"
],
"operationId": "employee.list",
"summary": "List employees",
"description": "Lists existing employees",
"parameters": [
{
"name": "searchTerm",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Employee minimal list.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"description": "Employee Number",
"type": "string",
"example": "342442"
},
"name": {
"description": "Employee Name",
"type": "string",
"example": "John"
}
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
}
}
}
},
"/api/v1/products/{id}/externalReferences": {
"get": {
"tags": [
"External Reference"
],
"operationId": "externalReference.list",
"summary": "List external references for given Product",
"description": "Returns list of external references for given Product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"x-description-missing": true,
"type": "string",
"minLength": 1,
"example": "Shopify"
},
"number": {
"x-description-missing": true,
"type": "string",
"minLength": 1,
"example": "1234567"
},
"isActive": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"isScannable": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"target": {
"x-description-missing": true,
"type": "object",
"example": {
"id": "3543",
"name": "Shopware",
"isActive": true
},
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"minLength": 1
},
"isActive": {
"type": "boolean"
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all external references of a single product": {
"value": {
"data": [
{
"id": "1",
"name": "SKU",
"number": "11111",
"isActive": true,
"isScannable": false,
"target": {
"id": "1",
"name": "Shopware"
}
},
{
"id": "3",
"name": "SKU Shop",
"number": "22222",
"isActive": true,
"isScannable": false,
"target": {
"id": "1",
"name": "Shopware"
}
}
]
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"External Reference"
],
"operationId": "externalReference.create",
"summary": "Create new external references for a given Product",
"description": "Creates new external references for a given Product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "ExternalReference create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"number": {
"type": "string"
},
"isActive": {
"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"
]
}
]
},
"isScannable": {
"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"
]
}
]
},
"target": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"examples": {
"Create external reference": {
"value": {
"name": "Example external reference",
"number": "1234567",
"isActive": true,
"isScannable": true,
"target": {
"id": "3543"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"External Reference"
],
"operationId": "externalReference.updateMultiple",
"summary": "Update external references for a given Product",
"description": "Updates external references for a given Product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "ExternalReference update multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Shopify"
},
"number": {
"x-description-missing": true,
"type": "string",
"example": "1234567"
},
"isActive": {
"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"
]
}
]
},
"isScannable": {
"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"
]
}
]
},
"target": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
}
},
"examples": {
"Update external references": {
"value": [
{
"id": "123",
"isActive": false
},
{
"id": "456",
"isActive": false
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"External Reference"
],
"operationId": "externalReference.deleteMultiple",
"summary": "Delete external references of a given Product",
"description": "Deletes external references of a given Product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "ExternalReference delete multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/externalReferenceTargets": {
"get": {
"tags": [
"External Reference Target"
],
"operationId": "externalReferenceTarget.list",
"summary": "List External Reference Targets",
"description": "Returns a collection with all External Reference Targets.",
"responses": {
"200": {
"description": "ExternalReferenceTarget list",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"description": "The name of the external reference target",
"type": "string",
"minLength": 1,
"example": "Shopware"
},
"isActive": {
"description": "A flag to determine whether an external reference target is active",
"type": "boolean",
"example": true
}
}
}
}
}
},
"examples": {
"Lists all external reference targets": {
"value": {
"data": [
{
"id": "1",
"name": "Shopware",
"isActive": true
}
]
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
}
}
}
},
"/api/v1/stockMovementTypes": {
"post": {
"tags": [
"Stock Movement Types"
],
"operationId": "stockMovementType.create",
"summary": "Create a stockMovementType",
"description": "Creates a new stock movement type.",
"requestBody": {
"description": "Stock movement type creation request.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"direction",
"active"
],
"properties": {
"name": {
"type": "string",
"nullable": false,
"example": "TestName",
"description": "Name of stock movement type"
},
"direction": {
"type": "string",
"nullable": false,
"example": "relocation",
"description": "Direction of stock movement type"
},
"active": {
"type": "boolean",
"nullable": false,
"example": true,
"description": "Only active stock movement types can be used"
},
"doctypeReference": {
"type": "string",
"nullable": true,
"example": "salesOrder",
"description": "Related document type"
}
}
},
"examples": {
"Create an stock movement type": {
"value": {
"name": "Test stock movement type",
"direction": "inbound",
"active": true,
"doctypeReference": "salesOrder"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices": {
"post": {
"tags": [
"Invoice"
],
"operationId": "invoice.create",
"summary": "Create invoice",
"description": "Creates a invoice",
"requestBody": {
"description": "Create an invoice object from a sales order or an empty invoice",
"content": {
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"salesOrder": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"documentNumber": {
"description": "The `Invoice Number` that will be assigned to the invoice. It can be used when creating an invoice from sales order",
"type": "string",
"minLength": 1,
"maxLength": 35
}
}
},
"examples": {
"Create invoice from sales order": {
"value": {
"salesOrder": {
"id": "12"
}
}
},
"Create invoice from sales order and assign a document number": {
"value": {
"salesOrder": {
"id": "12"
},
"documentNumber": "415263"
}
},
"Create `empty` invoice": {
"value": {}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Invoice"
],
"operationId": "invoice.list",
"summary": "List invoices",
"description": "Returns a collection with all invoices.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"description": "The following filter key values are available:\n\n**id** (string): Invoice ID\n\n**invoice** (string): Invoice Number\n\n**date** (date): accepted format: Y-m-d, example `2024-10-15`\n\n**status** (string): `created` `released` `sent` `canceled` `completed` `partialCancellation`\n\n**customerName** (string): first and last name of the Customer\n\n**customerNumber** (string): Customer Number\n\n**country** (string): Country Codes Alpha-2\n\n**projectId** (string): Project ID\n\n**projectName** (string): Project Name\n\n**projectAbbr** (string): Project Abbreviation\n\n**paymentMethod** (string): Payment Method\n\n**paymentStatus** (string): `pending` `paid` `partlyPaid` `canceled` `partialCancellation` `badDebt` `debited`\n\n**debit** (numeric): Debit, example: `10.50`\n\n**balance** (numeric): Balance, example: `10.50`\n\n**currency** (string): Currency ISO 4217 format, example `EUR`\n\n**shippingMethod** (string): Shipping Method\n\n**amountNet** (numeric): net amount of the Invoice, example: `10.50`\n\n**salesOrder** (string): Sales Order ID\n\n**updatedAt** (string): format: date-time : Sales updatedat, example: `2022-09-13T12:41:18+02:00`",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"search",
"id",
"invoice",
"date",
"status",
"customerName",
"customerNumber",
"country",
"projectId",
"projectName",
"projectAbbr",
"paymentMethod",
"paymentStatus",
"debit",
"balance",
"currency",
"shippingMethod",
"amountNet",
"salesOrder",
"dunningLevel",
"updatedAt"
],
"example": "date"
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"invoice",
"date",
"customerName",
"customerNumber",
"country",
"project",
"paymentMethod",
"debit",
"currency",
"paymentStatus",
"balance",
"status",
"shippingMethod",
"amountNet",
"dunningDate"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "2022-400000"
},
"date": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2023-06-27T00:00:00+02:00"
},
"status": {
"x-description-missing": true,
"type": "string",
"enum": [
"created",
"released",
"sent",
"canceled",
"completed",
"partialCancellation",
"unknown"
],
"example": "sent"
},
"address": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"required": [
"name",
"country",
"customerNumber"
],
"properties": {
"name": {
"type": "string"
},
"country": {
"type": "string"
},
"customerNumber": {
"type": "string"
}
},
"example": {
"name": "Maximilian S.",
"customerNumber": "10002",
"country": "DE"
}
},
"project": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"name",
"abbreviation"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"abbreviation": {
"type": "string"
}
},
"example": {
"id": "4",
"name": "Amazon FBA",
"abbreviation": "FBA"
}
},
"payment": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"required": [
"method",
"status",
"debit",
"balance"
],
"properties": {
"method": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"paid",
"partlyPaid",
"canceled",
"partialCancellation",
"badDebt",
"debited",
"unknown"
]
},
"debit": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"balance": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"method": "Amazon pay",
"status": "paid",
"debit": {
"amount": "24.99",
"currency": "EUR"
},
"balance": {
"amount": "0.00",
"currency": "EUR"
}
}
},
"additionalFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"amountNet",
"shippingMethod",
"orderNumber",
"internet",
"contactPerson",
"distribution",
"email"
]
},
"value": {
"type": "string"
}
}
},
"example": [
{
"key": "orderNumber",
"value": "2231654"
}
]
},
"tags": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"dunningSettings": {
"description": "Dunning setting for document",
"type": "object",
"additionalProperties": false,
"required": [
"level",
"date",
"comment",
"sent"
],
"nullable": false,
"properties": {
"level": {
"type": "string",
"enum": [
"noReminder",
"paymentReminder",
"reminder1",
"reminder2",
"reminder3",
"debtCollection",
"lossOfReceivables"
],
"example": "paymentReminder"
},
"date": {
"format": "date",
"example": "2022-08-10"
},
"comment": {
"format": "string",
"example": "This is a comment"
},
"sent": {
"type": "boolean",
"format": "boolean",
"example": true
}
},
"example": {
"level": "paymentReminder",
"date": "2022-08-10",
"comment": "This is a comment",
"sent": true
}
},
"updatedBy": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2022-09-13T12:41:18+02:00"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"text/csv": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices/{id}": {
"get": {
"tags": [
"Invoice"
],
"operationId": "invoice.view",
"summary": "View invoice",
"description": "Returns details of a single invoice.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "1200132"
},
"documentDate": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2022-01-07T00:00:00+01:00"
},
"log": {
"x-description-missing": true,
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"createdAt",
"createdBy",
"sentAt",
"sentBy",
"updatedAt"
],
"properties": {
"createdAt": {
"type": "string",
"format": "date-time",
"example": "2022-01-07T13:43:12+01:00"
},
"createdBy": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"nullable": true,
"properties": {
"name": {
"type": "string"
}
},
"example": {
"name": "John Doe"
}
},
"sentAt": {
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2022-01-07T13:43:12+01:00"
},
"sentBy": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"nullable": true,
"properties": {
"name": {
"type": "string"
}
},
"example": {
"name": "John Doe"
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2022-03-31T00:16:03+02:00"
}
},
"example": {
"createdAt": "2022-01-07T13:43:12+01:00",
"sentAt": null,
"createdBy": {
"name": "John Doe"
},
"sentBy": {
"name": "John Doe"
},
"updatedAt": "2022-03-31T00:16:03+02:00"
}
},
"amountGross": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 49.99
},
"amountNet": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 42.01
},
"costCenter": {
"x-description-missing": true,
"type": "string",
"example": "3456"
},
"status": {
"x-description-missing": true,
"type": "string",
"enum": [
"created",
"released",
"sent",
"canceled",
"completed",
"partialCancellation",
"unknown"
],
"example": "sent"
},
"project": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"name",
"abbreviation"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"abbreviation": {
"type": "string"
}
},
"example": {
"id": "6",
"name": "Shopware",
"abbreviation": "B2C-SW"
}
},
"customer": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"tags": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"externalOrderReference": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "62720"
},
"devCustomer": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "dev"
},
"billingAddress": {
"type": "object",
"description": "Billing address of the customer.",
"additionalProperties": false,
"required": [
"name",
"contactPerson",
"department",
"subdivision",
"street",
"additionalDetails",
"city",
"zipCode",
"country"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"department": {
"type": "string",
"nullable": true
},
"subdivision": {
"type": "string",
"nullable": true
},
"street": {
"type": "string"
},
"additionalDetails": {
"type": "string",
"nullable": true
},
"city": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"country": {
"type": "string",
"pattern": "[A-Z]{2}"
},
"email": {
"type": "string",
"nullable": true
}
},
"example": {
"id": "1",
"name": "John Doe",
"contactPerson": "",
"department": "",
"subdivision": "",
"street": "Street 10",
"additionalDetails": "",
"city": "Berlin",
"zipCode": "10101",
"country": "DE"
}
},
"paymentTerms": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"required": [
"dueDate",
"earlyPaymentDate",
"earlyPaymentDiscount"
],
"nullable": true,
"properties": {
"dueDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"earlyPaymentDate": {
"type": "string",
"format": "date-time",
"nullable": true
},
"earlyPaymentDiscount": {
"type": "number",
"format": "float"
}
},
"example": {
"earlyPaymentDiscount": 0.5,
"earlyPaymentDate": "2022-01-17T00:00:00+01:00",
"dueDate": "2022-02-06T00:00:00+01:00"
}
},
"paymentMethodName": {
"x-description-missing": true,
"type": "string",
"example": "paypal"
},
"paymentStatus": {
"type": "string",
"description": "Status of the payment. Value `unknown` is displayed when a status from database cannot be identified. Value `unknown` cannot be used when creating or updating statuses (POST or PATCH endpoints)",
"enum": [
"pending",
"paid",
"partlyPaid",
"canceled",
"partialCancellation",
"badDebt",
"debited",
"unknown"
],
"example": "pending"
},
"dunning": {
"description": "Deprecated: use `dunningSettings.level` field instead",
"type": "string",
"nullable": true,
"example": "zahlungserinnerung"
},
"dunningDate": {
"description": "Deprecated: use `dunningSettings.date` field instead",
"type": "string",
"format": "date",
"nullable": true,
"example": "2022-08-10"
},
"dunningSettings": {
"description": "Dunning setting for document",
"type": "object",
"additionalProperties": false,
"required": [
"level",
"date",
"comment",
"sent"
],
"nullable": true,
"properties": {
"level": {
"type": "string",
"enum": [
"noReminder",
"paymentReminder",
"reminder1",
"reminder2",
"reminder3",
"debtCollection",
"lossOfReceivables"
],
"example": "paymentReminder"
},
"date": {
"format": "date",
"example": "2022-08-10"
},
"comment": {
"format": "string",
"example": "This is a comment"
},
"sent": {
"type": "boolean",
"format": "boolean",
"example": true
}
},
"example": {
"level": "paymentReminder",
"date": "2022-08-10",
"comment": "First reminder sent",
"sent": true
}
},
"dunningManualSettings": {
"description": "Expert mode: The payment settings can be set manually with this check mark. Note: This tick overrides the automatic calculation of the incoming payment. This means that the invoice is NOT included in the dunning process. If you use the incoming payment via the account statements, this checkmark should only be used for manual adjustments, because these settings are usually set automatically via the incoming payment.",
"type": "object",
"additionalProperties": false,
"required": [
"paymentStatus",
"paidAt",
"actualAmount",
"discountGiven"
],
"nullable": true,
"properties": {
"paymentStatus": {
"type": "string",
"description": "Status of the payment. Value `unknown` is displayed when a status from database cannot be identified. Value `unknown` cannot be used when creating or updating statuses (POST or PATCH endpoints)",
"enum": [
"pending",
"paid",
"partlyPaid",
"canceled",
"partialCancellation",
"badDebt",
"debited",
"unknown"
],
"example": "pending"
},
"paidAt": {
"description": "Date of the payment",
"type": "string",
"format": "date",
"nullable": true,
"example": "2022-08-10"
},
"actualAmount": {
"description": "Amount of the payment",
"type": "number",
"format": "float",
"example": 22.33
},
"discountGiven": {
"description": "Discount given for a payment",
"type": "number",
"format": "float",
"example": 22.33
}
},
"example": {
"paymentStatus": "paid",
"paidAt": "2022-08-10",
"actualAmount": 22.33,
"discountGiven": 2
}
},
"gln": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "12345"
},
"taxation": {
"x-description-missing": true,
"type": "number",
"example": 0
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "number"
},
"position": {
"type": "number"
},
"saleOrderPositionId": {
"type": "number"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"productId": {
"type": "number"
},
"productNumber": {
"type": "string"
},
"description": {
"type": "string"
},
"quantity": {
"type": "number"
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"vatCategory": {
"type": "string"
},
"taxRate": {
"type": "number",
"format": "float"
},
"discount": {
"type": "number",
"format": "float",
"nullable": true
}
},
"example": {
"id": 1,
"position": 1,
"saleOrderPositionId": 3,
"createdAt": "2022-08-10T10:14:26+02:00",
"productId": 1,
"productNumber": "100001",
"description": "Kaffee ganze Bohne 1kg",
"quantity": 1,
"price": {
"amount": "24.99",
"currency": "EUR"
},
"vatCategory": "normal",
"taxRate": 19,
"discount": 0
}
}
}
},
"example": {
"id": "142",
"documentNumber": "1200132",
"documentDate": "2022-01-07T00:00:00+01:00",
"log": {
"createdAt": "2022-01-07T13:43:12+01:00",
"sentAt": "2022-01-07T13:43:12+01:00",
"createdBy": {
"name": "John Doe"
},
"sentBy": {
"name": "John Doe"
},
"updatedAt": "2022-03-31T00:16:03+02:00"
},
"amountGross": 49.99,
"amountNet": 42.01,
"costCenter": "3456",
"status": "sent",
"project": {
"id": "6",
"name": "Shopware",
"abbreviation": "B2C-SW"
},
"customer": {
"id": "3099",
"name": "John Doe"
},
"externalOrderReference": "62720",
"devCustomer": "50161",
"billingAddress": {
"id": "1",
"name": "John Doe",
"contactPerson": "",
"department": "",
"subdivision": "",
"street": "Street 10",
"additionalDetails": "",
"city": "Berlin",
"zipCode": "10101",
"country": "DE",
"email": "john.doe@email.de"
},
"paymentMethodName": "paypal",
"paymentStatus": "pending",
"dunning": "zahlungserinnerung",
"dunningDate": null,
"gln": "12345",
"taxation": 0,
"tags": [],
"positions": [
{
"id": 421,
"position": 1,
"saleOrderPositionId": 13521,
"createdAt": "2022-01-07T13:43:12+01:00",
"productId": 864,
"productNumber": "FR5232501",
"description": "Example Product",
"quantity": 1,
"price": {
"amount": "49.99",
"currency": "EUR"
},
"vatCategory": "normal",
"taxRate": 0,
"discount": 0
}
],
"paymentTerms": {
"earlyPaymentDiscount": 0,
"earlyPaymentDate": "2022-01-17T00:00:00+01:00",
"dueDate": "2022-02-06T00:00:00+01:00"
}
}
}
}
}
},
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "3"
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"application/pdf": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Invoice"
],
"operationId": "invoice.delete",
"summary": "Delete single invoice",
"description": "Delete a single invoice",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Invoice"
],
"operationId": "invoice.update",
"summary": "Update single invoice",
"description": "Update a single invoice",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Update single invoice",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"format": "date"
},
"costCenter": {
"type": "string"
},
"project": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"customer": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"tags": {
"type": "array",
"items": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
},
"devCustomer": {
"type": "string",
"nullable": true
},
"billingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"contactPerson",
"department",
"subdivision",
"street",
"additionalDetails",
"city",
"zipCode",
"country"
],
"nullable": true,
"properties": {
"name": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"department": {
"type": "string",
"nullable": true
},
"subdivision": {
"type": "string",
"nullable": true
},
"street": {
"type": "string"
},
"additionalDetails": {
"type": "string",
"nullable": true
},
"city": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"country": {
"type": "string",
"pattern": "[A-Z]{2}"
}
}
},
"paymentMethodName": {
"type": "string"
},
"gln": {
"type": "string",
"nullable": true
},
"taxation": {
"type": "string",
"pattern": "\\d+"
},
"dunningSettings": {
"description": "Dunning setting for document",
"type": "object",
"additionalProperties": false,
"required": [
"level",
"date",
"comment",
"sent"
],
"nullable": true,
"properties": {
"level": {
"type": "string",
"enum": [
"noReminder",
"paymentReminder",
"reminder1",
"reminder2",
"reminder3",
"debtCollection",
"lossOfReceivables"
],
"example": "paymentReminder"
},
"date": {
"format": "date",
"example": "2022-08-10"
},
"comment": {
"format": "string",
"example": "This is a comment"
},
"sent": {
"type": "boolean",
"format": "boolean",
"example": true
}
},
"example": {
"level": "paymentReminder",
"date": "2022-08-10",
"comment": "First reminder sent",
"sent": true
}
},
"dunningManualSettings": {
"description": "Expert mode: The payment settings can be set manually with this check mark. Note: This tick overrides the automatic calculation of the incoming payment. This means that the invoice is NOT included in the dunning process. If you use the incoming payment via the account statements, this checkmark should only be used for manual adjustments, because these settings are usually set automatically via the incoming payment.",
"type": "object",
"additionalProperties": false,
"required": [
"paymentStatus",
"paidAt",
"actualAmount",
"discountGiven"
],
"nullable": true,
"properties": {
"paymentStatus": {
"type": "string",
"description": "Status of the payment. Value `unknown` is displayed when a status from database cannot be identified. Value `unknown` cannot be used when creating or updating statuses (POST or PATCH endpoints)",
"enum": [
"pending",
"paid",
"partlyPaid",
"canceled",
"partialCancellation",
"badDebt",
"debited",
"unknown"
],
"example": "pending"
},
"paidAt": {
"description": "Date of the payment",
"type": "string",
"format": "date",
"nullable": true,
"example": "2022-08-10"
},
"actualAmount": {
"description": "Amount of the payment",
"type": "number",
"format": "float",
"example": 22.33
},
"discountGiven": {
"description": "Discount given for a payment",
"type": "number",
"format": "float",
"example": 22.33
}
},
"example": {
"paymentStatus": "paid",
"paidAt": "2022-08-10",
"actualAmount": 22.33,
"discountGiven": 2
}
}
}
},
"examples": {
"Update invoice": {
"value": {
"date": "2020-01-01",
"costCenter": "3456",
"project": {
"id": "1"
},
"customer": {
"id": "12"
},
"tags": [
{
"id": "1"
},
{
"id": "2"
}
],
"devCustomer": "dev",
"billingAddress": {
"name": "John Doe",
"contactPerson": "John Doe",
"department": "Sales",
"subdivision": "Sales",
"street": "Main Street 1",
"additionalDetails": "1st floor",
"city": "New York",
"zipCode": "12345",
"country": "US"
},
"paymentMethodName": "invoice",
"gln": null,
"taxation": "0",
"dunningSettings": {
"level": "paymentReminder",
"date": "2022-08-10",
"comment": "This is a comment",
"sent": true
},
"dunningManualSettings": {
"paymentStatus": "pending",
"paidAt": "2022-08-10",
"actualAmount": 10.12,
"discountGiven": 1.12
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices/{id}/balance": {
"get": {
"tags": [
"Invoice"
],
"operationId": "invoice.balance",
"summary": "View Invoice Balance",
"description": "Returns balance information (documents, payments) for a single invoice",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"documents": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"invoices": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"date": {
"type": "string",
"format": "date-time"
}
}
}
},
"creditNotes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"date": {
"type": "string",
"format": "date-time"
}
}
}
}
},
"example": {
"invoices": [
{
"id": "1",
"amount": {
"amount": "13.37",
"currency": "EUR"
},
"date": "2023-08-13T14:45:36+02:00"
}
],
"creditNotes": [
{
"id": "1",
"amount": {
"amount": "13.37",
"currency": "EUR"
},
"date": "2023-08-13T14:45:36+02:00"
}
]
}
},
"payments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"reference": {
"type": "object",
"additionalProperties": false,
"description": "Only one of the actually referenced object.",
"properties": {
"invoice": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"creditNote": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"payment": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"type": {
"type": "string",
"enum": [
"incoming",
"outgoing"
],
"nullable": false
},
"statementId": {
"type": "string"
},
"accountName": {
"type": "string"
},
"amount": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"date": {
"type": "string",
"format": "date-time"
}
}
}
}
}
}
},
"example": {
"documents": {
"invoices": [
{
"id": "87",
"amount": {
"amount": "1483.63",
"currency": "EUR"
},
"date": "2024-03-08T00:00:00+01:00"
}
],
"creditNotes": [
{
"id": "2",
"amount": {
"amount": "24.99",
"currency": "EUR"
},
"date": "2024-06-17T00:00:00+02:00"
}
]
},
"payments": []
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices/{id}/documents": {
"get": {
"tags": [
"Invoice"
],
"operationId": "invoice.documents.view",
"summary": "View related documents for invoice",
"description": "Returns details for related documents of a single invoice.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"salesOrder": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"status": {
"type": "string",
"enum": [
"created",
"released",
"sent",
"canceled",
"completed",
"unknown"
]
},
"documentNumber": {
"type": "string"
},
"documentUrl": {
"type": "string"
},
"documentDate": {
"type": "string",
"format": "date"
}
}
}
},
"deliveryNotes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"status": {
"type": "string",
"enum": [
"created",
"released",
"sent",
"canceled",
"completed",
"unknown"
]
},
"documentNumber": {
"type": "string"
},
"documentUrl": {
"type": "string"
},
"documentDate": {
"type": "string",
"format": "date"
}
}
}
},
"creditNotes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"status": {
"type": "string",
"enum": [
"approved",
"canceled",
"completed",
"created",
"unknown"
]
},
"documentNumber": {
"type": "string"
},
"documentUrl": {
"type": "string"
},
"documentDate": {
"type": "string",
"format": "date"
}
}
}
},
"returns": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"status": {
"type": "string",
"enum": [
"created",
"released",
"sent",
"canceled",
"completed",
"unknown"
]
},
"documentNumber": {
"type": "string"
},
"documentUrl": {
"type": "string"
},
"documentDate": {
"type": "string",
"format": "date"
}
}
}
},
"pdfArchives": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentUrl": {
"type": "string"
},
"documentDate": {
"type": "string",
"format": "datetime"
},
"documentName": {
"type": "string"
},
"createdBy": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
}
},
"example": {
"salesOrder": [
{
"id": "1",
"status": "completed",
"documentNumber": "2022-200000",
"documentUrl": "https://example.xentral.biz?module=auftrag&action=pdf&id=1",
"documentDate": "2024-02-22"
}
],
"deliveryNotes": [
{
"id": "3",
"status": "sent",
"documentNumber": "2022-300002",
"documentUrl": "https://example.xentral.biz?module=lieferschein&action=pdf&id=3",
"documentDate": "2023-08-06"
}
],
"creditNotes": [
{
"id": "19",
"status": "created",
"documentNumber": "2022-300002",
"documentUrl": "https://example.xentral.biz?module=rechnung&action=pdffromarchive&id=19",
"documentDate": "2022-08-10"
}
],
"returns": [
{
"id": "19",
"status": "created",
"documentNumber": "2022-300002",
"documentUrl": "https://example.xentral.biz?module=rechnung&action=pdffromarchive&id=19",
"documentDate": "2022-08-10"
}
],
"pdfArchives": [
{
"id": "19",
"documentName": "0be068caab8e89774948bbd719453e1b_3_20220810_RE2022-400002.pdf",
"createdBy": {
"name": "Administrator"
},
"documentUrl": "https://example.xentral.biz?module=rechnung&action=pdffromarchive&id=19",
"documentDate": "2022-08-10 10:41:17"
}
]
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices/{id}/positions": {
"post": {
"tags": [
"Invoice"
],
"operationId": "invoice.createPositions",
"summary": "Create Positions for Invoice",
"description": "Adds invoice positions",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Invoice positions object\n\n The following payload structure is available:\n\nWhen a position has `salesOrderPosition.id` in the payload then product, quantity, price, vatCategory, taxRate, discounts are optional. The optional values override the values fetched from a sales order position\n\nWhen `salesOrderPosition.id` is not present in the payload or null, then product, quantity, price, vatCategory, taxRate, discounts are required",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"salesOrderPosition": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"quantity": {
"description": "The quantity for the position",
"type": "string",
"format": "float",
"example": "2.0"
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"deliveryDate": {
"description": "The VAT category that applies to the position",
"type": "string",
"format": "date",
"example": "2024-12-23"
},
"discounts": {
"description": "Discounts applied to position",
"type": "object",
"additionalProperties": false,
"properties": {
"totalPercent": {
"description": "The percentage discount applied to position",
"type": "string",
"format": "float",
"nullable": true,
"example": "38.45"
}
},
"example": {
"totalPercent": "38.45"
}
}
}
}
},
"examples": {
"Create invoice positions": {
"value": [
{
"product": {
"id": "1"
},
"quantity": "1.0",
"price": {
"amount": "100.00",
"currency": "EUR"
},
"deliveryDate": "2024-12-23"
},
{
"salesOrderPosition": {
"id": "2"
}
}
]
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices/{id}/positions/{positionId}": {
"delete": {
"operationId": "invoice.deletePosition",
"summary": "Delete Position from Invoice",
"description": "Delete single invoice position",
"tags": [
"Invoice"
],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"name": "positionId",
"in": "path",
"description": "Invoice position ID",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices/{id}/send": {
"patch": {
"tags": [
"Invoice"
],
"operationId": "invoice.send",
"summary": "Send invoice",
"description": "Send invoice",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Send invoice",
"content": {
"application/json": {
"schema": {
"anyOf": [
{
"type": "object",
"properties": {
"email": {
"type": "object",
"additionalProperties": false,
"required": [
"to",
"subject",
"body"
],
"properties": {
"to": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"format": "email"
}
},
"cc": {
"type": "array",
"nullable": true,
"items": {
"type": "string",
"format": "email"
}
},
"bcc": {
"type": "array",
"nullable": true,
"items": {
"type": "string",
"format": "email"
}
},
"subject": {
"type": "string"
},
"body": {
"type": "string"
}
}
}
}
},
{
"type": "object",
"properties": {
"printer": {
"type": "object",
"additionalProperties": false,
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
}
]
}
}
}
]
},
"examples": {
"Send invoice by email": {
"value": {
"email": {
"to": [
"test@example.com"
],
"subject": "Your Invoice",
"body": "Please find your invoice attached."
}
}
},
"Send invoice to printer": {
"value": {
"printer": {
"id": "1"
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/invoices/{id}/status": {
"patch": {
"tags": [
"Invoice"
],
"operationId": "invoice.status",
"summary": "Update status for single invoice",
"description": "Update status for single invoice",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
},
"requestBody": {
"description": "Update status for single invoice",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"description": "At least one of the properties must be present.",
"properties": {
"status": {
"type": "string",
"enum": [
"released",
"sent"
]
},
"paymentStatus": {
"type": "string",
"enum": [
"paid"
]
}
}
},
"examples": {
"Mark invoice as released": {
"value": {
"status": "released"
}
},
"Mark invoice as sent": {
"value": {
"status": "sent"
}
},
"Set invoice payment status": {
"value": {
"paymentStatus": "paid"
}
},
"Mark invoice as sent and set payment status": {
"value": {
"status": "sent",
"paymentStatus": "paid"
}
}
}
}
}
}
}
},
"/api/v1/invoicesTags": {
"get": {
"tags": [
"Invoice Tag"
],
"operationId": "invoiceTag.list",
"summary": "List Invoice tags",
"description": "Returns a collection with all invoice tags.",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/liabilities": {
"post": {
"tags": [
"Liability"
],
"operationId": "liability.create",
"summary": "Create liability",
"description": "Creates a single new liability.",
"requestBody": {
"description": "Create a liability object",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"supplier"
],
"properties": {
"date": {
"x-description-missing": true,
"type": "string",
"format": "date",
"nullable": true
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Supplier reference"
},
"supplierInvoiceNumber": {
"type": "string",
"description": "The invoice number issued by the supplier"
},
"receiptDate": {
"description": "The date when the supplier invoice was received by the recipient",
"type": "string",
"format": "date-time",
"nullable": true
},
"serviceDate": {
"description": "The date on which the service was provided",
"type": "string",
"format": "date",
"nullable": true
},
"status": {
"description": "Workflow status of the liability",
"type": "string",
"nullable": false,
"enum": [
"PENDING",
"PAID",
"PARTIALLY_PAID",
"CANCELLED"
]
},
"clarificationCase": {
"type": "boolean",
"description": "A boolean flag to mark the liability as a clarification case, e.g. to check the deferred account assignments or open questions"
},
"clarificationReason": {
"type": "string",
"description": "A string that specifies the reason or justification provided for the clarification case in the liability process."
},
"release": {
"type": "boolean",
"description": "A boolean flag with which the goods delivery is confirmed as complete and the traffic light is switched to green."
},
"invoiceRelease": {
"type": "boolean",
"description": "A boolean flag with which the accounting check of the incoming document is confirmed as complete and correct for tax purposes and the traffic light is switched to green."
},
"internalComment": {
"type": "string",
"description": "A text field for adding internal comments or notes related to the liability, not visible to external parties."
},
"financials": {
"type": "object",
"additionalProperties": false,
"description": "financial information",
"example": {
"amountGross": {
"amount": "100.0",
"currency": "EUR"
},
"amountNet": {
"amount": "90.0",
"currency": "EUR"
},
"freightCharge": 10,
"taxation": "VAT",
"taxes": {
"normalTax": {
"rate": 19,
"amount": 19
},
"reducedTax": {
"rate": 7,
"amount": 7
},
"customTax1": {
"rate": 8.1,
"amount": 50.5
},
"customTax2": {
"rate": 10,
"amount": 50.5
}
},
"paymentTerms": {
"dueDate": "2020-01-31",
"earlyPaymentDate": "2020-01-15",
"earlyPaymentDiscount": 2,
"earlyPaymentDiscountAmount": 2
},
"bookingText": "Liability booking text",
"payment": {
"methodName": "Bank transfer",
"paidAmount": 100,
"paidOnDate": "2020-01-01",
"discountReceived": 2
},
"glAccount": "123456",
"costCenter": "123456"
},
"properties": {
"amountGross": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"amountNet": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"freightCharge": {
"type": "number",
"format": "float",
"description": "Freight costs"
},
"taxation": {
"x-description-missing": true,
"type": "string"
},
"taxes": {
"type": "object",
"additionalProperties": false,
"properties": {
"normalTax": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
},
"reducedTax": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
},
"customTax1": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
},
"customTax2": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
}
}
},
"paymentTerms": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"dueDate": {
"type": "string",
"format": "date",
"nullable": true
},
"earlyPaymentDate": {
"type": "string",
"format": "date",
"nullable": true
},
"earlyPaymentDiscount": {
"type": "number",
"format": "float"
},
"earlyPaymentDiscountAmount": {
"type": "number",
"format": "float"
}
}
},
"bookingText": {
"description": "header booking text",
"type": "string"
},
"payment": {
"type": "object",
"additionalProperties": false,
"properties": {
"methodName": {
"x-description-missing": true,
"type": "string"
},
"paidAmount": {
"type": "number",
"format": "float"
},
"paidOnDate": {
"type": "string",
"format": "date",
"nullable": true
},
"discountReceived": {
"type": "number",
"format": "float"
}
},
"description": "payment information"
},
"glAccount": {
"type": "string",
"nullable": true,
"description": "ledger account"
},
"costCenter": {
"type": "string",
"nullable": true,
"description": "cost center"
}
}
},
"assignedPurchaseOrders": {
"x-description-missing": true,
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"project"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string"
},
"amountGross": {
"type": "number",
"format": "float"
},
"amountNet": {
"type": "number",
"format": "float"
},
"project": {
"type": "object",
"additionalProperties": false,
"description": "related project ID",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"salesOrder": {
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"costCenter": {
"type": "string"
}
}
}
},
"bookingText": {
"description": "header booking text",
"type": "string"
},
"project": {
"type": "object",
"additionalProperties": false,
"description": "related project ID",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"accounting": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"glAccount": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"bookingText": {
"type": "string",
"description": "1st accounting entry text"
},
"amount": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"tax": {
"type": "object",
"description": "percentual tax rate",
"additionalProperties": false,
"properties": {
"rate": {
"type": "number",
"format": "float"
}
}
},
"costCenter": {
"type": "string"
}
}
}
},
"paymentTerms": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"dueDate": {
"type": "string",
"format": "date",
"nullable": true
},
"earlyPaymentDate": {
"type": "string",
"format": "date",
"nullable": true
},
"earlyPaymentDiscount": {
"type": "number",
"format": "float"
}
}
},
"payment": {
"type": "object",
"additionalProperties": false,
"properties": {
"methodName": {
"x-description-missing": true,
"type": "string"
},
"paidAmount": {
"type": "number",
"format": "float"
},
"paidOnDate": {
"type": "string",
"format": "date",
"nullable": true
},
"discountReceived": {
"type": "number",
"format": "float"
}
},
"description": "payment information"
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"product",
"price",
"tax"
],
"properties": {
"sort": {
"description": "The position of the position in the list",
"type": "number",
"minimum": 0
},
"number": {
"type": "string"
},
"purchaseOrder": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"supplierProductNumber": {
"type": "string"
}
}
},
"deliveryDate": {
"description": "The date the position was delivered",
"type": "string",
"format": "date",
"nullable": true
},
"quantity": {
"description": "The quantity of the position",
"type": "number",
"minimum": 0
},
"unit": {
"type": "string"
},
"packagingUnit": {
"type": "string"
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"costCenter": {
"type": "string"
},
"tax": {
"type": "object",
"additionalProperties": false,
"required": [
"rate"
],
"properties": {
"vatCategory": {
"description": "The category of the value added tax",
"type": "string"
},
"rate": {
"description": "Tax rate in percent",
"type": "number",
"format": "float",
"minimum": 0,
"nullable": false
},
"taxText": {
"type": "string",
"nullable": true
}
}
}
}
}
}
}
},
"examples": {
"create liability": {
"value": {
"date": "2024-01-01",
"supplier": {
"id": "123456"
},
"supplierInvoiceNumber": "123456",
"receiptDate": "2024-01-01T12:00:00Z",
"status": "PENDING",
"clarificationCase": true,
"clarificationReason": "Awaiting customer confirmation on pricing details.",
"release": true,
"invoiceRelease": false,
"internalComment": "Priority customer. Expedite processing once clarification is received.",
"financials": {
"amountGross": {
"amount": "100.0",
"currency": "EUR"
},
"freightCharge": 10,
"taxation": "VAT",
"taxes": {
"normalTax": {
"rate": 19,
"amount": 19
},
"reducedTax": {
"rate": 7,
"amount": 7
},
"customTax1": {
"rate": 8.1,
"amount": 50.5
},
"customTax2": {
"rate": 10,
"amount": 50.5
}
},
"paymentTerms": {
"dueDate": "2020-01-31",
"earlyPaymentDate": "2020-01-15",
"earlyPaymentDiscount": 2
},
"bookingText": "Liability booking text",
"payment": {
"methodName": "Bank transfer",
"paidAmount": 100,
"paidOnDate": "2020-01-01",
"discountReceived": 2
},
"glAccount": "123456",
"costCenter": "123456"
},
"assignedPurchaseOrders": [
{
"id": "123456",
"number": "123456",
"amountGross": 100,
"amountNet": 100,
"project": {
"id": "123456"
},
"salesOrder": {
"id": "123456"
},
"costCenter": "123456"
}
],
"bookingText": "Liability booking text",
"project": {
"id": "123456"
},
"accounting": [
{
"glAccount": "123456",
"bookingText": "Liability booking text",
"amount": {
"amount": "100.0",
"currency": "EUR"
},
"tax": {
"rate": 19
},
"costCenter": "123456"
}
],
"paymentTerms": {
"dueDate": "2020-01-31",
"earlyPaymentDate": "2020-01-15"
},
"positions": [
{
"sort": 1,
"number": "123456",
"purchaseOrder": {
"id": "123456"
},
"product": {
"id": "123456",
"supplierProductNumber": "123456"
},
"deliveryDate": "2024-01-01",
"quantity": 1,
"unit": "pcs",
"packagingUnit": "pcs",
"price": {
"amount": "100.0",
"currency": "EUR"
},
"costCenter": "123456",
"tax": {
"vatCategory": "19%",
"rate": 19,
"taxText": "VAT 19%"
}
}
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Liability"
],
"operationId": "liability.list",
"summary": "List Liabilities",
"description": "Returns a collection with all Liabilities",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"supplier",
"status",
"project",
"createdAt",
"dueDate",
"fromDate",
"missingPaymentApproval",
"goodsReceiptInspectionMissing",
"incomingInvoiceVerificationMissing",
"noAccountAssignment",
"missingPayment",
"paidLiability",
"canceledLiability",
"missingDocument",
"invoiceDateAndReceiptVariousMonths"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"allIn",
"allNotIn",
"greaterThan",
"lessThan"
]
},
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
}
}
]
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"documentNumber",
"status",
"project",
"createdAt"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "A list of liabilities",
"example": [
{
"id": "123456",
"documentNumber": "LB-100001",
"date": "2020-01-15",
"createdAt": "2020-01-01 12:00:00+02:00",
"createdBy": {
"name": "John Doe"
},
"updatedAt": "2020-01-01 13:00:00+02:00",
"status": "PENDING",
"supplier": {
"id": "123456",
"name": "Test",
"number": "123456"
},
"supplierInvoiceNumber": "INV-23456",
"receiptDate": "2020-01-01",
"financials": {
"amountGross": {
"amount": "100.0",
"currency": "EUR"
},
"freightCharge": 10,
"taxation": "VAT",
"taxes": {
"normalTax": {
"rate": 19,
"amount": 19
},
"reducedTax": {
"rate": 7,
"amount": 7
},
"customTax1": {
"rate": 8.1,
"amount": 50.5
},
"customTax2": {
"rate": 10,
"amount": 50.5
}
},
"paymentTerms": {
"dueDate": "2020-01-31",
"earlyPaymentDate": "2020-01-15",
"earlyPaymentDiscount": 2
},
"bookingText": "Liability booking text",
"payment": {
"methodName": "Bank transfer",
"paidAmount": 100,
"paidOnDate": "2020-01-01",
"discountReceived": 2
},
"bank": {
"iban": "MK641692T03H5L89810",
"bic": "CNSXFR6D"
},
"amountNet": {
"amount": "14.5300",
"currency": "EUR"
},
"remainingSum": {
"amount": "10.00",
"currency": "EUR"
},
"totalAmount": {
"amount": "20.00",
"currency": "EUR"
}
},
"purchaseOrder": {
"id": "123"
},
"project": {
"id": "1"
},
"icons": {
"goodsReceiptCheck": "ok",
"invoiceCheck": "ok",
"accountAssignment": "ok",
"paymentStatus": "partially_paid",
"accountLink": "missing"
},
"tags": [
{
"id": "1",
"name": "Erledigt",
"color": "339966"
},
{
"id": "2",
"name": "Zu klären",
"color": "ff0000"
}
]
}
],
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"description": "Incremental document number. Before the document is approved, there is no document number.",
"type": "string",
"nullable": true,
"example": "LB-100001"
},
"date": {
"description": "Date of the supplier's invoice",
"type": "string",
"nullable": false,
"format": "date",
"example": "2020-01-15"
},
"createdAt": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"format": "date-time",
"example": "2020-01-01 12:00:00+02:00"
},
"createdBy": {
"description": "The user that created the liability",
"example": {
"name": "John Doe"
},
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"nullable": true
}
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"format": "date-time",
"example": "2020-01-01 13:00:00+02:00"
},
"status": {
"description": "Workflow status of the liability",
"type": "string",
"nullable": false,
"enum": [
"PENDING",
"PAID",
"PARTIALLY_PAID",
"CANCELLED"
],
"example": "PENDING"
},
"supplier": {
"description": "The supplier that issued the invoice",
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true,
"example": "Test"
},
"number": {
"type": "string",
"nullable": true,
"example": "123456"
}
},
"example": {
"id": "123456"
}
},
"supplierInvoiceNumber": {
"description": "Document number and receipt Day of the invoice in the supplier's system",
"type": "string",
"example": "INV-23456"
},
"receiptDate": {
"description": "Day when the invoice was received",
"type": "string",
"nullable": true,
"format": "date",
"example": "2020-01-01"
},
"financials": {
"description": "Financial information",
"example": {
"amountGross": {
"amount": "100.0",
"currency": "EUR"
},
"freightCharge": 10,
"taxation": "VAT",
"taxes": {
"normalTax": {
"rate": 19,
"amount": 19
},
"reducedTax": {
"rate": 7,
"amount": 7
},
"customTax1": {
"rate": 8.1,
"amount": 50.5
},
"customTax2": {
"rate": 10,
"amount": 50.5
}
},
"paymentTerms": {
"dueDate": "2020-01-31",
"earlyPaymentDate": "2020-01-15",
"earlyPaymentDiscount": 2
},
"bookingText": "Liability booking text",
"payment": {
"methodName": "Bank transfer",
"paidAmount": 100,
"paidOnDate": "2020-01-01",
"discountReceived": 2
},
"bank": {
"iban": "ABC",
"bic": "de4"
},
"amountNet": {
"amount": "0.0000",
"currency": "EUR"
},
"remainingSum": {
"amount": "0.00",
"currency": "EUR"
},
"totalAmount": {
"amount": "0.00",
"currency": "EUR"
}
},
"type": "object",
"additionalProperties": false,
"properties": {
"amountGross": {
"description": "Gross value of the liability",
"type": "object",
"additionalProperties": false,
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"nullable": false,
"format": "float",
"example": "1234.56",
"x-description-missing": true
},
"currency": {
"type": "string",
"nullable": false,
"example": "EUR",
"x-description-missing": true
}
}
},
"freightCharge": {
"x-description-missing": true,
"type": "number",
"nullable": true,
"example": 9.3
},
"taxation": {
"description": "The taxation method",
"type": "string",
"example": "Domestic",
"nullable": false
},
"taxes": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"required": [
"normalTax",
"reducedTax",
"customTax1",
"customTax2"
],
"properties": {
"normalTax": {
"description": "The normal tax rate",
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"rate",
"amount"
],
"properties": {
"rate": {
"description": "The tax rate in percent",
"type": "number",
"nullable": true,
"example": 19
},
"amount": {
"description": "The tax amount",
"type": "number",
"nullable": true,
"example": 120.5
}
}
},
"reducedTax": {
"description": "The reduced tax rate",
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"rate",
"amount"
],
"properties": {
"rate": {
"description": "The tax rate in percent",
"type": "number",
"nullable": true,
"example": 7
},
"amount": {
"description": "The tax amount",
"type": "number",
"nullable": true,
"example": 60.5
}
}
},
"customTax1": {
"description": "The first custom tax rate",
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"rate",
"amount"
],
"properties": {
"rate": {
"description": "The tax rate in percent",
"type": "number",
"nullable": true,
"example": 8.1
},
"amount": {
"description": "The tax amount",
"type": "number",
"nullable": true,
"example": 50.5
}
}
},
"customTax2": {
"description": "The second custom tax rate",
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"rate",
"amount"
],
"properties": {
"rate": {
"description": "The tax rate in percent",
"type": "number",
"nullable": true,
"example": 10
},
"amount": {
"description": "The tax amount",
"type": "number",
"nullable": true,
"example": 50.5
}
}
}
}
},
"bookingText": {
"description": "header booking text",
"type": "string"
},
"paymentTerms": {
"description": "The payment terms",
"type": "object",
"additionalProperties": false,
"required": [
"dueDate",
"earlyPaymentDate",
"earlyPaymentDiscount"
],
"properties": {
"dueDate": {
"description": "The due date of the payment",
"type": "string",
"nullable": true,
"example": "2020-01-15"
},
"earlyPaymentDate": {
"description": "The date when the early payment discount is valid",
"type": "string",
"nullable": true,
"example": "2020-01-10"
},
"earlyPaymentDiscount": {
"description": "The discount for early payment",
"type": "number",
"nullable": false,
"example": 2.5
}
}
},
"payment": {
"description": "Information about the payment",
"type": "object",
"additionalProperties": false,
"required": [
"methodName",
"paidAmount",
"paidOnDate",
"discountReceived"
],
"properties": {
"methodName": {
"description": "Name of the used payment method",
"type": "string",
"nullable": false,
"example": "invoice"
},
"paidAmount": {
"description": "The amount that was paid already",
"type": "number",
"nullable": false,
"example": 1234.56
},
"paidOnDate": {
"description": "The date when the latest payment was made",
"type": "string",
"nullable": true,
"example": "2020-01-12"
},
"discountReceived": {
"description": "The discount that was received from the supplier",
"type": "number",
"nullable": false,
"example": 12.34
}
}
},
"bank": {
"type": "object",
"properties": {
"iban": {
"type": "string",
"example": "MK641692T03H5L89810"
},
"bic": {
"type": "string",
"example": "CNSXFR6D"
}
}
},
"amountNet": {
"description": "Net value of the liability",
"type": "object",
"additionalProperties": false,
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"nullable": false,
"format": "float",
"example": "14.56",
"x-description-missing": true
},
"currency": {
"type": "string",
"nullable": false,
"example": "EUR",
"x-description-missing": true
}
}
},
"remainingSum": {
"description": "Remaining sum of the liability",
"type": "object",
"additionalProperties": false,
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"nullable": false,
"format": "float",
"example": "10.00",
"x-description-missing": true
},
"currency": {
"type": "string",
"nullable": false,
"example": "EUR",
"x-description-missing": true
}
}
},
"totalAmount": {
"description": "Total amount of the liability",
"type": "object",
"additionalProperties": false,
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"nullable": false,
"format": "float",
"example": "20.00",
"x-description-missing": true
},
"currency": {
"type": "string",
"nullable": false,
"example": "EUR",
"x-description-missing": true
}
}
}
}
},
"purchaseOrder": {
"description": "The purchase order associated with the liability",
"example": {
"id": "123"
},
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"project": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"example": {
"id": "1"
},
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"icons": {
"x-description-missing": true,
"type": "object",
"properties": {
"goodsReceiptCheck": {
"type": "string"
},
"invoiceCheck": {
"type": "string"
},
"accountAssignment": {
"type": "string"
},
"paymentStatus": {
"type": "string"
},
"accountLink": {
"type": "string"
}
},
"example": {
"goodsReceiptCheck": "ok",
"invoiceCheck": "ok",
"accountAssignment": "ok",
"paymentStatus": "partially_paid",
"accountLink": "missing"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
}
}
},
"example": [
{
"id": "1",
"name": "Erledigt",
"color": "339966"
},
{
"id": "2",
"name": "Zu klären",
"color": "ff0000"
}
]
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/liabilities-recurring": {
"post": {
"tags": [
"Liability"
],
"operationId": "liability.create.recurring",
"summary": "Create recurring liability",
"description": "Creates a single new recurring liability.",
"requestBody": {
"description": "Create a RecurringLiability object",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"creationType",
"type",
"active"
],
"properties": {
"creationType": {
"type": "string",
"description": "Type of RecurringLiability creation"
},
"type": {
"type": "string",
"description": "RecurringLiability type"
},
"active": {
"type": "boolean",
"description": "Indicates if the RecurringLiability is active"
},
"filter": {
"type": "string",
"description": "value is booking text for creationType=incoming_payment and day for creationType=date"
},
"debit": {
"type": "string",
"description": "value is debit for creationType=incoming_payment and amount for creationType=date"
},
"credit": {
"type": "string",
"description": "Credit amount"
},
"fee": {
"type": "string",
"description": "RecurringLiability fee"
},
"currency": {
"type": "string",
"description": "value is currency for creationType=incoming_payment,date"
},
"contraAccount": {
"type": "string",
"description": "Contra account description"
},
"invoiceNumber": {
"type": "string",
"description": "Invoice number related to the RecurringLiability"
},
"purpose": {
"type": "string",
"description": "Purpose of the RecurringLiability"
},
"costCenter": {
"type": "string",
"description": "Cost center description"
},
"paymentMethod": {
"type": "string",
"description": "Payment method used"
},
"approveGoodsReceiptInspection": {
"type": "boolean",
"description": "Approval for goods receipt inspection"
},
"approveIncomingInvoiceInspection": {
"type": "boolean",
"description": "Approval for incoming invoice inspection"
},
"liabilityAmount": {
"type": "string",
"description": "Liability amount for the RecurringLiability"
},
"liabilityCurrency": {
"type": "string",
"description": "Liability currency for the RecurringLiability"
},
"value": {
"type": "string",
"description": "value is supplier description for type=liability, contraAccount for type=chart_of_accounts, errorReason for type=import_error"
}
}
},
"examples": {
"Create Recurring Liability -- creationType - by incoming payment and type - liability": {
"value": {
"creationType": "incoming_payment",
"type": "liability",
"active": true,
"filter": "filter is bookingText test",
"debit": "12",
"credit": "11",
"fee": "1",
"currency": "EUR",
"value": "26171 Sandra Krämer (Dresden)",
"contraAccount": "account label",
"invoiceNumber": "INV-DE-UOSS-123456789-1234-567",
"purpose": "purpose test",
"costCenter": "5049 CostCenter Description",
"paymentMethod": "Amazon",
"approveGoodsReceiptInspection": true,
"approveIncomingInvoiceInspection": true
}
},
"Create Recurring Liability -- creationType - by incoming payment and type - chart of accounts": {
"value": {
"creationType": "incoming_payment",
"type": "chart_of_accounts",
"active": true,
"filter": "filter is bookingText test",
"debit": "12",
"credit": "11",
"fee": "1",
"currency": "EUR",
"contraAccount": "account label",
"value": "account label"
}
},
"Create Recurring Liability -- creationType - by incoming payment and type - import error": {
"value": {
"creationType": "incoming_payment",
"type": "import_error",
"active": true,
"filter": "filter is bookingText test",
"debit": "12",
"credit": "11",
"fee": "1",
"currency": "EUR",
"value": "Some error"
}
},
"Create Recurring Liability -- creationType - by date and type - liability": {
"value": {
"creationType": "date",
"type": "liability",
"active": true,
"filter": "1",
"value": "26171 Sandra Krämer (Dresden)",
"contraAccount": "account label",
"invoiceNumber": "INV-DE-UOSS-123456789-1234-567",
"purpose": "purpose test",
"costCenter": "5049 CostCenter Description",
"paymentMethod": "Amazon",
"approveGoodsReceiptInspection": true,
"approveIncomingInvoiceInspection": true,
"debit": "10",
"currency": "EUR"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/liabilities/{id}": {
"get": {
"tags": [
"Liability"
],
"operationId": "liability.view",
"summary": "View liability",
"description": "Returns details of a single liability.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "LB-100001"
},
"date": {
"x-description-missing": true,
"type": "string",
"format": "date",
"example": "2020-01-15"
},
"createdAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2020-01-01 12:00:00+02:00"
},
"createdBy": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"nullable": true,
"properties": {
"name": {
"type": "string"
}
},
"example": {
"name": "John Doe"
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"format": "date-time",
"example": "2020-01-01 13:00:00+02:00"
},
"supplierInvoice": {
"type": "string",
"description": "The invoice number issued by the supplier",
"example": "INV-12345"
},
"receiptDate": {
"description": "The date when the supplier invoice was received by the recipient",
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2020-01-01T12:00:00Z"
},
"serviceDate": {
"description": "The date on which the service was provided",
"type": "string",
"format": "date",
"nullable": true,
"example": "2020-01-01"
},
"deliveryDate": {
"description": "The date on which the goods where shipped or the services where rendered",
"type": "string",
"format": "date",
"nullable": true,
"example": "2020-01-01"
},
"status": {
"type": "string",
"enum": [
"PENDING",
"PAID",
"PARTIALLY_PAID",
"CANCELLED"
],
"description": "Status of liability",
"example": "PENDING"
},
"supplier": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Supplier reference",
"example": {
"id": "123456"
}
},
"supplierInvoiceNumber": {
"type": "string",
"description": "The invoice number issued by the supplier",
"example": "INV-12345"
},
"financials": {
"type": "object",
"additionalProperties": false,
"description": "financial information",
"example": {
"amountGross": {
"amount": "100.0",
"currency": "EUR"
},
"amountNet": {
"amount": "90.0",
"currency": "EUR"
},
"freightCharge": 10,
"taxation": "VAT",
"taxes": {
"normalTax": {
"rate": 19,
"amount": 19
},
"reducedTax": {
"rate": 7,
"amount": 7
},
"customTax1": {
"rate": 8.1,
"amount": 50.5
},
"customTax2": {
"rate": 10,
"amount": 50.5
}
},
"paymentTerms": {
"dueDate": "2020-01-31",
"earlyPaymentDate": "2020-01-15",
"earlyPaymentDiscount": 2,
"earlyPaymentDiscountAmount": 2
},
"bookingText": "Liability booking text",
"payment": {
"methodName": "Bank transfer",
"paidAmount": 100,
"paidOnDate": "2020-01-01",
"discountReceived": 2
},
"glAccount": "123456",
"costCenter": "123456"
},
"properties": {
"amountGross": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"amountNet": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"freightCharge": {
"type": "number",
"format": "float",
"description": "Freight costs"
},
"taxation": {
"x-description-missing": true,
"type": "string"
},
"taxes": {
"type": "object",
"additionalProperties": false,
"properties": {
"normalTax": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
},
"reducedTax": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
},
"customTax1": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
},
"customTax2": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "number",
"description": "percentual rate"
},
"amount": {
"type": "number",
"format": "float",
"description": "absolut amount"
}
}
}
}
},
"paymentTerms": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"dueDate": {
"type": "string",
"format": "date",
"nullable": true
},
"earlyPaymentDate": {
"type": "string",
"format": "date",
"nullable": true
},
"earlyPaymentDiscount": {
"type": "number",
"format": "float"
},
"earlyPaymentDiscountAmount": {
"type": "number",
"format": "float"
}
}
},
"bookingText": {
"description": "header booking text",
"type": "string"
},
"payment": {
"type": "object",
"additionalProperties": false,
"properties": {
"methodName": {
"x-description-missing": true,
"type": "string"
},
"paidAmount": {
"type": "number",
"format": "float"
},
"paidOnDate": {
"type": "string",
"format": "date",
"nullable": true
},
"discountReceived": {
"type": "number",
"format": "float"
}
},
"description": "payment information"
},
"glAccount": {
"type": "string",
"nullable": true,
"description": "ledger account"
},
"costCenter": {
"type": "string",
"nullable": true,
"description": "cost center"
}
}
},
"purchaseOrder": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"description": "global connected purchase order",
"example": {
"id": "123456"
},
"properties": {
"id": {
"type": "string",
"description": "related purchase order"
}
}
},
"assignedPurchaseOrders": {
"x-description-missing": true,
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string"
},
"amountGross": {
"type": "number",
"format": "float"
},
"amountNet": {
"type": "number",
"format": "float"
},
"project": {
"type": "object",
"additionalProperties": false,
"description": "related project ID",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"salesOrder": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"costCenter": {
"type": "string"
},
"comment": {
"type": "string"
}
}
}
},
"project": {
"type": "object",
"additionalProperties": false,
"description": "related project ID",
"example": {
"id": "1"
},
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"accounting": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"glAccount": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"bookingText": {
"type": "string",
"description": "1st accounting entry text"
},
"amount": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"tax": {
"type": "object",
"description": "percentual tax rate",
"additionalProperties": false,
"properties": {
"rate": {
"type": "number",
"format": "float"
}
}
},
"costCenter": {
"type": "string"
}
}
}
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"sort": {
"description": "The position of the position in the list",
"type": "number"
},
"number": {
"type": "string"
},
"purchaseOrder": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"product": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"supplierProductNumber": {
"type": "string"
}
}
},
"deliveryDate": {
"description": "The date the position was delivered",
"type": "string",
"format": "date",
"nullable": true
},
"quantity": {
"description": "The quantity of the position",
"type": "number"
},
"unit": {
"type": "string"
},
"packagingUnit": {
"type": "string"
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"costCenter": {
"type": "string"
},
"tax": {
"type": "object",
"additionalProperties": false,
"properties": {
"vatCategory": {
"description": "The category of the value added tax",
"type": "string"
},
"rate": {
"description": "Tax rate in percent",
"type": "number",
"format": "float",
"nullable": true
},
"taxText": {
"type": "string",
"nullable": true
}
}
}
}
}
},
"purpose": {
"type": "string",
"nullable": true,
"description": "The purpose",
"example": "Test purpose"
}
},
"example": {
"id": "123456",
"documentNumber": "LB-100001",
"date": "2020-01-15",
"createdAt": "2020-01-01 12:00:00+02:00",
"createdBy": {
"name": "John Doe"
},
"updatedAt": "2020-01-01 13:00:00+02:00",
"supplierInvoice": "INV-12345",
"receiptDate": "2020-01-01T12:00:00Z",
"deliveryDate": "2020-01-01",
"status": "PENDING",
"supplier": {
"id": "123456"
},
"supplierInvoiceNumber": "INV-12345",
"financials": {
"amountGross": {
"amount": "100.0",
"currency": "EUR"
},
"freightCharge": 10,
"taxation": "VAT",
"taxes": {
"normalTax": {
"rate": 19,
"amount": 19
},
"reducedTax": {
"rate": 7,
"amount": 7
},
"customTax1": {
"rate": 8.1,
"amount": 50.5
},
"customTax2": {
"rate": 10,
"amount": 50.5
}
},
"paymentTerms": {
"dueDate": "2020-01-31",
"earlyPaymentDate": "2020-01-15",
"earlyPaymentDiscount": 2
},
"bookingText": "Liability booking text",
"payment": {
"methodName": "Bank transfer",
"paidAmount": 100,
"paidOnDate": "2020-01-01",
"discountReceived": 2
},
"glAccount": "123456",
"costCenter": "123456"
},
"purchaseOrder": {
"id": "123456"
},
"assignedPurchaseOrders": [
{
"id": "123456",
"number": "123456",
"amountGross": 100,
"amountNet": 100,
"project": {
"id": "123456"
},
"salesOrder": {
"id": "123456"
},
"costCenter": "123456"
}
],
"project": {
"id": "1"
},
"accounting": [
{
"glAccount": "123456",
"bookingText": "Liability booking text",
"amount": {
"amount": "100.0",
"currency": "EUR"
},
"tax": {
"rate": 19
},
"costCenter": "123456"
}
],
"purpose": "test purpose"
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/liabilities/{id}/documents": {
"post": {
"tags": [
"Liability"
],
"operationId": "liability.document.upload",
"summary": "Add a liability document to an existing liability",
"description": "Upload a file and adds this file as document to given liability",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Liability document create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"fileName",
"fileContent",
"keyword"
],
"properties": {
"title": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
},
"keyword": {
"type": "string",
"enum": [
"other",
"receipt",
"aknowledgement",
"cover",
"attachment"
]
},
"fileName": {
"type": "string"
},
"fileContent": {
"type": "string",
"description": "Base64 encoded content document."
}
}
},
"examples": {
"Create Liability Document - minimal payload": {
"value": {
"keyword": "other",
"fileName": "document.pdf",
"fileContent": "dGVzdA=="
}
},
"Create Liability Document - fully qualified payload": {
"value": {
"title": "Liability document",
"description": "This is a liability document",
"keyword": "other",
"fileName": "document.pdf",
"fileContent": "dGVzdA=="
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
}
}
}
},
"/api/v1/paymentMethods": {
"get": {
"tags": [
"Payment Methods"
],
"operationId": "paymentMethod.list",
"summary": "Payment method list",
"description": "Lists all payment methods.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"key",
"op",
"value"
],
"properties": {
"key": {
"type": "string",
"enum": [
"search",
"id",
"type",
"project"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan"
]
},
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"type",
"project"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"type": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"example": "amazon"
},
"designation": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"example": "Amazon"
},
"project": {
"x-description-missing": true,
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1"
}
}
},
"example": {
"id": "6",
"type": "amazon",
"project": {
"id": "1"
},
"designation": "Amazon"
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/paymentTransactions/{id}": {
"get": {
"tags": [
"Payment Transaction"
],
"operationId": "paymentTransaction.view",
"summary": "View a single payment transaction",
"description": "Returns details of a single payment transaction",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "object",
"description": "information about a payment transaction",
"additionalProperties": false,
"properties": {
"returns": {
"type": "array",
"description": "List of return orders",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"salesOrder": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
}
},
"salesOrder": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"creditNote": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"monetary": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"paymentStatus": {
"type": "string",
"description": "information about the the current status of the transaction",
"example": "approved"
},
"paymentReason": {
"type": "string",
"description": "information about the payment reason",
"example": "some reason"
}
},
"example": {
"creditNote": {
"id": "3"
},
"returns": [
{
"returnOrder": {
"id": "1"
},
"salesOrder": {
"id": "2"
}
}
],
"monetary": {
"amount": "12.34",
"currency": "EUR"
},
"paymentStatus": "error",
"paymentReason": "Some reason"
}
}
}
},
"examples": {
"Shows a single payment transaction": {
"value": {
"data": {
"creditNote": {
"id": "3"
},
"returns": [
{
"returnOrder": {
"id": "1"
},
"salesOrder": {
"id": "2"
}
}
],
"monetary": {
"amount": "12.34",
"currency": "EUR"
},
"paymentStatus": "error",
"paymentReason": "Some reason"
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/paymentTransactions/{id}/status": {
"patch": {
"tags": [
"Payment Transaction"
],
"operationId": "paymentTransaction.status",
"summary": "[EARLY ACCESS] Update status for single Payment Transaction",
"description": "[EARLY ACCESS] Update status for single Payment Transaction",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
},
"requestBody": {
"description": "[EARLY ACCESS] Update status for single Payment Transaction",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"description": "Status is required. statusReason is optional and should be used for errors.",
"properties": {
"status": {
"type": "string",
"enum": [
"verbucht",
"error"
]
},
"statusReason": {
"type": "string"
}
}
},
"examples": {
"Set payment transaction to success": {
"value": {
"status": "verbucht"
}
},
"Set payment transaction to error": {
"value": {
"status": "error",
"statusReason": "card has expired"
}
}
}
}
}
}
}
},
"/api/v1/paymentTermsGroups": {
"get": {
"tags": [
"Payment Terms Group"
],
"operationId": "paymentTermsGroup.list",
"summary": "Get a list of paymentTermsGroups",
"description": "This endpoint is only available as early access version and will introduce breaking changes without further notice or versioning.\n\nPaymentTermsGroups can be used to group customers with identical payment terms such as different discounts, payment targets, and free postage options. For more details about the group feature have a look at our handbook article.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"oneOf": [
{
"type": "array",
"title": "Pass the array of filters.",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"description": "Pass the array as filter[0][key], filter[0][op], filter[0][value]",
"enum": [
"id",
"name",
"key",
"isActive",
"projectId",
"categoryId"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"title": "Array",
"items": {
"type": "string",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'."
}
}
]
}
}
}
}
]
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name",
"key"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"key": {
"x-description-missing": true,
"type": "string",
"example": "payment_terms_group_1"
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Sample payment terms group"
},
"isActive": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"comment": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "This is a payment terms group."
},
"paymentTerms": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"basicDiscount": {
"type": "number",
"example": 5,
"nullable": true
},
"paymentTargetDays": {
"type": "integer",
"example": 30,
"nullable": true
},
"earlyPaymentDiscount": {
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"value": {
"type": "number",
"example": 2
},
"paymentTargetDays": {
"type": "integer",
"example": 7
}
}
},
"postageFreeFrom": {
"nullable": true,
"type": "number",
"example": 99.99,
"description": "null = no free shipping; 0 = free shipping for all orders; > 0 = free shipping for orders with a value of at least this value"
}
},
"example": {
"basicDiscount": 5,
"paymentTargetDays": 30,
"earlyPaymentDiscount": {
"value": 2,
"paymentTargetDays": 7
},
"postageFreeFrom": 99.99
}
},
"project": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1"
}
},
"category": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "789"
}
}
},
"example": {
"id": "123",
"key": "DISCOUNT-10",
"name": "Customer Discount 10%",
"isActive": true,
"comment": "Customers in this group get 10% discount on all orders. And free shipping if the order value is at least 100.00 EUR.",
"paymentTerms": {
"basicDiscount": 10,
"paymentTargetDays": 30,
"earlyPaymentDiscount": {
"value": 2,
"paymentTargetDays": 15
},
"postageFreeFrom": 100
},
"project": {
"id": "1"
},
"category": {
"id": "789"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"example": {
"data": [
{
"id": "1",
"key": "DISCOUNT",
"name": "10.5% discount for customers",
"isActive": true,
"comment": "All customer in this group get a 10.5% discount on their orders.",
"paymentTerms": {
"basicDiscount": 10.5,
"paymentTargetDays": 30,
"earlyPaymentDiscount": null,
"postageFreeFrom": null
},
"project": {
"id": "1"
},
"category": {
"id": "1"
}
},
{
"id": "2",
"key": "FREE-SHIPPING",
"name": "free shipping on all orders",
"isActive": true,
"comment": null,
"paymentTerms": {
"basicDiscount": null,
"paymentTargetDays": null,
"earlyPaymentDiscount": null,
"postageFreeFrom": 0
},
"project": null,
"category": null
},
{
"id": "3",
"key": "EARLY_PAYMENT",
"name": "early payment discount",
"isActive": false,
"comment": "Customers in this group tend to delay payments -> we offer higher early payment discount.",
"paymentTerms": {
"basicDiscount": null,
"paymentTargetDays": null,
"earlyPaymentDiscount": {
"value": 5.5,
"paymentTargetDays": 14
},
"postageFreeFrom": null
},
"project": null,
"category": null
}
],
"extra": {
"totalCount": 3,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Payment Terms Group"
],
"operationId": "paymentTermsGroup.create",
"summary": "Create a new paymentTermsGroup",
"description": "This endpoint is only available as early access version and will introduce breaking changes without further notice or versioning.\n\nPaymentTermsGroups can be used to group customers with identical payment terms such as different discounts, payment targets, and free postage options. For more details about the group feature have a look at our handbook article.",
"parameters": [],
"requestBody": {
"description": "Request to create a new paymentTermsGroup.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"key",
"name"
],
"properties": {
"key": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]{3,255}$",
"minLength": 3,
"maxLength": 255,
"example": "DISCOUNT_10-5"
},
"name": {
"type": "string",
"minLength": 3,
"maxLength": 512,
"example": "Customer Discount 10.5%"
},
"comment": {
"nullable": true,
"type": "string",
"maxLength": 64000,
"example": "Customers in this group get 10.5% discount on all orders. And free shipping if the order value is at least 99.99 EUR."
},
"isActive": {
"type": "boolean",
"default": true
},
"paymentTerms": {
"nullable": true,
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"basicDiscount": {
"nullable": true,
"type": "number",
"example": 5.5
},
"paymentTargetDays": {
"nullable": true,
"type": "integer",
"example": 30,
"description": "default: 14 days",
"default": 14
},
"earlyPaymentDiscount": {
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"value": {
"type": "number",
"example": 2.1
},
"paymentTargetDays": {
"type": "integer",
"example": 7
}
}
},
"postageFreeFrom": {
"nullable": true,
"type": "number",
"example": 99.99,
"default": null,
"description": "null = no free shipping; 0 = free shipping for all orders; > 0 = free shipping for orders with a value of at least this value"
}
}
},
"project": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1"
}
},
"category": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "789"
}
}
}
},
"examples": {
"create payment terms": {
"value": {
"key": "DISCOUNT-10",
"name": "Customer Discount 10%",
"isActive": true,
"comment": "Customers in this group get 10% discount on all orders. And free shipping if the order value is at least 99.99 EUR.",
"paymentTerms": {
"basicDiscount": 10,
"paymentTargetDays": 30,
"earlyPaymentDiscount": {
"value": 2,
"paymentTargetDays": 15
},
"postageFreeFrom": 99.99
},
"project": {
"id": "1"
},
"category": {
"id": "789"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/paymentTermsGroups/{id}": {
"get": {
"tags": [
"Payment Terms Group"
],
"operationId": "paymentTermsGroup.view",
"summary": "Get a single paymentTermsGroup",
"description": "This endpoint is only available as early access version and will introduce breaking changes without further notice or versioning.\n\nPaymentTermsGroups can be used to group customers with identical payment terms such as different discounts, payment targets, and free postage options. For more details about the group feature have a look at our handbook article.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"key": {
"x-description-missing": true,
"type": "string",
"example": "payment_terms_group_1"
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Sample payment terms group"
},
"isActive": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"comment": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "This is a payment terms group."
},
"paymentTerms": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"basicDiscount": {
"type": "number",
"example": 5,
"nullable": true
},
"paymentTargetDays": {
"type": "integer",
"example": 30,
"nullable": true
},
"earlyPaymentDiscount": {
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"value": {
"type": "number",
"example": 2
},
"paymentTargetDays": {
"type": "integer",
"example": 7
}
}
},
"postageFreeFrom": {
"nullable": true,
"type": "number",
"example": 99.99,
"description": "null = no free shipping; 0 = free shipping for all orders; > 0 = free shipping for orders with a value of at least this value"
}
},
"example": {
"basicDiscount": 5,
"paymentTargetDays": 30,
"earlyPaymentDiscount": {
"value": 2,
"paymentTargetDays": 7
},
"postageFreeFrom": 99.99
}
},
"project": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1"
}
},
"category": {
"x-description-missing": true,
"nullable": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "789"
}
}
},
"example": {
"id": "123",
"key": "DISCOUNT-10",
"name": "Customer Discount 10%",
"isActive": true,
"comment": "Customers in this group get 10% discount on all orders. And free shipping if the order value is at least 100.00 EUR.",
"paymentTerms": {
"basicDiscount": 10,
"paymentTargetDays": 30,
"earlyPaymentDiscount": {
"value": 2,
"paymentTargetDays": 15
},
"postageFreeFrom": 100
},
"project": {
"id": "1"
},
"category": {
"id": "789"
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/cashiers": {
"get": {
"tags": [
"Point Of Sale"
],
"operationId": "cashier.list",
"summary": "Cashier list",
"description": "Lists all active cashiers.",
"parameters": [
{
"name": "project_id",
"in": "query",
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Kassierer SW"
},
"number": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "1001"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"permissionLevel": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "0"
}
},
"example": {
"id": "1",
"name": "Kassierer SW",
"number": "1001",
"project": {
"id": "2"
},
"permissionLevel": "0"
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/cashiers/{id}/pinCheck": {
"post": {
"tags": [
"Point Of Sale"
],
"operationId": "cashier.pinCheck",
"summary": "Cashier PIN check",
"description": "Checks a pin for cashier.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Verify PIN",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"pin",
"project"
],
"properties": {
"pin": {
"type": "string",
"nullable": false,
"pattern": "\\d{4}"
},
"project": {
"type": "string",
"nullable": false,
"pattern": "\\d"
}
}
},
"examples": {
"Verify PIN": {
"value": {
"pin": "1234",
"project": "5"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"example": "Kassierer SW"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"permissionLevel": {
"x-description-missing": true,
"type": "string",
"pattern": "\\d",
"nullable": false,
"example": "0"
}
},
"example": {
"id": "1",
"name": "Kassierer SW",
"project": {
"id": "2"
},
"permissionLevel": "0"
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/cashRegisters/{id}/balance": {
"get": {
"tags": [
"Point Of Sale"
],
"operationId": "cashRegister.balance",
"summary": "Cash Register balance",
"description": "Retrieves the balance of a cash register.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"openingBalance": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"example": "1,236.61"
},
"targetAmount": {
"x-description-missing": true,
"type": "string",
"nullable": false,
"example": "1,236.61"
}
},
"example": {
"openingBalance": "1,236.61",
"targetAmount": "1,236.61"
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/posJournals": {
"get": {
"tags": [
"Point Of Sale"
],
"operationId": "journal.list",
"summary": "Journals list",
"description": "Lists all active journals.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"date",
"customerId",
"projectId",
"salesOrderId",
"externalOrderNumber"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan"
]
},
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
}
}
]
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"date",
"customerId",
"projectId"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"date": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2020-09-23T14:20:08+02:00"
},
"projectId": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"type": {
"x-description-missing": true,
"type": "string",
"example": "RE_Beleg"
},
"posFunction": {
"x-description-missing": true,
"type": "string",
"example": "TODO"
},
"doctype": {
"x-description-missing": true,
"type": "string",
"example": "rechnung"
},
"paymentType": {
"x-description-missing": true,
"type": "string",
"example": "eckarte"
},
"doctypeId": {
"x-description-missing": true,
"type": "number",
"example": 10
},
"documentNumber": {
"x-description-missing": true,
"type": "string",
"example": "400009"
},
"journalText": {
"x-description-missing": true,
"type": "string",
"example": "RE 400009 (POS)"
},
"revenueAccount": {
"x-description-missing": true,
"type": "string",
"example": "4400"
},
"currency": {
"x-description-missing": true,
"type": "string",
"example": "EUR"
},
"tax": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 16
},
"amountGross": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 99
},
"amountNet": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 85.34
},
"cashRegisterId": {
"x-description-missing": true,
"type": "number",
"example": 5
},
"customerId": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"createdAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2020-09-23T20:22:08+02:00"
},
"createdBy": {
"x-description-missing": true,
"type": "string",
"example": "John Doe"
},
"businessTransactionType": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "TODO"
},
"qrString": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": null
},
"fiscalDocumentReference": {
"description": "This field represents an object with dynamic structure",
"type": "object",
"additionalProperties": true,
"nullable": true,
"example": {}
},
"salesOrder": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"number"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"example": "200002"
},
"externalOrderNumber": {
"type": "string",
"example": "152"
}
},
"example": {
"id": "5",
"number": "200002",
"externalOrderNumber": "152"
}
}
},
"example": {
"id": "1",
"date": "2020-09-23T14:20:08+02:00",
"projectId": "6",
"type": "RE_Beleg",
"posFunction": "",
"doctype": "rechnung",
"paymentType": "eckarte",
"doctypeId": 1,
"documentNumber": "400000",
"journalText": "RE 400000 (POS)",
"revenueAccount": "4400",
"currency": "EUR",
"tax": 16,
"amountGross": 98.99,
"amountNet": 85.34,
"cashRegisterId": 5,
"customerId": "36",
"createdAt": "2020-09-23T14:20:08+02:00",
"createdBy": "John Doe",
"businessTransactionType": "",
"salesOrder": {
"id": "4",
"number": "200001",
"externalOrderNumber": ""
},
"qrString": null
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/posJournals/actions/add": {
"post": {
"tags": [
"Point Of Sale"
],
"operationId": "journal.add",
"summary": "Add journal entry",
"description": "Add a new journal entry.",
"parameters": [],
"requestBody": {
"description": "Add journal entry",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"project",
"cashier",
"transaction",
"entry",
"payment"
],
"properties": {
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"cashier": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"transaction": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"text"
],
"properties": {
"type": {
"type": "string",
"nullable": false
},
"text": {
"type": "string",
"nullable": false
}
}
},
"entry": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"nullable": false,
"required": [
"type",
"timestamp",
"document"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invoice",
"credit_note"
],
"nullable": false
},
"timestamp": {
"description": "a atom formatted date time",
"type": "string",
"format": "date-time",
"example": "2023-08-13T14:45:36+02:00"
},
"document": {
"type": "object",
"description": "When `entry.type` is `creditNote`, credit note ID will be provided. When `type` is `invoice`the invoice ID will be provided",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"qrString": {
"type": "string",
"description": "When `entry.type` is `invoice` or `credit_note` a string representing the QR code will be provided",
"additionalProperties": false
}
}
},
{
"type": "object",
"additionalProperties": false,
"nullable": false,
"required": [
"type",
"timestamp",
"amount"
],
"properties": {
"type": {
"type": "string",
"enum": [
"cash_in",
"cash_out",
"cash_difference"
],
"nullable": false
},
"timestamp": {
"type": "string",
"format": "date-time",
"nullable": false
},
"amount": {
"type": "object",
"description": "Mandatory field when `entry.type` has one of the values: `cash_in`, `cash_out`, `cash_difference`.",
"additionalProperties": false,
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"format": "float"
},
"currency": {
"type": "string",
"pattern": "[A-Z]{3}",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"description": "Currency matches one of currency values as specified in ISO-4217."
}
}
}
}
}
]
},
"payment": {
"type": "object",
"additionalProperties": false,
"nullable": false,
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"cash",
"ec",
"credit",
"ec_card"
],
"nullable": false
}
}
},
"fiscalDocumentReference": {
"description": "This field represents an object with dynamic structure",
"type": "object",
"additionalProperties": true,
"nullable": true
}
}
},
"examples": {
"Add journal entry": {
"value": {
"project": {
"id": "2"
},
"cashier": {
"id": "4"
},
"transaction": {
"type": "invoice",
"text": "Invoice 123"
},
"entry": {
"type": "invoice",
"timestamp": "2023-10-01T00:00:00Z",
"document": {
"id": "1"
}
},
"payment": {
"type": "cash"
},
"fiscalDocumentReference": null
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/posCashCount/actions/add": {
"post": {
"tags": [
"Point Of Sale"
],
"operationId": "cashCount.add",
"summary": "Add cash count entry",
"description": "Add a new cash count entry.",
"parameters": [],
"requestBody": {
"description": "Add cash count body",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"project",
"cashier",
"comment",
"difference",
"cashQuantity"
],
"properties": {
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"cashier": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"comment": {
"type": "string",
"nullable": false
},
"difference": {
"type": "number",
"format": "float",
"nullable": false
},
"cashQuantity": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"eur500",
"eur200",
"eur100",
"eur50",
"eur20",
"eur10",
"eur5",
"eur2",
"eur1",
"eur05",
"eur02",
"eur01",
"eur005",
"eur002",
"eur001"
],
"properties": {
"eur500": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur200": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur100": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur50": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur20": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur10": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur5": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur2": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur1": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur05": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur02": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur01": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur005": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur002": {
"type": "integer",
"format": "int64",
"nullable": false
},
"eur001": {
"type": "integer",
"format": "int64",
"nullable": false
}
}
}
}
},
"examples": {
"Add cash count": {
"value": {
"project": {
"id": "2"
},
"cashier": {
"id": "4"
},
"comment": "Cash count comment",
"difference": 0,
"cashQuantity": {
"eur500": 0,
"eur200": 0,
"eur100": 2,
"eur50": 3,
"eur20": 8,
"eur10": 12,
"eur5": 8,
"eur2": 19,
"eur1": 28,
"eur05": 20,
"eur02": 10,
"eur01": 7,
"eur005": 29,
"eur002": 29,
"eur001": 20
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/posQrCode/actions/add": {
"post": {
"tags": [
"Point Of Sale"
],
"operationId": "qrCode.add",
"summary": "Add qr code data to a document",
"description": "Add qr code data to a document.",
"parameters": [],
"requestBody": {
"description": "Add qr code data to a document",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"documentNumber",
"eventType",
"qrCodeData"
],
"properties": {
"documentNumber": {
"type": "string",
"nullable": false,
"example": "400000"
},
"eventType": {
"type": "string",
"nullable": false,
"example": "SALE, REFUND"
},
"timeSignature": {
"description": "a atom formatted date time",
"type": "string",
"format": "date-time",
"example": "2023-08-13T14:45:36+02:00"
},
"cashRegisterSerialNumber": {
"type": "string",
"nullable": false
},
"externalReceiptNumber": {
"type": "string",
"nullable": false
},
"qrCodeData": {
"type": "string",
"nullable": false
}
}
},
"examples": {
"Add qr code data to a document": {
"value": {
"documentNumber": "RE2025-1234",
"eventType": "SALE",
"qrCodeData": "V0;ESR d233001e-d3fe-4737-a8b1-2dea39945b4f;Kassenbeleg-V1;Beleg^11.90_0.00_0.00_0.00_0.00^11.90:Bar;1;37;2024-12-10T10:23:10.000Z;2024-12-10T10:23:10.000Z;ecdsa-plain-SHA256;unixTime;ODIQw9I7F4D2yGYbvjBLAqtLxbjExVOfyAcUL7FDZz3CJxxsf+E/Vmrd+LCe2kJyWW34ojZtTQze1cM3pEcEXQ==;BHln9oQpOXGmuYEPUEMzu9EERUDYZUiQioUOyrlOKg7i5bwW39MjMXi+4UgrUt3lY0Audzp2+GbnxOOTwQpfEvI=",
"timeSignature": "2024-01-01T16:19:04+01:00",
"cashRegisterSerialNumber": "AOuPTr",
"externalReceiptNumber": "3"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products": {
"post": {
"tags": [
"Product"
],
"operationId": "product.create",
"summary": "Create new product",
"description": "Creates a new product.",
"parameters": [],
"requestBody": {
"description": "Product create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the product."
},
"number": {
"type": "string",
"description": "Number / SKU of the product."
},
"description": {
"type": "string",
"description": "Description of the product."
},
"shortDescription": {
"type": "string",
"description": "Short description of the product."
},
"customsTariffNumber": {
"type": "string",
"description": "Customs tariff number of the product."
},
"ean": {
"type": "string",
"description": "EAN of the product."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"minimumOrderQuantity": {
"type": "integer",
"description": "Numerical minimum order quantity of the product."
},
"minimumStorageQuantity": {
"type": "integer",
"description": "Numerical minimum storage quantity of the product."
},
"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"
]
}
]
},
"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"
]
}
]
},
"manufacturer": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"description": "URI of the manufacturer."
}
}
},
"measurements": {
"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"
}
}
},
"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."
},
"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."
},
"ageRating": {
"type": "string",
"enum": [
"",
"16",
"18"
],
"description": "Sets an age rating for the product. Currently only used for the shipping service provider DHL."
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product."
},
"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"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Selection of three possible values for the sales tax of the product."
},
"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"
]
}
]
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook."
},
"category": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"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."
},
"isMatrixProduct": {
"type": "boolean",
"description": "Determines if a product is a matrix product. For more information have a look into our handbook."
},
"discount": {
"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."
},
"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."
}
}
},
"stockTaking": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for stock taking.",
"properties": {
"hasStockTakingValue": {
"type": "boolean",
"description": "Determines if the stock taking value should be used instead of the purchase price for stock taking."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Sets the stock taking value for stock taking."
}
}
},
"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."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"options"
],
"properties": {
"name": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"option"
],
"properties": {
"name": {
"type": "string"
},
"option": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
}
}
},
"example": [
{
"name": "OptionalName(overrides autogenerated)",
"options": [
{
"name": "Cotton",
"option": {
"name": "Material"
}
},
{
"name": "M",
"option": {
"name": "Size"
}
},
{
"name": "NoLogo",
"option": {
"name": "Logo"
}
}
]
}
]
}
}
},
"examples": {
"Create Product": {
"value": {
"name": "Test Product Beverage",
"number": "123456",
"description": "This is a very long description for the Test Product Beverage.",
"shortDescription": "This is a short description.",
"project": {
"id": "7"
},
"category": {
"id": "1001"
},
"customsTariffNumber": "12345678",
"ean": "1234567890",
"internalComment": "Attention: Only available for customers over the age of 18.",
"minimumOrderQuantity": 100,
"minimumStorageQuantity": 30,
"allowPurchaseFromAllSuppliers": false,
"hidePriceOnDocuments": false,
"hasBatches": true,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": true,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"isDisabled": false,
"countryOfOrigin": "DE",
"regionOfOrigin": "01",
"salesTax": "standard",
"isStockItem": true,
"manufacturer": {
"name": "Beverage Manufacturer",
"number": "BM#1",
"link": "https://example.com"
},
"ageRating": "18",
"freeFields": [
{
"id": "8",
"value": "FF8"
},
{
"id": "16",
"value": "FF16"
},
{
"id": "32",
"value": "FF32"
}
],
"variantOf": {
"id": "1336"
}
}
}
}
},
"application/vnd.xentral.upsert+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the product."
},
"number": {
"type": "string",
"description": "Number / SKU of the product."
},
"description": {
"type": "string",
"description": "Description of the product."
},
"shortDescription": {
"type": "string",
"description": "Short description of the product."
},
"customsTariffNumber": {
"type": "string",
"description": "Customs tariff number of the product."
},
"ean": {
"type": "string",
"description": "EAN of the product."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"minimumOrderQuantity": {
"type": "integer",
"description": "Numerical minimum order quantity of the product."
},
"minimumStorageQuantity": {
"type": "integer",
"description": "Numerical minimum storage quantity of the product."
},
"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"
]
}
]
},
"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"
]
}
]
},
"manufacturer": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"description": "URI of the manufacturer."
}
}
},
"measurements": {
"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"
}
}
},
"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."
},
"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."
},
"ageRating": {
"type": "string",
"enum": [
"",
"16",
"18"
],
"description": "Sets an age rating for the product. Currently only used for the shipping service provider DHL."
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product."
},
"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"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Selection of three possible values for the sales tax of the product."
},
"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"
]
}
]
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook."
},
"category": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"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."
},
"isMatrixProduct": {
"type": "boolean",
"description": "Determines if a product is a matrix product. For more information have a look into our handbook."
},
"discount": {
"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."
},
"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."
}
}
},
"stockTaking": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for stock taking.",
"properties": {
"hasStockTakingValue": {
"type": "boolean",
"description": "Determines if the stock taking value should be used instead of the purchase price for stock taking."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Sets the stock taking value for stock taking."
}
}
},
"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."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"options"
],
"properties": {
"name": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"option"
],
"properties": {
"name": {
"type": "string"
},
"option": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
}
}
},
"example": [
{
"name": "OptionalName(overrides autogenerated)",
"options": [
{
"name": "Cotton",
"option": {
"name": "Material"
}
},
{
"name": "M",
"option": {
"name": "Size"
}
},
{
"name": "NoLogo",
"option": {
"name": "Logo"
}
}
]
}
]
}
}
},
"examples": {
"Create Product": {
"value": {
"name": "Test Product",
"number": "123456",
"project": {
"id": "7"
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the product."
},
"number": {
"type": "string",
"description": "Number / SKU of the product."
},
"description": {
"type": "string",
"description": "Description of the product."
},
"shortDescription": {
"type": "string",
"description": "Short description of the product."
},
"customsTariffNumber": {
"type": "string",
"description": "Customs tariff number of the product."
},
"ean": {
"type": "string",
"description": "EAN of the product."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"minimumOrderQuantity": {
"type": "integer",
"description": "Numerical minimum order quantity of the product."
},
"minimumStorageQuantity": {
"type": "integer",
"description": "Numerical minimum storage quantity of the product."
},
"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"
]
}
]
},
"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"
]
}
]
},
"manufacturer": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"description": "URI of the manufacturer."
}
}
},
"measurements": {
"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"
}
}
},
"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."
},
"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."
},
"ageRating": {
"type": "string",
"enum": [
"",
"16",
"18"
],
"description": "Sets an age rating for the product. Currently only used for the shipping service provider DHL."
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product."
},
"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"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Selection of three possible values for the sales tax of the product."
},
"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"
]
}
]
},
"merchandiseGroup": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"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."
},
"isMatrixProduct": {
"type": "boolean",
"description": "Determines if a product is a matrix product. For more information have a look into our handbook."
},
"discount": {
"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."
},
"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."
}
}
},
"stockTaking": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for stock taking.",
"properties": {
"hasStockTakingValue": {
"type": "boolean",
"description": "Determines if the stock taking value should be used instead of the purchase price for stock taking."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Sets the stock taking value for stock taking."
}
}
},
"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."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"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"
}
}
},
"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 channel.",
"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
}
}
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"options"
],
"properties": {
"name": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"option"
],
"properties": {
"name": {
"type": "string"
},
"option": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
}
}
},
"example": [
{
"name": "OptionalName(overrides autogenerated)",
"options": [
{
"name": "Cotton",
"option": {
"name": "Material"
}
},
{
"name": "M",
"option": {
"name": "Size"
}
},
{
"name": "NoLogo",
"option": {
"name": "Logo"
}
}
]
}
]
},
"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"
}
]
}
}
},
"examples": {
"Create Product": {
"value": {
"name": "Test Product Beverage",
"number": "123456",
"description": "This is a very long description for the Test Product Beverage.",
"shortDescription": "This is a short description.",
"project": {
"id": "7"
},
"merchandiseGroup": {
"id": "1001"
},
"categories": [
{
"id": "10"
},
{
"id": "11"
}
],
"customsTariffNumber": "12345678",
"ean": "1234567890",
"internalComment": "Attention: Only available for customers over the age of 18.",
"minimumOrderQuantity": 100,
"minimumStorageQuantity": 30,
"allowPurchaseFromAllSuppliers": false,
"hidePriceOnDocuments": false,
"hasBatches": true,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": true,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"isDisabled": false,
"countryOfOrigin": "DE",
"regionOfOrigin": "01",
"salesTax": "standard",
"isStockItem": true,
"manufacturer": {
"name": "Beverage Manufacturer",
"number": "BM#1",
"link": "https://example.com"
},
"ageRating": "18",
"freeFields": [
{
"id": "8",
"value": "FF8"
},
{
"id": "16",
"value": "FF16"
},
{
"id": "32",
"value": "FF32"
}
],
"variantOf": {
"id": "1336"
}
}
}
}
},
"application/vnd.xentral.upsert.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the product."
},
"number": {
"type": "string",
"description": "Number / SKU of the product."
},
"description": {
"type": "string",
"description": "Description of the product."
},
"shortDescription": {
"type": "string",
"description": "Short description of the product."
},
"customsTariffNumber": {
"type": "string",
"description": "Customs tariff number of the product."
},
"ean": {
"type": "string",
"description": "EAN of the product."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"minimumOrderQuantity": {
"type": "integer",
"description": "Numerical minimum order quantity of the product."
},
"minimumStorageQuantity": {
"type": "integer",
"description": "Numerical minimum storage quantity of the product."
},
"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"
]
}
]
},
"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"
]
}
]
},
"manufacturer": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"description": "URI of the manufacturer."
}
}
},
"measurements": {
"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"
}
}
},
"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."
},
"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."
},
"ageRating": {
"type": "string",
"enum": [
"",
"16",
"18"
],
"description": "Sets an age rating for the product. Currently only used for the shipping service provider DHL."
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product."
},
"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"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Selection of three possible values for the sales tax of the product."
},
"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"
]
}
]
},
"merchandiseGroup": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"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."
},
"isMatrixProduct": {
"type": "boolean",
"description": "Determines if a product is a matrix product. For more information have a look into our handbook."
},
"discount": {
"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."
},
"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."
}
}
},
"stockTaking": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for stock taking.",
"properties": {
"hasStockTakingValue": {
"type": "boolean",
"description": "Determines if the stock taking value should be used instead of the purchase price for stock taking."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Sets the stock taking value for stock taking."
}
}
},
"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."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"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"
}
}
},
"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 channel.",
"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
}
}
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"options"
],
"properties": {
"name": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"option"
],
"properties": {
"name": {
"type": "string"
},
"option": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
}
}
},
"example": [
{
"name": "OptionalName(overrides autogenerated)",
"options": [
{
"name": "Cotton",
"option": {
"name": "Material"
}
},
{
"name": "M",
"option": {
"name": "Size"
}
},
{
"name": "NoLogo",
"option": {
"name": "Logo"
}
}
]
}
]
},
"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"
}
]
}
}
},
"examples": {
"Create Product": {
"value": {
"name": "Test Product",
"number": "123456",
"project": {
"id": "7"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Product"
],
"operationId": "product.list",
"summary": "List products",
"description": "Returns a collection with all products.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"search",
"id",
"uuid",
"category",
"merchandiseGroup",
"standardSupplier",
"name",
"number",
"description",
"project",
"projectName",
"purchasePriceNet",
"purchasePriceGross",
"salesChannel",
"salesPriceNet",
"salesPriceGross",
"shopPriceDisplay",
"purchasedCount",
"availableCount",
"inProductionCount",
"ean",
"manufacturerName",
"manufacturerNumber",
"customsTariffNumber",
"freeField1",
"freeField2",
"freeField3",
"freeField4",
"freeField5",
"freeField6",
"freeField7",
"freeField8",
"freeField9",
"freeField10",
"freeField11",
"freeField12",
"freeField13",
"freeField14",
"freeField15",
"freeField16",
"freeField17",
"freeField18",
"freeField19",
"freeField20",
"freeField21",
"freeField22",
"freeField23",
"freeField24",
"freeField25",
"freeField26",
"freeField27",
"freeField28",
"freeField29",
"freeField30",
"freeField31",
"freeField32",
"freeField33",
"freeField34",
"freeField35",
"freeField36",
"freeField37",
"freeField38",
"freeField39",
"freeField40",
"onlyStockItems",
"noStockItems",
"onlyVariants",
"noVariants",
"onlyPartsList",
"noPartsList",
"onlyActive",
"onlyLocked",
"onlyInStock",
"updatedAt",
"isStockItem",
"categoryId",
"tagId",
"isDiscountProduct",
"isShippingCostsProduct",
"isVariant",
"variantOf",
"externalReferenceNumber",
"externalReferenceName",
"externalReferenceTargetId"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name",
"number",
"description",
"project",
"purchasePriceNet",
"purchasePriceGross",
"salesPriceNet",
"salesPriceGross",
"ean",
"manufacturerName",
"manufacturerNumber",
"customsTariffNumber"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"category": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"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"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Product one"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU-0099"
},
"description": {
"type": "string",
"nullable": true,
"description": "Description of the product.",
"example": "This is a high-quality product designed for everyday use."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "This product is seasonal and only available during the summer."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "This is a high-quality product designed for everyday use."
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://example.com/images/product-thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-12345"
},
"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": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": true
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": false
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": false
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": true
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": true
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"ageRating": {
"type": "string",
"nullable": true,
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL.",
"example": "12+"
},
"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": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"description": "Shows the name of the product unit.",
"example": {
"name": "kilogram"
}
},
"textsAndDescriptions": {
"type": "object",
"description": "Contains localized text and descriptions for the product.",
"properties": {
"inCatalog": {
"type": "boolean",
"description": "Indicates if the product is included in the catalog.",
"example": true
},
"primaryLanguage": {
"type": "object",
"description": "Texts and descriptions in the primary language.",
"properties": {
"name": {
"type": "string",
"description": "Product name.",
"example": "Product One"
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "Compact and lightweight product."
},
"description": {
"type": "string",
"description": "Detailed product description.",
"nullable": true,
"example": "This is a high-quality product."
},
"shopDescription": {
"type": "string",
"description": "Shop-specific description.",
"example": "Perfect for daily use."
},
"metaTitle": {
"type": "string",
"description": "SEO meta title.",
"example": "Best Product for Everyday Use"
},
"metaDescription": {
"type": "string",
"description": "SEO meta description.",
"example": "Buy the best quality product online."
},
"metaKeywords": {
"type": "string",
"description": "SEO keywords.",
"example": "product, best quality, affordable"
},
"catalogName": {
"type": "string",
"description": "Name in the catalog.",
"example": "Premium Collection"
},
"catalogText": {
"type": "string",
"description": "Text in the catalog.",
"example": "Exclusive product from our latest collection."
}
}
},
"english": {
"type": "object",
"description": "Texts and descriptions in English.",
"properties": {
"name": {
"type": "string",
"description": "Product name in English.",
"example": "Product One"
},
"shortDescription": {
"type": "string",
"description": "Short description in English.",
"example": "Compact and lightweight product."
},
"description": {
"type": "string",
"description": "Detailed product description.",
"example": "High-quality product for all needs."
},
"shopDescription": {
"type": "string",
"description": "Shop-specific description.",
"example": "Great for everyday use."
},
"metaTitle": {
"type": "string",
"description": "SEO meta title.",
"example": "Top-Rated Product Online"
},
"metaDescription": {
"type": "string",
"description": "SEO meta description.",
"example": "Shop the best product at the best price."
},
"metaKeywords": {
"type": "string",
"description": "SEO keywords.",
"example": "best product, top quality, shop online"
},
"catalogName": {
"type": "string",
"description": "Catalog name in English.",
"example": "Exclusive Range"
},
"catalogText": {
"type": "string",
"description": "Catalog text in English.",
"example": "Premium product from our latest lineup."
}
}
}
},
"example": {
"inCatalog": true,
"primaryLanguage": {
"name": "Produkt eins",
"shortDescription": "Kurze Beschreibung des Produkts.",
"description": "Dies ist eine detaillierte Produktbeschreibung.",
"shopDescription": "Verkaufsbeschreibung für den Shop.",
"metaTitle": "Produkt SEO-Titel",
"metaDescription": "Meta-Beschreibung für das Produkt.",
"metaKeywords": "Produkt, SEO, Keywords",
"catalogName": "Produktkatalogname",
"catalogText": "Detaillierter Katalogtext für das Produkt."
},
"english": {
"name": "Product One",
"shortDescription": "Short description of the product.",
"description": "This is a detailed product description.",
"shopDescription": "Shop description for the product.",
"metaTitle": "Product SEO Title",
"metaDescription": "Meta description for the product.",
"metaKeywords": "product, SEO, keywords",
"catalogName": "Product Catalog Name",
"catalogText": "Detailed catalog text for the product."
}
}
},
"measurements": {
"x-description-missing": true,
"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"
}
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": true
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"description": "Shows if the just in time items of the parts list are visible on documents.",
"example": true
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": false
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Out of stock"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Selection of three possible values for the sales tax of the product.",
"example": "standard"
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook.",
"example": "19.99"
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "1234567890123"
},
"manufacturerName": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer.",
"example": "Test Corp"
},
"manufacturerNumber": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer.",
"example": "MN-98765"
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "04"
},
"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
},
"discount": {
"x-description-missing": true,
"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": false
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows 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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 100.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"purchasePriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"purchasePriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"stockStats": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"purchasedCount": {
"type": "string",
"format": "float",
"nullable": true
},
"totalCount": {
"type": "string",
"format": "float",
"nullable": true
},
"availableCount": {
"type": "string",
"format": "float",
"nullable": true
},
"inProductionCount": {
"type": "string",
"format": "float",
"nullable": true
}
},
"example": {
"purchasedCount": "100.5",
"totalCount": "500.75",
"availableCount": "300.25",
"inProductionCount": "50.0"
}
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2023-09-23T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists information from all products": {
"value": {
"data": [
{
"id": "1",
"uuid": "018a2690-647a-7a8b-b100-cfc11ab7d4e8",
"name": "Screw M10x20",
"description": "",
"shortDescription": null,
"number": "700001",
"project": {
"id": "1",
"name": "Standard project"
},
"category": {
"id": "2",
"name": "Service"
},
"standardSupplier": {
"id": "7"
},
"stockCount": 22,
"stockStats": {
"purchasedCount": null,
"totalCount": "22.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"shopPriceDisplay": "0.00",
"ean": "",
"manufacturerName": "",
"manufacturerNumber": "",
"customsTariffNumber": "",
"isVariant": false,
"variantOf": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"textsAndDescriptions": {
"inCatalog": true,
"primaryLanguage": {
"name": "Produkt eins",
"shortDescription": "Kurze Beschreibung des Produkts.",
"description": "Dies ist eine detaillierte Produktbeschreibung.",
"shopDescription": "Verkaufsbeschreibung für den Shop.",
"metaTitle": "Produkt SEO-Titel",
"metaDescription": "Meta-Beschreibung für das Produkt.",
"metaKeywords": "Produkt, SEO, Keywords",
"catalogName": "Produktkatalogname",
"catalogText": "Detaillierter Katalogtext für das Produkt."
},
"english": {
"name": "Product One",
"shortDescription": "Short description of the product.",
"description": "This is a detailed product description.",
"shopDescription": "Shop description for the product.",
"metaTitle": "Product SEO Title",
"metaDescription": "Meta description for the product.",
"metaKeywords": "product, SEO, keywords",
"catalogName": "Product Catalog Name",
"catalogText": "Detailed catalog text for the product."
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"unit": {
"name": "abc"
},
"updatedAt": "2024-04-15T13:10:58+02:00"
},
{
"id": "2",
"uuid": "018a2690-647b-7970-97c8-e02df3a2ae1f",
"name": "hex nut M10",
"description": "",
"shortDescription": null,
"number": "700002",
"project": {
"id": "1",
"name": "Standard project"
},
"category": null,
"standardSupplier": {
"id": "7"
},
"stockCount": 93,
"stockStats": {
"purchasedCount": null,
"totalCount": "93.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"shopPriceDisplay": "0.00",
"ean": "",
"manufacturerName": "",
"manufacturerNumber": "",
"customsTariffNumber": "",
"isVariant": false,
"variantOf": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"textsAndDescriptions": {
"inCatalog": true,
"primaryLanguage": {
"name": "Produkt eins",
"shortDescription": "Kurze Beschreibung des Produkts.",
"description": "Dies ist eine detaillierte Produktbeschreibung.",
"shopDescription": "Verkaufsbeschreibung für den Shop.",
"metaTitle": "Produkt SEO-Titel",
"metaDescription": "Meta-Beschreibung für das Produkt.",
"metaKeywords": "Produkt, SEO, Keywords",
"catalogName": "Produktkatalogname",
"catalogText": "Detaillierter Katalogtext für das Produkt."
},
"english": {
"name": "Product One",
"shortDescription": "Short description of the product.",
"description": "This is a detailed product description.",
"shopDescription": "Shop description for the product.",
"metaTitle": "Product SEO Title",
"metaDescription": "Meta description for the product.",
"metaKeywords": "product, SEO, keywords",
"catalogName": "Product Catalog Name",
"catalogText": "Detailed catalog text for the product."
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"unit": {
"name": ""
},
"updatedAt": "2024-03-27T15:13:25+01:00"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"merchandiseGroup": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Example Product Name"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU-12345"
},
"description": {
"type": "string",
"nullable": true,
"description": "Description of the product.",
"example": "This product is designed for everyday use and offers high durability."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "This product is on hold due to quality checks."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "Compact and lightweight, perfect for travel."
},
"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"
}
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://example.com/images/product-thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-12345"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"purchasePriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"purchasePriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "978-3-16-148410-0"
},
"manufacturer": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer."
}
},
"example": {
"name": "Test Corp",
"number": "AC12345",
"link": "https://www.testcorp.com"
}
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"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": false
},
"discount": {
"x-description-missing": true,
"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."
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows the discount value if the product is a discount. For more information have a look into our handbook."
}
},
"example": {
"isDiscountProduct": false,
"discountPercentage": 15.5
}
},
"stockStats": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"purchasedCount": {
"type": "string",
"format": "float",
"nullable": true
},
"totalCount": {
"type": "string",
"format": "float",
"nullable": true
},
"availableCount": {
"type": "string",
"format": "float",
"nullable": true
},
"inProductionCount": {
"type": "string",
"format": "float",
"nullable": true
}
},
"example": {
"purchasedCount": "10.0",
"totalCount": "50.0",
"availableCount": "30.0",
"inProductionCount": "10.0"
}
},
"minimumOrderQuantity": {
"type": "number",
"description": "Numerical minimum order quantity of the product.",
"example": 5
},
"minimumStorageQuantity": {
"type": "number",
"description": "Numerical minimum storage quantity of the product.",
"example": 10
},
"allowPurchaseFromAllSuppliers": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": true
},
"isCustomProduct": {
"type": "boolean",
"description": "Shows if the product is a custom product.",
"example": false
},
"isDeleted": {
"type": "boolean",
"description": "Shows if the product is deleted.",
"example": false
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": true
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": false
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": true
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": false
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"ageRating": {
"type": "string",
"nullable": true,
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL.",
"example": "12+"
},
"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": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"description": "Shows the name of the product unit.",
"example": {
"name": "kilogram"
}
},
"measurements": {
"x-description-missing": true,
"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"
}
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": true
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"description": "Shows if the just in time items of the parts list are visible on documents.",
"example": false
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": true
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Out of stock"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Shows the sales tax of the product.",
"example": "reduced"
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "04"
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"isMatrixProduct": {
"type": "boolean",
"description": "Shows if the product is a matrix product.",
"example": false
},
"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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 150.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"salesChannel": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string",
"example": "This is a product description."
},
"meta": {
"type": "object",
"additionalProperties": false,
"properties": {
"title": {
"type": "string",
"example": "Product Title"
},
"description": {
"type": "string",
"example": "Detailed product description."
},
"keywords": {
"type": "string",
"example": "keyword1, keyword2, keyword3"
}
}
},
"isStockNumberSyncActive": {
"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"
]
}
]
},
"isSoldOut": {
"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"
]
}
]
},
"isRemainingQuantity": {
"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"
]
}
]
},
"suggestedRetailPrice": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook.",
"example": "99.99"
},
"isVisible": {
"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"
]
}
]
},
"suggestedStockQuantity": {
"type": "string",
"description": "Shows the suggested stock quantity for all sales channel.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Shows the delivery time for all sales channels.",
"example": "1 week"
},
"createNewProductDuringImport": {
"type": "boolean",
"description": "Shows if a new product is generated during the sales order import from all sales channels.",
"example": true
},
"channels": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"salesChannel": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"isActive": {
"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"
]
}
]
},
"useIndividualSalesChannelSettings": {
"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"
]
}
]
},
"isStockNumberSyncActive": {
"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"
]
}
]
},
"isRemainingQuantity": {
"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"
]
}
]
},
"suggestedRetailPrice": {
"type": "string",
"description": "Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook."
},
"suggestedStockQuantity": {
"type": "string",
"description": "Sets the suggested stock quantity for the sales channel.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Shows the delivery time.",
"example": "1 week"
},
"createNewProductDuringImport": {
"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"
]
}
]
}
}
}
}
},
"example": {
"description": "This is a product description.",
"meta": {
"title": "Product Title",
"description": "Detailed product description.",
"keywords": "keyword1, keyword2, keyword3"
},
"isStockNumberSyncActive": true,
"isSoldOut": false,
"isRemainingQuantity": true,
"suggestedRetailPrice": "99.99",
"isVisible": true
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"mainVariant": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a main variant of this product",
"nullable": true,
"example": {
"id": "variant-12345"
}
},
"categories": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2024-09-23T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists information from all products": {
"value": {
"data": [
{
"id": "1",
"uuid": "018a2690-647a-7a8b-b100-cfc11ab7d4e8",
"name": "Screw M10x20",
"description": "",
"shortDescription": null,
"number": "700001",
"project": {
"id": "1",
"name": "Standard project"
},
"merchandiseGroup": {
"id": "2",
"name": "Service"
},
"categories": [
{
"id": "1"
}
],
"standardSupplier": {
"id": "7"
},
"stockCount": 22,
"stockStats": {
"purchasedCount": null,
"totalCount": "22.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"ean": "",
"manufacturer": {
"name": "",
"number": "",
"link": ""
},
"customsTariffNumber": "",
"isMatrixProduct": true,
"options": [],
"selectedOptions": [],
"variants": [],
"isVariant": false,
"variantOf": null,
"mainVariant": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"isDeleted": false,
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"isCustomProduct": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"salesChannel": {
"description": "",
"meta": {
"title": "",
"description": "",
"keywords": ""
},
"isStockNumberSyncActive": false,
"isRemainingQuantity": false,
"isSoldOut": false,
"isVisible": true,
"suggestedRetailPrice": "0.00"
},
"unit": {
"name": "abc"
},
"updatedAt": "2024-04-15T13:10:58+02:00"
},
{
"id": "2",
"uuid": "018a2690-647b-7970-97c8-e02df3a2ae1f",
"name": "hex nut M10",
"description": "",
"shortDescription": null,
"number": "700002",
"project": {
"id": "1",
"name": "Standard project"
},
"merchandiseGroup": null,
"categories": [
{
"id": "1"
}
],
"standardSupplier": {
"id": "7"
},
"stockCount": 93,
"stockStats": {
"purchasedCount": null,
"totalCount": "93.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"ean": "",
"manufacturer": {
"name": "",
"number": "",
"link": ""
},
"customsTariffNumber": "",
"isMatrixProduct": false,
"options": [],
"selectedOptions": [],
"variants": [],
"isVariant": false,
"variantOf": null,
"mainVariant": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"isDeleted": false,
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"isCustomProduct": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"salesChannel": {
"description": "",
"meta": {
"title": "",
"description": "",
"keywords": ""
},
"isStockNumberSyncActive": false,
"isRemainingQuantity": false,
"isSoldOut": false,
"isVisible": true,
"suggestedRetailPrice": "0.00"
},
"unit": {
"name": ""
},
"updatedAt": "2024-03-27T15:13:25+01:00"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"text/csv": {
"schema": {
"type": "string"
}
},
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"category": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"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"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Product one"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU-0099"
},
"description": {
"type": "string",
"nullable": true,
"description": "Description of the product.",
"example": "This is a high-quality product designed for everyday use."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "This product is seasonal and only available during the summer."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "This is a high-quality product designed for everyday use."
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://example.com/images/product-thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-12345"
},
"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": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": true
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": false
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": false
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": true
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": true
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"ageRating": {
"type": "string",
"nullable": true,
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL.",
"example": "12+"
},
"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": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"description": "Shows the name of the product unit.",
"example": {
"name": "kilogram"
}
},
"textsAndDescriptions": {
"type": "object",
"description": "Contains localized text and descriptions for the product.",
"properties": {
"inCatalog": {
"type": "boolean",
"description": "Indicates if the product is included in the catalog.",
"example": true
},
"primaryLanguage": {
"type": "object",
"description": "Texts and descriptions in the primary language.",
"properties": {
"name": {
"type": "string",
"description": "Product name.",
"example": "Product One"
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "Compact and lightweight product."
},
"description": {
"type": "string",
"description": "Detailed product description.",
"nullable": true,
"example": "This is a high-quality product."
},
"shopDescription": {
"type": "string",
"description": "Shop-specific description.",
"example": "Perfect for daily use."
},
"metaTitle": {
"type": "string",
"description": "SEO meta title.",
"example": "Best Product for Everyday Use"
},
"metaDescription": {
"type": "string",
"description": "SEO meta description.",
"example": "Buy the best quality product online."
},
"metaKeywords": {
"type": "string",
"description": "SEO keywords.",
"example": "product, best quality, affordable"
},
"catalogName": {
"type": "string",
"description": "Name in the catalog.",
"example": "Premium Collection"
},
"catalogText": {
"type": "string",
"description": "Text in the catalog.",
"example": "Exclusive product from our latest collection."
}
}
},
"english": {
"type": "object",
"description": "Texts and descriptions in English.",
"properties": {
"name": {
"type": "string",
"description": "Product name in English.",
"example": "Product One"
},
"shortDescription": {
"type": "string",
"description": "Short description in English.",
"example": "Compact and lightweight product."
},
"description": {
"type": "string",
"description": "Detailed product description.",
"example": "High-quality product for all needs."
},
"shopDescription": {
"type": "string",
"description": "Shop-specific description.",
"example": "Great for everyday use."
},
"metaTitle": {
"type": "string",
"description": "SEO meta title.",
"example": "Top-Rated Product Online"
},
"metaDescription": {
"type": "string",
"description": "SEO meta description.",
"example": "Shop the best product at the best price."
},
"metaKeywords": {
"type": "string",
"description": "SEO keywords.",
"example": "best product, top quality, shop online"
},
"catalogName": {
"type": "string",
"description": "Catalog name in English.",
"example": "Exclusive Range"
},
"catalogText": {
"type": "string",
"description": "Catalog text in English.",
"example": "Premium product from our latest lineup."
}
}
}
},
"example": {
"inCatalog": true,
"primaryLanguage": {
"name": "Produkt eins",
"shortDescription": "Kurze Beschreibung des Produkts.",
"description": "Dies ist eine detaillierte Produktbeschreibung.",
"shopDescription": "Verkaufsbeschreibung für den Shop.",
"metaTitle": "Produkt SEO-Titel",
"metaDescription": "Meta-Beschreibung für das Produkt.",
"metaKeywords": "Produkt, SEO, Keywords",
"catalogName": "Produktkatalogname",
"catalogText": "Detaillierter Katalogtext für das Produkt."
},
"english": {
"name": "Product One",
"shortDescription": "Short description of the product.",
"description": "This is a detailed product description.",
"shopDescription": "Shop description for the product.",
"metaTitle": "Product SEO Title",
"metaDescription": "Meta description for the product.",
"metaKeywords": "product, SEO, keywords",
"catalogName": "Product Catalog Name",
"catalogText": "Detailed catalog text for the product."
}
}
},
"measurements": {
"x-description-missing": true,
"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"
}
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": true
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"description": "Shows if the just in time items of the parts list are visible on documents.",
"example": true
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": false
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Out of stock"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Selection of three possible values for the sales tax of the product.",
"example": "standard"
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook.",
"example": "19.99"
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "1234567890123"
},
"manufacturerName": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer.",
"example": "Test Corp"
},
"manufacturerNumber": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer.",
"example": "MN-98765"
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "04"
},
"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
},
"discount": {
"x-description-missing": true,
"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": false
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows 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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 100.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"purchasePriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"purchasePriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"stockStats": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"purchasedCount": {
"type": "string",
"format": "float",
"nullable": true
},
"totalCount": {
"type": "string",
"format": "float",
"nullable": true
},
"availableCount": {
"type": "string",
"format": "float",
"nullable": true
},
"inProductionCount": {
"type": "string",
"format": "float",
"nullable": true
}
},
"example": {
"purchasedCount": "100.5",
"totalCount": "500.75",
"availableCount": "300.25",
"inProductionCount": "50.0"
}
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2023-09-23T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"example": {
"data": [
{
"id": "2",
"name": "Coca Cola"
},
{
"id": "4",
"name": "beer"
},
{
"id": "5",
"name": "mate"
}
],
"extra": {
"totalCount": 53841,
"page": {
"number": 1,
"size": 3
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product"
],
"operationId": "product.updateMultiple",
"summary": "Update multiple products",
"description": "Updates multiple products",
"requestBody": {
"description": "Product update multiple request payload",
"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": "Eco-Friendly Water Bottle"
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU12345-ABC"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"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 high-quality, durable backpack designed for outdoor adventures, featuring multiple compartments and waterproof fabric."
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Text only for internal information.",
"example": "Ensure to review this product's compliance before the next shipment."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "Compact wireless mouse with ergonomic design."
},
"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": 1
},
"minimumStorageQuantity": {
"type": "number",
"description": "Numerical minimum storage quantity of the product.",
"example": 10
},
"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 currently 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"
},
"measurements": {
"x-description-missing": true,
"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": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer.",
"example": "Test Corp"
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer.",
"example": "AC12345"
},
"link": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer.",
"example": "https://www.testcorp.com"
}
},
"example": {
"name": "Test Corp",
"number": "AC12345",
"link": "https://www.testcorp.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": "standard"
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook.",
"example": "19.99"
},
"category": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"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
},
"discount": {
"x-description-missing": true,
"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": false
},
"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": false
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "100.00",
"currency": "EUR"
}
}
},
"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": "05"
},
"isMatrixProduct": {
"type": "boolean",
"description": "Determines if a product is a matrix product. For more information have a look into our handbook.",
"example": true
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Either ID or name and key.",
"example": "12345"
},
"key": {
"x-description-missing": true,
"type": "string",
"example": "productKey123"
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
}
}
}
},
"examples": {
"Update multiple products": {
"value": [
{
"id": "17",
"name": "Shipping Discount Small",
"category": {
"id": "2000"
},
"discount": {
"isDiscountProduct": true,
"discountPercentage": 2
},
"isStockItem": false
},
{
"id": "18",
"name": "Shipping Discount Big",
"category": {
"id": "2000"
},
"discount": {
"isDiscountProduct": true,
"discountPercentage": 5
},
"isStockItem": false
}
]
}
}
},
"application/vnd.xentral.default.v2-beta+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,
"nullable": true,
"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"
},
"measurements": {
"x-description-missing": true,
"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": {
"x-description-missing": true,
"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,
"nullable": true,
"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": {
"x-description-missing": true,
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "100.00",
"currency": "EUR"
}
}
},
"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,
"isRemainingQuantity": true,
"suggestedRetailPrice": "99.99",
"isVisible": true,
"suggestedStockQuantity": "100",
"deliveryTime": "1 week",
"createNewProductDuringImport": true
}
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Either ID or name and key.",
"example": "12345"
},
"key": {
"type": "string",
"description": "Unique identifier for the product or entity.",
"example": "prod-001"
},
"name": {
"type": "string",
"description": "Name of the product or entity.",
"example": "Sample Product"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
}
}
}
},
"examples": {
"Update multiple products": {
"value": [
{
"id": "17",
"name": "Shipping Discount Small",
"merchandiseGroup": {
"id": "2000"
},
"discount": {
"isDiscountProduct": true,
"discountPercentage": 2
},
"isStockItem": false
},
{
"id": "18",
"name": "Shipping Discount Small",
"merchandiseGroup": {
"id": "2000"
},
"discount": {
"isDiscountProduct": true,
"discountPercentage": 5
},
"isStockItem": false
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product"
],
"operationId": "product.deleteMultiple",
"summary": "Delete multiple products",
"description": "Deletes multiple products",
"requestBody": {
"description": "Product delete multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"examples": {
"Delete multiple products": {
"value": [
{
"id": "1337"
},
{
"id": "1339"
},
{
"id": "1340"
}
]
}
}
},
"application/vnd.xentral.force+json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"examples": {
"Delete multiple products": {
"value": [
{
"id": "1337"
},
{
"id": "1339"
},
{
"id": "1340"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}": {
"get": {
"tags": [
"Product"
],
"operationId": "product.view",
"summary": "View product",
"description": "Returns details of a single product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"category": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"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"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Sample Product"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "This is a high-quality product designed for everyday use."
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "1234567890123"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU-12345"
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://www.example.com/images/thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-12345"
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product.",
"example": "DE"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "A compact and efficient multi-tool for outdoor use."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "Handle with care."
},
"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
},
"isMatrixProduct": {
"type": "boolean",
"description": "Shows if the product is a matrix product.",
"example": true
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": false
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"allowPurchaseFromAllSuppliers": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": false
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": true
},
"ageRating": {
"type": "string",
"nullable": true,
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL.",
"example": "12+"
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": true
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"description": "Shows if the just in time items of the parts list are visible on documents.",
"example": false
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": true
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": false
},
"isCustomProduct": {
"type": "boolean",
"description": "Shows if the product is a custom product.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": true
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Product is discontinued."
},
"markAsSoldOut": {
"type": "boolean",
"description": "Shows if the product is sold out.",
"example": true
},
"markAsInactive": {
"type": "boolean",
"description": "Shows if the product is inactive.",
"example": false
},
"isDeleted": {
"type": "boolean",
"description": "Shows if the product is deleted.",
"example": false
},
"unit": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"example": "kilogram"
}
},
"example": {
"name": "kilogram"
},
"description": "Shows the name of the product unit."
},
"measurements": {
"x-description-missing": true,
"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": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer."
},
"url": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer."
}
},
"example": {
"name": "Beverage Manufacturer",
"number": "BM#1",
"url": "https://example.com"
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": false
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Shows the sales tax of the product.",
"example": "standard"
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook.",
"example": "19.99"
},
"isRemainingQuantity": {
"type": "boolean",
"description": "Shows if only the remaining quantity of the product is left.",
"example": true
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "04"
},
"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": false
},
"stockStats": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"purchasedCount": {
"type": "string",
"format": "float",
"nullable": true
},
"totalCount": {
"type": "string",
"format": "float",
"nullable": true
},
"availableCount": {
"type": "string",
"format": "float",
"nullable": true
},
"inProductionCount": {
"type": "string",
"format": "float",
"nullable": true
}
},
"example": {
"purchasedCount": "100.5",
"totalCount": "500.75",
"availableCount": "300.25",
"inProductionCount": "50.0"
}
},
"purchasePriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"purchasePriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"manufacturerName": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer.",
"example": "Test Corp"
},
"manufacturerNumber": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer.",
"example": "MN-98765"
},
"discount": {
"x-description-missing": true,
"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."
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows the discount value if the product is a discount. For more information have a look into our handbook."
}
},
"example": {
"isDiscountProduct": true,
"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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 100.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"mainVariant": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a main variant of this product",
"nullable": true,
"example": {
"id": "variant-12345"
}
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"defaultStorageLocation": {
"description": "Default storage location of the product.",
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"designation": {
"type": "string",
"description": "Name of the storage location"
},
"warehouse": {
"type": "object",
"description": "Warehouse of the storage location",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"designation": {
"type": "string"
}
},
"example": {
"id": "1",
"designation": "Warehouse 1"
}
}
},
"example": {
"id": "1",
"designation": "Shelf 1",
"warehouse": {
"id": "1",
"designation": "Warehouse 1"
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2024-09-19T12:34:56Z"
}
},
"example": {
"id": "1",
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"project": {
"id": "1",
"name": "Project1"
},
"category": null,
"standardSupplier": null,
"name": "Shirt",
"description": "This is a shirt.",
"ean": "123456789",
"stockCount": 0,
"number": "133456",
"thumbnailUrl": "http://localhost/index.php?module=artikel&action=thumbnail&id=1&bildvorschau=16_100_100",
"thumbnailId": "16",
"customsTariffNumber": "39JOE85W",
"countryOfOrigin": null,
"tags": [],
"shortDescription": null,
"internalComment": "",
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"isMatrixProduct": false,
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"allowPurchaseFromAllSuppliers": false,
"isStockTakingDisabled": false,
"ageRating": null,
"hasBillOfMaterials": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"isCustomProduct": false,
"isAssembledJustInTime": false,
"hidePriceOnDocuments": false,
"hideJustInTimeItemsOnDocuments": false,
"markAsSoldOut": false,
"markAsInactive": false,
"isDeleted": false,
"isDisabled": false,
"disabledReason": null,
"unit": {
"name": ""
},
"measurements": {
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
},
"length": {
"value": 0,
"unit": "cm"
},
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
}
},
"manufacturer": {
"name": "Manufacturer A",
"number": "MAN-123456",
"url": null
},
"isStockItem": false,
"salesTax": "standard",
"shopPriceDisplay": "5.20",
"isRemainingQuantity": false,
"regionOfOrigin": "",
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"stockTaking": {
"hasStockTakingValue": false,
"stockTakingValue": 0
},
"calculatedPurchasePrice": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "0.0000",
"currency": "EUR"
}
},
"options": [],
"selectedOptions": [],
"variants": [],
"freeFields": [
{
"id": "2",
"name": "ff_2",
"value": "ff2"
},
{
"id": "29",
"name": "ff_29",
"value": "ff29"
},
{
"id": "35",
"name": null,
"value": "ff35"
}
],
"defaultStorageLocation": {
"id": "1",
"designation": "Shelf 1",
"warehouse": {
"id": "1",
"designation": "Warehouse 1"
}
},
"updatedAt": "2024-09-19T12:34:56Z",
"isVariant": false,
"variantOf": null,
"mainVariant": null
}
}
}
},
"examples": {
"Shows information about a single product": {
"value": {
"data": {
"id": "1",
"uuid": "018a2690-647a-7a8b-b100-cfc11ab7d4e8",
"name": "Screw M10x20",
"description": null,
"shortDescription": null,
"number": "700001",
"project": {
"id": "1",
"name": "Standard project"
},
"category": {
"id": "2",
"name": "Service"
},
"standardSupplier": {
"id": "7"
},
"stockCount": 22,
"shopPriceDisplay": "0.00",
"ean": null,
"manufacturer": {
"name": null,
"number": null,
"url": null
},
"customsTariffNumber": null,
"options": [
{
"id": "1",
"name": "Color",
"values": [
{
"id": "1",
"name": "blue",
"sort": 1
},
{
"id": "2",
"name": "red",
"sort": 2
}
]
}
],
"selectedOptions": [],
"variants": [
{
"id": "15",
"options": [
{
"id": "1"
}
]
},
{
"id": "16",
"options": [
{
"id": "2"
}
]
}
],
"isVariant": false,
"variantOf": null,
"mainVariant": {
"id": "15"
},
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"isDeleted": false,
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": null,
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"isCustomProduct": false,
"hideJustInTimeItemsOnDocuments": false,
"markAsSoldOut": false,
"markAsInactive": false,
"isRemainingQuantity": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"unit": {
"name": "Stk."
},
"updatedAt": "2024-04-15T13:10:58+02:00"
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"merchandiseGroup": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Sample Product"
},
"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"
}
},
"description": {
"type": "string",
"nullable": true,
"description": "Description of the product.",
"example": "This is a high-quality product designed for everyday use."
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "1234567890123"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU123456"
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://www.example.com/images/thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-001"
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product.",
"example": "DE"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "A compact and efficient product for everyday use."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "Handle with care."
},
"minimumStorageQuantity": {
"type": "number",
"description": "Numerical minimum storage quantity of the product.",
"example": 50
},
"minimumOrderQuantity": {
"type": "number",
"description": "Numerical minimum order quantity of the product.",
"example": 10
},
"isMatrixProduct": {
"type": "boolean",
"description": "Shows if the product is a matrix product.",
"example": true
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": false
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"allowPurchaseFromAllSuppliers": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": false
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": false
},
"ageRating": {
"type": "string",
"nullable": true,
"example": "12+",
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL."
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": true
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"example": true,
"description": "Shows if the just in time items of the parts list are visible on documents."
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": true
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": false
},
"isCustomProduct": {
"type": "boolean",
"description": "Shows if the product is a custom product.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": false
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Product is under review."
},
"isDeleted": {
"type": "boolean",
"description": "Shows if the product is deleted.",
"example": false
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "London, UK"
},
"unit": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"description": "Shows the name of the product unit.",
"example": {
"name": "Kilogram"
}
},
"measurements": {
"x-description-missing": true,
"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": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer."
}
},
"example": {
"name": "Test Corp",
"number": "AC12345",
"link": "https://www.testcorp.com"
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": true
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Shows the sales tax of the product.",
"example": "reduced"
},
"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": false
},
"discount": {
"x-description-missing": true,
"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."
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows the discount value if the product is a discount. For more information have a look into our handbook."
}
},
"example": {
"isDiscountProduct": true,
"discountPercentage": 15.15
}
},
"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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 100.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"salesChannel": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"meta": {
"type": "object",
"additionalProperties": false,
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"keywords": {
"type": "string"
}
}
},
"isStockNumberSyncActive": {
"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"
]
}
]
},
"isSoldOut": {
"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"
]
}
]
},
"isRemainingQuantity": {
"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"
]
}
]
},
"suggestedRetailPrice": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook."
},
"isVisible": {
"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"
]
}
]
},
"suggestedStockQuantity": {
"type": "string",
"description": "Sets the suggested stock quantity for all sales channels.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Shows the delivery time for all sales channels.",
"example": "1 week"
},
"createNewProductDuringImport": {
"type": "boolean",
"description": "Shows if a new product is generated during the sales order import from all sales channels.",
"example": true
},
"channels": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"salesChannel": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"isActive": {
"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"
]
}
]
},
"useIndividualSalesChannelSettings": {
"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"
]
}
]
},
"isStockNumberSyncActive": {
"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"
]
}
]
},
"isRemainingQuantity": {
"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"
]
}
]
},
"suggestedRetailPrice": {
"type": "string",
"description": "Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook."
},
"suggestedStockQuantity": {
"type": "string",
"description": "Sets the suggested stock quantity for the sales channel.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Shows the delivery time.",
"example": "1 week"
},
"createNewProductDuringImport": {
"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"
]
}
]
}
}
}
}
},
"example": {
"description": "A high-quality product.",
"meta": {
"title": "Sample Product Title",
"description": "This product is designed for everyday use.",
"keywords": "product, products"
},
"isStockNumberSyncActive": true,
"isSoldOut": false,
"isRemainingQuantity": true,
"suggestedRetailPrice": "19.99",
"isVisible": true
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"mainVariant": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a main variant of this product",
"nullable": true,
"example": {
"id": "variant-12345"
}
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"categories": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2024-09-19T12:34:56Z"
}
},
"example": {
"id": "1",
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"project": {
"id": "1",
"name": "Project1"
},
"merchandiseGroup": null,
"name": "Sample Product",
"standardSupplier": null,
"description": "This is a high-quality product designed for everyday use.",
"ean": "1234567890123",
"stockCount": 150,
"number": "SKU123456",
"thumbnailUrl": "https://www.example.com/images/thumbnail.jpg",
"thumbnailId": "thumb-001",
"customsTariffNumber": "1234.56.78",
"countryOfOrigin": "DE",
"tags": [],
"shortDescription": "A compact and efficient product for everyday use.",
"internalComment": "Handle with care.",
"minimumStorageQuantity": 50,
"minimumOrderQuantity": 10,
"isMatrixProduct": true,
"hasBatches": false,
"serialNumbersMode": "mandatory",
"hasBestBeforeDate": true,
"allowPurchaseFromAllSuppliers": false,
"isStockTakingDisabled": false,
"ageRating": "12+",
"hasBillOfMaterials": true,
"isProductionProduct": true,
"isExternallyProduced": false,
"isCustomProduct": true,
"isAssembledJustInTime": false,
"hideJustInTimeItemsOnDocuments": true,
"isDisabled": false,
"disabledReason": "Product is under review.",
"isDeleted": false,
"regionOfOrigin": "London, UK",
"unit": {
"name": "Kilogram"
},
"measurements": {
"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": {
"name": "Test Corp",
"number": "AC12345",
"link": "https://www.testcorp.com"
},
"isStockItem": true,
"salesTax": "reduced",
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": true,
"discountPercentage": 15.15
},
"stockTaking": {
"hasStockTakingValue": true,
"stockTakingValue": 100.75
},
"calculatedPurchasePrice": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
},
"salesChannel": {
"description": "A high-quality product.",
"meta": {
"title": "Sample Product Title",
"description": "This product is designed for everyday use.",
"keywords": "product, products"
},
"isStockNumberSyncActive": true,
"isSoldOut": false,
"isRemainingQuantity": true,
"suggestedRetailPrice": "19.99",
"isVisible": true
},
"options": [],
"selectedOptions": [],
"variants": [],
"mainVariant": null,
"freeFields": [
{
"id": "2",
"name": "ff_2",
"value": "ff2"
},
{
"id": "29",
"name": "ff_29",
"value": "ff29"
},
{
"id": "35",
"name": null,
"value": "ff35"
}
],
"updatedAt": "2024-09-19T12:34:56Z",
"isVariant": true,
"variantOf": null,
"categories": [
{
"id": "1"
}
]
}
}
}
},
"examples": {
"Shows information about a single product": {
"value": {
"data": {
"id": "1",
"uuid": "018a2690-647a-7a8b-b100-cfc11ab7d4e8",
"name": "Screw M10x20",
"description": null,
"shortDescription": null,
"number": "700001",
"project": {
"id": "1",
"name": "Standard project"
},
"merchandiseGroup": {
"id": "2",
"name": "Service"
},
"categories": [
{
"id": "1"
}
],
"standardSupplier": {
"id": "7"
},
"stockCount": 22,
"ean": null,
"manufacturer": {
"name": null,
"number": null,
"link": null
},
"customsTariffNumber": null,
"isMatrixProduct": true,
"options": [
{
"id": "1",
"name": "Color",
"values": [
{
"id": "1",
"name": "blue",
"sort": 1
},
{
"id": "2",
"name": "red",
"sort": 2
}
]
}
],
"selectedOptions": [],
"variants": [
{
"id": "15",
"options": [
{
"id": "1"
}
]
},
{
"id": "16",
"options": [
{
"id": "2"
}
]
}
],
"isVariant": false,
"variantOf": null,
"mainVariant": {
"id": "15"
},
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"isDeleted": false,
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": null,
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"isCustomProduct": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"salesChannel": {
"description": "",
"meta": {
"title": "",
"description": "",
"keywords": ""
},
"isStockNumberSyncActive": false,
"isRemainingQuantity": false,
"isSoldOut": false,
"isVisible": true,
"suggestedRetailPrice": "0.00"
},
"unit": {
"name": "abc"
},
"updatedAt": "2024-04-15T13:10:58+02:00"
}
}
}
}
},
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Wireless Headphones"
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "WH-2024-XYZ"
},
"isVariant": {
"type": "boolean",
"description": "Shows if the product is a variant of another product.",
"example": true
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2024-09-23T14:30:00Z"
}
},
"example": {
"id": "2",
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"name": "Wireless Headphones",
"number": "WH-2024-XYZ",
"isVariant": true,
"updatedAt": "2024-09-23T14:30:00Z"
}
}
}
},
"examples": {
"Shows minimal information about a single product": {
"value": {
"data": {
"id": "1",
"uuid": "018a2690-647a-7a8b-b100-cfc11ab7d4e8",
"name": "Screw M10x20",
"number": "P123456",
"isVariant": true,
"updatedAt": "2024-02-16T14:32:41+02:00"
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product"
],
"operationId": "product.update",
"summary": "Update product",
"description": "Updates details of a single product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Product update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the product."
},
"number": {
"type": "string",
"description": "Number / SKU of the product."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"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."
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Text only for internal information."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product."
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product."
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product."
},
"minimumOrderQuantity": {
"type": "number",
"description": "Numerical minimum order quantity of the product."
},
"minimumStorageQuantity": {
"type": "number",
"description": "Numerical minimum storage quantity of the product."
},
"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."
},
"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."
},
"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."
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product."
},
"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
},
"measurements": {
"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": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer."
}
}
},
"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."
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook."
},
"isShippingCostsProduct": {
"type": "boolean",
"description": "Determines if a product is used as a shipping costs product. For more information have a look into our handbook."
},
"discount": {
"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."
},
"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."
}
}
},
"stockTaking": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for stock taking.",
"properties": {
"hasStockTakingValue": {
"type": "boolean",
"description": "Determines if the stock taking value should be used instead of the purchase price for stock taking."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Sets the stock taking value for stock taking."
}
}
},
"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."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"isMatrixProduct": {
"type": "boolean",
"description": "Determines if a product is a matrix product. For more information have a look into our handbook."
},
"category": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"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"
}
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"options": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"nullable": true,
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"option": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Either ID or name and key."
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
}
}
},
"examples": {
"Update Product": {
"value": {
"name": "Test Product Beverage",
"description": "This is a very long description for the Test Product Beverage.",
"shortDescription": "This is a short description.",
"project": {
"id": "7"
},
"category": {
"id": "1001"
},
"customsTariffNumber": "12345678",
"ean": "1234567890",
"internalComment": "Attention: Only available for customers over the age of 18.",
"minimumOrderQuantity": 100,
"minimumStorageQuantity": 30,
"allowPurchaseFromAllSuppliers": false,
"hidePriceOnDocuments": false,
"hasBatches": true,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": true,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"isDisabled": false,
"countryOfOrigin": "DE",
"regionOfOrigin": "01",
"salesTax": "standard",
"isStockItem": true,
"manufacturer": {
"name": "Beverage Manufacturer",
"number": "BM#1",
"link": "https://example.com"
},
"ageRating": "18",
"freeFields": [
{
"id": "8",
"value": "FF8"
}
],
"variantOf": {
"id": "1336"
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the product."
},
"number": {
"type": "string",
"description": "Number / SKU of the product."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"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."
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Text only for internal information."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product."
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product."
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product"
},
"minimumOrderQuantity": {
"type": "number",
"description": "Numerical minimum order quantity of the product."
},
"minimumStorageQuantity": {
"type": "number",
"description": "Numerical minimum storage quantity of the product."
},
"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."
},
"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."
},
"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."
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product."
},
"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
},
"measurements": {
"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": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer."
}
}
},
"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."
},
"isShippingCostsProduct": {
"type": "boolean",
"description": "Determines if a product is used as a shipping costs product. For more information have a look into our handbook."
},
"isMatrixProduct": {
"type": "boolean",
"description": "Determines if a product is a matrix product. For more information have a look into our handbook."
},
"discount": {
"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."
},
"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."
}
}
},
"stockTaking": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for stock taking.",
"properties": {
"hasStockTakingValue": {
"type": "boolean",
"description": "Determines if the stock taking value should be used instead of the purchase price for stock taking."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Sets the stock taking value for stock taking."
}
}
},
"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."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"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"
}
}
},
"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 channel.",
"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
}
}
},
"merchandiseGroup": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"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"
}
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
}
}
}
},
"options": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"nullable": true,
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"option": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Either ID or name and key."
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
}
}
},
"examples": {
"Update Product": {
"value": {
"name": "Test Product Beverage",
"description": "This is a very long description for the Test Product Beverage.",
"shortDescription": "This is a short description.",
"project": {
"id": "7"
},
"merchandiseGroup": {
"id": "2001"
},
"customsTariffNumber": "12345678",
"ean": "1234567890",
"internalComment": "Attention: Only available for customers over the age of 18.",
"minimumOrderQuantity": 100,
"minimumStorageQuantity": 30,
"allowPurchaseFromAllSuppliers": false,
"hidePriceOnDocuments": false,
"hasBatches": true,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": true,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"isDisabled": false,
"countryOfOrigin": "DE",
"regionOfOrigin": "01",
"salesTax": "standard",
"isStockItem": true,
"manufacturer": {
"name": "Beverage Manufacturer",
"number": "BM#1",
"link": "https://example.com"
},
"ageRating": "18",
"freeFields": [
{
"id": "8",
"value": "FF8"
}
],
"variantOf": {
"id": "1336"
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product"
],
"operationId": "product.delete",
"summary": "Delete product",
"description": "Deletes a single product",
"requestBody": {
"content": {
"*/*": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
},
"application/vnd.xentral.force": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/media": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listMedia",
"summary": "View media",
"description": "Returns a list of given Products' Media",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Sustainable Water Bottle"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "This product is made from sustainable materials and is designed for everyday use."
},
"keyword": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "eco-friendly"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"currentVersion": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"type": "integer"
},
"url": {
"type": "string"
},
"remark": {
"type": "string",
"nullable": true
},
"filename": {
"type": "string"
},
"size": {
"type": "integer"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
},
"example": {
"id": "123456",
"version": 1,
"url": "https://www.example.com/resource",
"remark": "This is a sample remark.",
"filename": "document.pdf",
"size": 2048,
"updatedAt": "2024-09-19T12:34:56Z"
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2024-09-20T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all product media": {
"value": {
"data": [
{
"id": "5",
"product": {
"id": "1"
},
"title": "",
"description": "",
"keyword": "defaultImage",
"sort": 1,
"currentVersion": {
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"updatedAt": "2024-02-16T14:32:41+02:00"
},
{
"id": "6",
"product": {
"id": "1"
},
"title": "",
"description": "",
"keyword": "printImage",
"sort": 2,
"currentVersion": {
"id": "16",
"version": 2,
"url": "/api/productMedia/6/versions/2",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"updatedAt": "2024-02-16T14:32:41+02:00"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/purchasePrices": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listPurchasePrices",
"summary": "View purchase prices",
"description": "Returns a list of given Products' PurchasePrices",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"amount",
"priceAmount",
"supplier",
"supplierName"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"x-description-missing": true,
"type": "integer",
"example": 10
},
"supplier": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"additionalInformation": {
"description": "Additional information about stock and delivery details.",
"type": "object",
"additionalProperties": false,
"properties": {
"supplierAvailableStock": {
"description": "The quantity of stock available from the supplier.",
"type": "integer",
"example": 10000
},
"supplierAvailableStockDate": {
"description": "The date on which the supplier's available stock was last updated.",
"type": "string",
"nullable": true,
"example": "2024-01-01"
},
"safetyStock": {
"description": "The minimum quantity of stock maintained for safety purposes.",
"type": "integer",
"example": 5000
},
"standardDeliveryTime": {
"description": "The standard delivery time required to receive stock.",
"type": "integer",
"example": 3
},
"standardDeliveryTimeUnit": {
"description": "The unit of time for the standard delivery duration",
"type": "string",
"example": "days"
},
"currentDeliveryTime": {
"description": "The actual current delivery time for receiving stock.",
"type": "integer",
"example": 2
},
"currentDeliveryTimeUnit": {
"description": "The unit of time for the current delivery duration",
"type": "string",
"example": "weeks"
}
},
"example": {
"supplierAvailableStock": 10000,
"supplierAvailableStockDate": "2024-06-30",
"safetyStock": 5000,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 2,
"currentDeliveryTimeUnit": "weeks"
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all purchase prices for given product": {
"value": {
"data": [
{
"id": "15",
"amount": 1,
"supplier": {
"id": "7",
"name": "Thilo Altmann-Meyer"
},
"price": {
"amount": "1.00000000",
"currency": "EUR"
},
"additionalInformation": {
"supplierAvailableStock": 10000,
"supplierAvailableStockDate": "2024-06-30",
"safetyStock": 5000,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 2,
"currentDeliveryTimeUnit": "weeks"
}
},
{
"id": "7",
"amount": 100,
"supplier": {
"id": "7",
"name": "Thilo Altmann-Meyer"
},
"price": {
"amount": "0.80000000",
"currency": "EUR"
},
"additionalInformation": {
"supplierAvailableStock": 0,
"supplierAvailableStockDate": "0000-00-00",
"safetyStock": 0,
"standardDeliveryTime": 0,
"standardDeliveryTimeUnit": "weeks",
"currentDeliveryTime": 0,
"currentDeliveryTimeUnit": "weeks"
}
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/salesPrices": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listSalesPrices",
"summary": "View sales prices",
"description": "Returns a list of given Products' SalesPrices",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"amount",
"priceAmount",
"customer",
"customerName"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product Name"
},
"validFrom": {
"x-description-missing": true,
"type": "string",
"format": "date",
"nullable": true,
"example": "2024-01-01"
},
"expiresAt": {
"x-description-missing": true,
"type": "string",
"format": "date",
"nullable": true,
"example": "2024-12-31"
},
"amount": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"customer": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"customerGroup": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"reference": {
"type": "string"
}
},
"example": {
"id": "123456",
"name": "Sample Item",
"reference": "REF-7890"
}
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all sales prices for a given product": {
"value": {
"data": [
{
"id": "2",
"customer": {
"id": "7",
"name": "Thilo Altmann-Meyer"
},
"customerGroup": null,
"validFrom": "2024-04-01",
"expiresAt": "2024-04-30",
"amount": 1,
"price": {
"amount": "0.16000000",
"currency": "EUR"
}
},
{
"id": "17",
"customer": null,
"customerGroup": null,
"validFrom": null,
"expiresAt": "2024-12-12",
"amount": 10,
"price": {
"amount": "3.00000000",
"currency": "CHF"
}
},
{
"id": "16",
"customer": null,
"customerGroup": null,
"validFrom": "2025-01-01",
"expiresAt": null,
"amount": 10,
"price": {
"amount": "3.00000000",
"currency": "CHF"
}
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/purchaseOrdersPositions": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listPurchaseOrdersPositions",
"summary": "View purchase orders positions",
"description": "Returns a list of given Products' positions in PurchaseOrders",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"amount",
"deliveryDate",
"order",
"orderDate",
"orderNumber",
"supplier",
"supplierName"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"x-description-missing": true,
"type": "string",
"example": "12345-XYZ"
},
"date": {
"x-description-missing": true,
"type": "string",
"example": "2024-09-19T12:34:56Z"
},
"amount": {
"x-description-missing": true,
"type": "string",
"format": "float",
"example": "25.00"
},
"deliveredAmount": {
"x-description-missing": true,
"type": "string",
"format": "float",
"example": "15.50"
},
"deliveryDate": {
"x-description-missing": true,
"type": "string",
"format": "date",
"example": "2024-09-19"
},
"isInstantDelivery": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"purchaseOrder": {
"type": "object",
"additionalProperties": false,
"description": "Represents a purchase order containing details about the order, including its identifier, number, delivery date, and supplier information.",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"description": "The order number assigned by the system.",
"example": "ORD-2024-001"
},
"deliveryDate": {
"type": "string",
"format": "date",
"description": "The expected delivery date for the order.",
"example": "2024-10-15"
},
"supplier": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
}
},
"example": {
"id": "PO123456",
"number": "ORD-2024-001",
"deliveryDate": "2024-10-15",
"supplier": {
"id": "SUP123",
"name": "Test Supplies Inc."
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all purchase order positions with given product": {
"value": {
"data": [
{
"id": "9",
"amount": "8",
"deliveredAmount": "0",
"deliveryDate": "2024-04-12",
"isInstantDelivery": true,
"purchaseOrder": {
"id": "5",
"number": "",
"deliveryDate": "2024-04-12",
"supplier": {
"id": "7",
"name": "Thilo Altmann-Meyer"
}
}
},
{
"id": "8",
"amount": "8",
"deliveredAmount": "0",
"deliveryDate": "2024-03-24",
"isInstantDelivery": true,
"purchaseOrder": {
"id": "4",
"number": "",
"deliveryDate": "2024-03-24",
"supplier": {
"id": "7",
"name": "Thilo Altmann-Meyer"
}
}
},
{
"id": "6",
"amount": "10.5",
"deliveredAmount": "0",
"deliveryDate": "2024-03-24",
"isInstantDelivery": true,
"purchaseOrder": {
"id": "3",
"number": "",
"deliveryDate": "2024-03-27",
"supplier": {
"id": "7",
"name": "Thilo Altmann-Meyer"
}
}
},
{
"id": "4",
"amount": "100",
"deliveredAmount": "0",
"deliveryDate": "2024-03-16",
"isInstantDelivery": true,
"purchaseOrder": {
"id": "2",
"number": "100001",
"deliveryDate": "2022-03-16",
"supplier": {
"id": "7",
"name": "Thilo Altmann-Meyer"
}
}
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/salesOrdersPositions": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listSalesOrdersPositions",
"summary": "View sales orders positions",
"description": "Returns a list of given Products' positions in SalesOrders",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"amount",
"customer",
"customerName",
"order",
"orderNumber",
"orderStatus"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"x-description-missing": true,
"type": "string",
"format": "float",
"example": "25.00"
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Desired delivery date for the order.",
"example": "2024-10-24"
},
"desiredDeliveryDateCw": {
"type": "boolean",
"description": "Indicates if the desired delivery date is in calendar weeks.",
"example": false
},
"salesOrder": {
"type": "object",
"additionalProperties": false,
"description": "Represents a sales order containing details such as order ID, status, date, and customer information.",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"description": "The order number assigned by the system."
},
"status": {
"type": "string",
"description": "Current status of the sales order (e.g., 'pending', 'completed', 'canceled')."
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Desired delivery date for the order.",
"example": "2024-10-24"
},
"desiredDeliveryDateCw": {
"type": "boolean",
"description": "Indicates if the desired delivery date is in calendar weeks.",
"example": false
},
"reservationDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date when the order was reserved."
},
"earliestFulfillmentDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Earliest date when the order can be fulfilled."
},
"date": {
"type": "string",
"format": "date",
"description": "The date when the sales order was created."
},
"customer": {
"type": "object",
"additionalProperties": false,
"description": "Information about the customer associated with the sales order.",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Name of the customer."
},
"number": {
"type": "string",
"description": "Customer account number."
},
"date": {
"type": "string",
"format": "date",
"description": "Date associated with the customer (e.g., registration date)."
}
}
}
},
"example": {
"id": "SO987654",
"number": "ORD-2024-002",
"status": "pending",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"reservationDate": null,
"earliestFulfillmentDate": "2024-10-05",
"date": "2024-09-25",
"customer": {
"id": "CUST123",
"name": "John Doe",
"number": "CUST-001",
"date": "2022-01-15"
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all sales order positions with given product": {
"value": {
"data": [
{
"id": "22",
"amount": "10",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"salesOrder": {
"id": "4",
"number": "200003",
"status": "freigegeben",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"reservationDate": "2024-07-13",
"earliestFulfillmentDate": "2024-07-10",
"customer": {
"id": "5",
"name": "Lisbeth Lange",
"number": "75"
}
}
},
{
"id": "16",
"amount": "40",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"salesOrder": {
"id": "1",
"number": "200000",
"status": "freigegeben",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"reservationDate": "2024-07-13",
"earliestFulfillmentDate": "2024-07-10",
"customer": {
"id": "3",
"name": "Dominik Scheffler B.A.",
"number": "76146"
}
}
},
{
"id": "4",
"amount": "20",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"salesOrder": {
"id": "3",
"number": "200002",
"status": "freigegeben",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"reservationDate": "2024-07-13",
"earliestFulfillmentDate": "2024-07-10",
"customer": {
"id": "5",
"name": "Lisbeth Lange",
"number": "75"
}
}
},
{
"id": "10",
"amount": "4",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"salesOrder": {
"id": "2",
"number": "200001",
"status": "freigegeben",
"desiredDeliveryDate": null,
"desiredDeliveryDateCw": false,
"reservationDate": "2024-07-13",
"earliestFulfillmentDate": "2024-07-10",
"customer": {
"id": "4",
"name": "Nicolas Pape",
"number": "40000"
}
}
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/productionsPositions": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listProductionsPositions",
"summary": "View productions positions",
"description": "Returns a list of given Products' positions in Productions",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"amount"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"x-description-missing": true,
"type": "string",
"format": "float",
"example": "25.00"
},
"product": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "12345"
}
},
"production": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string"
},
"status": {
"type": "string"
},
"customer": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
}
}
},
"example": {
"id": "12345",
"number": "PROD-001",
"status": "pending",
"customer": {
"id": "67890",
"name": "John Doe"
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all production positions with given product": {
"value": {
"data": [
{
"id": "1",
"amount": "1000",
"product": {
"id": "1"
},
"production": {
"id": "1",
"number": "2024-400000",
"status": "freigegeben",
"customer": {
"id": "4",
"name": "Nicolas Pape"
}
}
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/properties": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listProperties",
"summary": "View properties",
"description": "Returns a list of given Products' Properties",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name",
"value",
"unit"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"property": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"value": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "100.00"
},
"unit": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "kg"
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all properties of given product": {
"value": {
"data": [
{
"id": "1",
"property": {
"id": "1",
"name": "Color"
},
"value": "blue",
"unit": null
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product"
],
"operationId": "product.updateProperties",
"summary": "Update properties",
"description": "Update Properties of a single product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"property"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"property": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Color"
},
"unit": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "kg"
},
"value": {
"x-description-missing": true,
"type": "string",
"example": "Green"
}
}
}
},
"examples": {
"Update property by id": {
"value": [
{
"id": "17",
"property": {
"id": "1301"
},
"value": "green"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/reservations": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listReservations",
"summary": "View reservations",
"description": "Returns a list of given Products' Reservations",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"amount",
"customer",
"customerName"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"x-description-missing": true,
"type": "string",
"format": "float",
"example": "25.00"
},
"reason": {
"x-description-missing": true,
"type": "string",
"example": "Product was damaged upon arrival."
},
"project": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"reference": {
"type": "string"
}
},
"example": {
"id": "12345",
"reference": "REF-67890"
}
},
"customer": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"number": {
"type": "string"
}
},
"example": {
"id": "12345",
"name": "John Doe",
"number": "CUST-001"
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all reservations for given product": {
"value": {
"data": [
{
"id": "1301",
"amount": "10",
"reason": "R1",
"project": {
"id": "1",
"reference": ""
},
"customer": {
"id": "1201",
"name": "Tom Schneider",
"number": "155780"
}
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/parts": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listParts",
"summary": "View parts",
"description": "Returns a list of given Products' Parts",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"product",
"productName",
"amount"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"x-description-missing": true,
"type": "string",
"format": "float",
"example": "25.00"
},
"product": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"number": {
"type": "string"
}
},
"example": {
"id": "1",
"name": "Product Name",
"number": "SKU123456"
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all parts of a given product": {
"value": {
"data": [
{
"id": "1301",
"amount": "2.0000",
"product": {
"id": "1102",
"name": "Fabric",
"number": "346532"
}
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Product"
],
"operationId": "product.createParts",
"summary": "Create new parts for product",
"description": "Creates new parts for a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"part": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"amount": {
"type": "number",
"format": "float",
"description": "Sets the amount for how many times the product is included",
"example": 3.5
}
}
}
},
"examples": {
"Create parts for product": {
"value": [
{
"part": {
"id": "17"
},
"amount": 1
},
{
"part": {
"id": "18"
},
"amount": 2
}
]
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product"
],
"operationId": "product.updateParts",
"summary": "Update parts of a product",
"description": "Updates the parts of a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"type": "number",
"format": "float",
"description": "Sets the amount for how many times the product is included",
"example": 100
}
}
}
},
"examples": {
"Update parts of product": {
"value": [
{
"id": "17",
"amount": 1
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product"
],
"operationId": "product.deleteParts",
"summary": "Deletes parts of a product",
"description": "Deletes the parts of a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/storageLocations": {
"get": {
"tags": [
"Product"
],
"operationId": "product.storageLocations",
"summary": "View storage locations",
"description": "Returns a list of given Products' warehouses entries",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"amount",
"warehouse",
"warehouseName"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"amount": {
"x-description-missing": true,
"type": "string",
"format": "float",
"example": "25.00"
},
"product": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "12345"
}
},
"storageLocation": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"warehouse": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
}
}
},
"example": {
"id": "12345",
"name": "Product Name",
"warehouse": {
"id": "67890",
"name": "Main Warehouse"
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/crossSelling": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listCrossSelling",
"summary": "List cross selling of a product",
"description": "Returns a list of product's cross-selling products",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"productId",
"productName",
"productNumber",
"type",
"salesChannelId",
"sort"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"active": {
"type": "boolean",
"description": "Shows if the cross selling relation is active.",
"example": true
},
"assignToEachOther": {
"type": "boolean",
"description": "Shows if the selected products are assigned to each other. For more information have a look into our handbook.",
"example": false
},
"type": {
"type": "number",
"description": "Shows the type of the cross selling product. 1 means similar product, 2 means accessory. For more information have a look into our handbook.",
"example": 1
},
"salesChannel": {
"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 an external sales channel AKA online shop",
"nullable": true,
"example": {
"id": "sales-channel-56789"
}
},
"sort": {
"type": "number",
"description": "Sorting order of the cross selling entries. 0 means automatically.",
"example": 1
},
"note": {
"type": "string",
"nullable": true,
"description": "Internal note.",
"example": "Handle with care during shipping."
},
"product": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"example": "Sample Name"
},
"number": {
"type": "string",
"example": "SKU-001"
}
},
"example": {
"id": "123456",
"name": "Sample Name",
"number": "SKU-001"
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"page"
],
"additionalProperties": false,
"description": "Pagination data from the current request.",
"properties": {
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"type": "integer"
},
"size": {
"type": "integer"
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all cross selling relations of given product": {
"value": {
"data": [
{
"id": "1111",
"product": {
"id": "1102",
"name": "Second",
"number": "346532"
},
"active": true,
"assignToEachOther": false,
"type": 1,
"salesChannel": null,
"sort": 1,
"note": "just a note"
}
],
"extra": {
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Product"
],
"operationId": "product.createCrossSellingProducts",
"summary": "Create new cross selling for a product",
"description": "Creates new cross selling for a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"product"
],
"properties": {
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"active": {
"type": "boolean",
"default": true,
"description": "Determines if the cross selling relation is active.",
"example": true
},
"assignToEachOther": {
"type": "boolean",
"default": false,
"description": "Determines if the selected products are assigned to each other. For more information have a look into our handbook.",
"example": true
},
"type": {
"type": "number",
"enum": [
1,
2
],
"default": 1,
"description": "Determines the type of the cross selling product. 1 means similar product, 2 means accessory. For more information have a look into our handbook.",
"example": 1
},
"salesChannel": {
"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 an external sales channel AKA online shop",
"nullable": true,
"example": {
"id": "sales-channel-56789"
}
},
"sort": {
"type": "number",
"default": 0,
"description": "Sorting order of the cross selling entries. 0 means automatically.",
"example": 1
},
"note": {
"type": "string",
"nullable": true,
"description": "Internal note.",
"example": "This is an internal note for reference."
}
}
}
},
"examples": {
"Create cross selling for product": {
"value": [
{
"product": {
"id": "17"
},
"active": false,
"assignToEachOther": false,
"type": 1,
"salesChannel": {
"id": "17"
},
"sort": 0,
"note": "A sample note for the cross selling association"
}
]
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product"
],
"operationId": "product.updateCrossSellingProducts",
"summary": "Update cross selling of a product",
"description": "Updates cross selling products of a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"active": {
"type": "boolean",
"description": "Determines if the cross selling relation is active.",
"example": true
},
"assignToEachOther": {
"type": "boolean",
"description": "Determines if the selected products are assigned to each other. For more information have a look into our handbook.",
"example": false
},
"type": {
"type": "number",
"enum": [
1,
2
],
"description": "Determines the type of the cross selling product. 1 means similar product, 2 means accessory. For more information have a look into our handbook.",
"example": 1
},
"salesChannel": {
"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 an external sales channel AKA online shop",
"nullable": true,
"example": {
"id": "sales-channel-56789"
}
},
"sort": {
"type": "number",
"description": "Sorting order of the cross selling entries. 0 means automatically.",
"example": 1
},
"note": {
"type": "string",
"nullable": true,
"description": "Internal note.",
"example": "This is an internal note for reference."
}
}
}
},
"examples": {
"Update cross selling for product": {
"value": [
{
"id": "17",
"active": false,
"assignToEachOther": true,
"type": 1,
"salesChannel": {
"id": "17"
},
"sort": 0,
"note": "A sample note for the cross selling association"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product"
],
"operationId": "product.deleteCrossSelling",
"summary": "Delete cross selling of a product",
"description": "Deletes cross selling items of a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/options": {
"get": {
"tags": [
"Matrixproduct"
],
"operationId": "product.listOptions",
"summary": "View options of a product",
"description": "Returns a list of product's options",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name",
"sort"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Sample Product"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"createdAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2024-09-19T12:34:56Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all options of a given product": {
"value": {
"data": [
{
"id": "1",
"name": "Color",
"sort": 0,
"createdAt": "2024-04-08T11:45:12+02:00"
}
],
"extra": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Matrixproduct"
],
"operationId": "product.createOption",
"summary": "Creates new option for a product",
"description": "Creates new option for a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"sort": {
"type": "number",
"default": 0,
"description": "Sorting order of the option"
},
"name": {
"type": "string",
"description": "Name of the option"
}
}
},
"examples": {
"Create option for product": {
"value": {
"name": "Color"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Matrixproduct"
],
"operationId": "product.updateMultipleOptions",
"summary": "Update multiple options of a product",
"description": "Updates multiple options of a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"sort": {
"type": "number",
"description": "Sorting order of the option",
"example": 1
},
"name": {
"type": "string",
"description": "Name of the option",
"example": "Sample option"
}
}
}
},
"examples": {
"Update options for product": {
"value": [
{
"id": "17",
"name": "Color"
},
{
"id": "18",
"name": "Size"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Matrixproduct"
],
"operationId": "product.deleteMultipleOptions",
"summary": "Deletes multiple options of a product",
"description": "Deletes multiple options of a product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{productId}/options/{id}": {
"patch": {
"tags": [
"Matrixproduct"
],
"operationId": "product.updateOption",
"summary": "Updates a single option of a matrix product.",
"description": "Updates a single option of a matrix product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID of the matrix product."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Update a single option of a matrix product",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
}
},
"examples": {
"Update a single option": {
"value": {
"name": "Test Product Beverage"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/texts": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listTexts",
"summary": "List product texts",
"description": "The different product descriptions in all available locales for each of the shops.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"language",
"shopId",
"isActive"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"shopId",
"language"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"description": "Presentation of a Product identified by a particular ID type",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Unique identifier of the text",
"example": 1
},
"name": {
"type": "string",
"nullable": true,
"description": "name of the text",
"example": "test"
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "shortDescription of the text",
"example": "shortDescription"
},
"description": {
"type": "string",
"nullable": true,
"description": "description of the text",
"example": "description"
},
"shopDescription": {
"type": "string",
"nullable": true,
"description": "shopDescription of the text",
"example": "shopDescription"
},
"metaTitle": {
"type": "string",
"nullable": true,
"description": "metaTitle of the text",
"example": "metaTitle"
},
"metaDescription": {
"type": "string",
"nullable": true,
"description": "metaDescription of the text",
"example": "metaDescription"
},
"metaKeywords": {
"type": "string",
"nullable": true,
"description": "metaKeywords of the text",
"example": "metaKeywords"
},
"inCatalog": {
"type": "boolean",
"description": "inCatalog of the text",
"example": true
},
"catalogName": {
"type": "string",
"nullable": true,
"description": "catalogName of the text",
"example": "catalogName"
},
"catalogText": {
"type": "string",
"nullable": true,
"description": "catalogText of the text",
"example": "catalogText"
},
"isActive": {
"type": "boolean",
"nullable": true,
"description": "isActive of the text",
"example": false
},
"product": {
"type": "object",
"additionalProperties": false,
"description": "Details about the product",
"properties": {
"id": {
"type": "number",
"description": "product of the id",
"example": 1
}
},
"example": {
"id": 1
}
},
"shop": {
"type": "object",
"additionalProperties": false,
"description": "Details about the shop",
"properties": {
"id": {
"type": "number",
"description": "shop of the id",
"example": 1
}
},
"example": {
"id": 1
}
},
"language": {
"type": "object",
"additionalProperties": false,
"description": "Language details",
"properties": {
"iso2": {
"type": "string",
"description": "shop of the id",
"example": "DE"
}
},
"example": {
"iso2": "DE"
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"ProductTextExample": {
"value": {
"data": [
{
"id": 1001,
"name": "test",
"shortDescription": "short",
"description": "desc",
"shopDescription": "shop",
"metaTitle": "title",
"metaDescription": "metadec",
"metaKeywords": "keywords",
"inCatalog": false,
"catalogName": "catName",
"catalogText": "text",
"product": {
"id": 101
},
"shop": {
"id": 1
},
"isActive": false,
"language": {
"iso2": "DE"
}
}
],
"extra": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/salesChannels": {
"post": {
"tags": [
"Sales Channels Product Settings"
],
"operationId": "product.createSalesChannels",
"summary": "Creates sales channel settings for a single product.",
"description": "Creates sales channel settings for a single product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"salesChannel": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"isActive": {
"type": "boolean",
"description": "Determines if the sales channel connection is active.",
"example": true
},
"useIndividualSalesChannelSettings": {
"type": "boolean",
"description": "Determines if the individual sales channel settings should be used instead of the general sales channel settings.",
"example": true
},
"isStockNumberSyncActive": {
"type": "boolean",
"description": "Determines if the stock number synchronization to the sales channel is active.",
"example": true
},
"isRemainingQuantity": {
"type": "boolean",
"description": "Determines if only the remaining quantity of the product is left.",
"example": true
},
"suggestedRetailPrice": {
"type": "string",
"description": "Sets the suggested retail price for the sales channel.",
"example": "25.99"
},
"suggestedStockQuantity": {
"type": "string",
"description": "Sets the suggested stock quantity for the sales channel.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Sets the delivery time.",
"example": "1 week"
},
"createNewProductDuringImport": {
"type": "boolean",
"description": "Determines if a new product should be created during the sales order import from a sales channel.",
"example": true
}
}
},
"examples": {
"example": {
"value": {
"salesChannel": {
"id": "1"
},
"isActive": true,
"useIndividualSalesChannelSettings": false,
"isStockNumberSyncActive": true,
"isRemainingQuantity": false,
"suggestedRetailPrice": "29.99",
"suggestedStockQuantity": "100",
"deliveryTime": "3-5 business days",
"createNewProductDuringImport": true
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{productId}/salesChannels/{id}": {
"delete": {
"tags": [
"Sales Channels Product Settings"
],
"operationId": "product.deleteSalesChannels",
"summary": "Deletes sales channel settings for a single product.",
"description": "Deletes sales channel settings for a single product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Sales Channels Product Settings"
],
"operationId": "product.updateSalesChannels",
"summary": "Updates sales channel settings for a single product.",
"description": "Updates sales channel settings for a single product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"salesChannel": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"isActive": {
"type": "boolean",
"description": "Determines if the sales channel connection is active.",
"example": true
},
"useIndividualSalesChannelSettings": {
"type": "boolean",
"description": "Determines if the individual sales channel settings should be used instead of the general sales channel settings.",
"example": true
},
"isStockNumberSyncActive": {
"type": "boolean",
"description": "Determines if the stock number synchronization to the sales channel is active.",
"example": true
},
"isRemainingQuantity": {
"type": "boolean",
"description": "Determines if only the remaining quantity of the product is left.",
"example": true
},
"suggestedRetailPrice": {
"type": "string",
"description": "Sets the suggested retail price for the sales channel.",
"example": "25.99"
},
"suggestedStockQuantity": {
"type": "string",
"description": "Sets the suggested stock quantity for the sales channel.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Sets the delivery time.",
"example": "1 week"
},
"createNewProductDuringImport": {
"type": "boolean",
"description": "Determines if a new product should be created during the sales order import from a sales channel.",
"example": true
}
}
},
"examples": {
"example": {
"value": {
"salesChannel": {
"id": "12"
},
"isActive": true,
"useIndividualSalesChannelSettings": true,
"isStockNumberSyncActive": true,
"isRemainingQuantity": false,
"suggestedRetailPrice": "99.99",
"suggestedStockQuantity": "500",
"deliveryTime": "3-5 business days",
"createNewProductDuringImport": false
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{productId}/options/{optionId}/values/{id}": {
"get": {
"tags": [
"Matrixproduct"
],
"operationId": "product.viewValue",
"summary": "View a single value from an option of a matrix product.",
"description": "Returns details of a single value from an option of a matrix product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID of the matrix product."
},
{
"in": "path",
"name": "optionId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Option ID from the value it belongs to."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Name of the value.",
"example": "Sample name"
},
"sort": {
"description": "This value sorts the resource",
"type": "number",
"example": 1
}
},
"example": {
"id": "123456",
"name": "Sample name",
"sort": 1
}
}
}
},
"examples": {
"Shows information about a single value from an option of a matrix product": {
"value": {
"data": {
"id": "1",
"name": "blue",
"sort": 1
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Matrixproduct"
],
"operationId": "product.updateValue",
"summary": "Updates a single value from an option of a matrix product.",
"description": "Updates a single value from an option of a matrix product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID of the matrix product."
},
{
"in": "path",
"name": "optionId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Option ID from the value it belongs to."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the value"
},
"sort": {
"type": "number",
"default": 1,
"description": "Sorting order of the value"
}
}
},
"examples": {
"Update Value of an option of a matrix product": {
"value": {
"name": "blue"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Matrixproduct"
],
"operationId": "product.deleteValue",
"summary": "Deletes a single value from an option of a matrix product.",
"description": "Deletes a single value from an option of a matrix product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID of the matrix product."
},
{
"in": "path",
"name": "optionId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Option ID from the value it belongs to."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{productId}/options/{id}/values": {
"get": {
"tags": [
"Matrixproduct"
],
"operationId": "product.listValues",
"summary": "Lists all values from an option of a matrix product.",
"description": "Lists all values from an option of a matrix product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID of the matrix product."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"description": "The name of the resource",
"type": "string",
"example": "Sample Resource"
},
"sort": {
"description": "This values determines the order of the resource",
"type": "number",
"example": 1
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Matrixproduct"
],
"operationId": "product.deleteMultipleValues",
"summary": "Deletes multiple values from an option of a matrix product.",
"description": "Deletes multiple values from an option of a matrix product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID of the matrix product."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"examples": {
"Delete multiple values": {
"value": [
{
"id": "1337"
},
{
"id": "1339"
},
{
"id": "1340"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Matrixproduct"
],
"operationId": "product.createMultipleValues",
"summary": "Creates multiple values for an option of a matrix product.",
"description": "Creates multiple values for an option of a matrix product.",
"parameters": [
{
"in": "path",
"name": "productId",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"description": "Product ID of the matrix product."
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the value",
"example": "Sample Value"
},
"sort": {
"type": "number",
"default": 1,
"description": "Sorting order of the value",
"example": 1
}
}
}
},
"examples": {
"Create values for an option of a matrix product": {
"value": [
{
"name": "blue"
},
{
"name": "red"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/actions/createVariants": {
"post": {
"tags": [
"Product"
],
"operationId": "product.createVariants",
"summary": "Creates variants for a matrix product",
"description": "Creates variants for a matrix product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"variants"
],
"properties": {
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"options"
],
"properties": {
"options": {
"description": "...",
"allOf": [
{
"type": "array",
"items": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
]
}
}
}
},
"mode": {
"type": "string",
"enum": [
"1",
"2",
"3",
"4"
],
"description": "1: Use item numbers from number range of merchandise group.\n2: Add product numbers from options to the main number.\n3: Create product numbers from the main number and the appendix to product numbers. No additional separators.\n4: Product numbers of main products with suffix."
},
"prefixSeparator": {
"type": "string",
"description": "Separator of prefix (applicable to mode 4 only)"
},
"prefixDigits": {
"type": "integer",
"description": "Number of digits of prefix (applicable to mode 4 only)"
},
"prefixNextNumber": {
"type": "string",
"pattern": "\\d+",
"description": "Next number of prefix (applicable to mode 4 only)"
},
"appendOptionsToDescription": {
"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"
]
}
]
},
"createAdditionalDescription": {
"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"
]
}
]
}
}
},
"examples": {
"Create 2 variants": {
"value": {
"mode": "1",
"variants": [
{
"options": [
{
"id": "2"
},
{
"id": "5"
}
]
},
{
"options": [
{
"id": "3"
},
{
"id": "6"
}
]
}
],
"prefixSeparator": "_",
"prefixDigits": 3,
"prefixNextNumber": "001",
"appendOptionsToDescription": true,
"createAdditionalDescription": true
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/actions/identify": {
"get": {
"tags": [
"Product"
],
"operationId": "product.listProducts",
"summary": "List products",
"description": "Returns a collection with all products found with the indentifier.",
"parameters": [
{
"in": "query",
"name": "identifier",
"required": true,
"schema": {
"type": "string",
"description": "Identifier of the product"
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"description": "Presentation of a Product identified by a particular ID type",
"type": "object",
"additionalProperties": false,
"properties": {
"product": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"category": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"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"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Sample Product"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "This is a high-quality product designed for everyday use."
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "1234567890123"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU-12345"
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://www.example.com/images/thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-12345"
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"countryOfOrigin": {
"type": "string",
"pattern": "[A-Z]{2}",
"nullable": true,
"description": "Two-digit ISO country code for country of origin of the product.",
"example": "DE"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "A compact and efficient multi-tool for outdoor use."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "Handle with care."
},
"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
},
"isMatrixProduct": {
"type": "boolean",
"description": "Shows if the product is a matrix product.",
"example": true
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": false
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"allowPurchaseFromAllSuppliers": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": false
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": true
},
"ageRating": {
"type": "string",
"nullable": true,
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL.",
"example": "12+"
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": true
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"description": "Shows if the just in time items of the parts list are visible on documents.",
"example": false
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": true
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": false
},
"isCustomProduct": {
"type": "boolean",
"description": "Shows if the product is a custom product.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": true
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Product is discontinued."
},
"markAsSoldOut": {
"type": "boolean",
"description": "Shows if the product is sold out.",
"example": true
},
"markAsInactive": {
"type": "boolean",
"description": "Shows if the product is inactive.",
"example": false
},
"isDeleted": {
"type": "boolean",
"description": "Shows if the product is deleted.",
"example": false
},
"unit": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"example": "kilogram"
}
},
"example": {
"name": "kilogram"
},
"description": "Shows the name of the product unit."
},
"measurements": {
"x-description-missing": true,
"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": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer."
},
"url": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer."
}
},
"example": {
"name": "Beverage Manufacturer",
"number": "BM#1",
"url": "https://example.com"
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": false
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Shows the sales tax of the product.",
"example": "standard"
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook.",
"example": "19.99"
},
"isRemainingQuantity": {
"type": "boolean",
"description": "Shows if only the remaining quantity of the product is left.",
"example": true
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "04"
},
"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": false
},
"stockStats": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"purchasedCount": {
"type": "string",
"format": "float",
"nullable": true
},
"totalCount": {
"type": "string",
"format": "float",
"nullable": true
},
"availableCount": {
"type": "string",
"format": "float",
"nullable": true
},
"inProductionCount": {
"type": "string",
"format": "float",
"nullable": true
}
},
"example": {
"purchasedCount": "100.5",
"totalCount": "500.75",
"availableCount": "300.25",
"inProductionCount": "50.0"
}
},
"purchasePriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"purchasePriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"manufacturerName": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer.",
"example": "Test Corp"
},
"manufacturerNumber": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer.",
"example": "MN-98765"
},
"discount": {
"x-description-missing": true,
"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."
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows the discount value if the product is a discount. For more information have a look into our handbook."
}
},
"example": {
"isDiscountProduct": true,
"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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 100.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"mainVariant": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a main variant of this product",
"nullable": true,
"example": {
"id": "variant-12345"
}
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"defaultStorageLocation": {
"description": "Default storage location of the product.",
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"designation": {
"type": "string",
"description": "Name of the storage location"
},
"warehouse": {
"type": "object",
"description": "Warehouse of the storage location",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"designation": {
"type": "string"
}
},
"example": {
"id": "1",
"designation": "Warehouse 1"
}
}
},
"example": {
"id": "1",
"designation": "Shelf 1",
"warehouse": {
"id": "1",
"designation": "Warehouse 1"
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2024-09-19T12:34:56Z"
}
},
"example": {
"id": "1",
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"project": {
"id": "1",
"name": "Project1"
},
"category": null,
"standardSupplier": null,
"name": "Shirt",
"description": "This is a shirt.",
"ean": "123456789",
"stockCount": 0,
"number": "133456",
"thumbnailUrl": "http://localhost/index.php?module=artikel&action=thumbnail&id=1&bildvorschau=16_100_100",
"thumbnailId": "16",
"customsTariffNumber": "39JOE85W",
"countryOfOrigin": null,
"tags": [],
"shortDescription": null,
"internalComment": "",
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"isMatrixProduct": false,
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"allowPurchaseFromAllSuppliers": false,
"isStockTakingDisabled": false,
"ageRating": null,
"hasBillOfMaterials": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"isCustomProduct": false,
"isAssembledJustInTime": false,
"hidePriceOnDocuments": false,
"hideJustInTimeItemsOnDocuments": false,
"markAsSoldOut": false,
"markAsInactive": false,
"isDeleted": false,
"isDisabled": false,
"disabledReason": null,
"unit": {
"name": ""
},
"measurements": {
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
},
"length": {
"value": 0,
"unit": "cm"
},
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
}
},
"manufacturer": {
"name": "Manufacturer A",
"number": "MAN-123456",
"url": null
},
"isStockItem": false,
"salesTax": "standard",
"shopPriceDisplay": "5.20",
"isRemainingQuantity": false,
"regionOfOrigin": "",
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"stockTaking": {
"hasStockTakingValue": false,
"stockTakingValue": 0
},
"calculatedPurchasePrice": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "0.0000",
"currency": "EUR"
}
},
"options": [],
"selectedOptions": [],
"variants": [],
"freeFields": [
{
"id": "2",
"name": "ff_2",
"value": "ff2"
},
{
"id": "29",
"name": "ff_29",
"value": "ff29"
},
{
"id": "35",
"name": null,
"value": "ff35"
}
],
"defaultStorageLocation": {
"id": "1",
"designation": "Shelf 1",
"warehouse": {
"id": "1",
"designation": "Warehouse 1"
}
},
"updatedAt": "2024-09-19T12:34:56Z",
"isVariant": false,
"variantOf": null,
"mainVariant": null
}
},
"identifiedBy": {
"description": "Represents the type of ID used to identify the product",
"type": "string",
"enum": [
"ean",
"manufacturerNumber",
"productNumber",
"foreignNumber"
],
"example": "ean"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists information from all products": {
"value": {
"data": [
{
"product": {
"id": "1",
"uuid": "018a2690-647a-7a8b-b100-cfc11ab7d4e8",
"name": "Screw M10x20",
"description": "",
"shortDescription": null,
"number": "700001",
"project": {
"id": "1",
"name": "Standard project"
},
"category": {
"id": "2",
"name": "Service"
},
"standardSupplier": {
"id": "7"
},
"stockCount": 22,
"stockStats": {
"purchasedCount": null,
"totalCount": "22.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"shopPriceDisplay": "0.00",
"ean": "",
"manufacturerName": "",
"manufacturerNumber": "",
"customsTariffNumber": "",
"isVariant": false,
"variantOf": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"unit": {
"name": "abc"
},
"updatedAt": "2024-04-15T13:10:58+02:00"
},
"identifiedBy": "productNumber"
},
{
"product": {
"id": "2",
"uuid": "018a2690-647b-7970-97c8-e02df3a2ae1f",
"name": "hex nut M10",
"description": "",
"shortDescription": null,
"number": "700002",
"project": {
"id": "1",
"name": "Standard project"
},
"category": null,
"standardSupplier": {
"id": "7"
},
"stockCount": 93,
"stockStats": {
"purchasedCount": null,
"totalCount": "93.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"shopPriceDisplay": "0.00",
"ean": "",
"manufacturerName": "",
"manufacturerNumber": "",
"customsTariffNumber": "",
"isVariant": false,
"variantOf": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"unit": {
"name": ""
},
"updatedAt": "2024-03-27T15:13:25+01:00"
},
"identifiedBy": "foreignNumber"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"merchandiseGroup": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Example Product Name"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU-12345"
},
"description": {
"type": "string",
"nullable": true,
"description": "Description of the product.",
"example": "This product is designed for everyday use and offers high durability."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "This product is on hold due to quality checks."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "Compact and lightweight, perfect for travel."
},
"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"
}
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://example.com/images/product-thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-12345"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"purchasePriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"purchasePriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "978-3-16-148410-0"
},
"manufacturer": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer."
},
"number": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer."
},
"link": {
"type": "string",
"nullable": true,
"description": "URI of the manufacturer."
}
},
"example": {
"name": "Test Corp",
"number": "AC12345",
"link": "https://www.testcorp.com"
}
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"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": false
},
"discount": {
"x-description-missing": true,
"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."
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows the discount value if the product is a discount. For more information have a look into our handbook."
}
},
"example": {
"isDiscountProduct": false,
"discountPercentage": 15.5
}
},
"stockStats": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"purchasedCount": {
"type": "string",
"format": "float",
"nullable": true
},
"totalCount": {
"type": "string",
"format": "float",
"nullable": true
},
"availableCount": {
"type": "string",
"format": "float",
"nullable": true
},
"inProductionCount": {
"type": "string",
"format": "float",
"nullable": true
}
},
"example": {
"purchasedCount": "10.0",
"totalCount": "50.0",
"availableCount": "30.0",
"inProductionCount": "10.0"
}
},
"minimumOrderQuantity": {
"type": "number",
"description": "Numerical minimum order quantity of the product.",
"example": 5
},
"minimumStorageQuantity": {
"type": "number",
"description": "Numerical minimum storage quantity of the product.",
"example": 10
},
"allowPurchaseFromAllSuppliers": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": true
},
"isCustomProduct": {
"type": "boolean",
"description": "Shows if the product is a custom product.",
"example": false
},
"isDeleted": {
"type": "boolean",
"description": "Shows if the product is deleted.",
"example": false
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": true
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": false
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": true
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": false
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"ageRating": {
"type": "string",
"nullable": true,
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL.",
"example": "12+"
},
"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": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"description": "Shows the name of the product unit.",
"example": {
"name": "kilogram"
}
},
"measurements": {
"x-description-missing": true,
"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"
}
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": true
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"description": "Shows if the just in time items of the parts list are visible on documents.",
"example": false
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": true
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Out of stock"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Shows the sales tax of the product.",
"example": "reduced"
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "04"
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"isMatrixProduct": {
"type": "boolean",
"description": "Shows if the product is a matrix product.",
"example": false
},
"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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 150.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"salesChannel": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string",
"example": "This is a product description."
},
"meta": {
"type": "object",
"additionalProperties": false,
"properties": {
"title": {
"type": "string",
"example": "Product Title"
},
"description": {
"type": "string",
"example": "Detailed product description."
},
"keywords": {
"type": "string",
"example": "keyword1, keyword2, keyword3"
}
}
},
"isStockNumberSyncActive": {
"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"
]
}
]
},
"isSoldOut": {
"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"
]
}
]
},
"isRemainingQuantity": {
"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"
]
}
]
},
"suggestedRetailPrice": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook.",
"example": "99.99"
},
"isVisible": {
"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"
]
}
]
},
"suggestedStockQuantity": {
"type": "string",
"description": "Shows the suggested stock quantity for all sales channel.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Shows the delivery time for all sales channels.",
"example": "1 week"
},
"createNewProductDuringImport": {
"type": "boolean",
"description": "Shows if a new product is generated during the sales order import from all sales channels.",
"example": true
},
"channels": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"salesChannel": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"isActive": {
"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"
]
}
]
},
"useIndividualSalesChannelSettings": {
"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"
]
}
]
},
"isStockNumberSyncActive": {
"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"
]
}
]
},
"isRemainingQuantity": {
"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"
]
}
]
},
"suggestedRetailPrice": {
"type": "string",
"description": "Was earlier called shopPriceDisplay. Only used by some online shops. For more information have a look into our handbook."
},
"suggestedStockQuantity": {
"type": "string",
"description": "Sets the suggested stock quantity for the sales channel.",
"example": "100"
},
"deliveryTime": {
"type": "string",
"description": "Shows the delivery time.",
"example": "1 week"
},
"createNewProductDuringImport": {
"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"
]
}
]
}
}
}
}
},
"example": {
"description": "This is a product description.",
"meta": {
"title": "Product Title",
"description": "Detailed product description.",
"keywords": "keyword1, keyword2, keyword3"
},
"isStockNumberSyncActive": true,
"isSoldOut": false,
"isRemainingQuantity": true,
"suggestedRetailPrice": "99.99",
"isVisible": true
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"mainVariant": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a main variant of this product",
"nullable": true,
"example": {
"id": "variant-12345"
}
},
"categories": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2024-09-23T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists information from all products": {
"value": {
"data": [
{
"id": "1",
"uuid": "018a2690-647a-7a8b-b100-cfc11ab7d4e8",
"name": "Screw M10x20",
"description": "",
"shortDescription": null,
"number": "700001",
"project": {
"id": "1",
"name": "Standard project"
},
"merchandiseGroup": {
"id": "2",
"name": "Service"
},
"categories": [
{
"id": "1"
}
],
"standardSupplier": {
"id": "7"
},
"stockCount": 22,
"stockStats": {
"purchasedCount": null,
"totalCount": "22.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"ean": "",
"manufacturer": {
"name": "",
"number": "",
"link": ""
},
"customsTariffNumber": "",
"isMatrixProduct": true,
"options": [],
"selectedOptions": [],
"variants": [],
"isVariant": false,
"variantOf": null,
"mainVariant": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"isDeleted": false,
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"isCustomProduct": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"salesChannel": {
"description": "",
"meta": {
"title": "",
"description": "",
"keywords": ""
},
"isStockNumberSyncActive": false,
"isRemainingQuantity": false,
"isSoldOut": false,
"isVisible": true,
"suggestedRetailPrice": "0.00"
},
"unit": {
"name": "abc"
},
"updatedAt": "2024-04-15T13:10:58+02:00"
},
{
"id": "2",
"uuid": "018a2690-647b-7970-97c8-e02df3a2ae1f",
"name": "hex nut M10",
"description": "",
"shortDescription": null,
"number": "700002",
"project": {
"id": "1",
"name": "Standard project"
},
"merchandiseGroup": null,
"categories": [
{
"id": "1"
}
],
"standardSupplier": {
"id": "7"
},
"stockCount": 93,
"stockStats": {
"purchasedCount": null,
"totalCount": "93.0000",
"availableCount": null,
"inProductionCount": null
},
"purchasePriceNet": null,
"purchasePriceGross": null,
"salesPriceNet": null,
"salesPriceGross": null,
"ean": "",
"manufacturer": {
"name": "",
"number": "",
"link": ""
},
"customsTariffNumber": "",
"isMatrixProduct": false,
"options": [],
"selectedOptions": [],
"variants": [],
"isVariant": false,
"variantOf": null,
"mainVariant": null,
"thumbnailUrl": null,
"thumbnailId": null,
"tags": [],
"freeFields": [],
"countryOfOrigin": "DE",
"regionOfOrigin": "",
"internalComment": "",
"isDeleted": false,
"measurements": {
"weight": {
"value": 0,
"unit": "kg"
},
"netWeight": {
"value": 0,
"unit": "kg"
},
"length": {
"value": 0,
"unit": "cm"
},
"width": {
"value": 0,
"unit": "cm"
},
"height": {
"value": 0,
"unit": "cm"
}
},
"minimumOrderQuantity": 0,
"minimumStorageQuantity": 0,
"salesTax": "reduced",
"hasBatches": false,
"serialNumbersMode": "disabled",
"hasBestBeforeDate": false,
"hasBillOfMaterials": false,
"isAssembledJustInTime": false,
"isProductionProduct": false,
"isExternallyProduced": false,
"allowPurchaseFromAllSuppliers": false,
"isDisabled": false,
"disabledReason": "",
"hidePriceOnDocuments": false,
"ageRating": null,
"isStockItem": true,
"isStockTakingDisabled": false,
"isCustomProduct": false,
"hideJustInTimeItemsOnDocuments": false,
"isShippingCostsProduct": false,
"discount": {
"isDiscountProduct": false,
"discountPercentage": 0
},
"salesChannel": {
"description": "",
"meta": {
"title": "",
"description": "",
"keywords": ""
},
"isStockNumberSyncActive": false,
"isRemainingQuantity": false,
"isSoldOut": false,
"isVisible": true,
"suggestedRetailPrice": "0.00"
},
"unit": {
"name": ""
},
"updatedAt": "2024-03-27T15:13:25+01:00"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"text/csv": {
"schema": {
"type": "string"
}
},
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"description": "An object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"category": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"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"
}
},
"name": {
"type": "string",
"description": "Name of the product.",
"example": "Product one"
},
"stockCount": {
"x-description-missing": true,
"type": "number",
"example": 150
},
"number": {
"type": "string",
"description": "Number / SKU of the product.",
"example": "SKU-0099"
},
"description": {
"type": "string",
"nullable": true,
"description": "Description of the product.",
"example": "This is a high-quality product designed for everyday use."
},
"internalComment": {
"type": "string",
"description": "Text only for internal information.",
"example": "This product is seasonal and only available during the summer."
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "This is a high-quality product designed for everyday use."
},
"thumbnailUrl": {
"type": "string",
"nullable": true,
"description": "URL of the product's thumbnail.",
"example": "https://example.com/images/product-thumbnail.jpg"
},
"thumbnailId": {
"type": "string",
"nullable": true,
"description": "ID of the product's thumbnail.",
"example": "thumb-12345"
},
"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": {
"type": "boolean",
"description": "Shows if the product can be purchased from all suppliers.",
"example": true
},
"hasBatches": {
"type": "boolean",
"description": "Shows if the product has batches.",
"example": false
},
"serialNumbersMode": {
"type": "string",
"description": "Shows one of the 4 different modes 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": "mandatory"
},
"hasBestBeforeDate": {
"type": "boolean",
"description": "Shows if the product has a best before date.",
"example": true
},
"hasBillOfMaterials": {
"type": "boolean",
"description": "Shows if the product has a bill of materials.",
"example": false
},
"isAssembledJustInTime": {
"type": "boolean",
"description": "Shows if the product is assembled just in time.",
"example": true
},
"isProductionProduct": {
"type": "boolean",
"description": "Shows if the product is made in production.",
"example": true
},
"isExternallyProduced": {
"type": "boolean",
"description": "Shows if the product is externally produced.",
"example": true
},
"hidePriceOnDocuments": {
"type": "boolean",
"description": "Shows if the price is hidden on documents.",
"example": false
},
"ageRating": {
"type": "string",
"nullable": true,
"description": "Shows if the product has an age rating. Currently only used for the shipping service provider DHL.",
"example": "12+"
},
"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": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
}
},
"description": "Shows the name of the product unit.",
"example": {
"name": "kilogram"
}
},
"textsAndDescriptions": {
"type": "object",
"description": "Contains localized text and descriptions for the product.",
"properties": {
"inCatalog": {
"type": "boolean",
"description": "Indicates if the product is included in the catalog.",
"example": true
},
"primaryLanguage": {
"type": "object",
"description": "Texts and descriptions in the primary language.",
"properties": {
"name": {
"type": "string",
"description": "Product name.",
"example": "Product One"
},
"shortDescription": {
"type": "string",
"nullable": true,
"description": "Short description of the product.",
"example": "Compact and lightweight product."
},
"description": {
"type": "string",
"description": "Detailed product description.",
"nullable": true,
"example": "This is a high-quality product."
},
"shopDescription": {
"type": "string",
"description": "Shop-specific description.",
"example": "Perfect for daily use."
},
"metaTitle": {
"type": "string",
"description": "SEO meta title.",
"example": "Best Product for Everyday Use"
},
"metaDescription": {
"type": "string",
"description": "SEO meta description.",
"example": "Buy the best quality product online."
},
"metaKeywords": {
"type": "string",
"description": "SEO keywords.",
"example": "product, best quality, affordable"
},
"catalogName": {
"type": "string",
"description": "Name in the catalog.",
"example": "Premium Collection"
},
"catalogText": {
"type": "string",
"description": "Text in the catalog.",
"example": "Exclusive product from our latest collection."
}
}
},
"english": {
"type": "object",
"description": "Texts and descriptions in English.",
"properties": {
"name": {
"type": "string",
"description": "Product name in English.",
"example": "Product One"
},
"shortDescription": {
"type": "string",
"description": "Short description in English.",
"example": "Compact and lightweight product."
},
"description": {
"type": "string",
"description": "Detailed product description.",
"example": "High-quality product for all needs."
},
"shopDescription": {
"type": "string",
"description": "Shop-specific description.",
"example": "Great for everyday use."
},
"metaTitle": {
"type": "string",
"description": "SEO meta title.",
"example": "Top-Rated Product Online"
},
"metaDescription": {
"type": "string",
"description": "SEO meta description.",
"example": "Shop the best product at the best price."
},
"metaKeywords": {
"type": "string",
"description": "SEO keywords.",
"example": "best product, top quality, shop online"
},
"catalogName": {
"type": "string",
"description": "Catalog name in English.",
"example": "Exclusive Range"
},
"catalogText": {
"type": "string",
"description": "Catalog text in English.",
"example": "Premium product from our latest lineup."
}
}
}
},
"example": {
"inCatalog": true,
"primaryLanguage": {
"name": "Produkt eins",
"shortDescription": "Kurze Beschreibung des Produkts.",
"description": "Dies ist eine detaillierte Produktbeschreibung.",
"shopDescription": "Verkaufsbeschreibung für den Shop.",
"metaTitle": "Produkt SEO-Titel",
"metaDescription": "Meta-Beschreibung für das Produkt.",
"metaKeywords": "Produkt, SEO, Keywords",
"catalogName": "Produktkatalogname",
"catalogText": "Detaillierter Katalogtext für das Produkt."
},
"english": {
"name": "Product One",
"shortDescription": "Short description of the product.",
"description": "This is a detailed product description.",
"shopDescription": "Shop description for the product.",
"metaTitle": "Product SEO Title",
"metaDescription": "Meta description for the product.",
"metaKeywords": "product, SEO, keywords",
"catalogName": "Product Catalog Name",
"catalogText": "Detailed catalog text for the product."
}
}
},
"measurements": {
"x-description-missing": true,
"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"
}
}
},
"isStockItem": {
"type": "boolean",
"description": "Shows if the product is a stock item.",
"example": true
},
"isStockTakingDisabled": {
"type": "boolean",
"description": "Shows if the product is used for stock taking.",
"example": false
},
"hideJustInTimeItemsOnDocuments": {
"type": "boolean",
"description": "Shows if the just in time items of the parts list are visible on documents.",
"example": true
},
"isDisabled": {
"type": "boolean",
"description": "Shows if the product is locked.",
"example": false
},
"disabledReason": {
"type": "string",
"nullable": true,
"description": "Shows the reason why the product is locked when clicking into the product.",
"example": "Out of stock"
},
"salesTax": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
],
"description": "Selection of three possible values for the sales tax of the product.",
"example": "standard"
},
"shopPriceDisplay": {
"type": "string",
"format": "float",
"nullable": true,
"description": "Only used by some online shops. For more information have a look into our handbook.",
"example": "19.99"
},
"ean": {
"type": "string",
"nullable": true,
"description": "EAN of the product.",
"example": "1234567890123"
},
"manufacturerName": {
"type": "string",
"nullable": true,
"description": "Name of the manufacturer.",
"example": "Test Corp"
},
"manufacturerNumber": {
"type": "string",
"nullable": true,
"description": "Product number at the manufacturer.",
"example": "MN-98765"
},
"customsTariffNumber": {
"type": "string",
"nullable": true,
"description": "Customs tariff number of the product.",
"example": "1234.56.78"
},
"regionOfOrigin": {
"type": "string",
"description": "Region where the product originates from.",
"example": "04"
},
"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
},
"discount": {
"x-description-missing": true,
"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": false
},
"discountPercentage": {
"type": "number",
"format": "float",
"description": "Shows 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."
},
"stockTakingValue": {
"type": "number",
"format": "float",
"description": "Shows the stock taking value for stock taking."
}
},
"example": {
"hasStockTakingValue": true,
"stockTakingValue": 100.75
}
},
"calculatedPurchasePrice": {
"type": "object",
"additionalProperties": false,
"description": "Contains settings for the calculated purchase price.",
"properties": {
"hasCalculatedPurchasePrice": {
"type": "boolean",
"description": "Shows if the calculatedPurchasePrice should be used."
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
},
"example": {
"hasCalculatedPurchasePrice": false,
"price": {
"amount": "13.37",
"currency": "EUR"
}
}
},
"purchasePriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"purchasePriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceNet": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"salesPriceGross": {
"description": "Optional Money object with amount and currency",
"type": "object",
"nullable": true,
"additionalProperties": false,
"example": {
"amount": "13.37",
"currency": "EUR"
},
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"stockStats": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"purchasedCount": {
"type": "string",
"format": "float",
"nullable": true
},
"totalCount": {
"type": "string",
"format": "float",
"nullable": true
},
"availableCount": {
"type": "string",
"format": "float",
"nullable": true
},
"inProductionCount": {
"type": "string",
"format": "float",
"nullable": true
}
},
"example": {
"purchasedCount": "100.5",
"totalCount": "500.75",
"availableCount": "300.25",
"inProductionCount": "50.0"
}
},
"freeFields": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
},
"value": {
"type": "string"
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+"
},
"key": {
"x-description-missing": true,
"type": "string"
},
"name": {
"x-description-missing": true,
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"selectedOptions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"sort": {
"type": "integer"
}
}
}
}
}
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"options": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
},
"isVariant": {
"description": "Shows if the product is a variant from another product.",
"type": "boolean",
"nullable": true,
"example": true
},
"variantOf": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a parent product",
"nullable": true,
"example": {
"id": "parent-product-98765"
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the product was updated.",
"example": "2023-09-23T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"example": {
"data": [
{
"id": "2",
"name": "Coca Cola"
},
{
"id": "4",
"name": "beer"
},
{
"id": "5",
"name": "mate"
}
],
"extra": {
"totalCount": 53841,
"page": {
"number": 1,
"size": 3
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsCategories": {
"get": {
"tags": [
"Product Category"
],
"operationId": "productCategory.list",
"summary": "Lists available products categories",
"description": "Lists all available products categories.",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Name of the product category",
"example": "Clothing"
},
"parent": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
}
}
}
}
}
},
"examples": {
"Lists all product categories": {
"value": {
"data": [
{
"id": "5",
"name": "Candy",
"parent": {
"id": "3",
"name": "Food"
}
},
{
"id": "3",
"name": "Food",
"parent": null
},
{
"id": "4",
"name": "Gardening",
"parent": null
},
{
"id": "6",
"name": "Plants",
"parent": {
"id": "4",
"name": "Gardening"
}
},
{
"id": "8",
"name": "Repair",
"parent": {
"id": "2",
"name": "Services"
}
},
{
"id": "2",
"name": "Services",
"parent": null
},
{
"id": "7",
"name": "Tools",
"parent": {
"id": "4",
"name": "Gardening"
}
}
]
}
}
}
},
"application/vnd.xentral.hierarchy+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Name of the product category",
"example": "Clothing"
},
"parent": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"children": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"parent": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"children": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"parent": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"children": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"parent": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"children": {
"type": "array",
"items": {
"type": "object",
"description": "Categories nested indefinitely."
}
}
}
}
}
}
}
}
}
}
}
}
},
"description": "Nested categories."
}
}
},
"examples": {
"Lists all product categories in hierarchical order": {
"value": {
"data": [
{
"id": "3",
"name": "Food",
"parent": null,
"children": [
{
"id": "5",
"name": "Candy",
"parent": {
"id": "3",
"name": "Food"
},
"children": []
}
]
},
{
"id": "4",
"name": "Gardening",
"parent": null,
"children": [
{
"id": "6",
"name": "Plants",
"parent": {
"id": "4",
"name": "Gardening"
},
"children": []
},
{
"id": "7",
"name": "Tools",
"parent": {
"id": "4",
"name": "Gardening"
},
"children": []
}
]
},
{
"id": "2",
"name": "Services",
"parent": null,
"children": [
{
"id": "8",
"name": "Repair",
"parent": {
"id": "2",
"name": "Services"
},
"children": []
}
]
}
]
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Product Category"
],
"operationId": "productCategory.create",
"summary": "Create new product category",
"description": "Creates a new product category.",
"parameters": [],
"requestBody": {
"description": "Product category create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"parent": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"examples": {
"create ProductCategory payload": {
"value": {
"name": "Computers",
"parent": {
"id": "1024"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsCategories/{id}": {
"get": {
"tags": [
"Product Category"
],
"operationId": "productCategory.view",
"summary": "View a single product category",
"description": "Returns details of a single product category",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"example": {
"id": "3",
"name": "Clothing",
"parent": null
},
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Name of the product category",
"example": "Clothing"
},
"parent": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
}
}
}
}
},
"examples": {
"Shows a single product category": {
"value": {
"data": {
"id": "3",
"name": "Food",
"parent": null
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product Category"
],
"operationId": "productCategory.update",
"summary": "Update a single product category",
"description": "Updates details of a single product category",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Product category update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"parent": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"examples": {
"create ProductCategory payload": {
"value": {
"name": "Computers",
"parent": {
"id": "1024"
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product Category"
],
"operationId": "productCategory.delete",
"summary": "Delete a single product category",
"description": "Deletes a single product",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsFreeFields": {
"get": {
"tags": [
"Product Free Field"
],
"operationId": "productFreeField.list",
"summary": "list of information about product free fields from company settings",
"description": "Returns a list of information about product free fields from the company settings",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"name"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"x-description-missing": true,
"example": {
"id": "1",
"name": "Net Weight"
},
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true,
"description": "Name of the product free field",
"example": "Net Weight"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all product free fields": {
"value": {
"data": [
{
"id": "1",
"name": "Other free field name 1"
},
{
"id": "2",
"name": "Other free field name 2"
},
{
"id": "3",
"name": "Other free field name 3"
},
{
"id": "4",
"name": "Other free field name 4"
},
{
"id": "5",
"name": "Other free field name 5"
},
{
"id": "6",
"name": "Other free field name 6"
},
{
"id": "7",
"name": "Other free field name 7"
},
{
"id": "8",
"name": "Other free field name 8"
},
{
"id": "9",
"name": "Other free field name 9"
},
{
"id": "10",
"name": "Other free field name 10"
}
],
"extra": {
"totalCount": 40,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product Free Field"
],
"operationId": "productFreeField.updateMultiple",
"summary": "update information of multiple product free fields from company settings",
"description": "Updates details of multiple product free fields from company settings",
"requestBody": {
"description": "Product free field update multiple request payload",
"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 free field",
"example": "Net Weight"
}
}
}
},
"examples": {
"Update multiple product free fields": {
"value": [
{
"id": "5",
"name": "My new product free field name"
},
{
"id": "8",
"name": "My other new product free field name"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsFreeFields/{id}": {
"get": {
"tags": [
"Product Free Field"
],
"operationId": "productFreeField.view",
"summary": "view information about a single product free field from company settings",
"description": "Returns details of a single product free field from company settings",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"example": {
"id": "1",
"name": "Net Weight"
},
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true,
"description": "Name of the product free field",
"example": "Net Weight"
}
}
}
}
},
"examples": {
"Shows a single product free field": {
"value": {
"data": {
"id": "1",
"name": "Other free field name 1"
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product Free Field"
],
"operationId": "productFreeField.update",
"summary": "update information about a single product free field from company settings",
"description": "Updates details of a single product free field from company settings",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Product free field update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the product free field"
}
}
},
"examples": {
"Update product free field": {
"value": {
"name": "My new product free field name"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productMedia": {
"post": {
"tags": [
"Product Media"
],
"operationId": "productMedia.create",
"summary": "Create product media",
"description": "Creates new product media",
"requestBody": {
"description": "Product media create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"title": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
},
"keyword": {
"type": "string",
"enum": [
"defaultImage",
"printImage",
"labelImage",
"otherImage"
]
},
"fileName": {
"type": "string"
},
"fileContent": {
"type": "string",
"description": "A base64 encoded image. Supported image formats JPEG, PNG",
"format": "byte"
}
}
},
"examples": {
"Create product media": {
"value": {
"product": {
"id": "52"
},
"title": "Product image",
"description": "Product image",
"keyword": "defaultImage",
"fileName": "sample.png",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product Media"
],
"operationId": "productMedia.updateMultiple",
"summary": "Update multiple product media",
"description": "Updates multiple product media",
"requestBody": {
"description": "Product media update multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"title": {
"type": "string",
"nullable": true,
"example": "Vitra Eames Plastic Chair",
"description": "The title of the media"
},
"description": {
"type": "string",
"nullable": true,
"example": "Front picture of the Vitra Eames Plastic Chair",
"description": "The description of the media"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"enum": [
"defaultImage",
"printImage",
"labelImage",
"otherImage"
],
"example": "defaultImage"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"nullable": true,
"example": 1
}
}
}
},
"examples": {
"Update multiple product media": {
"value": [
{
"id": "52",
"title": "Product image",
"description": "Product image",
"keyword": "defaultImage",
"sort": 1
},
{
"id": "53",
"title": "Second product image",
"description": "Product image",
"sort": 2
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product Media"
],
"operationId": "productMedia.deleteMultiple",
"summary": "Delete multiple product media",
"description": "Deletes a multiple product media",
"requestBody": {
"description": "Product media delete multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"examples": {
"Delete multiple product media": {
"value": [
{
"id": "52"
},
{
"id": "53"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Product Media"
],
"operationId": "productMedia.list",
"summary": "List product media",
"description": "Returns list of a product media",
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"product"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"title": {
"type": "string",
"nullable": true,
"description": "The title of the media",
"example": "Vitra Eames Plastic Chair"
},
"description": {
"description": "The description of the media",
"type": "string",
"nullable": true,
"example": "Front picture of the Vitra Eames Plastic Chair"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"enum": [
"defaultImage",
"printImage",
"defaultGroupImage",
"labelImage",
"otherImage",
"dataSheet",
"certificateAttachment"
],
"example": "defaultImage"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"currentVersion": {
"x-description-missing": true,
"example": {
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"x-description-missing": true,
"type": "integer",
"example": 3
},
"url": {
"x-description-missing": true,
"type": "string",
"example": "/api/productMedia/5/versions/3"
},
"remark": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Initial Version"
},
"filename": {
"x-description-missing": true,
"type": "string",
"example": "test.png"
},
"size": {
"description": "The size of the image in bytes",
"type": "integer",
"example": 12345
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-02-16T14:32:41+02:00",
"description": "The date and time when the version was last updated."
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-02-16T14:32:41+02:00",
"description": "The date and time when the media was last updated."
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all product media from all products": {
"value": {
"data": [
{
"id": "5",
"product": {
"id": "1"
},
"title": "",
"description": "",
"keyword": "defaultImage",
"sort": 1,
"currentVersion": {
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"updatedAt": "2024-02-16T14:32:41+02:00"
},
{
"id": "8",
"product": {
"id": "2"
},
"title": "",
"description": "",
"keyword": "defaultGroupImage",
"sort": 1,
"currentVersion": {
"id": "20",
"version": 2,
"url": "/api/productMedia/8/versions/2",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"updatedAt": "2024-02-16T14:32:41+02:00"
}
],
"extra": {
"page": {
"number": 1,
"size": 10
},
"totalCount": 2
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productMedia/{id}": {
"get": {
"tags": [
"Product Media"
],
"operationId": "productMedia.view",
"summary": "View product media",
"description": "Returns details of a single product media",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"example": {
"id": "5",
"product": {
"id": "1"
},
"title": "Vitra Eames Plastic Chair",
"description": "Front picture of the Vitra Eames Plastic Chair",
"keyword": "defaultImage",
"sort": 1,
"versions": [
{
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
}
],
"currentVersion": {
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Vitra Eames Plastic Chair"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Front picture of the Vitra Eames Plastic Chair"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"enum": [
"defaultImage",
"printImage",
"defaultGroupImage",
"labelImage",
"otherImage",
"dataSheet",
"certificateAttachment"
],
"example": "defaultImage"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"versions": {
"type": "array",
"items": {
"x-description-missing": true,
"example": {
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"x-description-missing": true,
"type": "integer",
"example": 3
},
"url": {
"x-description-missing": true,
"type": "string",
"example": "/api/productMedia/5/versions/3"
},
"remark": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Initial Version"
},
"filename": {
"x-description-missing": true,
"type": "string",
"example": "test.png"
},
"size": {
"description": "The size of the image in bytes",
"type": "integer",
"example": 12345
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-02-16T14:32:41+02:00",
"description": "The date and time when the version was last updated."
}
}
}
},
"currentVersion": {
"x-description-missing": true,
"example": {
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"x-description-missing": true,
"type": "integer",
"example": 3
},
"url": {
"x-description-missing": true,
"type": "string",
"example": "/api/productMedia/5/versions/3"
},
"remark": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Initial Version"
},
"filename": {
"x-description-missing": true,
"type": "string",
"example": "test.png"
},
"size": {
"description": "The size of the image in bytes",
"type": "integer",
"example": 12345
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-02-16T14:32:41+02:00",
"description": "The date and time when the version was last updated."
}
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2024-02-16T14:32:41+02:00"
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Shows detailed information for a given product media": {
"value": {
"data": {
"id": "6",
"product": {
"id": "1"
},
"title": "",
"description": "",
"keyword": "printImage",
"sort": 2,
"versions": [
{
"id": "15",
"version": 1,
"url": "/api/productMedia/6/versions/1",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
{
"id": "16",
"version": 2,
"url": "/api/productMedia/6/versions/2",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
}
],
"currentVersion": {
"id": "16",
"version": 2,
"url": "/api/productMedia/6/versions/2",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"updatedAt": "2024-02-16T14:32:41+02:00"
}
}
}
}
},
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productMedia/{id}/versions": {
"post": {
"tags": [
"Product Media"
],
"operationId": "productMedia.createVersion",
"summary": "Create product media version",
"description": "Creates new product media version",
"requestBody": {
"description": "Product media version create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": true
},
"remark": {
"type": "string",
"nullable": true
},
"fileName": {
"type": "string"
},
"fileContent": {
"type": "string",
"description": "A base64 encoded image. Supported image formats JPEG, PNG",
"format": "byte"
}
}
},
"examples": {
"Create product media version": {
"value": {
"name": "Version 1",
"remark": "Version 1",
"fileName": "sample.png",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="
}
}
}
}
}
},
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productMedia/{id}/versions/{version}": {
"get": {
"tags": [
"Product Media"
],
"operationId": "productMedia.viewVersion",
"summary": "View product media version",
"description": "Returns content or details of a single product media",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "path",
"name": "version",
"required": true,
"description": "The resource's version.",
"schema": {
"type": "string",
"pattern": "\\d+"
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"example": {
"id": "17",
"version": 3,
"url": "/api/productMedia/5/versions/3",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"x-description-missing": true,
"type": "integer",
"example": 3
},
"url": {
"x-description-missing": true,
"type": "string",
"example": "/api/productMedia/5/versions/3"
},
"remark": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Initial Version"
},
"filename": {
"x-description-missing": true,
"type": "string",
"example": "test.png"
},
"size": {
"description": "The size of the image in bytes",
"type": "integer",
"example": 12345
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-02-16T14:32:41+02:00",
"description": "The date and time when the version was last updated."
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Shows information about a single product media version": {
"value": {
"data": {
"id": "14",
"version": 2,
"url": "/api/productMedia/5/versions/2",
"remark": "Initial Version",
"filename": "test.png",
"size": 12345,
"updatedAt": "2024-02-16T14:32:41+02:00"
}
}
}
}
},
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product Media"
],
"operationId": "productMedia.updateVersion",
"summary": "Updates product media version",
"description": "Updates product media",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "path",
"name": "version",
"required": true,
"description": "The resource's version.",
"schema": {
"type": "string",
"pattern": "\\d+"
}
}
],
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"forceCurrentVersion": {
"oneOf": [
{
"type": "boolean",
"nullable": true
},
{
"type": "number",
"nullable": true,
"enum": [
0,
1
]
},
{
"type": "string",
"nullable": true,
"enum": [
"true",
"false",
"True",
"False",
"TRUE",
"FALSE"
]
}
]
}
}
},
"examples": {
"Update product media version": {
"value": {
"forceCurrentVersion": true
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product Media"
],
"operationId": "productMedia.deleteVersion",
"summary": "Delete product media version",
"description": "Deletes a single product media version",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "path",
"name": "version",
"required": true,
"description": "The resource's version.",
"schema": {
"type": "string",
"pattern": "\\d+"
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsProperties": {
"post": {
"tags": [
"Product Property"
],
"operationId": "productProperty.create",
"summary": "Create products properties",
"description": "Creates new products properties.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Name of the product property.",
"example": "Color"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
}
},
"examples": {
"Create product property": {
"value": [
{
"name": "Color",
"project": {
"id": "1"
}
}
]
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Product Property"
],
"operationId": "productProperty.list",
"summary": "List products properties",
"description": "Lists available products properties.",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Name of the product property.",
"example": "Color"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
}
}
}
},
"examples": {
"Lists all product properties": {
"value": {
"data": [
{
"id": "1",
"name": "Color",
"project": {
"id": "0"
}
}
]
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product Property"
],
"operationId": "productProperty.updateMultiple",
"summary": "Update multiple products properties",
"description": "Updates multiple products properties.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"minLength": 1,
"description": "Name of the product property.",
"example": "Color"
}
}
}
},
"examples": {
"Update multiple product properties": {
"value": [
{
"id": "4",
"name": "Color"
},
{
"id": "7",
"name": "Size"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product Property"
],
"operationId": "productProperty.deleteMultiple",
"summary": "Delete multiple products properties",
"description": "Deletes multiple products properties.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"examples": {
"Delete multiple product properties": {
"value": [
{
"id": "4"
},
{
"id": "7"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsTags": {
"get": {
"tags": [
"Product Tag"
],
"operationId": "productTag.list",
"summary": "List products tags",
"description": "Returns a collection with all products tags.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"name",
"id"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name",
"number",
"description",
"project",
"purchasePriceNet",
"purchasePriceGross",
"salesPriceNet",
"salesPriceGross",
"ean",
"manufacturerName",
"manufacturerNumber",
"customsTariffNumber"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all product tags": {
"value": {
"data": [
{
"id": "1",
"name": "Done",
"color": "339966"
},
{
"id": "5",
"name": "Prio",
"color": "ff00ff"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Product Tag"
],
"operationId": "productTag.create",
"summary": "Create new product tag",
"description": "Creates a new product tag.",
"parameters": [],
"requestBody": {
"description": "Product tag create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"pattern": "^[a-z0-9_-]{3,24}$"
},
"name": {
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
},
"examples": {
"Create product tag": {
"value": {
"key": "new-name",
"name": "New name",
"color": "#ff0000"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsTags/{id}": {
"patch": {
"tags": [
"Product Tag"
],
"operationId": "productTag.update",
"summary": "Update a single product tag",
"description": "Updates details of a single product tag",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Product tag update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
},
"examples": {
"Update product tag": {
"value": {
"name": "New name",
"color": "#ff0000"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsMerchandiseGroups": {
"get": {
"tags": [
"Product Merchandise Group"
],
"operationId": "productMerchandiseGroup.list",
"summary": "Lists available products merchandise groups",
"description": "Lists all available products merchandise groups.",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Shows the name of the merchandise group.",
"example": "Merchandise"
},
"project": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"lastUsedProductNumber": {
"type": "string",
"description": "Shows the last used product number used by the merchandise group.",
"example": "1000"
},
"useMainProductNumberRange": {
"type": "boolean",
"description": "Shows if the product number is taken from the main product number range or not.",
"example": true
},
"revenue": {
"description": "How products in this merchandise group are contributing to revenues on your chart of accounts.",
"example": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"intraCommunityEuTaxText": "VAT free intra-community supply",
"euStandard": "0",
"euReduced": "0",
"export": "0",
"exportTaxText": "VAT free export"
},
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string",
"description": "Shows the domestic standard tax rate of the Merchandise Group.",
"example": "19"
},
"domesticReduced": {
"type": "string",
"description": "Shows the domestic reduced tax rate of the Merchandise Group.",
"example": "7"
},
"domesticFree": {
"type": "string",
"description": "Shows the domestic free (tax free) tax rate of the Merchandise Group.",
"example": "0"
},
"intraCommunityEu": {
"type": "string",
"description": "Shows the intra-community EU tax rate of the Merchandise Group.",
"example": "21"
},
"intraCommunityEuTaxText": {
"type": "string",
"description": "A description for the intra-community EU tax rate of the Merchandise Group.",
"example": "Tax rate in the european union"
},
"euStandard": {
"type": "string",
"description": "Shows the EU standard tax rate of the Merchandise Group.",
"example": "19"
},
"euReduced": {
"type": "string",
"description": "Shows the EU reduced tax rate of the Merchandise Group.",
"example": "7"
},
"export": {
"type": "string",
"description": "Shows the export tax rate of the Merchandise Group.",
"example": "21"
},
"exportTaxText": {
"type": "string",
"description": "A description for the export tax rate of the Merchandise Group.",
"example": "Sales tax applied for export products"
}
}
},
"expenses": {
"description": "How products in this merchandise group are contributing to expenses on your chart of accounts.",
"example": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"euStandard": "0",
"euReduced": "0",
"import": "0"
},
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string",
"description": "Shows the domestic standard tax rate of the Merchandise Group.",
"example": "19"
},
"domesticReduced": {
"type": "string",
"description": "Shows the domestic reduced tax rate of the Merchandise Group.",
"example": "7"
},
"domesticFree": {
"type": "string",
"description": "Shows the domestic free (tax free) tax rate of the Merchandise Group.",
"example": "0"
},
"intraCommunityEu": {
"type": "string",
"description": "Shows the intra-community EU tax rate of the Merchandise Group.",
"example": "21"
},
"euStandard": {
"type": "string",
"description": "Shows the EU standard tax rate of the Merchandise Group.",
"example": "19"
},
"euReduced": {
"type": "string",
"description": "Shows the EU reduced tax rate of the Merchandise Group.",
"example": "7"
},
"import": {
"type": "string",
"description": "Shows the import tax rate of the Merchandise Group.",
"example": "21"
}
}
}
}
}
}
}
},
"examples": {
"Lists all product merchandise groups": {
"value": {
"data": [
{
"id": "2",
"name": "Dienstleistungen",
"project": {
"id": "1",
"name": "Standard Projekt"
},
"lastUsedProductNumber": "",
"useMainProductNumberRange": true,
"revenue": {
"domesticStandard": "",
"domesticReduced": "",
"domesticFree": "",
"intraCommunityEu": "",
"intraCommunityEuTaxText": "",
"euStandard": "",
"euReduced": "",
"export": "",
"exportTaxText": ""
},
"expenses": {
"domesticStandard": "",
"domesticReduced": "",
"domesticFree": "",
"intraCommunityEu": "",
"euStandard": "",
"euReduced": "",
"import": ""
}
},
{
"id": "5",
"name": "Fremdleistung",
"project": null,
"lastUsedProductNumber": "F1100",
"useMainProductNumberRange": false,
"revenue": {
"domesticStandard": "",
"domesticReduced": "",
"domesticFree": "",
"intraCommunityEu": "",
"intraCommunityEuTaxText": "",
"euStandard": "",
"euReduced": "",
"export": "",
"exportTaxText": ""
},
"expenses": {
"domesticStandard": "",
"domesticReduced": "",
"domesticFree": "",
"intraCommunityEu": "",
"euStandard": "",
"euReduced": "",
"import": ""
}
}
]
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Product Merchandise Group"
],
"operationId": "productMerchandiseGroup.create",
"summary": "Create new product merchandise group",
"description": "Creates a new product merchandise group.",
"parameters": [],
"requestBody": {
"description": "Product merchandise group create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Sets the name of the merchandise group."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"lastUsedProductNumber": {
"type": "string",
"description": "Sets the last used product number by the merchandise group."
},
"useMainProductNumberRange": {
"type": "boolean",
"description": "Determines if the product number should be taken from the main product number range or not."
},
"revenue": {
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string"
},
"domesticReduced": {
"type": "string"
},
"domesticFree": {
"type": "string"
},
"intraCommunityEu": {
"type": "string"
},
"intraCommunityEuTaxText": {
"type": "string"
},
"euStandard": {
"type": "string"
},
"euReduced": {
"type": "string"
},
"export": {
"type": "string"
},
"exportTaxText": {
"type": "string"
}
}
},
"expenses": {
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string"
},
"domesticReduced": {
"type": "string"
},
"domesticFree": {
"type": "string"
},
"intraCommunityEu": {
"type": "string"
},
"euStandard": {
"type": "string"
},
"euReduced": {
"type": "string"
},
"import": {
"type": "string"
}
}
}
}
},
"examples": {
"Create product merchandise group": {
"value": {
"name": "My Merchandise Group",
"project": {
"id": "1"
},
"lastUsedProductNumber": "1000",
"useMainProductNumberRange": true,
"revenue": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"intraCommunityEuTaxText": "VAT free intra-community supply",
"euStandard": "0",
"euReduced": "0",
"export": "0",
"exportTaxText": "VAT free export"
},
"expenses": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"euStandard": "0",
"euReduced": "0",
"import": "0"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productsMerchandiseGroups/{id}": {
"get": {
"tags": [
"Product Merchandise Group"
],
"operationId": "productMerchandiseGroup.view",
"summary": "View a single product merchandise group",
"description": "Returns details of a single product merchandise group",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"example": {
"id": "1",
"name": "Handelsware (100000)",
"project": null,
"lastUsedProductNumber": "100000",
"useMainProductNumberRange": false,
"revenue": {
"domesticStandard": "21",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "21",
"intraCommunityEuTaxText": "Tax rate in the european union",
"euStandard": "21",
"euReduced": "7",
"export": "21",
"exportTaxText": "Sales tax applied for export products"
},
"expenses": {
"domesticStandard": "21",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "21",
"euStandard": "21",
"euReduced": "7",
"import": "21"
}
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Shows the name of the merchandise group.",
"example": "Merchandise"
},
"project": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"lastUsedProductNumber": {
"type": "string",
"description": "Shows the last used product number by the merchandise group.",
"example": "1000"
},
"useMainProductNumberRange": {
"type": "boolean",
"description": "Shows if the product number is taken from the main product number range or not.",
"example": true
},
"revenue": {
"description": "How products in this merchandise group are contributing to revenues on your chart of accounts.",
"example": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"intraCommunityEuTaxText": "VAT free intra-community supply",
"euStandard": "0",
"euReduced": "0",
"export": "0",
"exportTaxText": "VAT free export"
},
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string"
},
"domesticReduced": {
"type": "string"
},
"domesticFree": {
"type": "string"
},
"intraCommunityEu": {
"type": "string"
},
"intraCommunityEuTaxText": {
"type": "string"
},
"euStandard": {
"type": "string"
},
"euReduced": {
"type": "string"
},
"export": {
"type": "string"
},
"exportTaxText": {
"type": "string"
}
}
},
"expenses": {
"description": "How products in this merchandise group are contributing to expenses on your chart of accounts.",
"example": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"euStandard": "0",
"euReduced": "0",
"import": "0"
},
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string"
},
"domesticReduced": {
"type": "string"
},
"domesticFree": {
"type": "string"
},
"intraCommunityEu": {
"type": "string"
},
"euStandard": {
"type": "string"
},
"euReduced": {
"type": "string"
},
"import": {
"type": "string"
}
}
}
}
}
}
},
"examples": {
"Shows a single product merchandise group": {
"value": {
"data": {
"id": "1",
"name": "Handelsware (100000)",
"project": null,
"lastUsedProductNumber": "100000",
"useMainProductNumberRange": false,
"revenue": {
"domesticStandard": "",
"domesticReduced": "",
"domesticFree": "",
"intraCommunityEu": "",
"intraCommunityEuTaxText": "",
"euStandard": "",
"euReduced": "",
"export": "",
"exportTaxText": ""
},
"expenses": {
"domesticStandard": "",
"domesticReduced": "",
"domesticFree": "",
"intraCommunityEu": "",
"euStandard": "",
"euReduced": "",
"import": ""
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Product Merchandise Group"
],
"operationId": "productMerchandiseGroup.update",
"summary": "Update a single product merchandise group",
"description": "Updates details of a single product merchandise group",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Product merchandise group update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Sets the name of the merchandise group."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"lastUsedProductNumber": {
"type": "string",
"description": "Sets the last used product number by the merchandise group."
},
"useMainProductNumberRange": {
"type": "boolean",
"description": "Determines if the product number should be taken from the main product number range or not."
},
"revenue": {
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string"
},
"domesticReduced": {
"type": "string"
},
"domesticFree": {
"type": "string"
},
"intraCommunityEu": {
"type": "string"
},
"intraCommunityEuTaxText": {
"type": "string"
},
"euStandard": {
"type": "string"
},
"euReduced": {
"type": "string"
},
"export": {
"type": "string"
},
"exportTaxText": {
"type": "string"
}
}
},
"expenses": {
"type": "object",
"additionalProperties": false,
"properties": {
"domesticStandard": {
"type": "string"
},
"domesticReduced": {
"type": "string"
},
"domesticFree": {
"type": "string"
},
"intraCommunityEu": {
"type": "string"
},
"euStandard": {
"type": "string"
},
"euReduced": {
"type": "string"
},
"import": {
"type": "string"
}
}
}
}
},
"examples": {
"Update product merchandise group": {
"value": {
"name": "My Merchandise Group",
"project": {
"id": "1"
},
"lastUsedProductNumber": "1000",
"useMainProductNumberRange": true,
"revenue": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"intraCommunityEuTaxText": "VAT free intra-community supply",
"euStandard": "0",
"euReduced": "0",
"export": "0",
"exportTaxText": "VAT free export"
},
"expenses": {
"domesticStandard": "19",
"domesticReduced": "7",
"domesticFree": "0",
"intraCommunityEu": "0",
"euStandard": "0",
"euReduced": "0",
"import": "0"
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Product Merchandise Group"
],
"operationId": "productMerchandiseGroup.delete",
"summary": "Delete a single product merchandise group",
"description": "Deletes a single merchandise group",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/products/{id}/printLabel": {
"post": {
"tags": [
"Product Label"
],
"operationId": "productLabel.print",
"summary": "Print product label",
"description": "Prints a product label for the given product.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Product label print",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"quantity": {
"type": "integer"
},
"printingLabel": {
"type": "string",
"description": "The name of the Label"
},
"printer": {
"type": "string",
"description": "The name of the printer"
}
}
},
"examples": {
"Print Labels": {
"value": {
"quantity": 3,
"printingLabel": "EAN",
"printer": "Etikettendrucker"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Print product label",
"content": {
"application/json": {
"schema": {
"type": "string",
"format": "string"
}
}
}
},
"204": {
"description": "Operation completed successfully, no response body"
},
"403": {
"description": "Unable to authorize the client"
}
}
},
"get": {
"tags": [
"Product Label"
],
"operationId": "productLabel.download",
"summary": "Download product label as pdf",
"description": "Downloads a product label for the given product as pdf.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Product label download",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"quantity": {
"type": "integer"
},
"printingLabel": {
"type": "string",
"description": "The name of the Label"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Download product label",
"content": {
"application/pdf": {
"schema": {
"type": "string",
"format": "string"
}
}
}
},
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
}
}
}
},
"/api/v1/productions": {
"get": {
"tags": [
"Production"
],
"operationId": "productions.list",
"summary": "List Productions",
"description": "List Productions",
"parameters": [
{
"name": "filter",
"in": "query",
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"date",
"createdAt",
"updatedAt",
"status",
"salesOrderId",
"projectId"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan"
]
},
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
}
}
]
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"date",
"createdAt",
"updatedAt"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Productions list",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"type": "array",
"items": {
"description": "An entity of production response",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"documentNumber",
"bodyOutroduction",
"date",
"dateDelivery",
"dateProvision",
"dateProduction",
"dateProductionEnd",
"status",
"customer",
"project",
"salesOrder",
"internalDesignation",
"preferredWarehouse",
"reservationType",
"retrievalType",
"explodeSublists",
"functionalTest",
"displayWorkingStepTexts",
"createSerialNumbers",
"captureComponentSerialnumbers",
"internalComment",
"completed",
"finalRemark",
"customerCheckOk",
"depletingOk",
"partialProductionNumber",
"partialProductionOf",
"stockingOk",
"stockOk",
"log"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"type": "string",
"description": "documentNumber",
"example": "DOC-123456"
},
"bodyOutroduction": {
"type": "string",
"description": "BodyOutroduction of the production",
"example": "This is the conclusion section of the production document."
},
"date": {
"type": "string",
"format": "date",
"description": "Production Date",
"example": "2024-09-18"
},
"dateDelivery": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Production Delivery Date",
"example": "2024-09-25"
},
"dateProvision": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Provision Date",
"example": "2024-09-20"
},
"dateProduction": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Production Date",
"example": "2024-09-21"
},
"dateProductionEnd": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Production End Date",
"example": "2024-09-22"
},
"status": {
"type": "string",
"description": "Production Status",
"example": "In Progress"
},
"customer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Customer of the production",
"example": {
"id": "17"
}
},
"project": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Project of the production",
"example": {
"id": "17"
}
},
"salesOrder": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Sales Order of the production",
"example": {
"id": "17"
}
},
"internalDesignation": {
"type": "string",
"description": "Internal Designation of the production",
"example": "Batch A-123"
},
"preferredWarehouse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Preferred Warehouse of the production",
"example": {
"id": "17"
}
},
"reservationType": {
"type": "string",
"description": "Reservation Type of the production",
"example": "Standard"
},
"retrievalType": {
"type": "string",
"description": "Retrieval Type of the production",
"example": "Automated"
},
"explodeSublists": {
"type": "boolean",
"description": "Explode Sublists of the production",
"example": true
},
"functionalTest": {
"type": "boolean",
"description": "Functional Test of the production",
"example": true
},
"displayWorkingStepTexts": {
"type": "boolean",
"description": "Display Working Step Texts of the production",
"example": true
},
"createSerialNumbers": {
"type": "boolean",
"description": "Create Serial Numbers of the production",
"example": true
},
"captureComponentSerialnumbers": {
"type": "boolean",
"description": "Capture Component Serialnumbers of the production",
"example": true
},
"internalComment": {
"type": "string",
"description": "Internal Comment of the production",
"example": "Process is completed"
},
"completed": {
"type": "boolean",
"description": "Completed of the production",
"example": true
},
"finalRemark": {
"type": "string",
"description": "Final Remark of the production",
"example": "Production is done"
},
"customerCheckOk": {
"type": "boolean",
"description": "Customer Check Ok of the production",
"example": true
},
"depletingOk": {
"type": "boolean",
"description": "Depleting Ok of the production",
"example": true
},
"partialProductionNumber": {
"type": "integer",
"description": "Partial Production Number of the production",
"example": 121
},
"partialProductionOf": {
"type": "integer",
"description": "Partial Production of the production",
"example": 1
},
"stockingOk": {
"type": "boolean",
"description": "Stocking Ok of the production",
"example": true
},
"stockOk": {
"type": "boolean",
"description": "Stock Ok of the production",
"example": true
},
"log": {
"type": "object",
"properties": {
"createdAt": {
"type": "string",
"format": "date",
"example": "2024-09-18"
},
"createdBy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "USR123456"
},
"name": {
"type": "string",
"example": "John Doe"
}
}
}
},
"example": {
"createdAt": "2024-09-18",
"createdBy": {
"id": "USR123456",
"name": "John Doe"
}
},
"description": "log of the production"
}
},
"example": {
"id": "17",
"documentNumber": "DOC-123456",
"bodyOutroduction": "This is the conclusion section of the production document.",
"date": "2024-09-18",
"dateDelivery": "2024-09-25",
"dateProvision": "2024-09-20",
"dateProduction": "2024-09-21",
"dateProductionEnd": "2024-09-22",
"status": "In Progress",
"customer": {
"id": "17"
},
"project": {
"id": "17"
},
"salesOrder": {
"id": "17"
},
"internalDesignation": "Batch A-123",
"preferredWarehouse": {
"id": "17"
},
"reservationType": "Standard",
"retrievalType": "Automated",
"explodeSublists": true,
"functionalTest": true,
"displayWorkingStepTexts": true,
"createSerialNumbers": true,
"captureComponentSerialnumbers": true,
"internalComment": "Process is completed",
"completed": true,
"finalRemark": "Production is done",
"customerCheckOk": true,
"depletingOk": true,
"partialProductionNumber": 121,
"partialProductionOf": 1,
"stockingOk": true,
"stockOk": true,
"log": {
"createdAt": "2024-09-18",
"createdBy": {
"id": "USR123456",
"name": "John Doe"
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
},
"example": {
"data": [
{
"id": "1",
"documentNumber": "",
"bodyOutroduction": "",
"date": "2024-03-13",
"dateDelivery": null,
"dateProvision": null,
"dateProduction": null,
"dateProductionEnd": null,
"status": "released",
"customer": null,
"project": {
"id": "1"
},
"salesOrder": null,
"internalDesignation": "",
"preferredWarehouse": null,
"reservationType": "abschluss",
"retrievalType": "sammel",
"explodeSublists": true,
"functionalTest": false,
"displayWorkingStepTexts": true,
"createSerialNumbers": true,
"captureComponentSerialnumbers": false,
"internalComment": "",
"completed": false,
"finalRemark": "",
"customerCheckOk": true,
"depletingOk": false,
"partialProductionNumber": 0,
"partialProductionOf": 0,
"stockingOk": false,
"stockOk": true,
"log": {
"createdAt": "2024-03-13",
"createdBy": {
"id": "1",
"name": "admin"
}
}
},
{
"id": "2",
"documentNumber": "2024-400000",
"bodyOutroduction": "bodyOutroduction",
"date": "2024-03-14",
"dateDelivery": "2024-03-15",
"dateProvision": null,
"dateProduction": null,
"dateProductionEnd": null,
"status": "released",
"customer": {
"id": "2"
},
"project": {
"id": "1"
},
"salesOrder": {
"id": "2"
},
"internalDesignation": "",
"preferredWarehouse": {
"id": "12"
},
"reservationType": "abschluss",
"retrievalType": "sammel",
"explodeSublists": true,
"functionalTest": false,
"displayWorkingStepTexts": true,
"createSerialNumbers": true,
"captureComponentSerialnumbers": false,
"internalComment": "This is internal comment ",
"completed": false,
"finalRemark": "",
"customerCheckOk": true,
"depletingOk": false,
"partialProductionNumber": 0,
"partialProductionOf": 0,
"stockingOk": false,
"stockOk": true,
"log": {
"createdAt": "2024-03-14",
"createdBy": {
"id": "1",
"name": "admin"
}
}
}
],
"extra": {
"totalCount": 20,
"page": {
"number": 1,
"size": 2
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/productions/{id}": {
"get": {
"tags": [
"Production"
],
"operationId": "productions.view",
"summary": "View Production",
"description": "View a production",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Productions view based on id",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "An entity of production response",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"documentNumber",
"bodyOutroduction",
"date",
"dateDelivery",
"dateProvision",
"dateProduction",
"dateProductionEnd",
"status",
"customer",
"project",
"salesOrder",
"internalDesignation",
"preferredWarehouse",
"reservationType",
"retrievalType",
"explodeSublists",
"functionalTest",
"displayWorkingStepTexts",
"createSerialNumbers",
"captureComponentSerialnumbers",
"internalComment",
"completed",
"finalRemark",
"customerCheckOk",
"depletingOk",
"partialProductionNumber",
"partialProductionOf",
"stockingOk",
"stockOk",
"log"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"type": "string",
"description": "documentNumber",
"example": "DOC-123456"
},
"bodyOutroduction": {
"type": "string",
"description": "BodyOutroduction of the production",
"example": "This is the conclusion section of the production document."
},
"date": {
"type": "string",
"format": "date",
"description": "Production Date",
"example": "2024-09-18"
},
"dateDelivery": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Production Delivery Date",
"example": "2024-09-25"
},
"dateProvision": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Provision Date",
"example": "2024-09-20"
},
"dateProduction": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Production Date",
"example": "2024-09-21"
},
"dateProductionEnd": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Production End Date",
"example": "2024-09-22"
},
"status": {
"type": "string",
"description": "Production Status",
"example": "In Progress"
},
"customer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Customer of the production",
"example": {
"id": "17"
}
},
"project": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Project of the production",
"example": {
"id": "17"
}
},
"salesOrder": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Sales Order of the production",
"example": {
"id": "17"
}
},
"internalDesignation": {
"type": "string",
"description": "Internal Designation of the production",
"example": "Batch A-123"
},
"preferredWarehouse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"nullable": true,
"description": "Preferred Warehouse of the production",
"example": {
"id": "17"
}
},
"reservationType": {
"type": "string",
"description": "Reservation Type of the production",
"example": "Standard"
},
"retrievalType": {
"type": "string",
"description": "Retrieval Type of the production",
"example": "Automated"
},
"explodeSublists": {
"type": "boolean",
"description": "Explode Sublists of the production",
"example": true
},
"functionalTest": {
"type": "boolean",
"description": "Functional Test of the production",
"example": true
},
"displayWorkingStepTexts": {
"type": "boolean",
"description": "Display Working Step Texts of the production",
"example": true
},
"createSerialNumbers": {
"type": "boolean",
"description": "Create Serial Numbers of the production",
"example": true
},
"captureComponentSerialnumbers": {
"type": "boolean",
"description": "Capture Component Serialnumbers of the production",
"example": true
},
"internalComment": {
"type": "string",
"description": "Internal Comment of the production",
"example": "Process is completed"
},
"completed": {
"type": "boolean",
"description": "Completed of the production",
"example": true
},
"finalRemark": {
"type": "string",
"description": "Final Remark of the production",
"example": "Production is done"
},
"customerCheckOk": {
"type": "boolean",
"description": "Customer Check Ok of the production",
"example": true
},
"depletingOk": {
"type": "boolean",
"description": "Depleting Ok of the production",
"example": true
},
"partialProductionNumber": {
"type": "integer",
"description": "Partial Production Number of the production",
"example": 121
},
"partialProductionOf": {
"type": "integer",
"description": "Partial Production of the production",
"example": 1
},
"stockingOk": {
"type": "boolean",
"description": "Stocking Ok of the production",
"example": true
},
"stockOk": {
"type": "boolean",
"description": "Stock Ok of the production",
"example": true
},
"log": {
"type": "object",
"properties": {
"createdAt": {
"type": "string",
"format": "date",
"example": "2024-09-18"
},
"createdBy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "USR123456"
},
"name": {
"type": "string",
"example": "John Doe"
}
}
}
},
"example": {
"createdAt": "2024-09-18",
"createdBy": {
"id": "USR123456",
"name": "John Doe"
}
},
"description": "log of the production"
}
},
"example": {
"id": "17",
"documentNumber": "DOC-123456",
"bodyOutroduction": "This is the conclusion section of the production document.",
"date": "2024-09-18",
"dateDelivery": "2024-09-25",
"dateProvision": "2024-09-20",
"dateProduction": "2024-09-21",
"dateProductionEnd": "2024-09-22",
"status": "In Progress",
"customer": {
"id": "17"
},
"project": {
"id": "17"
},
"salesOrder": {
"id": "17"
},
"internalDesignation": "Batch A-123",
"preferredWarehouse": {
"id": "17"
},
"reservationType": "Standard",
"retrievalType": "Automated",
"explodeSublists": true,
"functionalTest": true,
"displayWorkingStepTexts": true,
"createSerialNumbers": true,
"captureComponentSerialnumbers": true,
"internalComment": "Process is completed",
"completed": true,
"finalRemark": "Production is done",
"customerCheckOk": true,
"depletingOk": true,
"partialProductionNumber": 121,
"partialProductionOf": 1,
"stockingOk": true,
"stockOk": true,
"log": {
"createdAt": "2024-09-18",
"createdBy": {
"id": "USR123456",
"name": "John Doe"
}
}
}
}
},
"example": {
"data": {
"id": "1",
"documentNumber": "",
"bodyOutroduction": "",
"date": "2024-03-13",
"dateDelivery": null,
"dateProvision": null,
"dateProduction": null,
"dateProductionEnd": null,
"status": "created",
"customer": null,
"project": {
"id": "1"
},
"salesOrder": null,
"internalDesignation": "",
"preferredWarehouse": null,
"reservationType": "abschluss",
"retrievalType": "sammel",
"explodeSublists": true,
"functionalTest": false,
"displayWorkingStepTexts": true,
"createSerialNumbers": true,
"captureComponentSerialnumbers": false,
"internalComment": "",
"completed": false,
"finalRemark": "",
"customerCheckOk": true,
"depletingOk": false,
"partialProductionNumber": 0,
"partialProductionOf": 0,
"stockingOk": false,
"stockOk": true,
"log": {
"createdAt": "2024-03-13",
"createdBy": {
"id": "1",
"name": "admin"
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/purchaseOrders": {
"get": {
"tags": [
"Purchase Order"
],
"operationId": "purchaseOrder.list",
"summary": "Lists available purchase orders",
"description": "Lists all available purchase orders.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"status",
"date",
"supplier",
"documentNumber",
"project",
"createdAt",
"updatedAt",
"salesOrderConfirmationReference",
"suppliersOfferReference"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"date",
"project",
"status",
"documentNumber"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"description": "List information of the purchase order.",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"date": {
"type": "string",
"format": "date",
"description": "Date of the purchase order.",
"example": "2024-09-24"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"status": {
"type": "string",
"description": "Current status of the purchase order.",
"example": "Pending"
},
"documentNumber": {
"type": "string",
"description": "Document number of the purchase order.",
"example": "DOC-2024-4567"
},
"supplier": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string"
},
"customerNumberAtSupplier": {
"type": "string"
},
"honorific": {
"type": "string",
"description": "Honorific of the billing address."
},
"name": {
"type": "string",
"description": "Name of the billing address."
},
"department": {
"type": "string",
"description": "Department of the billing address."
},
"subDepartment": {
"type": "string",
"description": "Subdepartment of the billing address."
},
"extraAddressLine": {
"type": "string",
"description": "Extra address line of the billing address."
},
"street": {
"type": "string",
"description": "Street of the billing address."
},
"zipCode": {
"type": "string",
"description": "Zip code of the billing address."
},
"city": {
"type": "string",
"description": "City of the billing address."
},
"state": {
"type": "string",
"description": "State of the billing address."
},
"country": {
"type": "string",
"description": "Country of the billing address."
},
"contactPerson": {
"type": "string",
"description": "Contact person of the billing address."
},
"telephone": {
"type": "string",
"description": "Telephone of the billing address."
},
"telefax": {
"type": "string",
"description": "Telefax of the billing address."
},
"email": {
"type": "string",
"description": "E-mail of the billing address."
}
},
"example": {
"id": "supplier-12345",
"number": "S-2024-001",
"customerNumberAtSupplier": "CUST-001",
"honorific": "Mr.",
"name": "John Doe Enterprises",
"department": "Procurement",
"subDepartment": "Supplier Relations",
"extraAddressLine": "Attn: Accounts Payable",
"street": "123 Main St.",
"zipCode": "10115",
"city": "Berlin",
"state": "Berlin",
"country": "Germany",
"contactPerson": "Jane Smith",
"telephone": "+49 30 123456",
"telefax": "+49 30 654321",
"email": "contact@johndoenterprises.com"
},
"description": "Information about the supplier of the purchase order."
},
"requestForQuotation": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"bodyIntroduction": {
"type": "string",
"description": "Text above the position table in the PDF.",
"example": "Welcome to our product catalog. Please find the details below."
},
"bodyOutroduction": {
"type": "string",
"description": "Text below the position table in the PDF.",
"example": "Thank you for reviewing our offerings. We look forward to your order."
},
"salesOrderConfirmationReference": {
"type": "string",
"description": "Reference of the sales order confirmation.",
"example": "SO123456789"
},
"isConfirmationRequested": {
"type": "boolean",
"description": "Shows if a confirmation is requested.",
"example": true
},
"suppliersOfferReference": {
"type": "string",
"description": "Offer reference of the supplier.",
"example": "SUP-REF-2024-001"
},
"internalDesignation": {
"type": "string",
"description": "Internal designation of the purchase order.",
"example": "PO-INV-2024-001"
},
"language": {
"type": "object",
"additionalProperties": false,
"description": "Language of the purchase order.",
"properties": {
"iso2": {
"type": "string",
"pattern": "[A-Z]{2}",
"default": "DE"
}
},
"example": {
"iso2": "DE"
}
},
"isConfirmed": {
"type": "boolean",
"description": "Shows if the purchase order is confirmed.",
"example": false
},
"confirmedVia": {
"type": "string",
"description": "Shows via the purchase order was confirmed.",
"example": "email"
},
"financials": {
"type": "object",
"additionalProperties": false,
"description": "Financial information about the purchase order.",
"properties": {
"paymentMethod": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"total": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"paymentTerms": {
"type": "object",
"additionalProperties": false,
"description": "Information about payment terms of the purchase order.",
"properties": {
"paymentTargetDiscount": {
"type": "number",
"format": "float"
},
"paymentTargetDays": {
"type": "number"
},
"paymentTargetDiscountDays": {
"type": "number"
},
"paymentTargetDiscountAmount": {
"type": "number",
"format": "float"
},
"isPaymentTargetDiscountApplied": {
"type": "boolean"
}
}
},
"costCenter": {
"type": "string",
"description": "The assigned cost center for the purchase order."
},
"tax": {
"type": "object",
"additionalProperties": false,
"description": "Tax information of the purchase order.",
"properties": {
"taxation": {
"type": "string"
},
"vatId": {
"type": "string"
},
"taxDisplay": {
"type": "string"
}
}
}
},
"example": {
"paymentMethod": {
"id": "1337"
},
"total": {
"amount": "1500.00",
"currency": "EUR"
},
"paymentTerms": {
"paymentTargetDiscount": 5,
"paymentTargetDays": 30,
"paymentTargetDiscountDays": 10,
"paymentTargetDiscountAmount": 75,
"isPaymentTargetDiscountApplied": true
},
"costCenter": "CC-2024-001",
"tax": {
"taxation": "Domestic",
"vatId": "DE123456789",
"taxDisplay": "Gross"
}
}
},
"delivery": {
"type": "object",
"additionalProperties": false,
"description": "Delivery information of the purchase order.",
"properties": {
"deliveryTerms": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"hasDifferentDeliveryAddress": {
"type": "boolean"
},
"deliveryAddress": {
"type": "object",
"additionalProperties": false,
"description": "Delivery address of the purchase order.",
"properties": {
"honorific": {
"type": "string"
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"extraAddressLine": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"contactPerson": {
"type": "string"
}
}
},
"dates": {
"type": "object",
"additionalProperties": false,
"description": "Delivery dates of the purchase order.",
"properties": {
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true
},
"confirmedDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true
}
}
}
},
"example": {
"deliveryTerms": {
"id": "1337"
},
"hasDifferentDeliveryAddress": true,
"deliveryAddress": {
"honorific": "Mr.",
"name": "John Doe",
"department": "Sales",
"subDepartment": "International Sales",
"extraAddressLine": "Suite 200",
"street": "Main Street 123",
"zipCode": "10115",
"city": "Berlin",
"state": "Berlin",
"country": "Germany",
"contactPerson": "Jane Smith"
},
"dates": {
"desiredDeliveryDate": "2024-10-15",
"confirmedDeliveryDate": "2024-10-14"
}
}
},
"formatting": {
"type": "object",
"additionalProperties": false,
"properties": {
"hideLetterHead": {
"type": "boolean"
},
"hidePrices": {
"type": "boolean"
},
"hideProductNumbers": {
"type": "boolean"
},
"showLongProductNumbers": {
"type": "boolean"
},
"hideProductDescriptions": {
"type": "boolean"
},
"showOwnProductNumberInColumn": {
"type": "boolean"
}
},
"example": {
"hideLetterHead": true,
"hidePrices": false,
"hideProductNumbers": true,
"showLongProductNumbers": false,
"hideProductDescriptions": true,
"showOwnProductNumberInColumn": true
},
"description": "Formatting settings for the PDF of a purchase order."
},
"internalComment": {
"type": "string",
"description": "Internal Comment about the purchase order.",
"example": "Please prioritize this order due to customer request."
},
"liabilitiesInfo": {
"type": "string",
"description": "Information for liabilities.",
"example": "This purchase order includes liabilities that must be addressed within 30 days."
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Purchase Order"
],
"operationId": "purchaseOrder.create",
"summary": "Create new purchase order",
"description": "Creates a new purchase order.",
"parameters": [],
"requestBody": {
"description": "Purchase order create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Date of the purchase order."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"honorific": {
"type": "string"
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"extraAddressLine": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"telephone": {
"type": "string"
},
"telefax": {
"type": "string"
},
"email": {
"type": "string"
}
}
},
"requestForQuotation": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"bodyIntroduction": {
"type": "string",
"description": "Text above the position table in the PDF."
},
"bodyOutroduction": {
"type": "string",
"description": "Text below the position table in the PDF."
},
"salesOrderConfirmationReference": {
"type": "string",
"description": "Reference of the sales order confirmation."
},
"isConfirmationRequested": {
"type": "boolean",
"description": "Shows if a confirmation is requested."
},
"suppliersOfferReference": {
"type": "string",
"description": "Offer reference of the supplier."
},
"internalDesignation": {
"type": "string",
"description": "Internal designation of the purchase order."
},
"language": {
"type": "object",
"additionalProperties": false,
"description": "Language of the purchase order.",
"properties": {
"iso2": {
"type": "string",
"pattern": "[A-Z]{2}",
"default": "DE"
}
},
"example": {
"iso2": "DE"
}
},
"isConfirmed": {
"type": "boolean",
"description": "Shows if the purchase order is confirmed."
},
"confirmedVia": {
"type": "string",
"enum": [
"Internet",
"E-Mail",
"Telephone",
"Telefax",
"Letter",
"Other"
],
"default": "Internet",
"description": "Determines how the purchase order was confirmed."
},
"financials": {
"type": "object",
"additionalProperties": false,
"description": "Financial information about the purchase order.",
"properties": {
"paymentMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"paymentTerms": {
"type": "object",
"additionalProperties": false,
"description": "Information about payment terms of the purchase order.",
"properties": {
"paymentTargetDiscount": {
"type": "number",
"format": "float"
},
"paymentTargetDays": {
"type": "number"
},
"paymentTargetDiscountDays": {
"type": "number"
},
"paymentTargetDiscountAmount": {
"type": "number",
"format": "float"
},
"isPaymentTargetDiscountApplied": {
"type": "boolean"
}
}
},
"costCenter": {
"type": "string",
"description": "The assigned cost center for the purchase order."
},
"tax": {
"type": "object",
"additionalProperties": false,
"description": "Tax information of the purchase order.",
"properties": {
"taxation": {
"type": "string",
"enum": [
"Domestic",
"EU delivery",
"Import",
"Tax free domestic"
],
"default": "Domestic"
},
"vatId": {
"type": "string"
},
"taxDisplay": {
"type": "string",
"enum": [
"Automatic",
"Net",
"Gross"
],
"default": "Automatic"
}
}
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"delivery": {
"type": "object",
"additionalProperties": false,
"description": "Delivery information of the purchase order.",
"properties": {
"deliveryTerms": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"hasDifferentDeliveryAddress": {
"type": "boolean"
},
"deliveryAddress": {
"type": "object",
"additionalProperties": false,
"properties": {
"honorific": {
"type": "string"
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"extraAddressLine": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"contactPerson": {
"type": "string"
}
}
},
"dates": {
"type": "object",
"additionalProperties": false,
"properties": {
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Desired delivery date of the purchase order."
},
"confirmedDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Confirmed delivery date of the purchase order."
}
}
}
}
},
"formatting": {
"type": "object",
"additionalProperties": false,
"description": "Formatting settings for the PDF of a purchase order.",
"properties": {
"hideLetterHead": {
"type": "boolean"
},
"hidePrices": {
"type": "boolean"
},
"hideProductNumbers": {
"type": "boolean"
},
"showLongProductNumbers": {
"type": "boolean"
},
"hideProductDescriptions": {
"type": "boolean"
},
"showOwnProductNumberInColumn": {
"type": "boolean"
}
}
},
"internalComment": {
"type": "string",
"description": "Internal comment about the purchase order."
},
"liabilitiesInfo": {
"type": "string",
"description": "Information for liabilities."
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"quantity": {
"type": "number",
"format": "float"
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"tax": {
"type": "object",
"additionalProperties": false,
"description": "Tax information of the purchase order position.",
"properties": {
"vatCategory": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
]
},
"taxText": {
"type": "string"
},
"rate": {
"type": "number",
"format": "float"
}
}
}
}
}
}
}
},
"examples": {}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/purchaseOrders/{id}": {
"get": {
"tags": [
"Purchase Order"
],
"operationId": "purchaseOrder.view",
"summary": "View a single purchase order",
"description": "Returns details of a single purchase order",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"description": "View information of the purchase order.",
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"date": {
"type": "string",
"format": "date",
"description": "Date of the purchase order.",
"example": "2023-09-18"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"status": {
"type": "string",
"description": "Current status of the purchase order.",
"example": "Pending"
},
"documentNumber": {
"type": "string",
"description": "Document number of the purchase order.",
"example": "PO-2023-001"
},
"supplier": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string"
},
"customerNumberAtSupplier": {
"type": "string"
},
"honorific": {
"type": "string",
"description": "Honorific of the billing address."
},
"name": {
"type": "string",
"description": "Name of the billing address."
},
"department": {
"type": "string",
"description": "Department of the billing address."
},
"subDepartment": {
"type": "string",
"description": "Subdepartment of the billing address."
},
"extraAddressLine": {
"type": "string",
"description": "Extra address line of the billing address."
},
"street": {
"type": "string",
"description": "Street of the billing address."
},
"zipCode": {
"type": "string",
"description": "Zip code of the billing address."
},
"city": {
"type": "string",
"description": "City of the billing address."
},
"state": {
"type": "string",
"description": "State of the billing address."
},
"country": {
"type": "string",
"description": "Country of the billing address."
},
"contactPerson": {
"type": "string",
"description": "Contact person of the billing address."
},
"telephone": {
"type": "string",
"description": "Telephone of the billing address."
},
"telefax": {
"type": "string",
"description": "Telefax of the billing address."
},
"email": {
"type": "string",
"description": "E-mail of the billing address."
}
},
"example": {
"id": "supplier-12345",
"number": "S-2024-001",
"customerNumberAtSupplier": "CUST-001",
"honorific": "Mr.",
"name": "John Doe Enterprises",
"department": "Procurement",
"subDepartment": "Supplier Relations",
"extraAddressLine": "Attn: Accounts Payable",
"street": "123 Main St.",
"zipCode": "10115",
"city": "Berlin",
"state": "Berlin",
"country": "Germany",
"contactPerson": "Jane Smith",
"telephone": "+49 30 123456",
"telefax": "+49 30 654321",
"email": "contact@johndoenterprises.com"
},
"description": "Information about the supplier of the purchase order."
},
"requestForQuotation": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"bodyIntroduction": {
"type": "string",
"description": "Text above the position table in the PDF.",
"example": "Thank you for your order! Please find the details below."
},
"bodyOutroduction": {
"type": "string",
"description": "Text below the position table in the PDF.",
"example": "If you have any questions, feel free to contact us!"
},
"salesOrderConfirmationReference": {
"type": "string",
"description": "Reference of the sales order confirmation.",
"example": "CONF-2024-00123"
},
"isConfirmationRequested": {
"type": "boolean",
"description": "Shows if a confirmation is requested.",
"example": true
},
"suppliersOfferReference": {
"type": "string",
"description": "Offer reference of the supplier.",
"example": "OFFER-2024-XYZ"
},
"internalDesignation": {
"type": "string",
"description": "Internal designation of the purchase order.",
"example": "PO-2024-001"
},
"language": {
"type": "object",
"additionalProperties": false,
"description": "Language of the purchase order.",
"properties": {
"iso2": {
"type": "string",
"pattern": "[A-Z]{2}",
"default": "DE"
}
},
"example": {
"iso2": "DE"
}
},
"isConfirmed": {
"type": "boolean",
"description": "Shows if the purchase order is confirmed.",
"example": true
},
"confirmedVia": {
"type": "string",
"description": "Shows via the purchase order was confirmed.",
"example": "Email"
},
"financials": {
"type": "object",
"additionalProperties": false,
"description": "Financial information about the purchase order.",
"properties": {
"paymentMethod": {
"type": "object",
"nullable": true,
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "ID of the payment method used for the purchase order."
},
"total": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"paymentTerms": {
"type": "object",
"additionalProperties": false,
"description": "Information about payment terms of the purchase order.",
"properties": {
"paymentTargetDiscount": {
"type": "number",
"format": "float"
},
"paymentTargetDays": {
"type": "number"
},
"paymentTargetDiscountDays": {
"type": "number"
},
"paymentTargetDiscountAmount": {
"type": "number",
"format": "float"
},
"isPaymentTargetDiscountApplied": {
"type": "boolean"
}
}
},
"costCenter": {
"type": "string",
"description": "The assigned cost center for the purchase order."
},
"tax": {
"type": "object",
"additionalProperties": false,
"description": "Tax information of the purchase order.",
"properties": {
"taxation": {
"type": "string"
},
"vatId": {
"type": "string"
},
"taxDisplay": {
"type": "string"
}
}
}
},
"example": {
"paymentMethod": {
"id": "1337"
},
"total": {
"amount": "1500.00",
"currency": "EUR"
},
"paymentTerms": {
"paymentTargetDiscount": 5,
"paymentTargetDays": 30,
"paymentTargetDiscountDays": 10,
"paymentTargetDiscountAmount": 75,
"isPaymentTargetDiscountApplied": true
},
"costCenter": "CC-2024-001",
"tax": {
"taxation": "Domestic",
"vatId": "DE123456789",
"taxDisplay": "Gross"
}
}
},
"delivery": {
"type": "object",
"additionalProperties": false,
"description": "Delivery information of the purchase order.",
"properties": {
"deliveryTerms": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"hasDifferentDeliveryAddress": {
"type": "boolean"
},
"deliveryAddress": {
"type": "object",
"additionalProperties": false,
"description": "Delivery address of the purchase order.",
"properties": {
"honorific": {
"type": "string"
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"extraAddressLine": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"contactPerson": {
"type": "string"
}
}
},
"dates": {
"type": "object",
"additionalProperties": false,
"description": "Delivery dates of the purchase order.",
"properties": {
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true
},
"confirmedDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true
}
}
}
},
"example": {
"deliveryTerms": {
"id": "1337"
},
"hasDifferentDeliveryAddress": true,
"deliveryAddress": {
"honorific": "Mr.",
"name": "John Doe",
"department": "Sales",
"subDepartment": "International Sales",
"extraAddressLine": "Suite 200",
"street": "Main Street 123",
"zipCode": "10115",
"city": "Berlin",
"state": "Berlin",
"country": "Germany",
"contactPerson": "Jane Smith"
},
"dates": {
"desiredDeliveryDate": "2024-10-15",
"confirmedDeliveryDate": "2024-10-14"
}
}
},
"formatting": {
"type": "object",
"additionalProperties": false,
"properties": {
"hideLetterHead": {
"type": "boolean"
},
"hidePrices": {
"type": "boolean"
},
"hideProductNumbers": {
"type": "boolean"
},
"showLongProductNumbers": {
"type": "boolean"
},
"hideProductDescriptions": {
"type": "boolean"
},
"showOwnProductNumberInColumn": {
"type": "boolean"
}
},
"example": {
"hideLetterHead": false,
"hidePrices": true,
"hideProductNumbers": false,
"showLongProductNumbers": true,
"hideProductDescriptions": false,
"showOwnProductNumberInColumn": true
},
"description": "Formatting settings for the PDF of a purchase order."
},
"internalComment": {
"type": "string",
"description": "Internal Comment about the purchase order.",
"example": "Review before final approval."
},
"liabilitiesInfo": {
"type": "string",
"description": "Information for liabilities.",
"example": "Total liabilities amount to $50,000, including loans and credit obligations."
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"description": "Positions of the purchase order.",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"quantity": {
"type": "number",
"format": "float"
},
"delivered": {
"type": "number",
"format": "float"
},
"salesOrderPosition": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"format": "integer"
},
"salesOrder": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "integer"
}
}
}
},
"nullable": true
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"tax": {
"type": "object",
"additionalProperties": false,
"description": "Tax information of the purchase order position.",
"properties": {
"vatCategory": {
"type": "string",
"enum": [
"standard",
"reduced",
"free",
"custom"
],
"description": "Shows the vat category of the position. If an individual tax rate exists, custom will be returned."
},
"taxText": {
"type": "string"
},
"rate": {
"type": "number",
"format": "float"
}
}
}
}
}
},
"log": {
"type": "object",
"additionalProperties": false,
"description": "Log information of the purchase order.",
"properties": {
"createdAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"isSent": {
"type": "boolean"
},
"sentAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"sentBy": {
"type": "string"
},
"sentVia": {
"type": "string"
}
},
"example": {
"createdAt": "2023-09-23T14:30:00Z",
"isSent": true,
"sentAt": "2023-09-24T10:15:00Z",
"sentBy": "Alice Johnson",
"sentVia": "Email"
}
}
},
"example": {
"id": "PO-2024-00123",
"date": "2024-09-24",
"project": {
"id": "1337"
},
"status": "Pending",
"documentNumber": "PO-2024-00123",
"supplier": {
"id": "SUP-2024-ABC123",
"name": "Muster GmbH",
"street": "Hauptstraße 12",
"zipCode": "10115",
"city": "Berlin",
"country": "Germany",
"contactPerson": "Max Mustermann",
"email": "max.mustermann@muster.de"
},
"isConfirmationRequested": true,
"suppliersOfferReference": "ANGEBOT-2024-XYZ",
"internalDesignation": "Internes Projekt PO",
"language": {
"iso2": "DE"
},
"isConfirmed": true,
"confirmedVia": "E-Mail",
"financials": {
"paymentMethod": {
"id": "ZAHLUNG-001"
},
"total": {
"amount": "15000",
"currency": "EUR"
},
"paymentTerms": {
"paymentTargetDays": 30,
"paymentTargetDiscount": 5,
"paymentTargetDiscountDays": 10
}
},
"delivery": {
"deliveryTerms": {
"id": "LIEFERUNG-001"
},
"deliveryAddress": {
"name": "Lagerhaus A",
"street": "Industriestraße 8",
"zipCode": "10317",
"city": "Berlin",
"country": "Germany"
}
},
"internalComment": "Dringende Bestellung, bitte beschleunigen.",
"positions": [
{
"id": "POS-001",
"product": {
"id": "PROD-2024-001"
},
"quantity": 10,
"delivered": 20,
"salesOrderPosition": {
"id": "2",
"salesOrder": {
"id": "1234"
}
},
"price": {
"amount": "500",
"currency": "EUR"
}
}
]
}
}
}
}
},
"application/pdf": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Purchase Order"
],
"operationId": "purchaseOrder.update",
"summary": "Update existing purchase order",
"description": "Updates an existing purchase order as long as no writing protection is active. When the writing protection is active only isConfirmed, confirmedVia, confirmedDeliveryDate and salesOrderConfirmationReference can be updated.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Purchase order update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Date of the purchase order."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"honorific": {
"type": "string"
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"extraAddressLine": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"telephone": {
"type": "string"
},
"telefax": {
"type": "string"
},
"email": {
"type": "string"
}
}
},
"requestForQuotation": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"bodyIntroduction": {
"type": "string",
"description": "Text above the position table in the PDF."
},
"bodyOutroduction": {
"type": "string",
"description": "Text below the position table in the PDF."
},
"salesOrderConfirmationReference": {
"type": "string",
"description": "Reference of the sales order confirmation. Can be updated even if the write protection is active.",
"example": "SO-123456"
},
"isConfirmationRequested": {
"type": "boolean",
"description": "Shows if a confirmation is requested."
},
"suppliersOfferReference": {
"type": "string",
"description": "Offer reference of the supplier."
},
"internalDesignation": {
"type": "string",
"description": "Internal designation of the purchase order."
},
"language": {
"type": "object",
"additionalProperties": false,
"description": "Language of the purchase order.",
"properties": {
"iso2": {
"type": "string",
"pattern": "[A-Z]{2}",
"default": "DE"
}
},
"example": {
"iso2": "DE"
}
},
"isConfirmed": {
"type": "boolean",
"description": "Shows if the purchase order is confirmed. Can be updated even if the write protection is active."
},
"confirmedVia": {
"type": "string",
"enum": [
"Internet",
"E-Mail",
"Telephone",
"Telefax",
"Letter",
"Other"
],
"default": "Internet",
"description": "Determines how the purchase order was confirmed. Can be updated even if the write protection is active."
},
"financials": {
"type": "object",
"additionalProperties": false,
"description": "Financial information about the purchase order.",
"properties": {
"paymentMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"paymentTerms": {
"type": "object",
"additionalProperties": false,
"description": "Information about payment terms of the purchase order.",
"properties": {
"paymentTargetDiscount": {
"type": "number",
"format": "float"
},
"paymentTargetDays": {
"type": "number"
},
"paymentTargetDiscountDays": {
"type": "number"
},
"paymentTargetDiscountAmount": {
"type": "number",
"format": "float"
},
"isPaymentTargetDiscountApplied": {
"type": "boolean"
}
}
},
"costCenter": {
"type": "string",
"description": "The assigned cost center for the purchase order."
},
"tax": {
"type": "object",
"additionalProperties": false,
"description": "Tax information of the purchase order.",
"properties": {
"taxation": {
"type": "string",
"enum": [
"Domestic",
"EU delivery",
"Import",
"Tax free domestic"
],
"default": "Domestic"
},
"vatId": {
"type": "string"
},
"taxDisplay": {
"type": "string",
"enum": [
"Automatic",
"Net",
"Gross"
],
"default": "Automatic"
}
}
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"delivery": {
"type": "object",
"additionalProperties": false,
"description": "Delivery information of the purchase order.",
"properties": {
"deliveryTerms": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"hasDifferentDeliveryAddress": {
"type": "boolean"
},
"deliveryAddress": {
"type": "object",
"additionalProperties": false,
"properties": {
"honorific": {
"type": "string"
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"extraAddressLine": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"contactPerson": {
"type": "string"
}
}
},
"dates": {
"type": "object",
"additionalProperties": false,
"properties": {
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Desired delivery date of the purchase order."
},
"confirmedDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Confirmed delivery date of the purchase order. Can be updated even if the write protection is active."
}
}
}
}
},
"formatting": {
"type": "object",
"additionalProperties": false,
"description": "Formatting settings for the PDF of a purchase order.",
"properties": {
"hideLetterHead": {
"type": "boolean"
},
"hidePrices": {
"type": "boolean"
},
"hideProductNumbers": {
"type": "boolean"
},
"showLongProductNumbers": {
"type": "boolean"
},
"hideProductDescriptions": {
"type": "boolean"
},
"showOwnProductNumberInColumn": {
"type": "boolean"
}
}
},
"internalComment": {
"type": "string",
"description": "Internal comment about the purchase order."
},
"liabilitiesInfo": {
"type": "string",
"description": "Information for liabilities."
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"product": {
"type": "object",
"description": "Reference to position Product, only one value is allowed at a time",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"sku": {
"type": "string",
"example": "SKU1"
},
"externalReferenceNumber": {
"type": "string",
"example": "REF2"
}
}
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"quantity": {
"type": "number",
"format": "float"
},
"delivered": {
"type": "number",
"format": "float"
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"tax": {
"type": "object",
"additionalProperties": false,
"description": "Tax information of the purchase order position.",
"properties": {
"vatCategory": {
"type": "string",
"enum": [
"standard",
"reduced",
"free"
]
},
"taxText": {
"type": "string"
},
"rate": {
"type": "number",
"format": "float"
}
}
},
"isDeleted": {
"type": "boolean"
}
}
}
}
}
},
"examples": {
"example": {
"value": {
"date": "2024-01-01",
"project": {
"id": "1001"
},
"supplier": {
"id": "2001",
"honorific": "",
"name": "Supplier 1",
"department": "",
"subDepartment": "",
"extraAddressLine": "",
"street": "ExampleStreet 5",
"zipCode": "",
"city": "",
"state": "",
"country": "",
"contactPerson": "",
"telephone": "1234567890",
"telefax": "",
"email": ""
},
"requestForQuotation": {
"id": "6002"
},
"bodyIntroduction": "",
"bodyOutroduction": "",
"salesOrderConfirmationReference": "",
"isConfirmationRequested": false,
"internalDesignation": "",
"language": {
"iso2": "DE"
},
"suppliersOfferReference": "",
"isConfirmed": false,
"confirmedVia": "Internet",
"financials": {
"paymentMethod": {
"id": "4002"
},
"paymentTerms": {
"paymentTargetDiscount": 0,
"paymentTargetDays": 0,
"paymentTargetDiscountDays": 0,
"paymentTargetDiscountAmount": 0,
"isPaymentTargetDiscountApplied": false
},
"costCenter": "",
"tax": {
"taxation": "Domestic",
"vatId": "",
"taxDisplay": "Automatic"
},
"currency": "EUR"
},
"delivery": {
"deliveryTerms": {
"id": "7002"
},
"hasDifferentDeliveryAddress": true,
"deliveryAddress": {
"honorific": "",
"name": "Delivery Address Name",
"department": "",
"subDepartment": "",
"extraAddressLine": "",
"street": "",
"zipCode": "",
"city": "",
"state": "",
"country": "",
"contactPerson": ""
},
"dates": {
"desiredDeliveryDate": null,
"confirmedDeliveryDate": null
}
},
"formatting": {
"hideLetterHead": false,
"hidePrices": false,
"hideProductNumbers": false,
"showLongProductNumbers": false,
"hideProductDescriptions": false,
"showOwnProductNumberInColumn": false
},
"internalComment": "",
"liabilitiesInfo": "",
"positions": []
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/purchaseOrders/{id}/goodsReceipts": {
"post": {
"tags": [
"Goods Receipt"
],
"operationId": "purchaseOrder.goodsReceipt.create",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"summary": "Create a new goods receipt for a purchase order",
"description": "Creates a new goods receipt for a purchase order.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"format": "date",
"example": "2024-09-24"
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"quantity": {
"type": "number",
"format": "double",
"example": 10
},
"purchaseOrderPosition": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"stockMovements": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"quantity": {
"type": "number",
"format": "double",
"example": 5
},
"warehouse": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"storageLocation": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"qualityControlAttributes": {
"type": "object",
"additionalProperties": false,
"properties": {
"batch": {
"type": "string",
"example": "BATCH-1234"
},
"bestBeforeDate": {
"type": "string",
"format": "date",
"example": "2025-12-31"
},
"serialNumbers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"number": {
"type": "string",
"example": "SN-123456"
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"examples": {
"example": {
"value": {
"date": "2024-09-24",
"positions": [
{
"product": {
"id": "product-1"
},
"quantity": 10,
"purchaseOrderPosition": {
"id": "purchase-order-position-1"
},
"stockMovements": [
{
"quantity": 5,
"warehouse": {
"id": "warehouse-1"
},
"storageLocation": {
"id": "storage-location-1"
},
"qualityControlAttributes": {
"batch": "BATCH-1234",
"bestBeforeDate": "2025-12-31",
"serialNumbers": [
{
"number": "SN-123456"
}
]
}
}
]
}
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/purchaseOrders/{id}/actions/cancel": {
"patch": {
"tags": [
"Purchase Order"
],
"operationId": "purchaseOrder.actions.cancel",
"summary": "Cancels a purchase order",
"description": "Cancels the purchase order",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/purchaseOrders/{id}/actions/release": {
"patch": {
"tags": [
"Purchase Order"
],
"operationId": "purchaseOrder.actions.release",
"summary": "Releases a purchase order",
"description": "Releases the purchase order",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"*/*": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
},
"examples": {
"example": {
"value": ""
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/purchasePrices": {
"post": {
"tags": [
"Purchase Price"
],
"operationId": "purchasePrice.create",
"summary": "Create purchase price",
"description": "Creates new purchase price",
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"product",
"fromQuantity",
"price",
"validFrom",
"expiresAt"
],
"properties": {
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"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"
]
}
]
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Price of the product",
"example": {
"amount": 7.3,
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 7.3
},
"currency": {
"x-description-missing": true,
"type": "string",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"example": "EUR"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
}
}
},
"examples": {
"Create purchase price": {
"value": {
"product": {
"id": "18"
},
"supplier": {
"id": "194"
},
"isStandardSupplier": true,
"supplierDesignation": "Pillow 20x20",
"supplierItemNumber": "4992042-20",
"fromQuantity": 50,
"packageAmount": 10,
"validFrom": "2021-01-01",
"expiresAt": null,
"price": {
"amount": 7.3,
"currency": "EUR"
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"product",
"fromQuantity",
"price",
"validFrom",
"expiresAt"
],
"properties": {
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"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"
]
}
]
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
},
"additionalInformation": {
"description": "Purchase Price",
"example": {
"supplierStockLevel": 73,
"supplierStockDate": "2024-11-01",
"safetyStockLevel": 10,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 12,
"currentDeliveryTimeUnit": "weeks"
},
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"supplierStockLevel": {
"type": "number",
"x-description-missing": true,
"example": 7
},
"supplierStockDate": {
"type": "string",
"x-description-missing": true,
"format": "date",
"example": "2024-11-01"
},
"safetyStockLevel": {
"type": "number",
"x-description-missing": true,
"example": 7
},
"standardDeliveryTime": {
"type": "number",
"x-description-missing": true,
"example": 3
},
"standardDeliveryTimeUnit": {
"type": "string",
"x-description-missing": true,
"enum": [
"days",
"weeks"
],
"example": "days"
},
"currentDeliveryTime": {
"type": "number",
"x-description-missing": true,
"example": 6
},
"currentDeliveryTimeUnit": {
"type": "string",
"x-description-missing": true,
"enum": [
"days",
"weeks"
],
"example": "days"
}
}
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Internal Comment",
"example": "Test"
}
}
},
"examples": {
"Create purchase price": {
"value": {
"product": {
"id": "18"
},
"supplier": {
"id": "194"
},
"isStandardSupplier": true,
"supplierDesignation": "Pillow 20x20",
"supplierItemNumber": "4992042-20",
"fromQuantity": 50,
"packageAmount": 10,
"validFrom": "2021-01-01",
"expiresAt": null,
"price": {
"amount": "7.30",
"currency": "EUR"
},
"additionalInformation": {
"supplierStockLevel": 10000,
"supplierStockDate": "2024-06-30",
"safetyStockLevel": 2000,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 2,
"currentDeliveryTimeUnit": "weeks"
},
"internalComment": "internalComment1234"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Purchase Price"
],
"operationId": "purchasePrice.list",
"summary": "List purchase prices",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"product",
"supplier",
"currency",
"fromQuantity",
"isValidAt"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"description": "Returns list of a purchase prices",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"example": {
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": 12.92,
"currency": "EUR"
},
"validFrom": null,
"expiresAt": "2024-12-12"
},
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"type": "boolean",
"example": true,
"description": "Sets the supplier to be the standard supplier for this product"
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Price of the product",
"example": {
"amount": 7.3,
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 7.3
},
"currency": {
"x-description-missing": true,
"type": "string",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"example": "EUR"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all purchase prices": {
"value": {
"data": [
{
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"supplierItemNumber": "",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": 12.92,
"currency": "EUR"
},
"validFrom": null,
"expiresAt": null
},
{
"id": "2",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"supplierItemNumber": "",
"fromQuantity": 10,
"packageAmount": 1,
"price": {
"amount": 10.45,
"currency": "EUR"
},
"validFrom": null,
"expiresAt": "2024-04-10"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"example": {
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": "12.92",
"currency": "EUR"
},
"internalComment": "Test1",
"validFrom": null,
"expiresAt": "2024-12-12"
},
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Internal Comment",
"example": "Test"
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all purchase prices": {
"value": {
"data": [
{
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"supplierItemNumber": "",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": "12.92000000",
"currency": "EUR"
},
"validFrom": null,
"expiresAt": null
},
{
"id": "2",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"supplierItemNumber": "",
"fromQuantity": 10,
"packageAmount": 1,
"price": {
"amount": "10.45000000",
"currency": "EUR"
},
"validFrom": null,
"expiresAt": "2024-04-10"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Purchase Price"
],
"operationId": "purchasePrice.updateMultiple",
"summary": "Update multiple purchase prices",
"description": "Updates multiple purchase prices",
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"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"
]
}
]
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Price of the product",
"example": {
"amount": 7.3,
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 7.3
},
"currency": {
"x-description-missing": true,
"type": "string",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"example": "EUR"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
}
}
}
},
"examples": {
"Update multiple purchase prices": {
"value": [
{
"id": "194",
"price": {
"amount": 7.3,
"currency": "EUR"
}
},
{
"id": "199",
"price": {
"amount": 10.3,
"currency": "EUR"
}
}
]
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"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"
]
}
]
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
},
"additionalInformation": {
"description": "Purchase Price",
"example": {
"supplierStockLevel": 73,
"supplierStockDate": "2024-11-01",
"safetyStockLevel": 10,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 12,
"currentDeliveryTimeUnit": "weeks"
},
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"supplierStockLevel": {
"type": "number",
"x-description-missing": true,
"example": 7
},
"supplierStockDate": {
"type": "string",
"x-description-missing": true,
"format": "date",
"example": "2024-11-01"
},
"safetyStockLevel": {
"type": "number",
"x-description-missing": true,
"example": 7
},
"standardDeliveryTime": {
"type": "number",
"x-description-missing": true,
"example": 3
},
"standardDeliveryTimeUnit": {
"type": "string",
"x-description-missing": true,
"enum": [
"days",
"weeks"
],
"example": "days"
},
"currentDeliveryTime": {
"type": "number",
"x-description-missing": true,
"example": 6
},
"currentDeliveryTimeUnit": {
"type": "string",
"x-description-missing": true,
"enum": [
"days",
"weeks"
],
"example": "days"
}
}
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Internal Comment",
"example": "Test"
}
}
}
},
"examples": {
"Update multiple purchase prices": {
"value": [
{
"id": "194",
"price": {
"amount": "7.3",
"currency": "EUR"
},
"additionalInformation": {
"supplierStockLevel": 105,
"supplierStockDate": "2024-02-11",
"safetyStockLevel": 5000,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 2,
"currentDeliveryTimeUnit": "weeks"
},
"internalComment": "Test"
},
{
"id": "199",
"price": {
"amount": "10.3",
"currency": "EUR"
},
"additionalInformation": {
"supplierStockLevel": 105,
"supplierStockDate": "2024-02-11",
"safetyStockLevel": 5000,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "weeks",
"currentDeliveryTime": 2,
"currentDeliveryTimeUnit": "days"
},
"internalComment": "Test"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/purchasePrices/{id}": {
"get": {
"tags": [
"Purchase Price"
],
"operationId": "purchasePrice.view",
"summary": "View purchase price",
"description": "Returns details of a single purchase price",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"example": {
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": 12.92,
"currency": "EUR"
},
"validFrom": null,
"expiresAt": "2024-12-12"
},
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"type": "boolean",
"example": true,
"description": "Sets the supplier to be the standard supplier for this product"
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Price of the product",
"example": {
"amount": 7.3,
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 7.3
},
"currency": {
"x-description-missing": true,
"type": "string",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"example": "EUR"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Shows a single purchase price": {
"value": {
"data": {
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"supplierItemNumber": "",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": 12.92,
"currency": "EUR"
},
"validFrom": null,
"expiresAt": "2024-12-12"
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"example": {
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": "12.92",
"currency": "EUR"
},
"internalComment": "Test1",
"validFrom": null,
"expiresAt": "2024-12-12"
},
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Internal Comment",
"example": "Test"
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Shows a single purchase price": {
"value": {
"data": {
"id": "1",
"product": {
"id": "5"
},
"supplier": {
"id": "7"
},
"isStandardSupplier": false,
"supplierDesignation": "123456",
"supplierItemNumber": "",
"fromQuantity": 1,
"packageAmount": 1,
"price": {
"amount": "12.92000000",
"currency": "EUR"
},
"validFrom": null,
"expiresAt": "2024-12-12"
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Purchase Price"
],
"operationId": "purchasePrice.update",
"summary": "Update purchase price",
"description": "Updates details of a single purchase price",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"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"
]
}
]
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Price of the product",
"example": {
"amount": 7.3,
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 7.3
},
"currency": {
"x-description-missing": true,
"type": "string",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"example": "EUR"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
}
}
},
"examples": {
"Update Purchase Price": {
"value": {
"validFrom": "2023-12-01",
"fromQuantity": 1,
"price": {
"amount": 24.2,
"currency": "EUR"
}
}
}
}
},
"application/vnd.xentral.default.v2-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"supplier": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Reference to a supplier for this price",
"example": {
"id": "194"
},
"nullable": true
},
"isStandardSupplier": {
"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"
]
}
]
},
"supplierDesignation": {
"type": "string",
"nullable": true,
"description": "The designation of the supplier",
"example": "Xentral"
},
"supplierItemNumber": {
"type": "string",
"nullable": true,
"description": "Supplier item number",
"example": "4992042-20"
},
"fromQuantity": {
"type": "number",
"format": "float",
"description": "Minimum quantity for this price",
"example": 1
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true,
"description": "Amount of items in a package",
"example": 10
},
"price": {
"description": "Price of the product",
"example": {
"amount": 7.3,
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 7.3
},
"currency": {
"x-description-missing": true,
"type": "string",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"example": "EUR"
}
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date from which the price is valid",
"example": "2023-12-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Date until which the price is valid",
"example": "2024-12-12"
},
"additionalInformation": {
"description": "Purchase Price",
"example": {
"supplierStockLevel": 73,
"supplierStockDate": "2024-11-01",
"safetyStockLevel": 10,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 12,
"currentDeliveryTimeUnit": "weeks"
},
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"supplierStockLevel": {
"type": "number",
"x-description-missing": true,
"example": 7
},
"supplierStockDate": {
"type": "string",
"x-description-missing": true,
"format": "date",
"example": "2024-11-01"
},
"safetyStockLevel": {
"type": "number",
"x-description-missing": true,
"example": 7
},
"standardDeliveryTime": {
"type": "number",
"x-description-missing": true,
"example": 3
},
"standardDeliveryTimeUnit": {
"type": "string",
"x-description-missing": true,
"enum": [
"days",
"weeks"
],
"example": "days"
},
"currentDeliveryTime": {
"type": "number",
"x-description-missing": true,
"example": 6
},
"currentDeliveryTimeUnit": {
"type": "string",
"x-description-missing": true,
"enum": [
"days",
"weeks"
],
"example": "days"
}
}
},
"internalComment": {
"type": "string",
"nullable": true,
"description": "Internal Comment",
"example": "Test"
}
}
},
"examples": {
"Update Purchase Price": {
"value": {
"validFrom": "2023-12-01",
"fromQuantity": 1,
"price": {
"amount": 24.2,
"currency": "EUR"
},
"additionalInformation": {
"supplierStockLevel": 105,
"supplierStockDate": "2024-02-11",
"safetyStockLevel": 5000,
"standardDeliveryTime": 3,
"standardDeliveryTimeUnit": "days",
"currentDeliveryTime": 2,
"currentDeliveryTimeUnit": "weeks"
},
"internalComment": "Test"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Purchase Price"
],
"operationId": "purchasePrice.delete",
"summary": "Delete purchase price",
"description": "Deletes a single purchase price",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/projects": {
"get": {
"tags": [
"Project"
],
"operationId": "Project.list",
"summary": "List projects",
"description": "Returns a collection of projects",
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"search",
"id",
"name",
"keyName",
"description",
"currency",
"normalTaxRate",
"reducedTaxRate",
"storageProcess",
"pickingProcess"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name",
"keyName",
"description",
"currency",
"normalTaxRate",
"reducedTaxRate",
"storageProcess",
"pickingProcess"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"x-description-missing": true,
"type": "string",
"example": "Berlin Project"
},
"keyName": {
"x-description-missing": true,
"type": "string",
"example": "BER_PROJ_001"
},
"description": {
"x-description-missing": true,
"type": "string",
"example": "A project based in Berlin focusing on software development and integration."
},
"currency": {
"x-description-missing": true,
"type": "string",
"example": "EUR"
},
"normalTaxRate": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 13.3
},
"reducedTaxRate": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 13.3
},
"storageProcess": {
"x-description-missing": true,
"type": "string",
"enum": [
"none",
"order",
"orderPointOfSale"
],
"example": "order"
},
"pickingProcess": {
"x-description-missing": true,
"type": "string",
"enum": [
"invoiceMail",
"shipmentNote",
"shipmentNoteScan",
"shipmentNoteWarehouse",
"shipmentNoteWarehouseScan",
"twoLevel"
],
"example": "invoiceMail"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"id",
"value"
]
},
"example": [
{
"id": "1",
"value": "test"
},
{
"id": "2",
"value": "test1"
},
{
"id": "3",
"value": ""
}
]
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"example": {
"data": [
{
"id": "91",
"name": "Standard - 1",
"keyName": "STANDARD1",
"description": "This is a standard project",
"currency": "EUR",
"normalTaxRate": 19,
"reducedTaxRate": 7,
"storageProcess": "none",
"pickingProcess": "twoLevel",
"freeFields": [
{
"id": "1",
"value": "test"
},
{
"id": "2",
"value": "test1"
},
{
"id": "3",
"value": ""
},
{
"id": "4",
"value": ""
},
{
"id": "5",
"value": ""
},
{
"id": "6",
"value": ""
},
{
"id": "7",
"value": "test7"
},
{
"id": "8",
"value": ""
},
{
"id": "9",
"value": ""
},
{
"id": "10",
"value": ""
}
]
},
{
"id": "92",
"name": "Standard - 2",
"keyName": "STANDARD2",
"description": "This is a standard project",
"currency": "CH",
"normalTaxRate": 20,
"reducedTaxRate": 10,
"storageProcess": "order",
"pickingProcess": "shipmentNote",
"freeFields": [
{
"id": "1",
"value": "test"
},
{
"id": "2",
"value": "test1"
},
{
"id": "3",
"value": ""
},
{
"id": "4",
"value": ""
},
{
"id": "5",
"value": ""
},
{
"id": "6",
"value": ""
},
{
"id": "7",
"value": "test7"
},
{
"id": "8",
"value": ""
},
{
"id": "9",
"value": ""
},
{
"id": "10",
"value": ""
}
]
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/projects/{id}/posSettings": {
"get": {
"tags": [
"Project"
],
"operationId": "Project.posSettings",
"summary": "List POS settings for project",
"description": "Returns a list of POS settings of a project",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"storageProcess": {
"x-description-missing": true,
"type": "string",
"example": "Automated Storage"
},
"adapterBoxId": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"warehouse": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"priceGroup": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"cashRegister": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"defaultCustomer": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"allowAllCustomers": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"allowOnlyProjectItems": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"sumItems": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"discountItems": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"createDeliveryNote": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"label1": {
"x-description-missing": true,
"type": "string",
"example": "Shipping Label"
},
"label2": {
"x-description-missing": true,
"type": "string",
"example": "Return Label"
},
"applyItemDescriptionToReceipts": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"displayNet": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"allowMultipleOrdersPerCashier": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"journalPdfDetailedView": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"hideIndividualBookings": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"monthlyReportsWithoutIndividualDays": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"hideCountingLog": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"hideSignatureBlock": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentBar": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentBarPaid": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentEc": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentEcPaid": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentCreditCard": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentCreditCardPaid": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentTransfer": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonPaymentTransferPaid": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonInvoice": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonReceipt": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonDiscountPercent": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonDiscountEuro": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonWithdrawal": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonDeposit": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonTipping": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonTippingCredit": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonOpenDrawer": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonLoadReceipts": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"buttonCancellation": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"cashierAutologout": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"cashierAutologoutAfterPaymenet": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"extendedAddressFields": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"compulsorySelectionPaymentMethod": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"preselectionOfSalutation": {
"x-description-missing": true,
"type": "string",
"example": "Mr."
},
"printerReceiptAfterCompletion": {
"x-description-missing": true,
"type": "string",
"example": "Print receipt after transaction completion"
},
"printerId": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"printerNumberOfDeliveryNotes": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"printerNumberOfInvoices": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"printerNumberOfCreditNotes": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"printerNumberOfDeliveryNoteDuplicates": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"printerPrintReceiptWithInvoice": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"printerPrintQr": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"printerReceiptActive": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"printerReceiptCount": {
"x-description-missing": true,
"type": "integer",
"example": 5
},
"printerReceiptLine1": {
"x-description-missing": true,
"type": "string",
"example": "Thank you for your purchase!"
},
"printerReceiptLine2": {
"x-description-missing": true,
"type": "string",
"example": "Please come again."
},
"printerReceiptLine3": {
"x-description-missing": true,
"type": "string",
"example": "Please come again."
},
"printerReceiptFreeField": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"printerReceiptQr": {
"x-description-missing": true,
"type": "boolean",
"example": true
},
"ownVatId": {
"x-description-missing": true,
"type": "string",
"format": "float",
"nullable": true,
"example": "VAT12345678"
}
},
"example": {
"storageProcess": "Automated Storage",
"adapterBoxId": 5,
"warehouse": 5,
"priceGroup": 5,
"cashRegister": 5,
"defaultCustomer": 5,
"allowAllCustomers": true,
"allowOnlyProjectItems": true,
"sumItems": true,
"discountItems": 1,
"createDeliveryNote": true,
"label1": "Shipping Label",
"label2": "Return Label",
"applyItemDescriptionToReceipts": true,
"displayNet": true,
"allowMultipleOrdersPerCashier": true,
"journalPdfDetailedView": true,
"hideIndividualBookings": true,
"monthlyReportsWithoutIndividualDays": true,
"hideCountingLog": true,
"hideSignatureBlock": true,
"buttonPaymentBar": true,
"buttonPaymentBarPaid": true,
"buttonPaymentEc": true,
"buttonPaymentEcPaid": true,
"buttonPaymentCreditCard": true,
"buttonPaymentCreditCardPaid": true,
"buttonPaymentTransfer": true,
"buttonPaymentTransferPaid": true,
"buttonInvoice": true,
"buttonReceipt": true,
"buttonDiscountPercent": true,
"buttonDiscountEuro": true,
"buttonWithdrawal": true,
"buttonDeposit": true,
"buttonTipping": true,
"buttonTippingCredit": true,
"buttonOpenDrawer": true,
"buttonLoadReceipts": true,
"buttonCancellation": true,
"cashierAutologout": 5,
"cashierAutologoutAfterPaymenet": 5,
"extendedAddressFields": true,
"compulsorySelectionPaymentMethod": true,
"preselectionOfSalutation": "Mr.",
"printerReceiptAfterCompletion": "Print receipt after transaction completion",
"printerId": 5,
"printerNumberOfDeliveryNotes": 5,
"printerNumberOfInvoices": 5,
"printerNumberOfCreditNotes": 5,
"printerNumberOfDeliveryNoteDuplicates": 5,
"printerPrintReceiptWithInvoice": true,
"printerPrintQr": true,
"printerReceiptActive": true,
"printerReceiptCount": 5,
"printerReceiptLine1": "Thank you for your purchase!",
"printerReceiptLine2": "Please come again.",
"printerReceiptLine3": "Please come again.",
"printerReceiptFreeField": true,
"printerReceiptQr": true,
"ownVatId": "VAT12345678"
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/returns": {
"post": {
"tags": [
"Return"
],
"operationId": "return.create",
"summary": "Create a return",
"description": "Creates a new return.",
"requestBody": {
"description": "Request payload for return creation",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"salesOrder"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"nullable": true,
"example": "2023-03-16"
},
"salesOrder": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"positions"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"quantity",
"returnReason"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double",
"example": 14
},
"returnReason": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
}
}
}
}
},
"shippingMethod": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"nullable": true,
"example": "2"
}
}
}
}
},
"examples": {
"Create a return from a return": {
"value": {
"date": "2023-10-16",
"salesOrder": {
"id": "155",
"positions": [
{
"id": "345",
"quantity": 1,
"returnReason": {
"id": "1"
}
},
{
"id": "346",
"quantity": 3,
"returnReason": {
"id": "2"
}
}
]
},
"shippingMethod": {
"id": "2"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
}
}
},
"get": {
"tags": [
"Return"
],
"operationId": "return.list",
"summary": "List returns",
"description": "Lists existing returns",
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"documentNumber",
"customerId",
"salesOrderId",
"updatedAt",
"createdAt"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"in",
"greaterThan",
"notEquals",
"isOnOrBefore",
"isOnOrAfter",
"notIn",
"contains"
]
},
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
}
}
]
}
}
],
"responses": {
"200": {
"description": "A list of returns",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"date",
"documentNumber",
"tags",
"customer",
"salesOrder",
"status"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"date": {
"type": "string",
"nullable": true,
"format": "date",
"example": "2023-03-16",
"description": "Date of creation of the Return order"
},
"status": {
"type": "string",
"enum": [
"unknown",
"open",
"canceled",
"completed",
"sent",
"created",
"announced",
"released",
"checked",
"done"
],
"description": "Status of the Return order",
"example": "completed"
},
"documentNumber": {
"type": "string",
"nullable": true,
"example": "2023-000001",
"description": "Internal identification of the Return order"
},
"tags": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"salesOrder": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"customer": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"number"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"example": "K-000001",
"nullable": true
}
},
"description": "Customer linked to the Return order",
"example": {
"id": "1",
"number": "K-000001"
}
},
"shippingMethod": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"example": "DHL",
"nullable": true
}
},
"description": "Customer linked to the Return order",
"example": {
"id": "1",
"name": "DHL"
}
},
"project": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"example": "DHL",
"nullable": true
}
},
"description": "Customer linked to the Return order",
"example": {
"id": "1",
"name": "DHL"
}
},
"progress": {
"type": "string",
"nullable": true,
"example": "2023-000001",
"description": "Internal identification of the Return order"
},
"bodyOutroduction": {
"type": "string",
"nullable": true,
"example": "2023-000001",
"description": "Internal identification of the Return order"
},
"internalComment": {
"type": "string",
"nullable": true,
"example": "2023-000001",
"description": "Internal identification of the Return order"
}
}
},
"description": "Data representation of a list of Return orders",
"example": [
{
"id": "1",
"date": "2023-03-16",
"documentNumber": "2023-000001",
"tags": [],
"customer": {
"id": "1",
"number": "K-000001"
},
"salesOrder": {
"id": "1"
},
"status": "completed",
"progress": "checked",
"shippingMethod": {
"id": "1",
"name": "DHL"
},
"project": {
"id": "1",
"name": "Standard Projekt"
},
"bodyOutroduction": "testfreitest",
"internalComment": "testintern"
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/returns/{id}": {
"get": {
"tags": [
"Return"
],
"operationId": "return.view",
"summary": "View return",
"description": "Return details of an existing return",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "One return.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"date",
"salesOrder",
"positions"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"date": {
"type": "string",
"nullable": true,
"format": "date",
"example": "2023-03-16",
"description": "Date of creation of the Return order"
},
"status": {
"type": "string",
"enum": [
"unknown",
"open",
"canceled",
"completed",
"sent",
"created",
"announced",
"released",
"checked",
"done"
],
"description": "Status of the Return order",
"example": "completed"
},
"progress": {
"type": "string",
"enum": [
"announced",
"received",
"checked",
"done"
],
"description": "Proress of the Return order",
"example": "announced"
},
"documentNumber": {
"type": "string",
"nullable": true,
"example": "2023-000001",
"description": "Internal identification of the Return order"
},
"bodyOutroduction": {
"type": "string",
"description": "Free text for return note",
"example": "Freitext"
},
"internalComment": {
"type": "string",
"description": "Internal comment about the return.",
"example": "Internal comment"
},
"shippingMethod": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"description": "Shipping method used for the return note",
"example": {
"id": 1
}
},
"project": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"description": "Project of return",
"example": {
"id": 2,
"name": "B2C"
}
},
"salesOrder": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"quantity",
"returnReason",
"product",
"salesOrderPosition"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double",
"example": 14.5
},
"salesOrderPosition": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"number",
"name"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"example": "SKU-700010"
},
"name": {
"type": "string",
"example": "Product name"
}
}
},
"returnReason": {
"type": "object",
"required": [
"designation"
],
"properties": {
"designation": {
"type": "string",
"nullable": true,
"example": "Damaged"
}
}
}
}
},
"description": "Items included within the Return order",
"example": [
{
"id": "1",
"quantity": 3,
"salesOrderPosition": {
"id": "1"
},
"product": {
"id": "1",
"number": "SKU-700010",
"name": "Product name"
},
"returnReason": {
"designation": "Damaged"
}
}
]
}
},
"description": "Representation of a Return order",
"example": {
"id": "1",
"date": "2023-03-16",
"salesOrder": {
"id": "1"
},
"positions": [
{
"id": "1",
"quantity": 3,
"salesOrderPosition": {
"id": "1"
},
"product": {
"id": "1",
"number": "SKU-700010",
"name": "Product name"
},
"returnReason": {
"designation": "Damaged"
}
}
]
}
}
}
}
},
"application/pdf": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/returns/{id}/documents": {
"post": {
"tags": [
"Return"
],
"operationId": "return.createDocument",
"summary": "Create return document",
"description": "Creates new return document",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Sales order document create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
},
"keyword": {
"type": "string",
"enum": [
"otherFile",
"coverPage",
"attachment"
]
},
"fileName": {
"type": "string"
},
"fileContent": {
"type": "string",
"description": "A base64 encoded document. Supported formats PDF",
"format": "byte"
}
}
},
"examples": {
"Create product media": {
"value": {
"title": "Sales order document",
"description": "Sales order document",
"keyword": "otherFile",
"fileName": "sample.pdf",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Return"
],
"operationId": "return.updateMultiple",
"summary": "Update multiple return documents",
"description": "Updates multiple return documents",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Sales order documents update multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Update"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Document updated"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"enum": [
"otherFile",
"coverPage",
"attachment"
],
"example": "otherFile"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"nullable": true,
"example": 1
}
}
}
},
"examples": {
"Update multiple return documents": {
"value": [
{
"id": "52",
"title": "Sales order document",
"description": "Sales order document",
"keyword": "attachment",
"sort": 1
},
{
"id": "53",
"title": "Second return document",
"description": "Second return document",
"sort": 2
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Return"
],
"operationId": "return.deleteMultiple",
"summary": "Delete multiple return documents",
"description": "Deletes a multiple return documents",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Sales order documents delete multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"examples": {
"Delete multiple return documents": {
"value": [
{
"id": "52"
},
{
"id": "53"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Return"
],
"operationId": "return.listDocument",
"summary": "View return document list",
"description": "Returns a list of given return documents",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"currentFileVersionId",
"fileName"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"entity": {
"x-description-missing": true,
"type": "string",
"example": "Return entity"
},
"entityId": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Return title"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "List of return document"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "attachment"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"currentVersion": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"type": "integer"
},
"remark": {
"type": "string",
"nullable": true
},
"filename": {
"type": "string"
},
"size": {
"type": "object",
"additionalProperties": false,
"required": [
"value",
"unit"
],
"properties": {
"value": {
"type": "integer"
},
"unit": {
"type": "string",
"enum": [
"byte"
],
"description": "Currently only byte as unit allowed."
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
},
"example": {
"id": "45",
"version": 2,
"remark": "Updated document",
"filename": "return_invoice_2024.pdf",
"size": {
"value": 1024,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2024-09-18T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/returns/{id}/documents/{documentId}": {
"get": {
"tags": [
"Return"
],
"operationId": "return.viewDocument",
"summary": "View return document",
"description": "Returns details of a single return document",
"parameters": [
{
"name": "documentId",
"in": "path",
"description": "ID of document",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"entity": {
"x-description-missing": true,
"type": "string",
"example": "Return entity"
},
"entityId": {
"x-description-missing": true,
"type": "integer",
"example": 12
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Return title"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "List of return document"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "attachment"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"versions": {
"type": "array",
"items": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"type": "integer"
},
"remark": {
"type": "string",
"nullable": true
},
"filename": {
"type": "string"
},
"size": {
"type": "object",
"additionalProperties": false,
"required": [
"value",
"unit"
],
"properties": {
"value": {
"type": "integer"
},
"unit": {
"type": "string",
"enum": [
"byte"
],
"description": "Currently only byte as unit allowed."
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
},
"example": {
"id": "45",
"version": 2,
"remark": "Updated document",
"filename": "return_invoice_2024.pdf",
"size": {
"value": 1024,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
}
},
"currentVersion": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"type": "integer"
},
"remark": {
"type": "string",
"nullable": true
},
"filename": {
"type": "string"
},
"size": {
"type": "object",
"additionalProperties": false,
"required": [
"value",
"unit"
],
"properties": {
"value": {
"type": "integer"
},
"unit": {
"type": "string",
"enum": [
"byte"
],
"description": "Currently only byte as unit allowed."
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
},
"example": {
"id": "45",
"version": 2,
"remark": "Updated document",
"filename": "return_invoice_2024.pdf",
"size": {
"value": 1024,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2024-09-18T14:30:00Z"
}
},
"example": {
"id": "17",
"entity": "Return entity",
"entityId": 12,
"title": "Return title",
"description": "List of return document",
"keyword": "attachment",
"sort": 1,
"versions": [
{
"id": "abc123",
"version": 1,
"remark": "Initial version of the document.",
"filename": "document_v1.pdf",
"size": {
"value": 210,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
],
"currentVersion": {
"id": "abc123",
"version": 1,
"remark": "Initial version of the document.",
"filename": "document_v1.pdf",
"size": {
"value": 210,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
}
}
}
},
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
},
"application/pdf": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/returns/{id}/actions/release": {
"post": {
"tags": [
"Return"
],
"operationId": "return.actions.release",
"summary": "Release a return",
"description": "Releases a return.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
}
}
}
},
"/api/v1/returns/{id}/goodsReceipts": {
"post": {
"tags": [
"Goods Receipt"
],
"operationId": "return.goodsReceipt.create",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"summary": "Create a new goods receipt for a return",
"description": "Creates a new goods receipt for a return.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"format": "date",
"example": "2024-09-18"
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"quantity": {
"type": "number",
"format": "double",
"example": 10.5
},
"returnPosition": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"stockMovements": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"quantity": {
"type": "number",
"format": "double",
"example": 5
},
"warehouse": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"storageLocation": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
},
"qualityControlAttributes": {
"type": "object",
"additionalProperties": false,
"properties": {
"quantity": {
"type": "number",
"format": "double",
"example": 2.5
},
"batch": {
"type": "string",
"example": "Batch-123"
},
"bestBeforeDate": {
"type": "string",
"format": "date",
"example": "2025-01-01"
},
"serialNumbers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"number": {
"type": "string",
"example": "SN-123456789"
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"examples": {
"example": {
"value": {
"date": "2024-09-18",
"positions": [
{
"product": {
"id": "product-1"
},
"quantity": 10.5,
"returnPosition": {
"id": "return-1"
},
"stockMovements": [
{
"quantity": 5,
"warehouse": {
"id": "17"
},
"storageLocation": {
"id": "location-1"
},
"qualityControlAttributes": {
"quantity": 2.5,
"batch": "Batch-123",
"bestBeforeDate": "2025-01-01",
"serialNumbers": [
{
"number": "SN-123456789"
}
]
}
}
]
}
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/returnReasons": {
"get": {
"tags": [
"Return Reason"
],
"operationId": "returnReason.list",
"summary": "List of return reasons",
"description": "Returns a list of return reasons",
"parameters": [
{
"name": "project",
"style": "deepObject",
"in": "query",
"schema": {
"type": "object",
"additionalProperties": false,
"description": "Project to optionally filter by",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
{
"name": "language",
"in": "query",
"schema": {
"type": "string",
"description": "Language code, 2-letter ISO code."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"designation",
"description",
"language",
"project"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"designation": {
"type": "string",
"example": "Broken packaging",
"description": "Designation of the return reason"
},
"description": {
"type": "string",
"example": "The boxes have been ripped off during transit",
"description": "Description of the return reason"
},
"language": {
"type": "string",
"example": "DE",
"description": "Language in which the return reason is written"
},
"project": {
"type": "object",
"required": [
"id"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"description": "Project for the return reason",
"example": {
"id": "1"
}
}
}
},
"description": "Data representation of a list of return reasons",
"example": [
{
"id": "1",
"designation": "Broken packaging",
"description": "The boxes have been ripped off during transit",
"language": "DE",
"project": {
"id": "1"
}
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"406": {
"description": "Requested resource representation does not exist."
}
}
}
},
"/api/v1/salesOrders": {
"get": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.list",
"summary": "List sales orders",
"description": "Returns a collection with all sales orders.",
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"documentNumber"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"orderDate",
"status",
"documentNumber",
"transactionNumber",
"externalOrderNumber",
"customerOrderNumber",
"externalOrderId",
"customerId",
"customerNumber",
"email",
"zipCode",
"shippingEmail",
"shippingZip",
"isBeingEdited",
"subsequentDelivery",
"shippingDateOk",
"creditLimitOk",
"shippingLockOk",
"prepaidOk",
"postageOk",
"customerCheckOk",
"vatOk",
"stockOk",
"internalComment",
"shippingMethod",
"autoShipping",
"fastLane",
"gln",
"shippingGln",
"project",
"paymentMethod",
"country",
"phoneNumber",
"shippingCountry",
"desiredDeliveryDate"
]
},
"op": {
"type": "string",
"enum": [
"greaterThan",
"lessThan",
"equals",
"notEquals",
"in",
"notIn"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "For dates use format: 2023-01-26T10:42:42+01:00 and encode as url. Valid statuses are created,released,canceled,completed.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"type": "string",
"description": "Internal identification associated with a Sales Order",
"example": "SO-1234"
},
"isBeingEdited": {
"type": "boolean",
"description": "Indicates if the Sales Order is currently being edited",
"example": false
},
"shippingDateOk": {
"type": "boolean",
"description": "Indicates if the shipping date is ok",
"example": false
},
"creditLimitOk": {
"type": "boolean",
"description": "Indicates if the credit limit is ok",
"example": false
},
"subsequentDelivery": {
"type": "boolean",
"description": "Indicates if the Sales Order is a subsequent delivery",
"example": false
},
"shippingLockOk": {
"type": "boolean",
"description": "Indicates if the shipping lock is ok",
"example": false
},
"postageOk": {
"type": "boolean",
"description": "Indicates if the postage is ok",
"example": false
},
"customerCheckOk": {
"type": "boolean",
"description": "Indicates if the customer check is ok",
"example": false
},
"vatOk": {
"type": "boolean",
"description": "Indicates if the VAT is ok",
"example": false
},
"stockOk": {
"type": "boolean",
"description": "Indicates if the stock is ok",
"example": false
},
"prepaidOk": {
"type": "boolean",
"description": "Indicates if the prepaid status is ok",
"example": false
},
"externalOrderNumber": {
"type": "string",
"description": "External identification associated with a Sales Order",
"example": "ESO-1234"
},
"transactionNumber": {
"type": "string",
"description": "Transaction number associated with a Sales Order",
"example": "transaction1"
},
"customerOrderNumber": {
"type": "string",
"description": "Customer order associated with a Sales Order",
"example": "customerOrder1"
},
"externalOrderId": {
"type": "string",
"description": "External ID associated with a Sales Order",
"example": "10"
},
"bodyOutroduction": {
"type": "string",
"description": "Ending description message for Sales Order",
"example": "Additional info"
},
"date": {
"type": "string",
"format": "date",
"description": "Date of creation of a Sales Order",
"example": "2025-01-01"
},
"netSales": {
"type": "number",
"format": "float",
"description": "Net sales amount of the Sales Order",
"example": 100
},
"total": {
"type": "number",
"format": "float",
"description": "Total amount of the Sales Order",
"example": 100
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"description": "Date of creation desired delivery date",
"nullable": true,
"example": "2025-01-01"
},
"reservationDate": {
"type": "string",
"format": "date",
"description": "Date of reservation",
"nullable": true,
"example": "2025-01-01"
},
"desiredDeliveryDateAsCalendarWeek": {
"type": "boolean",
"description": "Indicating whether a calendar week should be printed on documents or the actual date) is readable and editable via API",
"example": false
},
"editor": {
"type": "string",
"description": "Creator of the Sales Order",
"example": "Administrator1"
},
"sales": {
"type": "object",
"description": "Represents a sales representative with associated attributes.",
"additionalProperties": false,
"properties": {
"id": {
"type": "number",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
}
},
"example": {
"id": 17,
"name": "Jonas Tilles"
}
},
"status": {
"type": "string",
"enum": [
"completed",
"created",
"released",
"canceled",
"unknown"
],
"description": "Status of the Sales Order",
"example": "completed"
},
"customer": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"nullable": true
}
},
"description": "Customer linked to a Sales Order",
"example": {
"id": "1"
}
},
"comment": {
"type": "string",
"description": "Comment included in the Sales Order",
"example": "Comment"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"language": {
"type": "object",
"additionalProperties": false,
"required": [
"iso2"
],
"properties": {
"iso2": {
"type": "string",
"description": "ISO 639-1 Code",
"nullable": true
}
},
"description": "Language information for a Sales Order",
"example": {
"iso2": "DE"
}
},
"log": {
"type": "object",
"properties": {
"createdAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"createdBy": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
}
}
},
"description": "Logging information for the Sales Order",
"example": {
"createdAt": "2023-12-01 00:00:00",
"createdBy": {
"id": "1",
"name": "User 1"
}
}
},
"financials": {
"type": "object",
"additionalProperties": false,
"required": [
"paymentMethod",
"currency"
],
"properties": {
"paymentMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"currency": {
"type": "string"
},
"costCenter": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"number"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"nullable": true
}
},
"example": {
"id": "1",
"number": "1234"
}
},
"billingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"country"
],
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"fax": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"salutation": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
},
"tax": {
"type": "object",
"additionalProperties": false,
"properties": {
"taxation": {
"type": "string",
"enum": [
"domestic",
"eu",
"export",
"taxfreedomestic"
]
},
"vatId": {
"type": "string"
},
"taxDisplay": {
"type": "string",
"enum": [
"gross",
"net",
"auto"
]
},
"noTaxInfoText": {
"type": "boolean"
},
"normalTaxRate": {
"type": "number",
"format": "float"
},
"reducedTaxRate": {
"type": "number",
"format": "float"
}
}
},
"paymentTerms": {
"type": "object",
"additionalProperties": false,
"properties": {
"paymentTargetDiscount": {
"type": "number",
"format": "float"
},
"paymentTargetDays": {
"type": "integer",
"format": "int64"
},
"paymentTargetDiscountDays": {
"type": "integer",
"format": "int64"
}
}
}
},
"description": "Financial information for a Sales Order",
"example": {
"paymentMethod": {
"id": "3"
},
"currency": "EUR"
}
},
"delivery": {
"allOf": [
{
"type": "object",
"properties": {
"autoShipping": {
"type": "boolean"
},
"fastLane": {
"type": "boolean"
},
"shippingCosts": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"shippingCostProduct",
"quantity"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"shippingCostProduct": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When importing a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When importing a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
}
},
"storageCountry": {
"type": "string",
"nullable": true,
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use storageCountry for external fulfillment without delivery notes to set the country of fulfillment. If using delivery notes, do not use storageCountry."
},
"preferredWarehouse": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"nullable": false
}
},
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use preferredWarehouse for fulfillment with delivery notes to define which warehouse should be used."
},
"shippingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"city",
"country",
"zipCode",
"street"
],
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
}
}
},
{
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"conditions": {
"type": "string"
}
}
}
],
"description": "Delivery information for the Sales Order",
"example": {
"autoShipping": true,
"fastLane": true,
"shippingMethod": {
"id": "1"
},
"shippingCosts": [
{
"id": "1",
"quantity": 3,
"shippingCostProduct": {
"id": "1"
}
}
],
"email": "user.email@email.org",
"conditions": "none"
}
}
}
},
"description": "Response data containing list of Sales Orders",
"example": [
{
"id": "1",
"documentNumber": "SO1",
"externalOrderNumber": "ES01",
"transactionNumber": "transaction1",
"customerOrderNumber": "customerOrder1",
"externalOrderId": "10",
"bodyOutroduction": "body",
"date": "2024-01-01",
"netSales": 620,
"total": 737.8,
"desiredDeliveryDate": "2022-12-05",
"reservationDate": "2022-12-05",
"desiredDeliveryDateAsCalendarWeek": false,
"editor": "Administrator1",
"sales": {
"id": 17,
"name": "Jonas Tilles"
},
"status": "created",
"isBeingEdited": false,
"subsequentDelivery": false,
"shippingDateOk": true,
"creditLimitOk": true,
"shippingLockOk": true,
"prepaidOk": true,
"postageOk": true,
"customerCheckOk": true,
"vatOk": true,
"stockOk": true,
"customer": {
"id": "1"
},
"comment": "Additional comments",
"project": {
"id": "1"
},
"language": {
"iso2": "DE"
},
"log": {
"createdAt": "2023-12-01 00:00:00",
"createdBy": {
"id": "1",
"name": "User 1"
}
},
"financials": {
"paymentMethod": {
"id": "3"
},
"currency": "EUR",
"costCenter": {
"id": "1",
"number": "1234"
},
"billingAddress": {
"type": "mr",
"name": "John Doe",
"department": "",
"subDepartment": "",
"street": "Musterstrasse 6",
"zipCode": "12345",
"city": "Musterdorf",
"state": "",
"country": "DE",
"title": "",
"contactPerson": "",
"addressSupplement": "",
"fax": "0821123456790",
"email": "info@xentral.com",
"salutation": "",
"gln": "",
"phoneNumber": "0123456789"
}
},
"delivery": {
"autoShipping": true,
"fastLane": true,
"shippingCosts": [
{
"id": "1",
"quantity": 3,
"shippingCostProduct": {
"id": "1"
}
}
],
"preferredWarehouse": {
"id": "1"
},
"storageCountry": "DE",
"email": "user.email@email.org",
"conditions": "none"
}
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"type": "string",
"description": "Internal identification associated with a Sales Order",
"example": "SO-1234"
},
"date": {
"type": "string",
"description": "Date of creation of a Sales Order",
"example": "2025-01-01"
},
"status": {
"type": "string",
"enum": [
"completed",
"created",
"released",
"canceled",
"unknown"
],
"description": "Status of the Sales Order",
"example": "completed"
}
},
"description": "Minimal representation of a Sales Order",
"example": {
"id": "1",
"documentNumber": "SO1",
"date": "2025-01-01",
"status": "completed"
}
},
"description": "Response data containing list with minimal information of Sales Orders",
"example": [
{
"id": "1",
"documentNumber": "SO1",
"date": "2025-01-01",
"status": "completed"
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/salesOrders/actions/import": {
"post": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.import",
"summary": "Import sales order",
"description": "Import a sales order from external marketplace",
"requestBody": {
"description": "Sales order import request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"date",
"customer",
"project",
"financials",
"delivery",
"positions"
],
"properties": {
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true
},
"reservationDate": {
"type": "string",
"format": "date",
"nullable": true
},
"desiredDeliveryDateAsCalendarWeek": {
"type": "boolean",
"description": "Flag indicating whether a calendar week should be printed on documents"
},
"editor": {
"type": "string",
"description": "Creator of the Sales Order"
},
"salesRepresentativeId": {
"type": "integer",
"description": "The ID of the sales representative"
},
"date": {
"type": "string",
"format": "date"
},
"externalOrderNumber": {
"type": "string",
"description": "Customer-facing sales order number in the originating shop system / platform (e.g. Shopify, Amazon, etc)"
},
"externalOrderId": {
"type": "string",
"description": "technical sales order ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync status updates & tracking info back to the originating shop / platform"
},
"transactionNumber": {
"type": "string",
"description": "transaction number typically used to identify payment transactions in the originating shop system / platforms (e.g. Shopify, Amazon, etc). This ID is typically used for financial reconciliation of payment transactions with sales orders / invoices in Xentral."
},
"customerOrderNumber": {
"type": "string",
"description": "Purchase Order number from the customer’s purchase order system, typically used in B2B context."
},
"autoCreateDocuments": {
"type": "string",
"enum": [
"deliveryNote+invoice",
"deliveryNote",
"invoice"
],
"description": "Sets documents created by autoshippment."
},
"vatCheck": {
"type": "boolean",
"description": "Sets whether the provided VAT-ID has been checked already and is considered valid."
},
"bodyIntroduction": {
"type": "string",
"description": "Text displayed on the PDF print-out above the positions table. Rich-Text capable."
},
"bodyOutroduction": {
"type": "string",
"description": "Text displayed on the PDF print-out below the positions table. Rich-Text capable."
},
"internalDesignation": {
"type": "string",
"description": "Internal designation which is also displayed as grey text in the sales order list in the application. Unformatted string only."
},
"comment": {
"type": "string",
"description": "Internal comment. Rich-Text capable."
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"customer": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"salesChannel": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"language": {
"type": "object",
"additionalProperties": false,
"required": [
"iso2"
],
"properties": {
"iso2": {
"type": "string",
"description": "ISO 639-1 Code",
"nullable": true
}
},
"description": "Language information for a Sales Order",
"example": {
"iso2": "DE"
}
},
"financials": {
"type": "object",
"additionalProperties": false,
"required": [
"paymentMethod",
"currency"
],
"properties": {
"paymentMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"currency": {
"type": "string"
},
"costCenter": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"number"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"nullable": true
}
},
"example": {
"id": "1",
"number": "1234"
}
},
"billingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"country"
],
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"fax": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"salutation": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
},
"tax": {
"type": "object",
"additionalProperties": false,
"properties": {
"taxation": {
"type": "string",
"enum": [
"domestic",
"eu",
"export",
"taxfreedomestic"
]
},
"vatId": {
"type": "string"
},
"taxDisplay": {
"type": "string",
"enum": [
"gross",
"net",
"auto"
]
},
"noTaxInfoText": {
"type": "boolean"
},
"normalTaxRate": {
"type": "number",
"format": "float"
},
"reducedTaxRate": {
"type": "number",
"format": "float"
}
}
},
"paymentTerms": {
"type": "object",
"additionalProperties": false,
"properties": {
"paymentTargetDiscount": {
"type": "number",
"format": "float"
},
"paymentTargetDays": {
"type": "integer",
"format": "int64"
},
"paymentTargetDiscountDays": {
"type": "integer",
"format": "int64"
}
}
}
},
"description": "Financial information for a Sales Order",
"example": {
"paymentMethod": {
"id": "3"
},
"currency": "EUR"
}
},
"delivery": {
"allOf": [
{
"type": "object",
"properties": {
"autoShipping": {
"type": "boolean"
},
"fastLane": {
"type": "boolean"
},
"shippingCosts": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"shippingCostProduct",
"quantity"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"shippingCostProduct": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When importing a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When importing a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
}
},
"storageCountry": {
"type": "string",
"nullable": true,
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use storageCountry for external fulfillment without delivery notes to set the country of fulfillment. If using delivery notes, do not use storageCountry."
},
"preferredWarehouse": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"nullable": false
}
},
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use preferredWarehouse for fulfillment with delivery notes to define which warehouse should be used."
},
"shippingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"city",
"country",
"zipCode",
"street"
],
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
}
}
},
{
"type": "object",
"required": [
"shippingMethod"
],
"properties": {
"shippingMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"deliveryTerms": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
{
"type": "object",
"properties": {
"storageCountry": {
"type": "string",
"nullable": true,
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use storageCountry for external fulfillment without delivery notes to set the country of fulfillment. If using delivery notes, do not use storageCountry."
}
}
},
{
"type": "object",
"properties": {
"preferredWarehouse": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"nullable": false
}
},
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use preferredWarehouse for fulfillment with delivery notes to define which warehouse should be used."
}
}
}
]
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"product",
"quantity"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When editing/creating a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When editing/creating a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true
},
"desiredDeliveryDateAsCalendarWeek": {
"type": "boolean",
"description": "Flag indicating whether a calendar week should be printed on documents"
}
}
}
},
"discountPositions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"discountProduct",
"quantity"
],
"properties": {
"quantity": {
"type": "number",
"format": "double"
},
"discountProduct": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When editing/creating a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When editing/creating a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"value": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
}
},
"setTotalAmount": {
"type": "object",
"nullable": true,
"properties": {
"isActive": {
"type": "boolean",
"description": "isActive"
},
"maximumDifferenceToCalculatedSum": {
"type": "number",
"format": "float",
"description": "maximumDifferenceToCalculatedSum"
},
"totalGrossAmountFromExternal": {
"type": "number",
"format": "float",
"description": "totalGrossAmountFromExternal"
}
}
}
}
},
"examples": {
"Import sales order": {
"value": {
"date": "2023-12-01",
"desiredDeliveryDate": "2023-11-11",
"reservationDate": "2023-11-12",
"editor": "Administrator1",
"desiredDeliveryDateAsCalendarWeek": false,
"salesRepresentativeId": 1,
"externalOrderNumber": "120013",
"externalOrderId": "453894034",
"customer": {
"id": "394"
},
"project": {
"id": "4"
},
"salesChannel": {
"id": "3"
},
"language": {
"iso2": "de"
},
"financials": {
"paymentMethod": {
"id": "1"
},
"currency": "EUR",
"billingAddress": {
"type": "mrs",
"name": "Jane Doe",
"street": "Musterstraße 1",
"zipCode": "12345",
"city": "Musterstadt",
"country": "DE"
},
"tax": {
"taxation": "domestic",
"taxDisplay": "gross"
}
},
"delivery": {
"autoShipping": true,
"fastLane": false,
"shippingAddress": {
"type": "mrs",
"name": "Jane Doe",
"street": "Musterstraße 1",
"zipCode": "12345",
"city": "Musterstadt",
"country": "DE"
},
"shippingMethod": {
"id": "4"
},
"shippingCosts": [
{
"shippingCostProduct": {
"id": "453"
},
"quantity": 1
}
],
"storageCountry": "DE"
},
"positions": [
{
"product": {
"id": "241"
},
"quantity": 1,
"price": {
"amount": "10.00",
"currency": "EUR"
},
"tax": {
"taxText": "19% MwSt.",
"vatCategory": "normal"
},
"webId": "2395028",
"desiredDeliveryDate": "2027-07-17",
"desiredDeliveryDateAsCalendarWeek": true
},
{
"product": {
"id": "494"
},
"quantity": 4,
"price": {
"amount": "20.00",
"currency": "EUR"
},
"discount": 10,
"tax": {
"taxText": "7% MwSt.",
"vatCategory": "reduced"
},
"webId": "2395029",
"desiredDeliveryDate": "2028-07-17",
"desiredDeliveryDateAsCalendarWeek": true
}
],
"setTotalAmount": {
"isActive": true,
"maximumDifferenceToCalculatedSum": 0.05,
"totalGrossAmountFromExternal": 170.34
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
}
}
}
},
"/api/v1/salesOrders/{id}/actions/dispatch": {
"post": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.actions.dispatch",
"summary": "Dispatch a released sales order",
"description": "Dispatch a released sales order, if it fulfills all requirements",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/salesOrders/{id}/actions/cancel": {
"post": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.actions.cancel",
"summary": "Cancel a sales order",
"description": "Cancels a sales order. Only sales orders in status 'created' or 'completed' can be canceled. For draft sales orders use the delete endpoint.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Sales order documents delete multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"notifyCustomer": {
"type": "boolean",
"nullable": true
}
}
},
"examples": {
"Cancel sales order with notification email sent to customer": {
"value": {
"notifyCustomer": true
}
}
}
},
"application/x-www-form-urlencoded": {
"examples": {
"Cancel sales order without body": {
"value": {}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/salesOrders/{id}": {
"get": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.view",
"summary": "View sales order",
"description": "Returns details of a sales order",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"type": "string",
"description": "Internal identification associated with a Sales Order",
"example": "SO-1234"
},
"externalOrderNumber": {
"type": "string",
"description": "External identification associated with a Sales Order",
"example": "ESO-1234"
},
"transactionNumber": {
"type": "string",
"description": "Transaction number associated with a Sales Order",
"example": "transaction1"
},
"customerOrderNumber": {
"type": "string",
"description": "Customer order associated with a Sales Order",
"example": "customerOrder1"
},
"externalOrderId": {
"type": "string",
"description": "External ID associated with a Sales Order",
"example": "10"
},
"salesChannel": {
"description": "Represents a sales channel as a reference to another resource. This object can be null and contains an identifier and an optional name.",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"nullable": true
}
},
"example": {
"id": "1337"
}
},
"bodyIntroduction": {
"type": "string",
"description": "Initial description message for Sales Order",
"example": "Initial info"
},
"bodyOutroduction": {
"type": "string",
"description": "Ending description message for Sales Order",
"example": "Additional info"
},
"internalDesignation": {
"type": "string",
"description": "Internal designation for Sales Order",
"example": "InternalSO1"
},
"date": {
"type": "string",
"format": "date",
"description": "Date of creation of a Sales Order",
"example": "2025-01-01"
},
"earliestFulfillmentDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Earliest Fulfillment Date",
"example": "2024-01-01"
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Desired Delivery Date for the Sales Order",
"example": "2025-01-01"
},
"desiredDeliveryDateCw": {
"type": "boolean",
"description": "Flag indicating whether a calendar week should be printed on documents",
"example": true
},
"reservationDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Reservation Date for the Sales Order",
"example": "2025-01-01"
},
"editor": {
"type": "string",
"description": "Creator of the Sales Order",
"example": "Administrator1"
},
"sales": {
"type": "object",
"description": "Represents a sales representative with associated attributes.",
"additionalProperties": false,
"properties": {
"id": {
"type": "number",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
}
},
"example": {
"id": 17,
"name": "Jonas Tilles"
}
},
"status": {
"type": "string",
"enum": [
"completed",
"created",
"released",
"canceled",
"unknown"
],
"description": "Status of the Sales Order",
"example": "completed"
},
"customer": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"nullable": true
}
},
"description": "Customer linked to a Sales Order",
"example": {
"id": "1"
}
},
"comment": {
"type": "string",
"description": "Comment included in the Sales Order",
"example": "Comment"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"language": {
"type": "object",
"additionalProperties": false,
"required": [
"iso2"
],
"properties": {
"iso2": {
"type": "string",
"description": "ISO 639-1 Code",
"nullable": true
}
},
"description": "Language information for a Sales Order",
"example": {
"iso2": "DE"
}
},
"autoCreateDocuments": {
"type": "string",
"enum": [
"deliveryNote+invoice",
"deliveryNote",
"invoice"
],
"description": "Sets documents created by autoshippment.",
"example": "deliveryNote+invoice"
},
"log": {
"type": "object",
"properties": {
"createdAt": {
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2023-12-01T00:00:00Z"
},
"createdBy": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"example": "User 1"
},
"email": {
"type": "string",
"format": "email",
"example": "user1@example.com"
}
}
}
},
"description": "Logging information for the Sales Order",
"example": {
"createdAt": "2023-12-01T00:00:00Z",
"createdBy": {
"id": "1",
"name": "User 1"
}
}
},
"financials": {
"type": "object",
"additionalProperties": false,
"required": [
"paymentMethod",
"currency"
],
"properties": {
"paymentMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"currency": {
"type": "string"
},
"costCenter": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id",
"number"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"number": {
"type": "string",
"nullable": true
}
},
"example": {
"id": "1",
"number": "1234"
}
},
"billingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"country"
],
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"department": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"fax": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"salutation": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
},
"tax": {
"type": "object",
"additionalProperties": false,
"properties": {
"taxation": {
"type": "string",
"enum": [
"domestic",
"eu",
"export",
"taxfreedomestic"
]
},
"vatId": {
"type": "string"
},
"taxDisplay": {
"type": "string",
"enum": [
"gross",
"net",
"auto"
]
},
"noTaxInfoText": {
"type": "boolean"
},
"normalTaxRate": {
"type": "number",
"format": "float"
},
"reducedTaxRate": {
"type": "number",
"format": "float"
}
}
},
"paymentTerms": {
"type": "object",
"additionalProperties": false,
"properties": {
"paymentTargetDiscount": {
"type": "number",
"format": "float"
},
"paymentTargetDays": {
"type": "integer",
"format": "int64"
},
"paymentTargetDiscountDays": {
"type": "integer",
"format": "int64"
}
}
}
},
"description": "Financial information for a Sales Order",
"example": {
"paymentMethod": {
"id": "3"
},
"currency": "EUR"
}
},
"delivery": {
"allOf": [
{
"type": "object",
"properties": {
"autoShipping": {
"type": "boolean"
},
"fastLane": {
"type": "boolean"
},
"shippingCosts": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"shippingCostProduct",
"quantity"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"shippingCostProduct": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When importing a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When importing a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
}
},
"storageCountry": {
"type": "string",
"nullable": true,
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use storageCountry for external fulfillment without delivery notes to set the country of fulfillment. If using delivery notes, do not use storageCountry."
},
"preferredWarehouse": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"nullable": false
}
},
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use preferredWarehouse for fulfillment with delivery notes to define which warehouse should be used."
},
"shippingAddress": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"city",
"country",
"zipCode",
"street"
],
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
}
}
},
{
"type": "object",
"required": [
"shippingMethod"
],
"properties": {
"shippingMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"deliveryTerms": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"email": {
"type": "string",
"format": "email",
"example": "user.email@email.org"
},
"conditions": {
"type": "string",
"example": "none"
},
"preferredWarehouse": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"nullable": true
}
},
"description": "Only use preferredWarehouse OR storageCountry. You cannot use both at the same time. Use preferredWarehouse for fulfillment with delivery notes to define which warehouse should be used."
},
"storageCountry": {
"type": "string",
"nullable": true,
"description": "storageCountry",
"example": "DE"
}
}
}
],
"description": "Delivery information for the Sales Order",
"example": {
"autoShipping": true,
"fastLane": true,
"shippingMethod": {
"id": "1"
},
"shippingCosts": [
{
"id": "1",
"quantity": 3,
"shippingCostProduct": {
"id": "1"
}
}
],
"preferredWarehouse": {
"id": "2"
},
"storageCountry": "DE",
"email": "user.email@email.org",
"conditions": "none"
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"type": {
"type": "string",
"nullable": true
},
"title": {
"type": "string",
"nullable": true
}
}
},
"description": "Tags associated with the Sales Order",
"example": [
{
"id": "1"
}
]
},
"netSales": {
"type": "object",
"additionalProperties": false,
"description": "This contains amount with currency.",
"properties": {
"amount": {
"type": "string",
"format": "float",
"description": "The total net sales amount.",
"example": "0.00"
},
"currency": {
"type": "string",
"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"
],
"description": "The currency of the net sales amount.",
"example": "USD"
}
},
"required": [
"amount",
"currency"
],
"example": {
"amount": "0.00",
"currency": "USD"
}
},
"total": {
"type": "object",
"description": "This contains total with currency",
"additionalProperties": false,
"properties": {
"amount": {
"type": "string",
"format": "float",
"description": "The total amount including taxes and fees.",
"example": "737.80"
},
"currency": {
"type": "string",
"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"
],
"description": "The currency of the total amount.",
"example": "EUR"
}
},
"required": [
"amount",
"currency"
],
"example": {
"amount": "737.80",
"currency": "EUR"
}
},
"positions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"quantity",
"sort",
"product",
"hasChildren",
"parent"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"sort": {
"type": "integer",
"example": 12
},
"hasChildren": {
"type": "boolean",
"description": "Whether a position has children",
"example": false
},
"parent": {
"type": "string",
"pattern": "\\d+",
"nullable": true,
"description": "An id reference to the parent of the current position, null when position is not a child",
"example": "1430"
},
"comment": {
"type": "string"
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"effectiveVatRate": {
"type": "number",
"format": "float",
"description": "The final VAT on a position. Calculated based on other fields. Only supported on the view endpoint and is always returned"
},
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When importing a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When importing a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"netRevenueSingle": {
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"type": "string",
"format": "float",
"nullable": true
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"netRevenueTotal": {
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"type": "string",
"format": "float",
"nullable": true
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"grossRevenueSingle": {
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"type": "string",
"format": "float",
"nullable": true
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"grossRevenueTotal": {
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"type": "string",
"format": "float",
"nullable": true
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
},
"description": "Items included within the Sales Order"
}
},
"description": "Representation of a Sales Order",
"example": {
"id": "1",
"documentNumber": "SO1",
"externalOrderNumber": "ES01",
"transactionNumber": "transaction1",
"customerOrderNumber": "customerOrder1",
"externalOrderId": "10",
"salesChannel": {
"id": "1"
},
"bodyIntroduction": "intro",
"bodyOutroduction": "outro",
"internalDesignation": "InternalSO1",
"date": "2024-01-01",
"status": "created",
"customer": {
"id": "1"
},
"comment": "Additional comments",
"project": {
"id": "1"
},
"language": {
"iso2": "DE"
},
"log": {
"createdAt": "2023-12-01T00:00:00Z",
"createdBy": {
"id": "1",
"name": "User 1",
"email": "user1@example.com"
}
},
"financials": {
"paymentMethod": {
"id": "3"
},
"currency": "EUR",
"costCenter": {
"id": "1",
"number": "1234"
}
},
"delivery": {
"autoShipping": true,
"fastLane": true,
"shippingMethod": {
"id": "1"
},
"shippingCosts": [
{
"id": "1",
"quantity": 3,
"shippingCostProduct": {
"id": "1"
}
}
],
"preferredWarehouse": {
"id": "2"
},
"storageCountry": "DE",
"email": "user.email@email.org",
"conditions": "none"
},
"tags": [
{
"id": "1"
}
],
"netSales": {
"amount": "620.00",
"currency": "EUR"
},
"total": {
"amount": "737.80",
"currency": "EUR"
},
"positions": [
{
"id": "1402",
"sort": 12,
"hasChildren": false,
"parent": null,
"product": {
"id": "1"
},
"quantity": 5
}
]
}
}
}
}
},
"application/vnd.xentral.minimal+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"documentNumber": {
"type": "string",
"description": "Internal identification associated with a Sales Order",
"example": "SO-1234"
},
"date": {
"type": "string",
"description": "Date of creation of a Sales Order",
"example": "2025-01-01"
},
"status": {
"type": "string",
"enum": [
"completed",
"created",
"released",
"canceled",
"unknown"
],
"description": "Status of the Sales Order",
"example": "completed"
}
},
"description": "Minimal representation of a Sales Order",
"example": {
"id": "1",
"documentNumber": "SO1",
"date": "2025-01-01",
"status": "completed"
}
}
}
}
},
"application/pdf": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.update",
"summary": "Update existing sales order",
"description": "CAUTION: Positions not specified in the payload will be DELETED. Please pass the ids along if you need them to be preserved.shippingCosts
parameter at all, all existing shipping cost positions will remain unchanged.",
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"shippingCostProduct",
"quantity"
],
"properties": {
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"shippingCostProduct": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When importing a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When importing a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"shippingCostProduct": {
"type": "object",
"additionalProperties": false,
"description": "Whenever a Sales Order Position is being updated, the product used in it cannot be updated. If a different product wants to be used, the position will need to be removed and a new one using the new product will need to be created.",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When importing a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When importing a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
}
]
}
},
"storageCountry": {
"type": "string",
"nullable": true,
"description": "Use storageCountry for external fulfillment without delivery notes to set the country of fulfillment. If using delivery notes, do not use storageCountry."
},
"preferredWarehouse": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"nullable": false
}
},
"description": "Use preferredWarehouse for fulfillment with delivery notes to define which warehouse should be used."
},
"shippingAddress": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"enum": [
"mr",
"mrs",
"company",
"other"
]
},
"name": {
"type": "string"
},
"department": {
"type": "string"
},
"contactPerson": {
"type": "string"
},
"subDepartment": {
"type": "string"
},
"street": {
"type": "string"
},
"zipCode": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"addressSupplement": {
"type": "string"
},
"gln": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
}
},
"shippingMethod": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"deliveryTerms": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"positions": {
"type": "array",
"description": "CAUTION: Positions not included in the payload will be DELETED.positions
parameter at all, all existing positions will remain unchanged.",
"items": {
"type": "object",
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"product",
"quantity"
],
"properties": {
"quantity": {
"type": "number",
"format": "float"
},
"comment": {
"type": "string"
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When editing/creating a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When editing/creating a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"description": "Date of creation desired delivery date",
"nullable": true,
"example": "2025-01-01"
},
"desiredDeliveryDateAsCalendarWeek": {
"type": "boolean",
"description": "Indicating whether a calendar week should be printed on documents or the actual date) is readable and editable via API",
"example": false
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"comment": {
"type": "string"
},
"product": {
"type": "object",
"additionalProperties": false,
"description": "Whenever a Sales Order Position is being updated, the product used in it cannot be updated. If a different product wants to be used, the position will need to be removed and a new one using the new product will need to be created.",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When editing/creating a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When editing/creating a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"price": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"discount": {
"type": "number",
"format": "float",
"description": "percentage discount to be applied to the position, expressed as a decimal value (0.15
= 15% discount)"
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
},
"desiredDeliveryDate": {
"type": "string",
"format": "date",
"description": "Date of creation desired delivery date",
"nullable": true,
"example": "2025-01-01"
},
"desiredDeliveryDateAsCalendarWeek": {
"type": "boolean",
"description": "Indicating whether a calendar week should be printed on documents or the actual date) is readable and editable via API",
"example": false
}
}
}
]
}
},
"discountPositions": {
"type": "array",
"description": "CAUTION: Discount positions not included in the payload will be DELETED.discountPositions
parameter at all, all existing discount positions will remain unchanged.",
"items": {
"type": "object",
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"discountProduct",
"quantity"
],
"properties": {
"quantity": {
"type": "number",
"format": "double"
},
"discountProduct": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"required": [
"taxText"
],
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When editing/creating a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When editing/creating a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"value": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"quantity": {
"type": "number",
"format": "double"
},
"discountProduct": {
"type": "object",
"additionalProperties": false,
"description": "Whenever a Sales Order Position is being updated, the product used in it cannot be updated. If a different product wants to be used, the position will need to be removed and a new one using the new product will need to be created.",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"freeFields": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"type": "string"
}
}
}
},
"number": {
"type": "string",
"nullable": true
}
}
},
"tax": {
"type": "object",
"properties": {
"vatCategory": {
"type": "string",
"nullable": true,
"enum": [
"reduced",
"normal",
"exempt"
],
"description": "VAT category. When editing/creating a position only one of `rate` or `vatCategory` must be used.",
"example": "reduced"
},
"rate": {
"type": "number",
"format": "float",
"example": 0.5,
"nullable": true,
"description": "VAT rate. When editing/creating a position only one of `rate` or `vatCategory` must be used."
},
"taxText": {
"type": "string",
"example": "Tax Text",
"nullable": true,
"description": "Tax Text"
}
}
},
"value": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
},
"webId": {
"type": "string",
"description": "technical position ID in the originating shop system / platform (e.g. Shopify, Amazon, etc). This ID is used to sync info back to the originating shop / platform"
}
}
}
]
}
},
"vatCheck": {
"type": "boolean",
"description": "Text displayed on the PDF."
}
}
},
"examples": {
"Update sales order": {
"value": {
"date": "2023-12-01",
"earliestFulfillmentDate": "2022-12-05",
"externalOrderNumber": "120013",
"externalOrderId": "453894034",
"customer": {
"id": "394"
},
"project": {
"id": "4"
},
"salesChannel": {
"id": "3"
},
"language": {
"iso2": "de"
},
"financials": {
"paymentMethod": {
"id": "1"
},
"currency": "EUR",
"billingAddress": {
"type": "mrs",
"name": "Jane Doe",
"street": "Musterstraße 1",
"zipCode": "12345",
"city": "Musterstadt",
"country": "DE"
},
"tax": {
"taxation": "domestic",
"taxDisplay": "gross"
}
},
"delivery": {
"autoShipping": true,
"fastLane": false,
"shippingAddress": {
"type": "mrs",
"name": "Jane Doe",
"street": "Musterstraße 1",
"zipCode": "12345",
"city": "Musterstadt",
"country": "DE"
},
"shippingMethod": {
"id": "4"
},
"storageCountry": "DE",
"shippingCosts": [
{
"shippingCostProduct": {
"id": "453"
},
"quantity": 1
}
]
},
"positions": [
{
"product": {
"id": "241"
},
"quantity": 1,
"price": {
"amount": "10.00",
"currency": "EUR"
},
"tax": {
"taxText": "19% MwSt.",
"vatCategory": "normal"
},
"webId": "2395028",
"desiredDeliveryDate": "2023-11-11",
"desiredDeliveryDateAsCalendarWeek": false
},
{
"product": {
"id": "494"
},
"quantity": 4,
"price": {
"amount": "20.00",
"currency": "EUR"
},
"discount": 10,
"tax": {
"taxText": "7% MwSt.",
"vatCategory": "reduced"
},
"webId": "2395029",
"desiredDeliveryDate": "2023-11-11",
"desiredDeliveryDateAsCalendarWeek": false
}
],
"vatCheck": false
}
},
"Update sales order with different positions": {
"value": {
"date": "2023-12-01",
"earliestFulfillmentDate": "2022-12-05",
"externalOrderNumber": "120013",
"customer": {
"id": "394"
},
"project": {
"id": "4"
},
"salesChannel": {
"id": "3"
},
"language": {
"iso2": "de"
},
"financials": {
"paymentMethod": {
"id": "1"
},
"currency": "EUR",
"billingAddress": {
"type": "mrs",
"name": "Jane Doe",
"street": "Musterstraße 1",
"zipCode": "12345",
"city": "Musterstadt",
"country": "DE"
},
"tax": {
"taxation": "domestic",
"taxDisplay": "gross"
}
},
"delivery": {
"autoShipping": true,
"fastLane": false,
"shippingAddress": {
"type": "mrs",
"name": "Jane Doe",
"street": "Musterstraße 1",
"zipCode": "12345",
"city": "Musterstadt",
"country": "DE"
},
"shippingMethod": {
"id": "4"
},
"preferredWarehouse": {
"id": "1"
},
"shippingCosts": [
{
"id": "2",
"shippingCostProduct": {
"name": "update shipping Cost Product"
},
"quantity": 1
}
]
},
"positions": [
{
"id": "1",
"quantity": 1,
"price": {
"amount": "10.00",
"currency": "EUR"
},
"tax": {
"taxText": "19% MwSt.",
"vatCategory": "normal"
},
"webId": "2395028",
"desiredDeliveryDate": "2023-11-11",
"desiredDeliveryDateAsCalendarWeek": false
},
{
"product": {
"id": "494"
},
"quantity": 4,
"price": {
"amount": "20.00",
"currency": "EUR"
},
"discount": 10,
"tax": {
"taxText": "7% MwSt.",
"vatCategory": "reduced"
},
"webId": "2395029",
"desiredDeliveryDate": "2023-11-11",
"desiredDeliveryDateAsCalendarWeek": false
}
],
"discountPositions": [
{
"id": "3",
"quantity": 1
}
]
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
}
}
},
"delete": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.delete",
"summary": "Delete draft sales order",
"description": "Deletes a sales order in draft status",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/salesOrders/{id}/documents": {
"post": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.createDocument",
"summary": "Create sales order document",
"description": "Creates new sales order document",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Sales order document create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
},
"keyword": {
"type": "string",
"enum": [
"otherFile",
"coverPage",
"attachment"
]
},
"fileName": {
"type": "string"
},
"fileContent": {
"type": "string",
"description": "A base64 encoded document. Supported formats PDF",
"format": "byte"
}
}
},
"examples": {
"Create product media": {
"value": {
"title": "Sales order document",
"description": "Sales order document",
"keyword": "otherFile",
"fileName": "sample.pdf",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.updateMultiple",
"summary": "Update multiple sales order documents",
"description": "Updates multiple sales order documents",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Sales order documents update multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Other file"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "New file"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"enum": [
"otherFile",
"coverPage",
"attachment"
],
"example": "otherFile"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"nullable": true,
"example": 1
}
}
}
},
"examples": {
"Update multiple sales order documents": {
"value": [
{
"id": "52",
"title": "Sales order document",
"description": "Sales order document",
"keyword": "attachment",
"sort": 1
},
{
"id": "53",
"title": "Second sales order document",
"description": "Second sales order document",
"sort": 2
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.deleteMultiple",
"summary": "Delete multiple sales order documents",
"description": "Deletes a multiple sales order documents",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Sales order documents delete multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
"examples": {
"Delete multiple sales order documents": {
"value": [
{
"id": "52"
},
{
"id": "53"
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.listDocument",
"summary": "View sales order document list",
"description": "Returns a list of given sales order documents",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"currentFileVersionId",
"fileName"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"entity": {
"x-description-missing": true,
"type": "string",
"example": "salesOrder"
},
"entityId": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Updated document"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Sales order document"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "attachment"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"currentVersion": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"type": "integer",
"example": 1
},
"remark": {
"type": "string",
"nullable": true,
"example": "Initial version"
},
"filename": {
"type": "string",
"example": "invoice_2024.pdf"
},
"size": {
"example": {
"value": 210,
"unit": "byte"
},
"type": "object",
"additionalProperties": false,
"required": [
"value",
"unit"
],
"properties": {
"value": {
"type": "integer"
},
"unit": {
"type": "string",
"enum": [
"byte"
],
"description": "Currently only byte as unit allowed."
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-09-18T14:30:00Z"
}
},
"example": {
"id": "17",
"version": 1,
"remark": "Initial version",
"filename": "invoice_2024.pdf",
"size": {
"value": 210,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2024-09-18T14:30:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/salesOrders/{id}/documents/{documentId}": {
"get": {
"tags": [
"Sales Order"
],
"operationId": "salesOrder.viewDocument",
"summary": "View sales order document",
"description": "Returns details of a single sales order document",
"parameters": [
{
"name": "documentId",
"in": "path",
"description": "ID of document",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"entity": {
"x-description-missing": true,
"type": "string",
"example": "salesOrder"
},
"entityId": {
"x-description-missing": true,
"type": "integer",
"example": 12
},
"title": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Order search"
},
"description": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "Search in order"
},
"keyword": {
"x-description-missing": true,
"type": "string",
"nullable": true,
"example": "attachment"
},
"sort": {
"x-description-missing": true,
"type": "integer",
"example": 1
},
"versions": {
"type": "array",
"items": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"type": "integer",
"example": 1
},
"remark": {
"type": "string",
"nullable": true,
"example": "Initial version"
},
"filename": {
"type": "string",
"example": "invoice_2024.pdf"
},
"size": {
"example": {
"value": 210,
"unit": "byte"
},
"type": "object",
"additionalProperties": false,
"required": [
"value",
"unit"
],
"properties": {
"value": {
"type": "integer"
},
"unit": {
"type": "string",
"enum": [
"byte"
],
"description": "Currently only byte as unit allowed."
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-09-18T14:30:00Z"
}
},
"example": {
"id": "17",
"version": 1,
"remark": "Initial version",
"filename": "invoice_2024.pdf",
"size": {
"value": 210,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
}
},
"currentVersion": {
"x-description-missing": true,
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"version": {
"type": "integer",
"example": 1
},
"remark": {
"type": "string",
"nullable": true,
"example": "Initial version"
},
"filename": {
"type": "string",
"example": "invoice_2024.pdf"
},
"size": {
"example": {
"value": 210,
"unit": "byte"
},
"type": "object",
"additionalProperties": false,
"required": [
"value",
"unit"
],
"properties": {
"value": {
"type": "integer"
},
"unit": {
"type": "string",
"enum": [
"byte"
],
"description": "Currently only byte as unit allowed."
}
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2024-09-18T14:30:00Z"
}
},
"example": {
"id": "17",
"version": 1,
"remark": "Initial version",
"filename": "invoice_2024.pdf",
"size": {
"value": 210,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
},
"updatedAt": {
"x-description-missing": true,
"type": "string",
"format": "date-time",
"example": "2024-09-18T14:30:00Z"
}
},
"example": {
"id": "17",
"entity": "salesOrder",
"entityId": 12,
"title": "Order search",
"description": "Search in order",
"keyword": "attachment",
"sort": 1,
"versions": [
{
"id": "17",
"version": 1,
"remark": "Initial version",
"filename": "invoice_2024.pdf",
"size": {
"value": 210,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
],
"currentVersion": {
"id": "17",
"version": 1,
"remark": "Initial version",
"filename": "invoice_2024.pdf",
"size": {
"value": 210,
"unit": "byte"
},
"updatedAt": "2024-09-18T14:30:00Z"
},
"updatedAt": "2024-09-18T14:30:00Z"
}
}
}
}
},
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
},
"application/pdf": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/salesPrices": {
"post": {
"tags": [
"Sales Price"
],
"operationId": "salesPrice.create",
"summary": "Create sales price",
"description": "Creates new sales price",
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"product"
],
"properties": {
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Sets the starting date of the sales price being valid."
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Sets the expiration date of the sales price."
},
"amount": {
"oneOf": [
{
"type": "number",
"format": "float",
"description": "Float or int, greater than zero"
},
{
"type": "string",
"format": "float",
"description": "Numeric value greater than zero"
}
]
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true
},
"customer": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"customerGroup": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"examples": {
"Create sales price": {
"value": {
"product": {
"id": "14"
},
"validFrom": "2023-12-01",
"amount": 1,
"price": {
"amount": "24.20",
"currency": "EUR"
}
}
},
"Create sales price with float as string for amount": {
"value": {
"product": {
"id": "14"
},
"validFrom": "2023-12-01",
"amount": "10.5",
"price": {
"amount": "24.20",
"currency": "EUR"
}
}
},
"Create customer-specific sales price": {
"value": {
"product": {
"id": "14"
},
"customer": {
"id": "35"
},
"amount": 10.5,
"price": {
"amount": "24.20",
"currency": "EUR"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Sales Price"
],
"operationId": "salesPrice.list",
"summary": "List sales prices",
"description": "Returns list of a sales prices",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"id",
"productId",
"customerId",
"groupId",
"currency",
"amount",
"isValidAt",
"targetCountry",
"validFrom",
"expiresAt"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"price",
"amount"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"x-description-missing": true,
"example": {
"id": "1",
"product": {
"id": "12"
},
"customer": null,
"customerGroup": null,
"amount": 1,
"packageAmount": null,
"price": {
"amount": "62.00000000",
"currency": "EUR",
"amountGross": "73.78000000",
"taxRate": {
"rate": "19.00",
"type": "normal",
"source": "project tax rate"
}
},
"validFrom": null,
"expiresAt": null
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Shows the starting date of the sales price being valid.",
"example": "2023-01-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Shows the expiration date of the sales price.",
"example": "2023-01-01"
},
"amount": {
"type": "number",
"format": "float",
"description": "Amount of the product required for the sales price.",
"example": 3
},
"packageAmount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"nullable": true,
"example": 3
},
"customer": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"customerGroup": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"price": {
"description": "Price object with amount, amount gross, currency and tax rate",
"type": "object",
"additionalProperties": false,
"example": {
"amount": "24.20",
"amountGross": "28.80",
"currency": "EUR",
"taxRate": {
"rate": "19.00",
"type": "normal",
"source": "project tax rate"
}
},
"properties": {
"amount": {
"type": "string",
"format": "float"
},
"amountGross": {
"type": "string",
"format": "float",
"nullable": true
},
"currency": {
"type": "string",
"pattern": "[A-Z]{3}",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"description": "Currency matches one of currency values as specified in ISO-4217."
},
"taxRate": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "string",
"format": "float"
},
"type": {
"type": "string"
},
"source": {
"type": "string"
}
}
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Lists all sales prices": {
"value": {
"data": [
{
"id": "1",
"product": {
"id": "12"
},
"customer": null,
"customerGroup": null,
"amount": 1,
"packageAmount": null,
"price": {
"amount": "62.00000000",
"currency": "EUR",
"amountGross": "73.78000000",
"taxRate": {
"rate": "19.00",
"type": "normal",
"source": "project tax rate"
}
},
"validFrom": null,
"expiresAt": null
},
{
"id": "2",
"product": {
"id": "1"
},
"customer": {
"id": "7"
},
"customerGroup": null,
"amount": 1,
"packageAmount": null,
"price": {
"amount": "0.16000000",
"currency": "EUR",
"amountGross": "0.17120000",
"taxRate": {
"rate": "7.00",
"type": "reduced",
"source": "project tax rate"
}
},
"validFrom": "2024-04-01",
"expiresAt": "2024-04-30"
}
],
"extra": {
"totalCount": 2,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Sales Price"
],
"operationId": "salesPrice.updateMultiple",
"summary": "Update multiple sales prices",
"description": "Updates multiple sales prices",
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"example": "2023-12-01",
"description": "Sets the starting date of the sales price being valid."
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"example": "2023-12-01",
"description": "Sets the expiration date of the sales price."
},
"amount": {
"oneOf": [
{
"type": "number",
"format": "float",
"description": "Float or int, greater than zero"
},
{
"type": "string",
"format": "float",
"description": "Numeric value greater than zero"
}
]
},
"packageAmount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"example": 3,
"nullable": true
},
"customer": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"customerGroup": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
}
},
"examples": {
"Update Multiple Sales Prices with different types for amount": {
"value": [
{
"id": "14",
"validFrom": "2023-12-01",
"amount": 1,
"packageAmount": 6,
"price": {
"amount": "24.20",
"currency": "EUR"
}
},
{
"id": "16",
"validFrom": "2023-12-01",
"amount": 10.5,
"packageAmount": 1,
"price": {
"amount": "19.24",
"currency": "EUR"
}
},
{
"id": "16",
"validFrom": "2023-12-01",
"amount": "22.5",
"packageAmount": 1,
"price": {
"amount": "55.55",
"currency": "EUR"
}
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/salesPrices/{id}": {
"get": {
"tags": [
"Sales Price"
],
"operationId": "salesPrice.view",
"summary": "View sales price",
"description": "Returns details of a single sales price",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"x-description-missing": true,
"example": {
"id": "1",
"product": {
"id": "12"
},
"customer": null,
"customerGroup": null,
"amount": 1,
"packageAmount": null,
"price": {
"amount": "62.00000000",
"currency": "EUR",
"amountGross": "73.78000000",
"taxRate": {
"rate": "19.00",
"type": "normal",
"source": "project tax rate"
}
},
"validFrom": null,
"expiresAt": null
},
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Shows the starting date of the sales price being valid.",
"example": "2023-01-01"
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Shows the expiration date of the sales price.",
"example": "2023-01-01"
},
"amount": {
"type": "number",
"format": "float",
"description": "Amount of the product required for the sales price.",
"example": 3
},
"packageAmount": {
"x-description-missing": true,
"type": "number",
"format": "float",
"nullable": true,
"example": 3
},
"customer": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"customerGroup": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"price": {
"description": "Price object with amount, amount gross, currency and tax rate",
"type": "object",
"additionalProperties": false,
"example": {
"amount": "24.20",
"amountGross": "28.80",
"currency": "EUR",
"taxRate": {
"rate": "19.00",
"type": "normal",
"source": "project tax rate"
}
},
"properties": {
"amount": {
"type": "string",
"format": "float"
},
"amountGross": {
"type": "string",
"format": "float",
"nullable": true
},
"currency": {
"type": "string",
"pattern": "[A-Z]{3}",
"enum": [
"EUR",
"PLN",
"CHF",
"USD",
"GBP"
],
"description": "Currency matches one of currency values as specified in ISO-4217."
},
"taxRate": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"properties": {
"rate": {
"type": "string",
"format": "float"
},
"type": {
"type": "string"
},
"source": {
"type": "string"
}
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"examples": {
"Shows a single sales price": {
"value": {
"data": {
"id": "1",
"product": {
"id": "12"
},
"customer": null,
"customerGroup": null,
"amount": 1,
"packageAmount": null,
"price": {
"amount": "62.00000000",
"currency": "EUR"
},
"validFrom": null,
"expiresAt": null
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Sales Price"
],
"operationId": "salesPrice.update",
"summary": "Update sales price",
"description": "Updates details of a single sales price",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"validFrom": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Sets the starting date of the sales price being valid."
},
"expiresAt": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Sets the expiration date of the sales price."
},
"amount": {
"oneOf": [
{
"type": "number",
"format": "float",
"description": "Float or int, greater than zero"
},
{
"type": "string",
"format": "float",
"description": "Numeric value greater than zero"
}
]
},
"packageAmount": {
"type": "number",
"format": "float",
"nullable": true
},
"customer": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"customerGroup": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"price": {
"description": "Money object with amount and currency",
"example": {
"amount": "13.37",
"currency": "EUR"
},
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"description": "A string representing the amount",
"type": "string",
"format": "float",
"example": "24.99"
},
"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"
],
"description": "Currency matches one of currency values as specified in ISO-4217.",
"example": "PLN"
}
}
}
}
},
"examples": {
"Update Sales Prices": {
"value": {
"validFrom": "2023-12-01",
"amount": 1,
"price": {
"amount": "24.20",
"currency": "EUR"
}
}
},
"Update Sales Prices with float as string for amount": {
"value": {
"validFrom": "2023-12-01",
"amount": "10.5",
"price": {
"amount": "24.20",
"currency": "EUR"
}
}
},
"Update Sales Prices with float for amount": {
"value": {
"validFrom": "2023-12-01",
"amount": 10.5,
"price": {
"amount": "24.20",
"currency": "EUR"
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Sales Price"
],
"operationId": "salesPrice.delete",
"summary": "Delete sales price",
"description": "Deletes a single sales price",
"requestBody": {
"content": {
"application/vnd.xentral.default.v1": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/warehouses/{warehouseId}/storageLocations/{storageLocationId}/items": {
"get": {
"tags": [
"Storage Item"
],
"operationId": "storage_item.list",
"parameters": [
{
"name": "warehouseId",
"in": "path",
"description": "ID of warehouse",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"name": "storageLocationId",
"in": "path",
"description": "ID of storage location",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"summary": "Storage item list",
"description": "This endpoint is only available as beta version and will introduce breaking changes without further notice or versioning. Returns all storage location items for the specified warehouse / location.",
"responses": {
"200": {
"description": "Operation completed successfully. Note (only for application/vnd.xentral.default.v2-beta+json response content): support for products where a product is both serial number tracked AND batch/best before date tracked at the same time is limited. In case serial number tracking is set to \"Generate own\" in the product master data, the qualityControlAttribute quantities will be reported (a) for the serial numbers on shelf and (b) for the batch/bestBeforeDate records on shelf, thus potentially resulting in a double count in the total across all qualityControlAttribute->quantity values. The quantity on the product->quantity level reflects the correct quantity on shelf in any case.",
"content": {
"application/vnd.xentral.default.v1-beta+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "Representation of a list of Items in storage",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"product": {
"description": "Information from the Product in storage",
"required": [
"sku"
],
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU code of the item"
}
},
"example": {
"sku": "ABC-12345-S-BL"
}
},
"quantity": {
"type": "number",
"description": "Quantity of the item to stock to storage location",
"example": 5
},
"batches": {
"type": "array",
"items": {
"type": "string"
},
"description": "Batches of the items",
"example": [
"Batch1"
]
},
"bestBeforeDates": {
"type": "array",
"items": {
"type": "string"
},
"description": "Best before dates of the items",
"example": [
"2023-01-01 00:00:00"
]
},
"serialNumbers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "The serial number of the items"
}
}
},
"description": "The serial number list of the items",
"example": [
{
"number": "001"
},
{
"number": "002"
}
]
}
}
},
"example": [
{
"id": "1",
"product": {
"sku": "ABC-12345-S-BL"
},
"quantity": 3,
"batches": [
"Batch1",
"Batch2"
],
"bestBeforeDates": [
"2025-01-01 00:00:00"
],
"serialNumbers": [
{
"number": "001"
},
{
"number": "002"
},
{
"number": "003"
}
]
}
]
}
}
}
},
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "Representation of a list of Items in storage",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"productId": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"sku": {
"type": "string",
"description": "SKU code of the item",
"example": "ABC-12345-S-BL"
},
"quantity": {
"type": "number",
"description": "Quantity of the item to stock to storage location",
"example": 5
},
"qualityControlAttributes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"quantity": {
"type": "number",
"description": "Quantity of the item to stock to storage location"
},
"batch": {
"type": "string",
"nullable": true,
"description": "Batch of the item"
},
"bestBeforeDate": {
"type": "string",
"nullable": true,
"description": "Best before date of the item"
},
"serialNumbers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "The serial numbers of the item"
}
}
}
}
}
},
"description": "List of Product unit specific quality properties",
"example": [
{
"quantity": 5,
"batch": "Batch1",
"bestBeforeDate": "2025-01-01 00:00:00",
"serialNumbers": [
{
"number": "001"
}
]
}
]
}
}
},
"example": [
{
"productId": "1",
"sku": "ABC-12345-S-BL",
"quantity": 5,
"qualityControlAttributes": [
{
"quantity": 5,
"batch": "Batch1",
"bestBeforeDate": "2025-01-01 00:00:00",
"serialNumbers": [
{
"number": "001"
}
]
}
]
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Storage Item"
],
"operationId": "warehouse.stockItem",
"parameters": [
{
"name": "warehouseId",
"in": "path",
"description": "ID of warehouse",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "storageLocationId",
"in": "path",
"description": "ID of storage location",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "Add item to Storage Location payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"product",
"quantity"
],
"properties": {
"product": {
"required": [
"sku"
],
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU code of the item"
}
}
},
"quantity": {
"type": "number",
"description": "Quantity of the item to stock to storage location"
},
"batch": {
"type": "string",
"description": "Batch to assign the stock update to"
},
"bestBeforeDate": {
"type": "string",
"format": "date",
"description": "Best Before Date to assign to the stock units added"
},
"serialNumbers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "The serial number of the item"
}
}
}
},
"reason": {
"type": "string",
"description": "Reason for adding to the stock"
},
"project": {
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Id of the project"
}
}
}
}
},
"examples": {
"Add stock to storage location": {
"value": {
"product": {
"sku": "10840"
},
"quantity": 1
}
},
"Add stock to storage location (batch and best before date)": {
"value": {
"product": {
"sku": "10038"
},
"quantity": 5,
"batch": "123456",
"bestBeforeDate": "2027-01-01"
}
},
"Add stock to storage location (serial numbers)": {
"value": {
"product": {
"sku": "10440"
},
"quantity": 3,
"serialNumbers": [
{
"number": "2000482"
},
{
"number": "2000483"
},
{
"number": "2000484"
}
]
}
}
}
}
}
},
"summary": "Add item to Storage Location",
"description": "Adds stock for a given item to a specific Storage Location.",
"responses": {
"200": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Storage Item"
],
"operationId": "warehouse.retrieveItem",
"parameters": [
{
"name": "warehouseId",
"in": "path",
"description": "ID of warehouse",
"required": true,
"schema": {
"type": "number"
}
},
{
"name": "storageLocationId",
"in": "path",
"description": "ID of storage location",
"required": true,
"schema": {
"type": "number"
}
}
],
"requestBody": {
"description": "Retrieve item from Storage Location payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"product",
"quantity"
],
"properties": {
"product": {
"required": [
"sku"
],
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU code of the item"
}
}
},
"quantity": {
"type": "number",
"description": "Quantity of the item to retrieve from storage location"
},
"batch": {
"type": "string",
"description": "Batch to use"
},
"bestBeforeDate": {
"type": "string",
"format": "date",
"description": "Best Before Date to use"
},
"serialNumbers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "The serial number of the item"
}
}
}
},
"reason": {
"type": "string",
"description": "Reason for the retrieve"
},
"project": {
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Id of the project"
}
}
}
}
},
"examples": {
"Retrieve stock from storage location": {
"value": {
"product": {
"sku": "10840"
},
"quantity": 1
}
},
"Retrieve stock from storage location (batch and best before date)": {
"value": {
"product": {
"sku": "10038"
},
"quantity": 5,
"batch": "123456",
"bestBeforeDate": "2027-01-01"
}
},
"Retrieve stock from storage location (serial numbers)": {
"value": {
"product": {
"sku": "10440"
},
"quantity": 3,
"serialNumbers": [
{
"number": "2000482"
},
{
"number": "2000483"
},
{
"number": "2000484"
}
]
}
}
}
}
}
},
"summary": "Retrieves item from Storage Location",
"description": "Retrieves certain units of stock for a given item from a specific Storage Location.",
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/warehouses/{warehouseId}/storageLocations": {
"get": {
"tags": [
"Storage Location"
],
"operationId": "storageLocation.list",
"parameters": [
{
"name": "warehouseId",
"in": "path",
"description": "ID of warehouse",
"required": true,
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"storageLocationId",
"designation"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
}
],
"summary": "Storage location list",
"description": "This endpoint is only available as beta version and will introduce breaking changes without further notice or versioning. Returns all storage locations for the specified warehouse.",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "Representation of a list of Storage Locations",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"designation",
"warehouse"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"warehouse": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"designation": {
"type": "string",
"description": "Designation of the Storage location",
"example": "Main Storage Location 1"
},
"description": {
"type": "string",
"description": "Description of the Storage location",
"example": "Primary storage location"
},
"project": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"sort": {
"type": "integer",
"description": "Sort order of the storage location",
"example": 12
},
"isReplenishmentLocation": {
"type": "boolean",
"description": "Indicates if the location is for replenishment",
"example": false
},
"isConsumptionLocation": {
"type": "boolean",
"description": "Indicates if the location is for consumption",
"example": true
},
"isRestrictedLocation": {
"type": "boolean",
"description": "Indicates if the location is restricted",
"example": false
},
"productionAccess": {
"type": "boolean",
"description": "Indicates if the location has production access",
"example": true
},
"isPosLocation": {
"type": "boolean",
"description": "Indicates if the location is a point of sale location",
"example": false
},
"abcCategory": {
"type": "string",
"description": "ABC category of the storage location",
"example": "A"
},
"dimensions": {
"type": "object",
"additionalProperties": false,
"description": "Dimensions of the storage location",
"properties": {
"length": {
"type": "number",
"description": "Length of the storage location",
"example": 10.5,
"format": "float"
},
"width": {
"type": "number",
"description": "Width of the storage location",
"example": 100,
"format": "float"
},
"height": {
"type": "number",
"description": "Height of the storage location",
"format": "float",
"example": 100
}
},
"example": {
"length": 10.5,
"width": 100,
"height": 100
}
}
}
},
"example": [
{
"id": "1",
"warehouse": {
"id": "1"
},
"designation": "StorageLocation1",
"description": "Storage Location Number 1",
"project": {
"id": "1"
}
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/shippingMethods": {
"get": {
"tags": [
"Shipping Methods"
],
"operationId": "shippingMethod.list",
"summary": "List shipping methods",
"description": "Lists existing shipping methods",
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Shipping method list",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"module",
"type",
"designation",
"project"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"module": {
"type": "string",
"description": "Module used by the given Shipping Method",
"example": "glsapi"
},
"type": {
"type": "string",
"description": "Type of the given Shipping Method",
"example": "gls"
},
"designation": {
"type": "string",
"description": "Description given to a particular Shipping Method",
"example": "GLS International"
},
"project": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"description": "Response data containing list of Shipping Methods",
"example": [
{
"id": "1",
"module": "glsapi",
"type": "gls",
"designation": "GLS International",
"project": {
"id": "1"
}
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Shipping Methods"
],
"operationId": "shippingMethod.create",
"summary": "Create Shipping Method",
"description": "Creates new shipping method.",
"requestBody": {
"description": "Request body for creating or updating a shipping method.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"isActive": {
"type": "boolean",
"description": "Indicates if the shipping method is active.",
"example": true
},
"name": {
"type": "string",
"description": "The name of the shipping method.",
"example": "New Carrier"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"carrier": {
"type": "object",
"description": "Details of the carrier providing the shipping service.",
"properties": {
"credentials": {
"oneOf": [
{
"type": "object",
"properties": {
"basic": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username used to authenticate at carrier's.",
"example": "admin"
},
"password": {
"type": "string",
"description": "Password used to authenticate at carrier's.",
"example": "Password"
}
},
"required": [
"username",
"password"
],
"additionalProperties": false
}
},
"required": [
"basic"
],
"additionalProperties": false,
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication."
},
{
"type": "object",
"properties": {
"bearer": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "API token used to authenticate at carrier's.",
"example": "0191e008-3057-7090-8b72-8f5f31bd11ef"
}
},
"required": [
"token"
],
"additionalProperties": false
}
},
"required": [
"bearer"
],
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication.",
"additionalProperties": false
},
{
"type": "object",
"properties": {
"oauthClientCredentials": {
"type": "object",
"properties": {
"tokenUrl": {
"type": "string",
"description": "URL used to exchange authorization codes or credentials for an access token at carrier's.",
"example": "https://example.com/oauth/token"
},
"username": {
"type": "string",
"description": "Username used to authenticate at carrier's.",
"example": "admin"
},
"password": {
"type": "string",
"description": "Password used to authenticate at carrier's.",
"example": "Password"
},
"audience": {
"type": "string",
"description": "Application or service that requests access to protected resources on behalf of itself.",
"example": "Xentral"
}
},
"required": [
"tokenUrl",
"username",
"password"
],
"additionalProperties": false
}
},
"required": [
"oauthClientCredentials"
],
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication.",
"additionalProperties": false
}
]
},
"serviceUrl": {
"type": "string",
"example": "https://xentral.someUrl.com",
"description": "The base URL at which the Carrier Service that you want to connect to can be reached."
},
"extra": {
"type": "object",
"description": "Additional fields for the carrier or service.",
"properties": {
"field1": {
"type": "string",
"description": "An extra field for custom data.",
"example": "value1"
},
"field2": {
"type": "string",
"description": "Another extra field for custom data.",
"example": "value2"
}
},
"example": {
"extra": {
"field1": "value1",
"field2": "value2"
}
}
},
"id": {
"type": "string",
"description": "The unique identifier of the carrier.",
"example": "post-ch"
},
"product": {
"type": "object",
"description": "A shipping product is a specific service offered by a carrier.",
"properties": {
"id": {
"type": "string",
"description": "The shipping product ID.",
"example": "post-ch-express"
}
},
"example": {
"product": {
"id": "post-ch-express"
}
}
},
"shipmentType": {
"type": "string",
"description": "A type of shipment: outbound or return.",
"enum": [
"outbound",
"return"
],
"example": "outbound"
}
},
"example": {
"carrier": {
"credentials": {
"basic": {
"username": "your-username",
"password": "your-password"
}
},
"serviceUrl": "https://api.example.com",
"extra": {
"field1": "value1",
"field2": "value2"
},
"id": "post-ch",
"product": {
"id": "post-ch-express",
"shipmentType": "outbound"
}
}
}
},
"printers": {
"type": "object",
"description": "Details about the printers used for shipping labels and documents",
"properties": {
"label": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"document": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"parcel": {
"type": "object",
"properties": {
"defaultDimensions": {
"type": "object",
"properties": {
"length": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"cm"
]
}
}
},
"width": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"cm"
]
}
}
},
"height": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"cm"
]
}
}
}
}
},
"minimumWeight": {
"type": "object",
"description": "The minimum weight of the parcel. If the weight of the parcel is less than this value, this value will be submitted to the carrier.",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"kg"
]
}
}
}
}
},
"sender": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"zip": {
"type": "string"
},
"country": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
}
}
}
}
},
"examples": {
"example": {
"summary": "Example of a shipping method request",
"value": {
"isActive": true,
"name": "New Carrier",
"project": {
"id": "123"
},
"carrier": {
"credentials": {
"basic": {
"username": "your-username",
"password": "your-password"
}
},
"serviceUrl": "https://api.example.com",
"extra": {
"field1": "value1",
"field2": "value2"
},
"id": "post-ch",
"product": {
"id": "post-ch-express"
}
},
"printers": {
"label": {
"id": "label-printer-1"
},
"document": {
"id": "document-printer-1"
}
},
"parcel": {
"defaultDimensions": {
"length": {
"value": 10,
"unit": "cm"
},
"width": {
"value": 10,
"unit": "cm"
},
"height": {
"value": 10,
"unit": "cm"
}
},
"minimumWeight": {
"value": 1,
"unit": "kg"
}
},
"sender": {
"id": "sender-1",
"name": "Sender Name"
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/shippingMethods/{id}": {
"get": {
"tags": [
"Shipping Methods"
],
"operationId": "shippingMethod.view",
"summary": "View Shipping Method",
"description": "Shows the details of a Shipping Method",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of the carrier",
"enum": [
"genericCarrier"
],
"example": "genericCarrier"
},
"isActive": {
"type": "boolean",
"description": "Determines whether the shipping Method is currently active.",
"example": true
},
"name": {
"type": "string",
"example": "New generic Carrier",
"description": "The human readable name you would like to give to this carrier"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"carrier": {
"type": "object",
"description": "Details of the carrier providing the shipping service.",
"properties": {
"credentials": {
"oneOf": [
{
"type": "object",
"properties": {
"basic": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username used to authenticate at carrier's.",
"example": "admin"
},
"password": {
"type": "string",
"description": "Password used to authenticate at carrier's.",
"example": "Password"
}
},
"required": [
"username",
"password"
],
"additionalProperties": false
}
},
"required": [
"basic"
],
"additionalProperties": false,
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication."
},
{
"type": "object",
"properties": {
"bearer": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "API token used to authenticate at carrier's.",
"example": "0191e008-3057-7090-8b72-8f5f31bd11ef"
}
},
"required": [
"token"
],
"additionalProperties": false
}
},
"required": [
"bearer"
],
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication.",
"additionalProperties": false
},
{
"type": "object",
"properties": {
"oauthClientCredentials": {
"type": "object",
"properties": {
"tokenUrl": {
"type": "string",
"description": "URL used to exchange authorization codes or credentials for an access token at carrier's.",
"example": "https://example.com/oauth/token"
},
"username": {
"type": "string",
"description": "Username used to authenticate at carrier's.",
"example": "admin"
},
"password": {
"type": "string",
"description": "Password used to authenticate at carrier's.",
"example": "Password"
},
"audience": {
"type": "string",
"description": "Application or service that requests access to protected resources on behalf of itself.",
"example": "Xentral"
}
},
"required": [
"tokenUrl",
"username",
"password"
],
"additionalProperties": false
}
},
"required": [
"oauthClientCredentials"
],
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication.",
"additionalProperties": false
}
]
},
"serviceUrl": {
"type": "string",
"example": "https://xentral.someUrl.com",
"description": "The base URL at which the Carrier Service that you want to connect to can be reached."
},
"extra": {
"type": "object",
"description": "Additional fields for the carrier or service.",
"properties": {
"field1": {
"type": "string",
"description": "An extra field for custom data.",
"example": "value1"
},
"field2": {
"type": "string",
"description": "Another extra field for custom data.",
"example": "value2"
}
},
"example": {
"extra": {
"field1": "value1",
"field2": "value2"
}
}
},
"id": {
"type": "string",
"description": "The unique identifier of the carrier.",
"example": "post-ch"
},
"product": {
"type": "object",
"description": "A shipping product is a specific service offered by a carrier.",
"properties": {
"id": {
"type": "string",
"description": "The shipping product ID.",
"example": "post-ch-express"
}
},
"example": {
"product": {
"id": "post-ch-express"
}
}
},
"shipmentType": {
"type": "string",
"description": "A type of shipment: outbound or return.",
"enum": [
"outbound",
"return"
],
"example": "outbound"
}
},
"example": {
"carrier": {
"credentials": {
"basic": {
"username": "your-username",
"password": "your-password"
}
},
"serviceUrl": "https://api.example.com",
"extra": {
"field1": "value1",
"field2": "value2"
},
"id": "post-ch",
"product": {
"id": "post-ch-express",
"shipmentType": "outbound"
}
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"put": {
"tags": [
"Shipping Methods"
],
"operationId": "shippingMethod.update",
"summary": "Update Shipping Method",
"description": "Updates a Shipping Method",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Request body for creating or updating a shipping method.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"isActive": {
"type": "boolean",
"description": "Indicates if the shipping method is active.",
"example": true
},
"name": {
"type": "string",
"description": "The name of the shipping method.",
"example": "New Carrier"
},
"project": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"carrier": {
"type": "object",
"description": "Details of the carrier providing the shipping service.",
"properties": {
"credentials": {
"oneOf": [
{
"type": "object",
"properties": {
"basic": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username used to authenticate at carrier's.",
"example": "admin"
},
"password": {
"type": "string",
"description": "Password used to authenticate at carrier's.",
"example": "Password"
}
},
"required": [
"username",
"password"
],
"additionalProperties": false
}
},
"required": [
"basic"
],
"additionalProperties": false,
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication."
},
{
"type": "object",
"properties": {
"bearer": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "API token used to authenticate at carrier's.",
"example": "0191e008-3057-7090-8b72-8f5f31bd11ef"
}
},
"required": [
"token"
],
"additionalProperties": false
}
},
"required": [
"bearer"
],
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication.",
"additionalProperties": false
},
{
"type": "object",
"properties": {
"oauthClientCredentials": {
"type": "object",
"properties": {
"tokenUrl": {
"type": "string",
"description": "URL used to exchange authorization codes or credentials for an access token at carrier's.",
"example": "https://example.com/oauth/token"
},
"username": {
"type": "string",
"description": "Username used to authenticate at carrier's.",
"example": "admin"
},
"password": {
"type": "string",
"description": "Password used to authenticate at carrier's.",
"example": "Password"
},
"audience": {
"type": "string",
"description": "Application or service that requests access to protected resources on behalf of itself.",
"example": "Xentral"
}
},
"required": [
"tokenUrl",
"username",
"password"
],
"additionalProperties": false
}
},
"required": [
"oauthClientCredentials"
],
"description": "Credentials can be either basic, bearer or OAuth Client Credentials authentication.",
"additionalProperties": false
}
]
},
"serviceUrl": {
"type": "string",
"example": "https://xentral.someUrl.com",
"description": "The base URL at which the Carrier Service that you want to connect to can be reached."
},
"extra": {
"type": "object",
"description": "Additional fields for the carrier or service.",
"properties": {
"field1": {
"type": "string",
"description": "An extra field for custom data.",
"example": "value1"
},
"field2": {
"type": "string",
"description": "Another extra field for custom data.",
"example": "value2"
}
},
"example": {
"extra": {
"field1": "value1",
"field2": "value2"
}
}
},
"id": {
"type": "string",
"description": "The unique identifier of the carrier.",
"example": "post-ch"
},
"product": {
"type": "object",
"description": "A shipping product is a specific service offered by a carrier.",
"properties": {
"id": {
"type": "string",
"description": "The shipping product ID.",
"example": "post-ch-express"
}
},
"example": {
"product": {
"id": "post-ch-express"
}
}
},
"shipmentType": {
"type": "string",
"description": "A type of shipment: outbound or return.",
"enum": [
"outbound",
"return"
],
"example": "outbound"
}
},
"example": {
"carrier": {
"credentials": {
"basic": {
"username": "your-username",
"password": "your-password"
}
},
"serviceUrl": "https://api.example.com",
"extra": {
"field1": "value1",
"field2": "value2"
},
"id": "post-ch",
"product": {
"id": "post-ch-express",
"shipmentType": "outbound"
}
}
}
},
"printers": {
"type": "object",
"description": "Details about the printers used for shipping labels and documents",
"properties": {
"label": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"document": {
"description": "Reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
}
}
},
"parcel": {
"type": "object",
"properties": {
"defaultDimensions": {
"type": "object",
"properties": {
"length": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"cm"
]
}
}
},
"width": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"cm"
]
}
}
},
"height": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"cm"
]
}
}
}
}
},
"minimumWeight": {
"type": "object",
"description": "The minimum weight of the parcel. If the weight of the parcel is less than this value, this value will be submitted to the carrier.",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"kg"
]
}
}
}
}
},
"sender": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"zip": {
"type": "string"
},
"country": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
}
}
}
}
},
"examples": {
"example": {
"summary": "Example of a shipping method request",
"value": {
"isActive": true,
"name": "New Carrier",
"project": {
"id": "123"
},
"carrier": {
"credentials": {
"basic": {
"username": "your-username",
"password": "your-password"
}
},
"serviceUrl": "https://api.example.com",
"extra": {
"field1": "value1",
"field2": "value2"
},
"id": "post-ch",
"product": {
"id": "post-ch-express"
}
},
"printers": {
"label": {
"id": "label-printer-1"
},
"document": {
"id": "document-printer-1"
}
},
"parcel": {
"defaultDimensions": {
"length": {
"value": 10,
"unit": "cm"
},
"width": {
"value": 10,
"unit": "cm"
},
"height": {
"value": 10,
"unit": "cm"
}
},
"minimumWeight": {
"value": 1,
"unit": "kg"
}
},
"sender": {
"id": "sender-1",
"name": "Sender Name"
}
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"409": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v2/salesChannels": {
"get": {
"x-internal": false,
"summary": "List all sales channels",
"description": "Returns a collection with all sales channels.",
"operationId": "salesChannel.list.v2",
"tags": [
"Sales Channel"
],
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "page[number]",
"in": "query",
"description": "The page number to retrieve",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1
}
},
{
"name": "page[size]",
"in": "query",
"description": "The number of items per page",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 10
}
}
],
"responses": {
"200": {
"description": "A list of sales channels that the individual customer has integrated with Xentral.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"uuid"
],
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the sales channel",
"example": "1301"
},
"uuid": {
"description": "UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1"
},
"project": {
"type": "object",
"description": "The project ID this sales channel belongs to",
"example": {
"id": "1"
},
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
}
}
},
"moduleName": {
"type": "string",
"description": "The type of sales channel platform (e.g. Shopify, Amazon, etc.)",
"enum": [
"shopify",
"amazon",
"shopware6",
"woocommerce"
],
"example": "shopify"
},
"name": {
"type": "string",
"description": "The display name of the sales channel",
"example": "Test Shopify #1"
},
"stockExport": {
"type": "boolean",
"description": "Whether stock levels are automatically exported",
"example": true
},
"productExport": {
"type": "boolean",
"description": "Whether product data is automatically exported",
"example": true
},
"active": {
"type": "boolean",
"description": "Whether the sales channel is currently active",
"example": true
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the sales channel was created",
"example": "2023-01-01T00:00:00Z"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the sales channel was last updated",
"example": "2023-01-02T00:00:00Z"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
}
}
}
},
"/api/v2/settings/masterdata/addressCustomFields": {
"get": {
"tags": [
"Setting"
],
"operationId": "settings.masterdata.address.customFields.list.v2",
"summary": "List address custom fields",
"description": "Fetches all configured address custom fields. Pagination is not necessary because of limit of such fields (20).",
"responses": {
"200": {
"description": "List of address custom fields",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"type",
"allowedValues"
],
"description": "Address custom field object",
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string",
"description": "Name of address custom field",
"example": "Lead-Status"
},
"type": {
"type": "string",
"enum": [
"single_line",
"multi_line",
"date",
"checkbox",
"select"
],
"nullable": false,
"description": "Value type of address custom field",
"example": "select"
},
"allowedValues": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"nullable": false,
"example": "Contact"
},
"value": {
"type": "string",
"nullable": false,
"example": "ATTEMPTED_TO_CONTACT"
}
}
}
}
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"post": {
"tags": [
"Setting"
],
"operationId": "settings.masterdata.address.customFields.create.v1",
"summary": "Create address custom field configuration",
"description": "Creates a address custom field configuration.",
"requestBody": {
"description": "Request structure to create a address custom field configuration",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": false,
"description": "Name of custom field",
"example": "Hubspot deal status"
},
"type": {
"type": "string",
"enum": [
"single_line",
"multi_line",
"date",
"checkbox",
"select"
],
"nullable": false,
"example": "date"
},
"allowedValues": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"nullable": false,
"example": "Contact"
},
"value": {
"type": "string",
"nullable": false,
"example": "ATTEMPTED_TO_CONTACT"
}
}
}
}
}
},
"examples": {
"Create singleline custom field": {
"value": {
"name": "Lead Number",
"type": "single_line"
}
},
"Create select custom field": {
"value": {
"name": "Lead-Status",
"type": "select",
"allowedValues": [
{
"label": "Attempts to contact",
"value": "ATTEMPTED_TO_CONTACT"
},
{
"label": "Open Deal",
"value": "OPEN_DEAL"
}
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"409": {
"description": "Request conflict with the current state of the target resource",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
]
}
}
}
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"423": {
"description": "All address custom fields are already in use"
}
}
}
},
"/api/v1/accounting/datev/csvExport/invoicesAndCreditNotes": {
"post": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.csvExport.invoicesAndCreditNotes",
"summary": "Execute the accounting CSV export for invoices and credit notes",
"description": "Execute the accounting CSV export for invoices and credit notes.",
"requestBody": {
"description": "Execute the accounting CSV export for invoices and credit notes",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"sort",
"group",
"from",
"to"
],
"properties": {
"projectId": {
"type": "integer"
},
"sort": {
"type": "string",
"enum": [
"date",
"invoice_number"
]
},
"group": {
"type": "string",
"enum": [
"accounts",
"positions"
]
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date"
},
"skipPreviouslyExportedDocuments": {
"type": "boolean"
}
}
},
"examples": {
"invoice and credit note csv filter payload": {
"value": {
"sort": "date",
"group": "accounts",
"projectId": 1,
"from": "2024-01-01",
"to": "2024-01-01",
"skipPreviouslyExportedDocuments": true
}
}
}
}
}
},
"responses": {
"202": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/accounting/datev/csvExport/liabilities": {
"post": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.csvExport.liabilities",
"summary": "Execute the accounting CSV export for liabilities",
"description": "Execute the accounting CSV export for liabilities.",
"requestBody": {
"description": "Execute the accounting CSV export for liabilities",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to"
],
"properties": {
"projectId": {
"type": "integer"
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date"
},
"skipPreviouslyExportedDocuments": {
"type": "boolean"
},
"allowSmallLiabilityInvoiceNumbers": {
"type": "boolean"
}
}
},
"examples": {
"liability csv filter payload": {
"value": {
"projectId": 1,
"from": "2024-01-01",
"to": "2024-01-01",
"skipPreviouslyExportedDocuments": true,
"allowSmallLiabilityInvoiceNumbers": true
}
}
}
}
}
},
"responses": {
"202": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/accounting/datev/csvExport/accountTransactions": {
"post": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.csvExport.accountTransactions",
"summary": "Execute the accounting CSV export for account transactions",
"description": "Execute the accounting CSV export for account transactions.",
"requestBody": {
"description": "Execute the accounting CSV export for account transactions",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to"
],
"properties": {
"accountId": {
"type": "integer"
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date"
}
}
},
"examples": {
"account transaction csv filter payload": {
"value": {
"accountId": 1,
"from": "2024-01-01",
"to": "2024-01-01"
}
}
}
}
}
},
"responses": {
"202": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/accounting/datev/xmlExport/invoices": {
"post": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.xmlExport.invoices",
"summary": "Execute the accounting XML export for invoices",
"description": "Execute the accounting XML export for invoices.",
"requestBody": {
"description": "Execute the accounting XML export for invoices",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to"
],
"properties": {
"projectId": {
"type": "integer"
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date"
},
"skipPreviouslyExportedDocuments": {
"type": "boolean"
}
}
},
"examples": {
"invoice xml filter payload": {
"value": {
"projectId": 1,
"from": "2024-01-01",
"to": "2024-01-01",
"skipPreviouslyExportedDocuments": true
}
}
}
}
}
},
"responses": {
"202": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/accounting/datev/xmlExport/creditNotes": {
"post": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.xmlExport.creditNotes",
"summary": "Execute the accounting XML export for credit notes",
"description": "Execute the accounting XML export for credit notes.",
"requestBody": {
"description": "Execute the accounting XML export for credit notes",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to"
],
"properties": {
"projectId": {
"type": "integer"
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date"
},
"skipPreviouslyExportedDocuments": {
"type": "boolean"
}
}
},
"examples": {
"credit note xml filter payload": {
"value": {
"projectId": 1,
"from": "2024-01-01",
"to": "2024-01-01",
"skipPreviouslyExportedDocuments": true
}
}
}
}
}
},
"responses": {
"202": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/accounting/datev/xmlExport/liabilities": {
"post": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.xmlExport.liabilities",
"summary": "Execute the accounting XML export for liabilities",
"description": "Execute the accounting XML export for liabilities.",
"requestBody": {
"description": "Execute the accounting XML export for liabilities",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to"
],
"properties": {
"projectId": {
"type": "integer"
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date"
},
"skipPreviouslyExportedDocuments": {
"type": "boolean"
},
"allowSmallLiabilityInvoiceNumbers": {
"type": "boolean"
}
}
},
"examples": {
"liability xml filter payload": {
"value": {
"projectId": 1,
"from": "2024-01-01",
"to": "2024-01-01",
"skipPreviouslyExportedDocuments": true,
"allowSmallLiabilityInvoiceNumbers": true
}
}
}
}
}
},
"responses": {
"202": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/accounting/downloads/{downloadKey}/status": {
"get": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.download.status",
"summary": "Check the export status",
"description": "Checks the export status.",
"parameters": [
{
"schema": {
"type": "string"
},
"name": "downloadKey",
"required": true,
"in": "path"
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"required": [
"status"
],
"additionalProperties": false,
"properties": {
"status": {
"type": "string",
"enum": [
"pending",
"started"
],
"description": "The execution status"
}
}
},
{
"type": "object",
"required": [
"status",
"fileName",
"contentType"
],
"additionalProperties": false,
"properties": {
"status": {
"type": "string",
"enum": [
"completed"
],
"description": "The execution status"
},
"fileName": {
"type": "string",
"description": "The file name of the downloaded file"
},
"contentType": {
"type": "string",
"description": "The content type of the downloaded file"
},
"log": {
"type": "string",
"description": "The log file containing error or execution information"
}
}
},
{
"type": "object",
"required": [
"status",
"log"
],
"additionalProperties": false,
"properties": {
"status": {
"type": "string",
"enum": [
"failed"
],
"description": "The execution status"
},
"log": {
"type": "string",
"description": "The log file containing error or execution information"
}
}
}
]
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/accounting/downloads/{downloadKey}": {
"get": {
"tags": [
"Accounting Export"
],
"operationId": "accounting.datev.download",
"summary": "Download a generated export file",
"description": "Returns a generated export file.",
"parameters": [
{
"schema": {
"type": "string"
},
"name": "downloadKey",
"required": true,
"in": "path"
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"text/csv": {
"schema": {
"type": "string"
}
},
"application/zip": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/suppliers": {
"get": {
"tags": [
"Supplier"
],
"operationId": "supplier.list",
"summary": "List suppliers",
"description": "Lists existing suppliers",
"parameters": [
{
"name": "filter",
"in": "query",
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
}
},
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"search",
"id",
"name",
"number",
"country",
"zip",
"city",
"project",
"projectName",
"phone",
"fax",
"mobile",
"email",
"addressNote",
"department",
"subdivision",
"vatNumber",
"taxNumber",
"gln",
"tag",
"tagName"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
]
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"name",
"number",
"country",
"zip",
"city",
"project",
"projectName",
"telephone",
"fax",
"mobile",
"email",
"addressNote",
"department",
"subdivision",
"vatNumber",
"taxNumber",
"gln",
"tag",
"tagName"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Supplier list.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type",
"general"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"type": {
"description": "The type of the supplier",
"type": "string",
"example": "Regular supplier"
},
"project": {
"description": "An optional object with id and name",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name"
],
"nullable": true,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"type": "string"
}
},
"example": {
"id": "1337",
"name": "Diamond"
}
},
"general": {
"description": "The general information of the supplier",
"type": "object",
"additionalProperties": false,
"required": [
"name",
"address"
],
"properties": {
"number": {
"type": "string"
},
"fax": {
"type": "string",
"nullable": true
},
"mobile": {
"type": "string",
"nullable": true
},
"department": {
"type": "string"
},
"subdivision": {
"type": "string"
},
"vatNumber": {
"type": "string"
},
"taxNumber": {
"type": "string",
"nullable": true
},
"gln": {
"type": "string"
},
"employeeNumber": {
"type": "string"
},
"honorific": {
"type": "string"
},
"title": {
"type": "string"
},
"name": {
"type": "string"
},
"birthday": {
"type": "string",
"nullable": true,
"format": "date"
},
"tags": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"supplierNumber": {
"type": "string"
},
"phone": {
"type": "string",
"nullable": true
},
"email": {
"type": "string"
},
"address": {
"type": "object",
"additionalProperties": false,
"required": [
"street",
"zip",
"city",
"state",
"country",
"note"
],
"properties": {
"street": {
"type": "string"
},
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"nullable": true
},
"country": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
},
"example": {
"number": "123456789",
"fax": null,
"mobile": "987654321",
"department": "Sales",
"subdivision": "North Region",
"vatNumber": "VAT123456",
"taxNumber": null,
"gln": "GLN123456789",
"employeeNumber": "EMP001",
"honorific": "Mr.",
"title": "Sales Manager",
"name": "John Doe",
"birthday": null,
"tags": [
{
"id": "tag1",
"name": "Active",
"color": "ff0000"
},
{
"id": "tag2",
"name": "Active",
"color": "ff0000"
}
],
"supplierNumber": "SUP123456",
"phone": null,
"email": "johndoe@example.com",
"address": {
"street": "Hauptstraße 15",
"zip": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"note": "Hauptsitz"
}
}
},
"tags": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Either ID or name and key."
},
"key": {
"description": "The key of the tag",
"type": "string"
},
"name": {
"description": "The name of the tag",
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"freeFields": {
"description": "a list of free fields and their values",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"value": {
"description": "The value of the free field",
"type": "string"
}
}
}
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
},
"text/csv": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Supplier"
],
"operationId": "supplier.updateMultiple",
"summary": "Update multiple suppliers tags",
"description": "Updates tags for multiple suppliers",
"requestBody": {
"description": "Supplier update multiple request payload",
"content": {
"application/json": {
"schema": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"tags": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Either ID or name and key.",
"example": "12345"
},
"key": {
"description": "The key of the tag",
"type": "string",
"example": "absg378d"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "New"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
}
}
}
},
"examples": {
"Add existing tags to suppliers": {
"value": [
{
"id": "5",
"tags": [
{
"id": "33"
},
{
"id": "34"
}
]
},
{
"id": "6",
"tags": [
{
"id": "39"
},
{
"id": "40"
}
]
}
]
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/suppliers/{id}": {
"get": {
"tags": [
"Supplier"
],
"operationId": "supplier.view",
"summary": "View supplier",
"description": "Shows an existing supplier details",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Supplier view.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "A supplier resource",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type",
"general"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"type": {
"description": "The type of the supplier",
"type": "string",
"example": "Regular supplier"
},
"general": {
"description": "The general information of the supplier",
"type": "object",
"additionalProperties": false,
"required": [
"name",
"address"
],
"properties": {
"honorific": {
"description": "The honorific of the supplier",
"type": "string"
},
"title": {
"description": "The title of the supplier",
"type": "string"
},
"name": {
"description": "The name of the supplier",
"type": "string"
},
"birthday": {
"description": "The birthday of the supplier",
"type": "string",
"format": "date"
},
"address": {
"type": "object",
"additionalProperties": false,
"required": [
"street",
"zip",
"city",
"state",
"country",
"note"
],
"properties": {
"street": {
"type": "string"
},
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"nullable": true
},
"country": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
},
"example": {
"honorific": "Dr.",
"title": "CEO",
"name": "Alice Johnson",
"birthday": "1980-05-15",
"address": {
"street": "Hauptstraße 15",
"zip": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"note": "Hauptsitz"
}
}
},
"tags": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
}
},
"example": {
"id": "123456789",
"type": "Regular supplier",
"general": {
"honorific": "Dr.",
"title": "CEO",
"name": "Alice Johnson",
"birthday": "1980-05-15",
"address": {
"street": "Hauptstraße 15",
"zip": "10115",
"city": "Berlin",
"state": null,
"country": "DE",
"note": "Hauptsitz"
}
},
"tags": [
{
"id": "tag1",
"name": "Active",
"color": "ff0000"
},
{
"id": "tag2",
"name": "Active",
"color": "ff0000"
}
]
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Supplier"
],
"operationId": "supplier.update",
"summary": "Update single Supplier tags",
"description": "Updates tags of a single supplier",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Supplier update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"tags": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"description": "Either ID or name and key."
},
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
}
}
},
"examples": {
"Add existing tags to supplier": {
"value": {
"tags": [
{
"id": "33"
},
{
"id": "34"
}
]
}
},
"Add new tag to supplier": {
"value": {
"tags": [
{
"name": "Tier 1 supplier",
"key": "tier-1-supplier",
"color": "#00ff00"
}
]
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Supplier"
],
"operationId": "supplier.delete",
"summary": "Delete supplier",
"description": "Delete existing supplier",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/suppliersTags": {
"get": {
"tags": [
"Supplier Tag"
],
"operationId": "supplierTag.list",
"summary": "List suppliers tags",
"description": "Returns a collection with all suppliers tags.",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"description": "A list of tags",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "The identifier of the tag",
"type": "string",
"pattern": "\\d+",
"example": "1337"
},
"name": {
"description": "The name of the tag",
"type": "string",
"example": "Active"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/taxRates/{countryCode}": {
"get": {
"tags": [
"Tax Rate"
],
"operationId": "taxRate.list",
"summary": "List tax rates",
"description": "This endpoint returns the tax rate for a given country code. The country code is a two-letter ISO 3166-1 alpha-2 code. The response is a list of applicable tax rates for the given country code.\nTo get a more granular response you can use the query parameters to filter the response, for example by product or project.\n\nThe applicable tax rate is determined in the following order:\n1. If a custom tax rate is defined for the product, it is returned.\n2. If a tax rate is defined in the taxRates module for that country, it is returned.\n3. If a tax rate is defined in the taxRates module for the project, or a generic tax Rate without country or project it is returned.\n4. If a tax rate is defined for the applicable project it is returned.\n5. If a tax rate is defined for the system it is returned.\n6. If no tax rate is defined anywhere we will return an empty list.\n\nTo see which step was used to determine the tax rate, the source field is returned in the response.",
"parameters": [
{
"in": "path",
"name": "countryCode",
"required": true,
"description": "This is the country code for which the tax rates are requested",
"schema": {
"type": "string"
},
"example": "DE"
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"productId",
"date",
"type",
"projectId"
]
},
"op": {
"type": "string",
"enum": [
"equals",
"notEquals",
"in",
"notIn",
"exactlyIn",
"allIn",
"allNotIn",
"contains",
"notContains",
"startsWith",
"endsWith",
"greaterThan",
"lessThan",
"is",
"lessThanOrEquals",
"greaterThanOrEquals"
]
},
"value": {
"oneOf": [
{
"type": "string",
"description": "Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"rate": {
"type": "string",
"description": "Tax rate value in percent",
"example": "Support Request"
},
"type": {
"type": "string",
"description": "Tax rate type: standard, reduced or custom",
"example": "Support Request"
},
"date": {
"type": "string",
"format": "date",
"description": "Requested date or current date if no date was specified",
"example": "2023-09-09"
},
"name": {
"type": "string",
"nullable": true,
"description": "Tax rate's designation",
"example": "Support Request"
},
"product": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"project": {
"description": "Nullable reference to another resource",
"type": "object",
"additionalProperties": false,
"nullable": true,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"example": {
"id": "1337"
}
},
"source": {
"type": "string",
"description": "Informs how was the tax rate determined",
"example": "Support Request"
}
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/users": {
"post": {
"tags": [
"User"
],
"operationId": "user.create",
"summary": "Create user",
"description": "Creates a new user using one of the available operations",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"username",
"email",
"password"
],
"properties": {
"username": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"description": {
"type": "string"
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
},
"locale": {
"type": "string",
"enum": [
"de_DE",
"en_US"
],
"pattern": "[a-z]{2}_[A-Z]{2}",
"example": "de_DE",
"description": "ISO 15897 locale which matches one of the available locale values."
}
}
},
"examples": {
"user create": {
"value": {
"username": "Test user name",
"email": "test@example.com",
"password": "1234",
"description": "Test user description",
"color": "ff0000",
"locale": "de_DE"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"User"
],
"operationId": "user.list",
"summary": "List users",
"description": "Returns a collection with all users.",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
},
"username": {
"type": "string"
},
"description": {
"type": "string"
},
"isActive": {
"type": "boolean"
},
"email": {
"type": "string"
}
}
}
},
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "order",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"enum": [
"id",
"username",
"isActive",
"createdAt"
]
},
"dir": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data",
"extra"
],
"properties": {
"data": {
"description": "A list of users",
"type": "array",
"items": {
"description": "User resource.",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"username",
"description",
"createdAt"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"globalUserId": {
"description": "Nullable UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1",
"nullable": true
},
"username": {
"description": "The name of the user",
"type": "string",
"example": "Benedikt"
},
"createdAt": {
"description": "The date the user was created",
"type": "string",
"format": "date-time",
"example": "2023-08-13T14:45:36+02:00"
},
"description": {
"x-description-ignore": true,
"type": "string",
"nullable": true,
"example": "This is the user description."
},
"color": {
"description": "An optional hex value without the #, representing the avatar color",
"type": "string",
"nullable": true,
"example": "ff0000"
},
"isActive": {
"description": "A boolean value indicating if the user is active and can log in",
"type": "boolean",
"example": true
},
"locale": {
"description": "A ISO-639-1 formatted string indicating the language the user will use",
"type": "string",
"example": "de_DE"
},
"isAdmin": {
"description": "A boolean value indicating if the user is an admin",
"type": "boolean",
"example": false
},
"email": {
"x-description-ignore": true,
"type": "string",
"nullable": true,
"example": "example@xentral.com"
},
"emailVerifiedAt": {
"description": "The date where the user verified his email address",
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2023-08-14T14:45:36+02:00"
},
"mfa": {
"description": "Auth Platform MFA state",
"type": "boolean",
"nullable": true,
"example": false
}
},
"example": {
"id": "12",
"globalUserId": "f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b",
"username": "Bene",
"createdAt": "2023-08-13T14:45:36+02:00",
"description": "This is the user description.",
"color": "ff0000",
"isActive": true,
"locale": "de_DE",
"isAdmin": true,
"email": "ceo@example.com",
"emailVerifiedAt": "2023-08-14T14:45:36+02:00"
}
}
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/users/{id}": {
"get": {
"tags": [
"User"
],
"operationId": "user.view",
"summary": "View user",
"description": "Returns details of a single user",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "A single user resource.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "User resource.",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"username",
"description",
"createdAt"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"globalUserId": {
"description": "Nullable UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1",
"nullable": true
},
"username": {
"description": "The name of the user",
"type": "string",
"example": "Benedikt"
},
"createdAt": {
"description": "The date the user was created",
"type": "string",
"format": "date-time",
"example": "2023-08-13T14:45:36+02:00"
},
"description": {
"x-description-ignore": true,
"type": "string",
"nullable": true,
"example": "This is the user description."
},
"color": {
"description": "An optional hex value without the #, representing the avatar color",
"type": "string",
"nullable": true,
"example": "ff0000"
},
"isActive": {
"description": "A boolean value indicating if the user is active and can log in",
"type": "boolean",
"example": true
},
"locale": {
"description": "A ISO-639-1 formatted string indicating the language the user will use",
"type": "string",
"example": "de_DE"
},
"isAdmin": {
"description": "A boolean value indicating if the user is an admin",
"type": "boolean",
"example": false
},
"email": {
"x-description-ignore": true,
"type": "string",
"nullable": true,
"example": "example@xentral.com"
},
"emailVerifiedAt": {
"description": "The date where the user verified his email address",
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2023-08-14T14:45:36+02:00"
},
"mfa": {
"description": "Auth Platform MFA state",
"type": "boolean",
"nullable": true,
"example": false
}
},
"example": {
"id": "12",
"globalUserId": "f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b",
"username": "Bene",
"createdAt": "2023-08-13T14:45:36+02:00",
"description": "This is the user description.",
"color": "ff0000",
"isActive": true,
"locale": "de_DE",
"isAdmin": true,
"email": "ceo@example.com",
"emailVerifiedAt": "2023-08-14T14:45:36+02:00"
}
}
}
}
},
"application/vnd.xentral.user-permissions+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "An object containing all the users permissions.",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"username",
"description",
"createdAt"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"globalUserId": {
"description": "Nullable UUID identifier of the resource.",
"type": "string",
"pattern": "^$|^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$",
"example": "a00fd11e-3a67-433b-83c0-4e815fd4a0e1",
"nullable": true
},
"username": {
"description": "The name of the user",
"type": "string",
"example": "Benedikt"
},
"createdAt": {
"description": "The date the user was created",
"type": "string",
"format": "date-time",
"example": "2023-08-13T14:45:36+02:00"
},
"description": {
"x-description-ignore": true,
"type": "string",
"nullable": true,
"example": "This is the user description."
},
"color": {
"description": "An optional hex value without the #, representing the avatar color",
"type": "string",
"nullable": true,
"example": "ff0000"
},
"isActive": {
"description": "A boolean value indicating if the user is active and can log in",
"type": "boolean",
"example": true
},
"locale": {
"description": "A ISO-639-1 formatted string indicating the language the user will use",
"type": "string",
"example": "de_DE"
},
"isAdmin": {
"description": "A boolean value indicating if the user is an admin",
"type": "boolean",
"example": true
},
"email": {
"x-description-ignore": true,
"type": "string",
"nullable": true,
"example": "joe@example.com"
},
"modules": {
"description": "List of modules with their permissions.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"permissions"
],
"properties": {
"name": {
"type": "string"
},
"permissions": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"emailVerifiedAt": {
"description": "The date where the user verified his email address",
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2023-08-14T14:45:36+02:00"
},
"mfa": {
"description": "Auth Platform MFA state",
"type": "boolean",
"nullable": true,
"example": false
}
},
"example": {
"id": "12",
"globalUserId": "f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b",
"username": "Bene",
"createdAt": "2023-08-13T14:45:36+02:00",
"description": "This is the user description.",
"color": "ff0000",
"isActive": true,
"locale": "de_DE",
"isAdmin": true,
"email": "joe@example.com"
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"User"
],
"operationId": "user.update",
"summary": "Update user",
"description": "Update a set of changes of an user.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"username": {
"type": "string",
"example": "Benedikt"
},
"password": {
"type": "string",
"example": "abc123ghj987!?"
},
"description": {
"type": "string",
"example": "This is the user description."
},
"color": {
"type": "string",
"pattern": "[a-fA-F0-9]{6}",
"example": "ff0000",
"description": "Hexadecimal color value in 6-digit format without the leading # character."
},
"locale": {
"type": "string",
"enum": [
"de_DE",
"en_US"
],
"pattern": "[a-z]{2}_[A-Z]{2}",
"example": "de_DE",
"description": "ISO 15897 locale which matches one of the available locale values."
},
"email": {
"type": "string"
}
}
},
"examples": {
"Update user": {
"value": {
"username": "updated name",
"email": "updated@email.com",
"description": "updated description",
"color": "ff00ff",
"locale": "en_US"
}
}
}
},
"application/vnd.xentral.password+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"current": {
"type": "string",
"minLength": 1
},
"password": {
"type": "string",
"minLength": 1
}
}
},
"examples": {
"change password": {
"value": {
"current": "1234",
"password": "abc!dfg352l?"
}
}
}
},
"application/vnd.xentral.mfa+json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"action": {
"type": "string",
"enum": [
"enable",
"disable"
],
"example": "enable",
"description": "Auth Platform MFA action to process"
}
}
},
"examples": {
"change user MFA state": {
"value": {
"action": "enable"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"User"
],
"operationId": "user.delete",
"summary": "Delete single user",
"description": "Deletes a single user resource identified by its URI",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/users/{id}/permissions": {
"get": {
"tags": [
"User"
],
"operationId": "user.permission.view",
"summary": "View user's permissions",
"description": "Returns all permissions of an user.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "An object containing all permissions of a user.",
"type": "object",
"additionalProperties": false,
"required": [
"isAdmin",
"modules"
],
"properties": {
"isAdmin": {
"description": "Indicating if the user is an admin user",
"type": "boolean",
"example": false
},
"modules": {
"description": "List of modules with their permissions.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"permissions"
],
"properties": {
"name": {
"type": "string"
},
"permissions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"example": {
"name": "benutzer",
"permissions": [
"list",
"edit"
]
}
}
}
},
"example": {
"isAdmin": false,
"modules": [
{
"name": "benutzer",
"permissions": [
"list",
"edit"
]
}
]
}
}
}
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/users/{id}/resetPassword/request": {
"post": {
"tags": [
"User"
],
"operationId": "user.reset-password",
"summary": "Request reset password email",
"description": "Request reset password email",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/warehouses": {
"get": {
"tags": [
"Warehouse"
],
"operationId": "warehouse.list",
"parameters": [
{
"in": "query",
"name": "page",
"required": false,
"style": "deepObject",
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"number",
"size"
],
"properties": {
"number": {
"type": "string",
"pattern": "\\d+",
"description": "Page number should be an integer greater than or equal to 1"
},
"size": {
"type": "string",
"pattern": "\\d+",
"description": "Page size should usually be an integer between 10 and 50."
}
}
}
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"enum": [
"designation",
"id"
]
},
"op": {
"type": "string",
"enum": [
"greaterThan",
"lessThan",
"equals",
"notEquals",
"in",
"notIn"
]
},
"value": {
"oneOf": [
{
"type": "string",
"title": "String"
},
{
"type": "array",
"description": "Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.",
"title": "Array",
"items": {
"type": "string"
}
}
]
}
}
}
}
}
],
"summary": "Warehouse list",
"description": "This endpoint is only available as beta version and will introduce breaking changes without further notice or versioning. Returns a list of active warehouses.",
"responses": {
"200": {
"description": "Operation completed successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"project": {
"required": [
"id"
],
"description": "Information for the project used by a Warehouse",
"type": "object",
"nullable": true,
"properties": {
"id": {
"type": "string",
"description": "Id of project"
}
},
"example": {
"id": "1"
}
},
"designation": {
"type": "string",
"description": "Name of the warehouse",
"example": "Returns"
}
}
},
"description": "Representation of a list of Warehouses",
"example": [
{
"id": "1",
"project": {
"id": "2"
},
"designation": "Returns"
}
]
},
"extra": {
"type": "object",
"required": [
"totalCount",
"page"
],
"additionalProperties": false,
"x-description-ignore": true,
"properties": {
"totalCount": {
"description": "the total count of all items",
"type": "integer",
"example": 1
},
"page": {
"description": "The pagination object containing the current page number and size",
"type": "object",
"required": [
"number",
"size"
],
"additionalProperties": false,
"properties": {
"number": {
"description": "The current page number",
"type": "integer",
"example": 1
},
"size": {
"description": "The size of the pages",
"type": "integer",
"example": 10
}
},
"example": {
"number": 1,
"size": 10
}
}
},
"example": {
"totalCount": 1,
"page": {
"number": 1,
"size": 10
}
}
}
}
},
"example": {
"data": [
{
"id": "9",
"designation": "Returns",
"project": {
"id": "3"
}
}
],
"extra": {
"totalCount": 1,
"page": {
"number": 1,
"size": 1
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/webhooks": {
"post": {
"tags": [
"Webhook"
],
"operationId": "webhook.create",
"summary": "Create a webhook",
"description": "Creates a new webhook.",
"requestBody": {
"description": "Webhook create request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"url",
"signatureKey",
"events"
],
"properties": {
"name": {
"type": "string",
"example": "My example application"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/receive-xentral-webhook-endpoint"
},
"signatureKey": {
"type": "string",
"example": "rf5ecjtvnWQ4mTDfzOTZXgQuuCSFfR66"
},
"events": {
"type": "array",
"description": "The webhookEventType resource.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"description": "The unique identifier of the event type.",
"type": "string",
"example": "com.xentral.salesOrder.created.v1"
}
}
},
"example": [
{
"id": "com.xentral.salesOrder.created.v1"
},
{
"id": "com.xentral.salesOrder.updated.v1"
}
]
}
}
},
"examples": {
"Create new webhook": {
"value": {
"name": "My example application",
"url": "https://example.com/receive-xentral-webhook-endpoint",
"signatureKey": "rf5ecjtvnWQ4mTDfzOTZXgQuuCSFfR66",
"events": [
{
"id": "com.xentral.salesOrder.created.v1"
},
{
"id": "com.xentral.salesOrder.updated.v1"
}
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Resource successfully created response",
"headers": {
"Location": {
"schema": {
"type": "string",
"example": "https://example.xentral.biz/api/users/17"
},
"description": "URI of the created resource"
}
},
"content": {
"text/html": {
"schema": {
"type": "string",
"enum": [
""
],
"nullable": true
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"get": {
"tags": [
"Webhook"
],
"operationId": "webhook.list",
"summary": "List webhooks",
"description": "List webhooks.",
"responses": {
"200": {
"description": "Webhook list.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "The webhook resource list.",
"x-example-ignore": true,
"type": "array",
"items": {
"description": "The webhook resource.",
"example": {
"id": "1234",
"name": "My example application",
"url": "https://example.com/receive-xentral-webhook-endpoint",
"events": [
{
"id": "com.xentral.salesOrder.created.v1"
},
{
"id": "com.xentral.salesOrder.updated.v1"
}
]
},
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"url",
"events"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"description": "The name of the webhook.",
"type": "string",
"example": "My example application"
},
"url": {
"description": "The URL of the application which should receive the webhook request.",
"type": "string",
"format": "uri",
"example": "https://example.com/receive-xentral-webhook-endpoint"
},
"events": {
"type": "array",
"description": "The webhookEventType resource.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"description": "The unique identifier of the event type.",
"type": "string",
"example": "com.xentral.salesOrder.created.v1"
}
}
},
"example": [
{
"id": "com.xentral.salesOrder.created.v1"
},
{
"id": "com.xentral.salesOrder.updated.v1"
}
]
}
}
}
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/webhooks/{id}": {
"get": {
"tags": [
"Webhook"
],
"operationId": "webhook.view",
"summary": "View a webhook",
"description": "View a webhook.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"200": {
"description": "Webhook view.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "The webhook resource.",
"example": {
"id": "1234",
"name": "My example application",
"url": "https://example.com/receive-xentral-webhook-endpoint",
"events": [
{
"id": "com.xentral.salesOrder.created.v1"
},
{
"id": "com.xentral.salesOrder.updated.v1"
}
]
},
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"url",
"events"
],
"properties": {
"id": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
},
"name": {
"description": "The name of the webhook.",
"type": "string",
"example": "My example application"
},
"url": {
"description": "The URL of the application which should receive the webhook request.",
"type": "string",
"format": "uri",
"example": "https://example.com/receive-xentral-webhook-endpoint"
},
"events": {
"type": "array",
"description": "The webhookEventType resource.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"description": "The unique identifier of the event type.",
"type": "string",
"example": "com.xentral.salesOrder.created.v1"
}
}
},
"example": [
{
"id": "com.xentral.salesOrder.created.v1"
},
{
"id": "com.xentral.salesOrder.updated.v1"
}
]
}
}
}
}
}
}
}
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"404": {
"description": "Resource was not found or not enough access privileges"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
},
"patch": {
"tags": [
"Webhook"
],
"operationId": "webhook.update",
"summary": "Update a webhook",
"description": "Update a webhook.",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"requestBody": {
"description": "Webhook update request payload",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"example": "My example application"
},
"url": {
"type": "string",
"format": "uri",
"example": "https://example.com/receive-xentral-webhook-endpoint"
},
"signatureKey": {
"type": "string",
"example": "rf5ecjtvnWQ4mTDfzOTZXgQuuCSFfR66"
},
"events": {
"type": "array",
"description": "The webhookEventType resource",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"description": "The unique identifier of the event type.",
"type": "string",
"example": "com.xentral.salesOrder.created.v1"
}
}
},
"example": [
{
"id": "com.xentral.salesOrder.created.v1"
},
{
"id": "com.xentral.salesOrder.updated.v1"
}
]
}
}
},
"examples": {
"Update webhook": {
"value": {
"events": [
{
"id": "com.xentral.salesOrder.created.v1"
}
]
}
}
}
}
}
},
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"400": {
"description": "IETF RFC 9457 Problem API compliant response",
"content": {
"application/problem+json": {
"schema": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"violations"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/request-validation"
]
},
"title": {
"type": "string",
"minLength": 1,
"example": "Request payload validation failed."
},
"violations": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"example": {
"username": [
"This value should not be blank."
],
"email": [
"This value is not a valid email address."
]
}
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
},
{
"type": "object",
"example": {
"_": [
"This value should contain at most `9` elements."
]
},
"description": "This field will be a mirrored request payload with only invalid fields and values replaced by error messages."
}
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflict"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"items"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/conflictItems"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"title",
"messages"
],
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"messages"
],
"properties": {
"type": {
"type": "string",
"enum": [
"https://api.xentral.biz/problems/generic-validation"
]
},
"title": {
"type": "string",
"minLength": 1
},
"messages": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
]
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"415": {
"description": "Resource representation send in the request is not supported."
},
"429": {
"description": "Too many API calls made."
}
}
},
"delete": {
"tags": [
"Webhook"
],
"operationId": "webhook.delete",
"summary": "Delete a webhook.",
"description": "Delete a webhook",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"description": "The resource's identifier.",
"schema": {
"type": "string",
"pattern": "\\d+",
"example": "17",
"description": "Resource identifier."
}
}
],
"responses": {
"204": {
"description": "Operation completed successfully, no response body"
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"429": {
"description": "Too many API calls made."
}
}
}
},
"/api/v1/webhookEventTypes": {
"get": {
"tags": [
"Webhook"
],
"operationId": "webhookEventTypes.list",
"summary": "List webhook event types",
"description": "List webhooks event types.",
"parameters": [
{
"name": "xentralVersion",
"in": "query",
"example": "24.11.0",
"schema": {
"type": "string",
"default": "latest"
},
"description": "Xentral version to request the available event types for."
}
],
"responses": {
"200": {
"description": "Webhook event type list.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"description": "List of webhook event types.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"group"
],
"properties": {
"id": {
"description": "The unique identifier of the event type.",
"type": "string",
"example": "com.xentral.salesOrder.created.v1"
},
"group": {
"description": "The group the event type belongs to.",
"type": "string",
"example": "salesOrder"
}
}
},
"example": [
{
"id": "com.xentral.salesOrder.created.v1",
"group": "salesOrder"
},
{
"id": "com.xentral.product.created.v1",
"group": "product"
},
{
"id": "com.xentral.product.propertiesCreated.v1",
"group": "product"
}
]
}
}
}
}
}
},
"401": {
"description": "Unable to authenticate the client",
"content": {
"text/html": {
"schema": {
"type": "string",
"example": "Unauthorized"
}
}
}
},
"403": {
"description": "Unable to authorize the client"
},
"406": {
"description": "Requested resource representation does not exist."
},
"429": {
"description": "Too many API calls made."
}
}
}
}
}
}