Xentral Customer API
Customer represents an information related to company, or individual person.
Customer represents an information related to company, or individual person.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client β Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE β APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/xentral-customer-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Xentral Account Customer 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: Customer
description: Customer represents an information related to company, or individual person.
paths:
/api/v1/customers/{id}:
delete:
tags:
- Customer
operationId: customer.delete
summary: Delete customer
description: Delete existing customer
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:
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.
/api/v2/customers:
get:
tags:
- Customer
operationId: customer.list.v2
summary: List customers
description: Fetches a list of customers based on provided filters and pagination parameters. This endpoint supports filtering by various customer attributes, as well as cursor and page-based pagination for efficient data retrieval.
parameters:
- name: filter
in: query
style: deepObject
schema:
anyOf:
- type: array
items:
type: object
additionalProperties: false
properties:
key:
type: string
enum:
- id
- uuid
- number
- customerType
- name
- deviatingCustomerNumber
- firstname
- lastname
- title
- salutation
- birthdate
- department
- subDepartment
- projectId
- phone
- fax
- email
- website
- salesManager
- accountManager
- isLead
- contactPerson
- street
- zip
- city
- state
- addressType
op:
type: string
enum:
- equals
- notEquals
- lessThan
- greaterThan
- in
- notIn
value:
oneOf:
- type: string
- type: array
items:
type: string
- name: page
in: query
style: deepObject
description: Page-based pagination (Default). Use this or `cursor`, but not both. If both are provided, an exception will be thrown.
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: cursor
in: query
description: Cursor-based pagination. Use this or `page`, but not both. If both are provided, an exception will be thrown.
schema:
type: object
additionalProperties: false
properties:
nextCursor:
type: string
description: nextCursor should be base64 encoded string returned from api
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
responses:
'200':
description: List of contact persons
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- data
properties:
data:
type: array
items:
type: object
additionalProperties: false
required:
- id
- number
- deviatingCustomerNumber
- customerType
- name
- firstname
- lastname
- salutation
- department
- subDepartment
- projects
- accountManager
- salesManager
- contactDetails
- isLead
- contactPerson
- documentDelivery
description: Customer object
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
uuid:
description: Nullable UUID identifier of the resource.
type:
- string
- 'null'
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
number:
type: string
description: Customer number. if this is not provided default number ranges will be applied automatically
example: C700001
deviatingCustomerNumber:
type: string
description: Deviating Customer number.
example: C711223
customerType:
type:
- string
- 'null'
enum:
- company
- person
example: company
description: Type of customer
name:
type: string
example: Firstname Surname
description: Full name of the customer
firstname:
type: string
example: Firstname
description: First name of the customer
lastname:
type: string
example: Surname
description: Last name of the customer
title:
type:
- string
- 'null'
example: Prof. Dr.
description: Additional information used for salutations
salutation:
type:
- string
- 'null'
enum:
- company
- mr
- mrs
- other
example: mr
description: Salutation of the customer
birthdate:
type:
- string
- 'null'
format: date
description: Birthdate of customer
example: '2024-03-01'
department:
type:
- string
- 'null'
example: HR department
description: Department of customer if necessary and available
subDepartment:
type:
- string
- 'null'
example: Sub department
description: Sub-Department of customer if necessary and available
projects:
type: array
description: List of projects the customer should belong to
items:
type: object
additionalProperties: false
required:
- id
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
contactDetails:
type: object
additionalProperties: false
description: Contact information of a customer
properties:
phone:
type:
- string
- 'null'
description: Phone number of a customer
example: +49(30)12093756
fax:
type:
- string
- 'null'
description: Fax number of a customer
example: +49(30)12093756-1
email:
type:
- string
- 'null'
description: Email address of a customer
example: customer@domain.tpl
website:
type:
- string
- 'null'
description: URL of customers website
example: http://company.tpl/members/max.mustermann
additionalData:
type: array
description: List of additional not default contact data
items:
type:
- object
- 'null'
additionalProperties: false
required:
- label
- value
properties:
label:
type: string
description: Specific key for customer contact data
example: mobile2
value:
type:
- string
- 'null'
description: Value for specified customers contact data key
example: +1(800)555 12235
example:
phone: +49 123 4567890
fax: +49 123 4567890-1
email: name@provider.com
website: http://my.website.tld
additionalData:
- label: Skype
value: max.mustermann
accountManager:
type:
- object
- 'null'
additionalProperties: false
required:
- id
description: Account manager of this customer
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
example:
id: '12345'
salesManager:
type:
- object
- 'null'
additionalProperties: false
required:
- id
description: Sales manager of this customer
properties:
id:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
example:
id: '12345'
isLead:
type: boolean
description: Tells if customer is a lead
example: true
contactPerson:
type:
- string
- 'null'
example: Milo Thatch
description: Name of contact person
documentDelivery:
type: object
description: Additional E-Mail addresses used for deliver business letters
additionalProperties: false
required:
- offer
- salesOrder
- invoice
- creditNote
- deliveryNote
- purchaseOrder
- dunning
properties:
offer:
type: object
x-description-missing: true
additionalProperties: false
properties:
email:
type:
- string
- 'null'
description: E-mail address used for sending document
example: customer@domain.tpl
cc:
type:
- string
- 'null'
description: E-mail address used for sending copy of document
example: customers-cc@otherdomain.tpl
salesOrder:
type: object
x-description-missing: true
additionalProperties: false
properties:
email:
type:
- string
- 'null'
description: E-mail address used for sending document
example: customer@domain.tpl
cc:
type:
- string
- 'null'
description: E-mail address used for sending copy of document
example: customers-cc@otherdomain.tpl
invoice:
type: object
x-description-missing: true
additionalProperties: false
properties:
email:
type:
- string
- 'null'
description: E-mail address used for sending document
example: customer@domain.tpl
cc:
type:
- string
- 'null'
description: E-mail address used for sending copy of document
example: customers-cc@otherdomain.tpl
creditNote:
type: object
x-description-missing: true
additionalProperties: false
properties:
email:
type:
- string
- 'null'
description: E-mail address used for sending document
example: customer@domain.tpl
cc:
type:
- string
- 'null'
description: E-mail address used for sending copy of document
example: customers-cc@otherdomain.tpl
deliveryNote:
type: object
x-description-missing: true
additionalProperties: false
properties:
email:
type:
- string
- 'null'
description: E-mail address used for sending document
example: customer@domain.tpl
cc:
type:
- string
- 'null'
description: E-mail address used for sending copy of document
example: customers-cc@otherdomain.tpl
purchaseOrder:
type: object
x-description-missing: true
additionalProperties: false
properties:
email:
type:
- string
- 'null'
description: E-mail address used for sending document
example: customer@domain.tpl
cc:
type:
- string
- 'null'
description: E-mail address used for sending copy of document
example: customers-cc@otherdomain.tpl
dunning:
type: object
x-description-missing: true
additionalProperties: false
properties:
email:
type:
- string
- 'null'
description: E-mail address used for sending document
example: customer@domain.tpl
cc:
type:
- string
- 'null'
description: E-mail address used for sending copy of document
example: customers-cc@otherdomain.tpl
autoCreateDocuments:
type: string
enum:
- both
- delivery_note
- invoice
description: Create receipts in auto-shipping
example: both
invoiceAlwaysPaper:
type: boolean
description: Even with automatic dispatch, a paper invoice is always created
example: true
amountInvoicePrints:
type:
- integer
- 'null'
description: Number of printouts during shipping
example: 2
preferFax:
type: boolean
description: Prefer sending by FAX
example: true
example:
offer:
email: offer-send@domain.tpl
cc: offer-send-cc@otherdomain.tpl
salesOrder:
email: salesOrder-send@domain.tpl
cc: salesOrder-send-cc@otherdomain.tpl
invoice:
email: invoice-send@domain.tpl
cc: invoice-send-cc@otherdomain.tpl
creditNote:
email: creditNote-send@domain.tpl
cc: creditNote-send-cc@otherdomain.tpl
deliveryNote:
email: deliveryNote-send@domain.tpl
cc: deliveryNote-send-cc@otherdomain.tpl
purchaseOrder:
email: purchaseOrder-send@domain.tpl
cc: purchaseOrder-send-cc@otherdomain.tpl
dunning:
email: dunning-send@domain.tpl
cc: dunning-send-cc@otherdomain.tpl
example:
id: '17'
uuid: a00fd11e-3a67-433b-83c0-4e815fd4a0e1
number: '700001'
deviatingCustomerNumber: '711223'
customerType: person
name: Sample Company ltd.
firstname: Max
lastname: Mustermann
title: Prof. Dr.
salutation: mr
birthdate: '1970-01-01'
department: Sales
subDepartment: Online Sales
projects:
- id: '1337'
- id: '1336'
contactDetails:
phone: +49 123 4567890
fax: +49 123 4567890-1
email: name@provider.com
website: http://my.website.tld
additionalData:
- label: Skype
value: max.mustermann
accountManager:
id: '321'
salesManager:
id: '245'
isLead: true
contactPerson: Milo Thatch
documentDelivery:
offer:
email: offer-send@domain.tpl
cc: offer-send-cc@otherdomain.tpl
salesOrder:
email: salesOrder-send@domain.tpl
cc: salesOrder-send-cc@otherdomain.tpl
invoice:
email: invoice-send@domain.tpl
cc: invoice-send-cc@otherdomain.tpl
creditNote:
email: creditNote-send@domain.tpl
cc: creditNote-send-cc@otherdomain.tpl
deliveryNote:
email: deliveryNote-send@domain.tpl
cc: deliveryNote-send-cc@otherdomain.tpl
purchaseOrder:
email: purchaseOrder-send@domain.tpl
cc: purchaseOrder-send-cc@otherdomain.tpl
dunning:
email: dunning-send@domain.tpl
cc: dunning-send-cc@otherdomain.tpl
extra:
oneOf:
- 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
- type: object
required:
- totalCount
- cursor
additionalProperties: false
x-description-ignore: true
properties:
totalCount:
description: the total count of all items
type:
- integer
- 'null'
example: 1
cursor:
description: The pagination object containing the current page number and size
type: object
required:
- nextCursor
- size
additionalProperties: false
properties:
nextCursor:
description: Cursoer to use for next page request
type: string
example: NDI=
size:
description: The size of the pages
type: integer
example: 10
example:
nextCursor: MTA=
size: 10
example:
totalCount: 100
cursor:
nextCursor: MTA=
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
# --- truncated at 32 KB (520 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-customer-api-openapi.yml