Xentral Storage Item API
Represent a storage item in a storage location
Represent a storage item in a storage location
openapi: 3.0.0
info:
title: Xentral Account Storage Item API
version: v0.1
description: Xentral is an ERP platform.
contact:
name: Xentral
url: https://xentral.com
email: api@xentral.com
servers:
- url: https://{xentralId}.xentral.biz
description: Your Xentral Instance
variables:
xentralId:
default: xentral
- url: https://{domain}
description: Xentral at a custom domain
variables:
domain:
default: xentral.com
security:
- BearerAuth: []
tags:
- name: Storage Item
description: Represent a storage item in a storage location
paths:
/api/v1/warehouses/{warehouseId}/storageLocations/{storageLocationId}/items:
get:
tags:
- Storage Item
deprecated: true
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.
- name: filter
in: query
style: deepObject
schema:
type: array
items:
type: object
additionalProperties: false
properties:
key:
type: string
enum:
- productId
op:
type: string
enum:
- greaterThan
- lessThan
- equals
- notEquals
- in
- notIn
- lessThanOrEquals
- greaterThanOrEquals
value:
oneOf:
- type: string
description: Product ID value.
title: String
- type: array
description: Used for the operations 'in', 'notIn'.
title: Array
items:
type: string
summary: List storage items V1
description: 'Returns all storage location items for the specified warehouse / location. If no Accept header is provided, or if Accept: application/json is specified, the response format is identical to version 2.'
responses:
'200':
description: Operation completed successfully.
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'
'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
- scopes
properties:
type:
type: string
enum:
- https://developer.xentral.com/reference/problems#token-scopes
title:
type: string
minLength: 1
scopes:
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:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message explaining why the request failed.
example: 'Missing required scopes: customer:create.'
example:
message: 'Missing required scopes: customer:create.'
text/html:
schema:
type: string
example: Unauthorized
'403':
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
- scopes
properties:
type:
type: string
enum:
- https://developer.xentral.com/reference/problems#token-scopes
title:
type: string
minLength: 1
scopes:
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
- scopes
properties:
type:
type: string
enum:
- https://developer.xentral.com/reference/problems#token-scopes
title:
type: string
minLength: 1
scopes:
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:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message explaining why the request failed.
example: 'Missing required scopes: customer:create.'
example:
message: 'Missing required scopes: customer:create.'
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: Retrieve 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
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-storage-item-api-openapi.yml