Manage your organization's tax profile and access EU VAT rates. The tax profile stores your legal entity details (VAT ID, tax regime, legal address) used on invoices and for reverse-charge determination.
EU VAT rates are maintained automatically and include standard, reduced, super-reduced, and parking rates for all EU member states.
List EU VAT rates
Returns the VAT rates of the EU member states in force today: standard, reduced, super-reduced and parking. From 2026-11-30 this list answers {data: [...], pagination}, like every other list.
Required scope: tax.profile.read (Read tax profile).
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List EU VAT rates › Responses
OK
Get the organization's payment details
The bank account invoices are paid into (EN 16931 BG-16/BG-17) and the seller contact a buyer asks about an invoice (BG-6), as the organization sets them. include=layered adds what each field resolves to and where the value comes from; it is sent without being asked until 2026-11-30.
Required scope: tax.profile.read (Read tax profile).
query Parameters
includeExtra data to add to the response: layered. Send a comma-separated list or repeat the parameter. An unknown name is refused with 400. layered is sent without being asked until 2026-11-30; after that date it is sent only when named here.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Get the organization's payment details › Responses
OK
Update the organization's payment details
Deprecated: use PATCH /organization/payment-details instead. Removed on 2026-11-30.
Partial update: an absent field is left alone, null clears it, an empty string is refused. The IBAN is stored without spaces. Answers the payment details; include=layered adds what each field resolves to (sent without being asked until 2026-11-30).
Required scope: tax.profile.write (Write tax profile).
query Parameters
includeExtra data to add to the response: layered. Send a comma-separated list or repeat the parameter. An unknown name is refused with 400. layered is sent without being asked until 2026-11-30; after that date it is sent only when named here.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Update the organization's payment details › Request Body
bank_account_nameAccount holder name; null clears it.
bank_bicBIC / SWIFT code; null clears it.
bank_ibanIBAN, spaces allowed; null clears it.
invoice_contact_emailEN 16931 BT-43; null clears it.
invoice_contact_nameEN 16931 BT-41; null clears it.
invoice_contact_phoneEN 16931 BT-42; null clears it.
Update the organization's payment details › Responses
OK
Update the organization's payment details
Partial update: an absent field is left alone, null clears it, an empty string is refused. The IBAN is stored without spaces. Answers the payment details; include=layered adds what each field resolves to (sent without being asked until 2026-11-30).
Required scope: tax.profile.write (Write tax profile).
query Parameters
includeExtra data to add to the response: layered. Send a comma-separated list or repeat the parameter. An unknown name is refused with 400. layered is sent without being asked until 2026-11-30; after that date it is sent only when named here.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Update the organization's payment details › Request Body
bank_account_nameAccount holder name; null clears it.
bank_bicBIC / SWIFT code; null clears it.
bank_ibanIBAN, spaces allowed; null clears it.
invoice_contact_emailEN 16931 BT-43; null clears it.
invoice_contact_nameEN 16931 BT-41; null clears it.
invoice_contact_phoneEN 16931 BT-42; null clears it.
Update the organization's payment details › Responses
OK
Get organization tax profile
Returns what the organization tells a tax authority about itself: legal name, registered address, VAT ID, tax number, tax regime and the declared small-business scheme. include=registrations adds the registrations it holds (the same rows GET /organization/tax-profile/registrations pages) and the one derived from the VAT ID; include=small_business adds the schemes its country offers and where it stands against the declared scheme's thresholds today. Both are sent without being asked until 2026-11-30. include=identity adds organization, the organization with its names and identifiers. The bank account, seller contact and register fields are deprecated: read GET /organization/payment-details and GET /organization/register-facts. legal_name, vat_id, tax_number and peppol_id are deprecated: the Organization owns them (GET /organization, or include=identity). To change the profile, send PATCH /organization/company-profile.
Required scope: tax.profile.read (Read tax profile).
query Parameters
includeExtra data to add to the response: registrations, small_business, identity. Send a comma-separated list or repeat the parameter. An unknown name is refused with 400. registrations is sent without being asked until 2026-11-30; after that date it is sent only when named here. small_business is sent without being asked until 2026-11-30; after that date it is sent only when named here.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Get organization tax profile › Responses
OK
List declarable tax-registration schemes
The scheme picker's options, optionally filtered by country. Each option says what the registration covers and what it does not: VOEC, for example, is for consumers only.
Required scope: tax.profile.read (Read tax profile).
query Parameters
countryISO 3166-1 alpha-2. Omit for every country the registry knows a register for.
limitPage size (default 50, max 200).
cursorOpaque continuation token from the previous response's pagination.cursor. Omit for the first page. Cursors are stateless and do not expire, but are only valid for the list and filters that produced them.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List declarable tax-registration schemes › Responses
OK
List the organization's tax registrations
The registrations the organization holds, newest window first, ended ones included: a registration that was in force when an invoice was issued still explains that invoice.
Required scope: tax.profile.read (Read tax profile).
query Parameters
limitPage size (default 50, max 200).
cursorOpaque continuation token from the previous response's pagination.cursor. Omit for the first page. Cursors are stateless and do not expire, but are only valid for the list and filters that produced them.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List the organization's tax registrations › Responses
OK
Declare or amend a tax registration
Deprecated: use POST /organization/tax-profile/registrations or PATCH /organization/tax-profile/registrations/{registration_id} instead. Removed on 2026-11-30.
Declares one of the organization's own registrations, or amends the one that starts on the same date. A new start date creates a successor rather than replacing the earlier row. Answers the tax profile.
Required scope: tax.profile.write (Write tax profile).
query Parameters
includeExtra data to add to the response: registrations, small_business, identity. Send a comma-separated list or repeat the parameter. An unknown name is refused with 400. registrations is sent without being asked until 2026-11-30; after that date it is sent only when named here. small_business is sent without being asked until 2026-11-30; after that date it is sent only when named here.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Declare or amend a tax registration › Request Body
countryISO 3166-1 alpha-2 of the state the registration is held in, which is not always the organization's own country.
identifierThe number as issued, e.g. GB999999973, CHE-123.456.789 MWST.
schemeScheme identifier out of the closed set the jurisdiction registry owns.
evidence_refWhat proves it: a VIES check id, an HMRC consultation number, an uploaded certificate's document id, or an operator's note.
valid_fromYYYY-MM-DD. Defaults to today. It is part of the row's identity: a number reissued after a deregistration is a new registration with a new start date, and the old row stays so an invoice issued under it can still say so.
valid_toYYYY-MM-DD, or null for an open-ended registration.
Declare or amend a tax registration › Responses
OK
Declare a tax registration
Declares one registration of the organization and answers it. The scheme, the country and valid_from identify it: a registration that already starts on that day for the same scheme and country answers 409; change it with PATCH. A number reissued after a deregistration is a new registration with a new start date.
Required scope: tax.profile.write (Write tax profile).
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Declare a tax registration › Request Body
countryISO 3166-1 alpha-2 of the state the registration is held in, which is not always the organization's own country.
identifierThe number as issued, e.g. GB999999973, CHE-123.456.789 MWST.
schemeScheme identifier out of the closed set the jurisdiction registry owns.
evidence_refWhat proves it: a VIES check id, an HMRC consultation number, an uploaded certificate's document id, or a note.
valid_fromFirst day the registration applies; defaults to today. With the scheme and the country it identifies the registration: a number reissued after a deregistration is a new registration with a new start date.
valid_toLast day it applies; omit it for an open-ended registration.
Declare a tax registration › Responses
Created
Record a deregistration
Deprecated: use PATCH /organization/tax-profile/registrations/{registration_id} instead. Removed on 2026-11-30.
Closes the open window of the registration with this scheme and country. It is never deleted: a registration that was in force when an invoice was issued is a fact about that invoice, and the resolver reads the window on the document's own tax point. Answers the tax profile.
Required scope: tax.profile.write (Write tax profile).
query Parameters
includeExtra data to add to the response: registrations, small_business, identity. Send a comma-separated list or repeat the parameter. An unknown name is refused with 400. registrations is sent without being asked until 2026-11-30; after that date it is sent only when named here. small_business is sent without being asked until 2026-11-30; after that date it is sent only when named here.
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Record a deregistration › Request Body
countryThe state the registration is held in.
schemeThe scheme of the registration to end.
valid_toYYYY-MM-DD, the last day the registration was in force. Defaults to today.
Record a deregistration › Responses
OK
Get a tax registration
One registration of the organization. An unknown id, or one of another organization, answers 404.
Required scope: tax.profile.read (Read tax profile).
path Parameters
registration_idThe registration's id.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Get a tax registration › Responses
OK
Update a tax registration
Changes the number, the last day or the evidence of one registration: a field left out stays as it is. Setting valid_to records a deregistration; null makes the registration open-ended again. A registration is never deleted: the resolver reads its window on each document's own tax point.
Required scope: tax.profile.write (Write tax profile).
path Parameters
registration_idThe registration's id.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Update a tax registration › Request Body
evidence_refWhat proves it; null clears it.
identifierThe number as issued.
valid_toLast day the registration applies; setting it ends the registration, null makes it open-ended again. It cannot be before valid_from.
Update a tax registration › Responses
OK
Export tax data
Exports tax data for a billing period as CSV or JSON. Includes invoice line items with tax breakdowns.
Required scope: tax.profile.read (Read tax profile).
query Parameters
period.gteFirst day of the period, included (YYYY-MM-DD).
period.lteLast day of the period, included (YYYY-MM-DD).
fromDeprecated: use period.gte instead. Removed on 2026-11-30.
toDeprecated: use period.lte instead. Removed on 2026-11-30.
formatOutput format: csv or json (default csv)
jurisdictionFilter by jurisdiction country code
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Export tax data › Responses
Tax export file (CSV or JSON)