OpenAPI Specification
openapi: 3.0.0
info:
title: Xentral Account Delivery 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: Delivery
description: Delivery information.
paths:
/api/v1/deliveries:
get:
tags:
- Delivery
operationId: deliveries.list
summary: List deliveries
description: Lists existing deliveries
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:
- salesOrderId
dir:
type: string
enum:
- asc
- desc
- name: filter
in: query
style: deepObject
explode: true
schema:
type: array
items:
type: object
additionalProperties: false
required:
- key
- op
- value
properties:
key:
type: string
enum:
- salesOrderId
- shippingMethodId
- deliveryNoteId
- trackingNumber
- carrier
- sentAt
- sentAtTimestamp
description: Field to filter by.
op:
type: string
enum:
- equals
- notEquals
- in
- notIn
- lessThan
- lessThanOrEquals
- greaterThan
- greaterThanOrEquals
- startsWith
- endsWith
description: Operator to use for filtering.
value:
oneOf:
- type: string
description: Always passed as string in query; backend parses as string, numeric, date, or datetime based on 'key'.
- type: array
items:
type: string
description: Used for the 'in' operator. Items must be strings representing numeric, date, etc.
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==
additionalPackages:
type: array
description: Additional parcels associated with this shipment
items:
type: object
additionalProperties: false
required:
- id
- trackingNumber
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
trackingNumber:
type: string
nullable: true
description: The tracking number for this parcel.
additionalProperties: false
example: ABC123123123
weight:
type: number
format: float
nullable: true
description: Weight of the parcel
example: 2.25
createdAt:
type: string
format: datetime
nullable: true
description: Creation timestamp of the parcel record
example: '2024-09-18T14:30:00Z'
updatedAt:
type: string
format: datetime
nullable: true
description: Last update timestamp of the parcel record
example: '2024-09-18T14:30:00Z'
description: Data representation of an additional parcel within a shipment
example:
id: '123'
trackingNumber: ABC123123123
weight: 2.25
createdAt: '2024-09-18T14:30:00Z'
updatedAt: '2024-09-18T14:30:00Z'
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==
additionalPackages:
- id: '123'
trackingNumber: ABC123123123
weight: 2.25
createdAt: '2024-09-18T14:30:00Z'
updatedAt: '2024-09-18T14:30:00Z'
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
'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
'429':
description: Too many API calls made.
/api/v1/deliveries/{id}:
get:
deprecated: true
tags:
- Delivery
operationId: delivery.view
summary: View delivery
description: Returns details of a delivery aka shipment
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
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==
additionalPackages:
type: array
description: Additional parcels associated with this shipment
items:
type: object
additionalProperties: false
required:
- id
- trackingNumber
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
trackingNumber:
type: string
nullable: true
description: The tracking number for this parcel.
additionalProperties: false
example: ABC123123123
weight:
type: number
format: float
nullable: true
description: Weight of the parcel
example: 2.25
createdAt:
type: string
format: datetime
nullable: true
description: Creation timestamp of the parcel record
example: '2024-09-18T14:30:00Z'
updatedAt:
type: string
format: datetime
nullable: true
description: Last update timestamp of the parcel record
example: '2024-09-18T14:30:00Z'
description: Data representation of an additional parcel within a shipment
example:
id: '123'
trackingNumber: ABC123123123
weight: 2.25
createdAt: '2024-09-18T14:30:00Z'
updatedAt: '2024-09-18T14:30:00Z'
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==
additionalPackages:
- id: '123'
trackingNumber: ABC123123123
weight: 2.25
createdAt: '2024-09-18T14:30:00Z'
updatedAt: '2024-09-18T14:30:00Z'
description: Data representation of a single delivery aka shipment
'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.
/api/v1/shipments/{id}:
get:
tags:
- Delivery
operationId: shipment.view
summary: View shipment
description: Returns details of a shipment aka delivery
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
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==
additionalPackages:
type: array
description: Additional parcels associated with this shipment
items:
type: object
additionalProperties: false
required:
- id
- trackingNumber
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
trackingNumber:
type: string
nullable: true
description: The tracking number for this parcel.
additionalProperties: false
example: ABC123123123
weight:
type: number
format: float
nullable: true
description: Weight of the parcel
example: 2.25
createdAt:
type: string
format: datetime
nullable: true
description: Creation timestamp of the parcel record
example: '2024-09-18T14:30:00Z'
updatedAt:
type: string
format: datetime
nullable: true
description: Last update timestamp of the parcel record
example: '2024-09-18T14:30:00Z'
description: Data representation of an additional parcel within a shipment
example:
id: '123'
trackingNumber: ABC123123123
weight: 2.25
createdAt: '2024-09-18T14:30:00Z'
updatedAt: '2024-09-18T14:30:00Z'
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==
additionalPackages:
- id: '123'
trackingNumber: ABC123123123
weight: 2.25
createdAt: '2024-09-18T14:30:00Z'
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-delivery-api-openapi.yml