Xentral Storage Location API
Represents the spaces within a warehouse
Represents the spaces within a warehouse
openapi: 3.0.0
info:
title: Xentral Account Storage Location 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 Location
description: Represents the spaces within a warehouse
paths:
/api/v1/warehouses/{warehouseId}/storageLocations:
post:
tags:
- Storage Location
operationId: storageLocation.create
parameters:
- name: warehouseId
in: path
description: ID of warehouse
required: true
schema:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
summary: Create storage location
description: Creates a new storage location
requestBody:
description: create a new storage location
content:
application/json:
schema:
type: object
properties:
designation:
type: string
address:
description: Reference to another resource
type: object
additionalProperties: false
required:
- id
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
example:
id: '1337'
dimensions:
type: object
properties:
length:
type: number
format: float
width:
type: number
format: float
height:
type: number
format: float
isReplenishmentLocation:
type: boolean
isConsumptionLocation:
type: boolean
isRestrictedLocation:
type: boolean
isPosLocation:
type: boolean
allowsProductionAccess:
type: boolean
sort:
type: integer
locationType:
type: string
enum:
- pallet
- shelf
abcCategory:
type: string
nullable: true
enum:
- A
- B
- C
examples:
create a new storage location:
value:
designation: StorageLocation33
address:
id: '33'
isReplenishmentLocation: false
isConsumptionLocation: false
isRestrictedLocation: false
allowsProductionAccess: false
isPosLocation: false
dimensions:
length: 13.22
width: 12.01
height: 19
locationType: shelf
sort: 12
abcCategory: B
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
- 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
'406':
description: Requested resource representation does not exist.
'429':
description: Too many API calls made.
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: List storage locations
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
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
- 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
'406':
description: Requested resource representation does not exist.
'429':
description: Too many API calls made.
/api/v1/warehouses/{warehouseId}/storageLocations/{storageLocationId}:
patch:
tags:
- Storage Location
operationId: storageLocation.update
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.
requestBody:
description: Request body for updating a storage location.
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
designation:
type: string
description: Human-readable name or label for the storage location.
example: Cold Storage Zone A
address:
type: object
nullable: true
description: Reference to the address entity associated with this location.
additionalProperties: false
properties:
id:
type: string
pattern: ^[0-9]+$
description: ID of the address as a string containing digits.
example: '1024'
isReplenishmentLocation:
type: boolean
description: Indicates if the location is used for replenishment.
example: true
isConsumptionLocation:
type: boolean
description: Indicates if the location is used for material consumption.
example: false
isRestrictedLocation:
type: boolean
description: Marks the location as restricted for access or usage.
example: true
allowsProductionAccess:
type: boolean
description: Indicates if the location is accessible for production processes.
example: true
isPosLocation:
type: boolean
description: Indicates if the location is used as POS location.
example: false
dimensions:
type: object
nullable: true
description: defines the dimensions of the storage location
additionalProperties: false
properties:
length:
type: number
format: float
description: Length of the location in meters, with up to 2 decimal places.
example: 12.75
width:
type: number
format: float
description: Width of the location in meters, with up to 2 decimal places.
example: 5.5
height:
type: number
format: float
description: Height of the location in meters, with up to 2 decimal places.
example: 3.25
locationType:
type: string
nullable: true
enum:
- pallet
- shelf
description: Type of storage location, such as pallet or shelf.
example: pallet
abcCategory:
type: string
nullable: true
enum:
- A
- B
- C
description: Category classification for the location.
example: B
sort:
type: integer
description: Sort order or priority index for the location.
example: 10
examples:
Update Storage Location:
value:
designation: FulfillmentWarehouse1
address:
id: '33'
isReplenishmentLocation: false
isConsumptionLocation: false
isRestrictedLocation: false
allowsProductionAccess: true
isPosLocation: false
dimensions:
length: 13.22
width: 12.01
height: 19
locationType: shelf
abcCategory: B
sort: 12
summary: Update storage location
description: Update a storage location for the specified warehouse.
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-
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-storage-location-api-openapi.yml