Documentation
Documentation
https://developer.xentral.com/reference/intro
Documentation
https://developer.xentral.com/reference/v3-filterung-ordering-pagination
openapi: 3.0.0
info:
title: Xentral Account 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: Account
description: Account configurations
paths:
/api/v1/account:
get:
tags:
- Account
operationId: account.list.v1
summary: 🔒 List Account Entries
description: 'This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.
List account entries'
parameters:
- name: filter
in: query
style: deepObject
description: Filter parameters
schema:
type: array
items:
type: object
additionalProperties: false
properties:
key:
type: string
enum:
- id
- accountNumber
- accountType
- name
- description
- isStandard
- createdAt
- updatedAt
example: 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
- accountNumber
- accountType
- name
- description
- isStandard
- createdAt
- updatedAt
dir:
type: string
enum:
- asc
- desc
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
data:
type: array
items:
type: object
additionalProperties: true
description: Account entry
properties:
id:
description: Account ID
type: string
example: '1'
accountNumber:
description: Account number
type: string
example: '1000'
accountType:
description: Account type
type: string
maxLength: 50
example: asset
name:
description: Account name
type: string
maxLength: 100
example: Cash Account
description:
description: Account description
type: string
maxLength: 255
example: Main cash account for daily operations
isStandard:
description: Is standard account
type: boolean
example: false
deletedAt:
description: Deleted at timestamp
type: string
format: date-time
nullable: true
example: null
createdAt:
description: Created at timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
updatedAt:
description: Updated at timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
example:
id: '1'
accountNumber: '1000'
accountType: asset
name: Cash Account
description: Main cash account for daily operations
isStandard: false
deletedAt: null
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
'400':
description: XGL Problem
content:
application/problem+json:
schema:
type: object
description: XGL Problem specification
properties:
type:
type: string
description: URL of the problem
example: https://api.xentral.biz/problems/xgl-error
title:
type: string
description: title of the error. It should be always XGL Error
example: XGL Error
errorCode:
type: integer
description: Error code regarding the request failure
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
example: 1
message:
type: string
description: General description about the failed request
enum:
- Error listing tax obligations
- Error creating tax obligation
- Error listing taxes
- Error getting account information
- Error getting account mapping information
- Error listing account mappings
- Error creating account mapping
- Error updating account mapping
- Error deleting account mapping
- Error creating tax
- Error updating tax
- Error getting general ledger
example: Error getting account information
details:
type: object
description: Object containing the fields and their specifications
additionalProperties:
type: string
example:
field: Additional error detail
'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: XGL Problem
content:
application/problem+json:
schema:
type: object
description: XGL Problem specification
properties:
type:
type: string
description: URL of the problem
example: https://api.xentral.biz/problems/xgl-error
title:
type: string
description: title of the error. It should be always XGL Error
example: XGL Error
errorCode:
type: integer
description: Error code regarding the request failure
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
example: 1
message:
type: string
description: General description about the failed request
enum:
- Error listing tax obligations
- Error creating tax obligation
- Error listing taxes
- Error getting account information
- Error getting account mapping information
- Error listing account mappings
- Error creating account mapping
- Error updating account mapping
- Error deleting account mapping
- Error creating tax
- Error updating tax
- Error getting general ledger
example: Error getting account information
details:
type: object
description: Object containing the fields and their specifications
additionalProperties:
type: string
example:
field: Additional error detail
'429':
description: Too many API calls made.
'500':
description: XGL Problem
content:
application/problem+json:
schema:
type: object
description: XGL Problem specification
properties:
type:
type: string
description: URL of the problem
example: https://api.xentral.biz/problems/xgl-error
title:
type: string
description: title of the error. It should be always XGL Error
example: XGL Error
errorCode:
type: integer
description: Error code regarding the request failure
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
example: 1
message:
type: string
description: General description about the failed request
enum:
- Error listing tax obligations
- Error creating tax obligation
- Error listing taxes
- Error getting account information
- Error getting account mapping information
- Error listing account mappings
- Error creating account mapping
- Error updating account mapping
- Error deleting account mapping
- Error creating tax
- Error updating tax
- Error getting general ledger
example: Error getting account information
details:
type: object
description: Object containing the fields and their specifications
additionalProperties:
type: string
example:
field: Additional error detail
post:
tags:
- Account
operationId: account.create.v1
summary: 🔒 Create account
description: 'This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.
Creates a single account.'
requestBody:
description: Create an account object
content:
application/json:
schema:
type: object
additionalProperties: true
required:
- accountNumber
- accountType
- name
- description
properties:
accountNumber:
type: string
description: Account number
accountType:
type: string
maxLength: 50
description: Account type
name:
type: string
maxLength: 100
description: Account name
description:
type: string
maxLength: 255
description: Account description
isStandard:
type: boolean
default: false
description: Is standard account
examples:
account:
value:
accountNumber: '1000'
accountType: asset
name: Cash Account
description: Main cash account for daily operations
isStandard: false
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
additionalProperties: true
description: Account entry
properties:
id:
description: Account ID
type: string
example: '1'
accountNumber:
description: Account number
type: string
example: '1000'
accountType:
description: Account type
type: string
maxLength: 50
example: asset
name:
description: Account name
type: string
maxLength: 100
example: Cash Account
description:
description: Account description
type: string
maxLength: 255
example: Main cash account for daily operations
isStandard:
description: Is standard account
type: boolean
example: false
deletedAt:
description: Deleted at timestamp
type: string
format: date-time
nullable: true
example: null
createdAt:
description: Created at timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
updatedAt:
description: Updated at timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
example:
id: '1'
accountNumber: '1000'
accountType: asset
name: Cash Account
description: Main cash account for daily operations
isStandard: false
deletedAt: null
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
'400':
description: XGL Problem
content:
application/problem+json:
schema:
type: object
description: XGL Problem specification
properties:
type:
type: string
description: URL of the problem
example: https://api.xentral.biz/problems/xgl-error
title:
type: string
description: title of the error. It should be always XGL Error
example: XGL Error
errorCode:
type: integer
description: Error code regarding the request failure
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
example: 1
message:
type: string
description: General description about the failed request
enum:
- Error listing tax obligations
- Error creating tax obligation
- Error listing taxes
- Error getting account information
- Error getting account mapping information
- Error listing account mappings
- Error creating account mapping
- Error updating account mapping
- Error deleting account mapping
- Error creating tax
- Error updating tax
- Error getting general ledger
example: Error getting account information
details:
type: object
description: Object containing the fields and their specifications
additionalProperties:
type: string
example:
field: Additional error detail
'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
'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
- 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
'415':
description: Resource representation send in the request is not supported.
'429':
description: Too many API calls made.
'500':
description: XGL Problem
content:
application/problem+json:
schema:
type: object
description: XGL Problem specification
properties:
type:
type: string
description: URL of the problem
example: https://api.xentral.biz/problems/xgl-error
title:
type: string
description: title of the error. It should be always XGL Error
example: XGL Error
errorCode:
type: integer
description: Error code regarding the request failure
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
example: 1
message:
type: string
description: General description about the failed request
enum:
- Error listing tax obligations
- Error creating tax obligation
- Error listing taxes
- Error getting account information
- Error getting account mapping information
- Error listing account mappings
- Error creating account mapping
- Error updating account mapping
- Error deleting account mapping
- Error creating tax
- Error updating tax
- Error getting general ledger
example: Error getting account information
details:
type: object
description: Object containing the fields and their specifications
additionalProperties:
type: string
example:
field: Additional error detail
/api/v1/account/{id}:
get:
tags:
- Account
operationId: account.get.v1
summary: 🔒 Get Account Entry by ID
description: 'This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.
Retrieves a specific account entry by its ID.'
parameters:
- name: id
in: path
required: true
description: The ID of the account entry to retrieve.
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
additionalProperties: true
required:
- data
properties:
data:
type: object
additionalProperties: true
description: Account entry
properties:
id:
description: Account ID
type: string
example: '1'
accountNumber:
description: Account number
type: string
example: '1000'
accountType:
description: Account type
type: string
maxLength: 50
example: asset
name:
description: Account name
type: string
maxLength: 100
example: Cash Account
description:
description: Account description
type: string
maxLength: 255
example: Main cash account for daily operations
isStandard:
description: Is standard account
type: boolean
example: false
deletedAt:
description: Deleted at timestamp
type: string
format: date-time
nullable: true
example: null
createdAt:
description: Created at timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
updatedAt:
description: Updated at timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
example:
id: '1'
accountNumber: '1000'
accountType: asset
name: Cash Account
description: Main cash account for daily operations
isStandard: false
deletedAt: null
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
'400':
description: XGL Problem
content:
application/problem+json:
schema:
type: object
description: XGL Problem specification
properties:
type:
type: string
description: URL of the problem
example: https://api.xentral.biz/problems/xgl-error
title:
type: string
# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-account-api-openapi.yml