Taxes

Retrieving all tax configurations

get

Retrieves all tax configurations assigned to the tenant. You can filter the results with query parameters.


Required scopes

  • tax.tax_read

Authorizations
Path parameters
tenantstring · min: 3 · max: 16Required

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

Pattern: ^[a-z][a-z0-9]+$
Query parameters
pageNumberinteger · min: 1Optional

Page number to be retrieved. The number of the first page is 1.

Note: If the pageNumber parameter is passed, size of the pages must be specified in the pageSize parameter.

Default: 1
pageSizeinteger · min: 1Optional

Number of items to be retrieved per page.

Default: 60
sortstringOptional

List of properties used to sort the results, separated by colons. The order of properties indicates their priority in sorting.

Possible values:

  • {fieldName}
  • {fieldName:asc
  • {fieldName}:desc

Note: If you want to sort the results by localized properties, the possible values are:

  • {fieldName}.{language}
  • {fieldName}.{language}:asc
  • {fieldName}.{language}:desc

If the sorting direction is not specified, the fields are sorted in ascending order.

Possible {fieldName} values are:

  • name
  • description
  • countryCode
  • taxClassCode
  • rate
Example: name,taxClassCode:desc
namestringOptional

Tax class names. When specified, only tax configurations containing the specified tax class names will be returned.

Important: See how the Accept-Language header influences this parameter:

  • If The Accept-Language header is set to *, you need to specify a language in this parameter.

    For example, if the Accept-Language header is set to * and you want to find English names containing the word "Reduced", this parameter should be set to "name.en=Reduced"

  • If the Accept-Language header is set to a particular language or not specified, you do not need to specify a language in this parameter.

    For example, if the Accept-Language header is set to en and you want to find names containing the word "Reduced", this parameter should be set to "name=Reduced"

Note: When filtering the results with this field, the contains operator is used. The operator is case-sensitive.

ratestringOptional

Tax class rates, expressed as numbers. When specified, only tax configurations containing the specified tax class rates will be returned.

Note: When filtering the results with this field, the equals operator is used.

countryCodestringOptional

Three-letter country codes, as defined in the Country Service. When specified, only tax configurations defined for the specified countries will be returned.

Note: When filtering the results with this field, the contains operator is used. The operator is case-sensitive.

taxClassCodestringOptional

Tax class codes. When specified, only tax configurations containing the specified tax class codes will be returned.

Note: When filtering the results with this field, the contains operator is used. The operator is case-sensitive.

descriptionstringOptional

Tax class descriptions. When specified, only tax configurations containing the specified tax class descriptions will be returned.

Important: See how the Accept-Language header influences this parameter:

  • If The Accept-Language header is set to *, you need to specify a language in this parameter.

    For example, if the Accept-Language header is set to * and you want to find English descriptions containing the word "Fruit", this parameter should be set to "description.en=Fruit"

  • If the Accept-Language header is set to a particular language or not specified, you do not need to specify a language in this parameter.

    For example, if the Accept-Language header is set to en and you want to find descriptions containing the word "Fruit", this parameter should be set to "description=Fruit"

Note: When filtering the results with this field, the contains operator is used. The operator is case-sensitive.

Header parameters
Accept-LanguagestringOptional

List of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields.

  • If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
  • If the header is set to *, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
Example: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7
X-Total-CountbooleanOptional

Flag indicating whether the total number of retrieved items should be returned.

Default: false
Responses
200
The request was successful. A list of tax configurations is returned.
application/json
get
GET /tax/{tenant}/taxes HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "location": {
      "countryCode": "DE"
    },
    "taxClasses": [
      {
        "code": "STANDARD",
        "name": {
          "en": "Standard"
        },
        "order": 0,
        "rate": 19,
        "isDefault": true
      },
      {
        "code": "REDUCED",
        "name": {
          "en": "Reduced"
        },
        "order": 1,
        "rate": 7
      },
      {
        "code": "ZERO",
        "name": {
          "en": "Zero"
        },
        "order": 2,
        "rate": 0
      }
    ],
    "metadata": {
      "version": 1,
      "createdAt": "2022-03-31T09:52:15.423Z",
      "modifiedAt": "2022-03-31T09:53:25.464Z"
    }
  },
  {
    "location": {
      "countryCode": "PL"
    },
    "taxClasses": [
      {
        "code": "STANDARD",
        "name": {
          "en": "Standard"
        },
        "order": 0,
        "rate": 23
      },
      {
        "code": "REDUCED_8",
        "name": {
          "en": "Reduced"
        },
        "order": 1,
        "rate": 8,
        "isDefault": true
      },
      {
        "code": "REDUCED_5",
        "name": {
          "en": "Reduced (Food)"
        },
        "order": 2,
        "rate": 5
      },
      {
        "code": "ZERO",
        "name": {
          "en": "Zero"
        },
        "order": 3,
        "rate": 0
      }
    ],
    "metadata": {
      "version": 2,
      "createdAt": "2022-03-31T09:52:15.423Z",
      "modifiedAt": "2022-03-31T09:53:25.464Z"
    }
  }
]

Creating a new tax configuration

post

Creates a new tax configuration.


Required scopes

  • tax.tax_manage

Authorizations
Path parameters
tenantstring · min: 3 · max: 16Required

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

Pattern: ^[a-z][a-z0-9]+$
Header parameters
Content-LanguagestringRequired

Language in which localized fields in the request body are provided.

  • If the Content-Language header is set to *, the localized fields should be provided as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the Content-Language header is set to a specific language, the localized fields should be provided as strings.
  • If the Content-Language header is empty, the endpoint will asume that the localized fields are provided in the default language defined in the Configuration Service.

Note: You can provide the localized fields only in languages defined in the Configuration Service. In case the fields are provided in languages that are not defined in the Configuration Service, the request will be rejected.

Body

Tax configuration for a specified location. It consists of a country code and a list of tax classes applicable in that country.

Responses
201
The request was successful. The tax configuration has been created.
application/json
post
POST /tax/{tenant}/taxes HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Language: text
Content-Type: application/json
Accept: */*
Content-Length: 248

{
  "location": {
    "countryCode": "DE"
  },
  "taxClasses": [
    {
      "code": "STANDARD",
      "name": {
        "en": "Standard"
      },
      "order": 0,
      "rate": 19,
      "isDefault": true
    },
    {
      "code": "REDUCED",
      "name": {
        "en": "Reduced"
      },
      "order": 1,
      "rate": 7
    },
    {
      "code": "ZERO",
      "name": {
        "en": "Zero"
      },
      "order": 2,
      "rate": 0
    }
  ]
}
{
  "locationCode": "text"
}

Retrieving a tax configuration

get

Retrieves a tax configuration for a specified location.


Required scopes

  • tax.tax_read

Authorizations
Path parameters
tenantstring · min: 3 · max: 16Required

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

Pattern: ^[a-z][a-z0-9]+$
locationCodestringRequired

Location's country code, defined when the tax configuration is created.

Header parameters
Accept-LanguagestringOptional

List of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields.

  • If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
  • If the header is set to *, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
Example: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7
Responses
200
The request was successful. The tax configuration is returned.
application/json
get
GET /tax/{tenant}/taxes/{locationCode} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "location": {
    "countryCode": "DE"
  },
  "taxClasses": [
    {
      "code": "STANDARD",
      "name": {
        "en": "Standard"
      },
      "order": 0,
      "rate": 19,
      "isDefault": true
    },
    {
      "code": "REDUCED",
      "name": {
        "en": "Reduced"
      },
      "order": 1,
      "rate": 7
    },
    {
      "code": "ZERO",
      "name": {
        "en": "Zero"
      },
      "order": 2,
      "rate": 0
    }
  ],
  "metadata": {
    "version": 2,
    "createdAt": "2022-03-31T09:52:15.423Z",
    "modifiedAt": "2022-03-31T09:53:25.464Z"
  }
}

Updating a tax configuration

put

Updates a tax configuration based on the specified location code.

Note: The tax configuration's identifier - the country code - is immutable and cannot be changed using this endpoint.


Required scopes

  • tax.tax_manage

Authorizations
Path parameters
tenantstring · min: 3 · max: 16Required

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

Pattern: ^[a-z][a-z0-9]+$
locationCodestringRequired

Location's country code, defined when the tax configuration is created.

Header parameters
Content-LanguagestringRequired

Language in which localized fields in the request body are provided.

  • If the Content-Language header is set to *, the localized fields should be provided as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the Content-Language header is set to a specific language, the localized fields should be provided as strings.
  • If the Content-Language header is empty, the endpoint will asume that the localized fields are provided in the default language defined in the Configuration Service.

Note: You can provide the localized fields only in languages defined in the Configuration Service. In case the fields are provided in languages that are not defined in the Configuration Service, the request will be rejected.

Body
all ofOptional
Responses
204
The request was successful. The tax configuration has been updated.
put
PUT /tax/{tenant}/taxes/{locationCode} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Language: text
Content-Type: application/json
Accept: */*
Content-Length: 273

{
  "location": {
    "countryCode": "DE"
  },
  "taxClasses": [
    {
      "code": "STANDARD",
      "name": {
        "en": "Standard"
      },
      "order": 0,
      "rate": 19,
      "isDefault": true
    },
    {
      "code": "REDUCED",
      "name": {
        "en": "Reduced"
      },
      "order": 1,
      "rate": 7
    },
    {
      "code": "ZERO",
      "name": {
        "en": "Zero"
      },
      "order": 2,
      "rate": 0
    }
  ],
  "metadata": {
    "version": 1
  }
}

No content

Deleting a tax configuration

delete

Deletes a tax configuration based on the specified location code.


Required scopes

  • tax.tax_manage

Authorizations
Path parameters
tenantstring · min: 3 · max: 16Required

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

Pattern: ^[a-z][a-z0-9]+$
locationCodestringRequired

Location's country code, defined when the tax configuration is created.

Responses
204
The request was successful. The tax configuration has been deleted.
delete
DELETE /tax/{tenant}/taxes/{locationCode} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*

No content

Was this helpful?