OpenAPI Specification
openapi: 3.0.0
info:
title: Xentral Account Tax Type Mapping 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: Tax Type Mapping
description: Tax Type Mapping configurations
paths:
/api/v1/taxTypeMapping/extendedDetail:
get:
tags:
- Tax Type Mapping
operationId: taxTypeMapping.extendedDetail.list.v1
summary: 🔒 List Tax Type Mapping Entries with Extended Detail
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 list of tax type mapping entries with preloaded related objects.'
parameters:
- name: filter
in: query
style: deepObject
description: Filter parameters
schema:
type: array
items:
type: object
additionalProperties: false
properties:
key:
type: string
enum:
- id
- taxTypeId
- countryCode
- productId
- productCategoryId
- isActive
- createdAt
- updatedAt
example: id
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
- taxTypeId
- countryCode
- productId
- productCategoryId
- isActive
- 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: Tax type mapping entry with preloaded related objects
properties:
id:
description: Tax type mapping ID
type: string
example: '3'
taxTypeId:
description: Tax type ID
type: string
example: '2'
taxType:
type: object
additionalProperties: true
description: Tax type entry
properties:
id:
description: Tax type ID
type: string
example: '1'
name:
description: Tax type name
type: string
maxLength: 50
example: custom_tax_type
description:
description: Tax type description
type: string
maxLength: 255
nullable: true
example: Custom tax type for testing
isStandard:
description: Is standard tax type
type: boolean
example: false
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'
name: custom_tax_type
description: Custom tax type for testing
isStandard: false
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
countryCode:
description: Country code in ISO 3166-1 alpha-2 format
type: string
example: AT
productId:
description: Product ID
type: string
nullable: true
example: '1'
productName:
description: Product name
type: string
nullable: true
example: test
isActive:
description: Is active
type: boolean
example: true
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'
defaultTaxForCountry:
type: object
additionalProperties: true
description: Summarised tax entry as embedded reference
properties:
id:
description: Tax ID
type: string
example: '3'
name:
description: Tax name
type: string
example: AT-20
taxType:
type: object
additionalProperties: true
description: Tax type entry
properties:
id:
description: Tax type ID
type: string
example: '1'
name:
description: Tax type name
type: string
maxLength: 50
example: custom_tax_type
description:
description: Tax type description
type: string
maxLength: 255
nullable: true
example: Custom tax type for testing
isStandard:
description: Is standard tax type
type: boolean
example: false
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'
name: custom_tax_type
description: Custom tax type for testing
isStandard: false
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
taxRate:
description: Tax rate
type: number
format: float
example: 0.2
validFrom:
description: Valid from timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
example:
id: '3'
name: AT-20
taxType:
id: '1'
name: standard
description: Standard
isStandard: true
createdAt: '2025-11-26T08:08:53.640784Z'
updatedAt: '2025-11-26T08:08:53.640784Z'
taxRate: 0.2
validFrom: '2022-01-01T00:00:00Z'
targetTaxForCountry:
type: object
additionalProperties: true
description: Summarised tax entry as embedded reference
properties:
id:
description: Tax ID
type: string
example: '3'
name:
description: Tax name
type: string
example: AT-20
taxType:
type: object
additionalProperties: true
description: Tax type entry
properties:
id:
description: Tax type ID
type: string
example: '1'
name:
description: Tax type name
type: string
maxLength: 50
example: custom_tax_type
description:
description: Tax type description
type: string
maxLength: 255
nullable: true
example: Custom tax type for testing
isStandard:
description: Is standard tax type
type: boolean
example: false
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'
name: custom_tax_type
description: Custom tax type for testing
isStandard: false
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
taxRate:
description: Tax rate
type: number
format: float
example: 0.2
validFrom:
description: Valid from timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
example:
id: '3'
name: AT-20
taxType:
id: '1'
name: standard
description: Standard
isStandard: true
createdAt: '2025-11-26T08:08:53.640784Z'
updatedAt: '2025-11-26T08:08:53.640784Z'
taxRate: 0.2
validFrom: '2022-01-01T00:00:00Z'
example:
id: '3'
taxTypeId: '2'
taxType:
id: '2'
name: reduced
description: Reduced
isStandard: true
createdAt: '2025-11-26T08:08:53.640784Z'
updatedAt: '2025-11-26T08:08:53.640784Z'
countryCode: AT
productId: '1'
productName: test
isActive: true
createdAt: '2026-03-09T15:43:55.092219Z'
updatedAt: '2026-03-09T15:43:55.092219Z'
defaultTaxForCountry:
id: '3'
name: AT-20
taxType:
id: '1'
name: standard
description: Standard
isStandard: true
createdAt: '2025-11-26T08:08:53.640784Z'
updatedAt: '2025-11-26T08:08:53.640784Z'
taxRate: 0.2
validFrom: '2025-12-31T23:06:32Z'
targetTaxForCountry:
id: '4'
name: AT-13
taxType:
id: '2'
name: reduced
description: Reduced
isStandard: true
createdAt: '2025-11-26T08:08:53.640784Z'
updatedAt: '2025-11-26T08:08:53.640784Z'
taxRate: 0.13
validFrom: '0000-12-31T23:06:32Z'
'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
'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/taxTypeMapping/{id}/extendedDetail:
get:
tags:
- Tax Type Mapping
operationId: taxTypeMapping.extendedDetail.view.v1
summary: 🔒 Get Tax Type Mapping Entry with Extended Detail 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 tax type mapping entry by its ID with preloaded related objects.'
parameters:
- name: id
in: path
required: true
description: The ID of the tax type mapping 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: Tax type mapping entry with preloaded related objects
properties:
id:
description: Tax type mapping ID
type: string
example: '3'
taxTypeId:
description: Tax type ID
type: string
example: '2'
taxType:
type: object
additionalProperties: true
description: Tax type entry
properties:
id:
description: Tax type ID
type: string
example: '1'
name:
description: Tax type name
type: string
maxLength: 50
example: custom_tax_type
description:
description: Tax type description
type: string
maxLength: 255
nullable: true
example: Custom tax type for testing
isStandard:
description: Is standard tax type
type: boolean
example: false
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'
name: custom_tax_type
description: Custom tax type for testing
isStandard: false
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
countryCode:
description: Country code in ISO 3166-1 alpha-2 format
type: string
example: AT
productId:
description: Product ID
type: string
nullable: true
example: '1'
productName:
description: Product name
type: string
nullable: true
example: test
isActive:
description: Is active
type: boolean
example: true
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'
defaultTaxForCountry:
type: object
additionalProperties: true
description: Summarised tax entry as embedded reference
properties:
id:
description: Tax ID
type: string
example: '3'
name:
description: Tax name
type: string
example: AT-20
taxType:
type: object
additionalProperties: true
description: Tax type entry
properties:
id:
description: Tax type ID
type: string
example: '1'
name:
description: Tax type name
type: string
maxLength: 50
example: custom_tax_type
description:
description: Tax type description
type: string
maxLength: 255
nullable: true
example: Custom tax type for testing
isStandard:
description: Is standard tax type
type: boolean
example: false
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'
name: custom_tax_type
description: Custom tax type for testing
isStandard: false
createdAt: '2022-01-01T00:00:00Z'
updatedAt: '2022-01-01T00:00:00Z'
taxRate:
description: Tax rate
type: number
format: float
example: 0.2
validFrom:
description: Valid from timestamp
type: string
format: date-time
example: '2022-01-01T00:00:00Z'
example:
id: '3'
name: AT-20
taxType:
id: '1'
name: standard
description: Standard
isStandard: true
createdAt: '2025-11-26T08:08:53.640784Z'
updatedAt: '2025-11-26T08:08:53.640784Z'
taxRate: 0.2
validFrom: '2022-01-01T00:00:00Z'
targetTaxForCountry:
type: object
additionalProperties: true
description: Summarised tax entry as embedded reference
properties:
id:
description: Tax ID
type: string
example: '3'
name:
description: Tax name
type: string
example: AT-20
taxType:
type: object
additionalProperties: true
description: Tax type entry
properties:
id:
description: Tax type ID
type: string
example: '1'
name:
description: Tax type name
type: string
maxLength: 50
example: custom_tax_type
description:
description: Tax type description
type: string
maxLength: 255
nullable: true
example: Custom tax type for testing
isStandard:
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-tax-type-mapping-api-openapi.yml