{"openapi":"3.1.0","info":{"title":"AXITAM Public API","description":"Reference data (ISO, CLDR), Belgian enterprises, annual accounts and addresses, Peppol participants - built on community-maintained and official sources. See the data-sources API for each source's version and license. Beta.","version":"0.16.0"},"servers":[{"url":"/","description":"This server"}],"tags":[{"name":"EU VAT rates","description":"The VAT rates of the 27 EU member states from the Taxes in Europe Database (TEDB) of the European Commission, as each Ministry of Finance provides them, mirrored daily: standard, reduced, super-reduced and parking rates, exemptions, with the TEDB category, the CN and CPA codes and the member state's comment of each rate. TEDB publishes situations (the full set of a country's rates) on 1 January, 1 July and at each change, since 1 January 2016. Served as published: nothing is computed or derived. According to the Commission, CN/CPA codes are incomplete for some member states (AT, BE, CZ, DE, HR, IT, MT, NL, PL, SE, SI). Source: European Commission, TEDB. The Commission and the member states accept no responsibility for the topicality, correctness or completeness of this information."}],"paths":{"/api/v1/vat-rates":{"get":{"tags":["EU VAT rates"],"summary":"VAT rates in force on a date","description":"For each member state asked, the TEDB situation in force on the date (the latest situation on or before it; today in Brussels without date) and its rates, optionally filtered. A CN or CPA code matches a rate published for that code or for one of its prefixes (chapter, heading), spaces ignored.","operationId":"findRates","parameters":[{"name":"country","in":"query","description":"TEDB code of a member state, any case: ISO 3166-1 alpha-2 except EL for Greece (GR is refused); repeat it or separate by commas for several","required":true,"schema":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"maxItems":27,"minItems":1},"example":"BE"},{"name":"date","in":"query","description":"Date the rates must apply on (ISO 8601); today in Brussels when absent","required":false,"schema":{"type":"string","format":"date"},"example":"2026-09-28"},{"name":"type","in":"query","description":"STANDARD or REDUCED rates only","required":false,"schema":{"type":"string","enum":["STANDARD","REDUCED"]}},{"name":"category","in":"query","description":"TEDB category identifier (see /categories)","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9_]{1,50}$"},"example":"FOODSTUFFS"},{"name":"cnCode","in":"query","description":"CN code of goods (spaces allowed)","required":false,"schema":{"type":"string","pattern":"^[0-9A-Za-z .]{1,20}$"},"example":1001},{"name":"cpaCode","in":"query","description":"CPA code of services (dots allowed)","required":false,"schema":{"type":"string","pattern":"^[0-9A-Za-z .]{1,20}$"},"example":56.1}],"responses":{"200":{"description":"One entry per member state, in the order asked","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CountryVatRatesResponse"}}}}},"400":{"description":"A country TEDB does not publish (code VAT_COUNTRY_NOT_SUPPORTED), or a malformed parameter (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"A date before the member state's first TEDB situation, 1 January 2016 (code VAT_RATES_NOT_PUBLISHED)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/vat-rates/situations":{"get":{"tags":["EU VAT rates"],"summary":"TEDB situations of a member state","description":"The dates of the situations stored for a member state (from 1 January 2016), newest first.","operationId":"findSituations","parameters":[{"name":"country","in":"query","description":"TEDB code of a member state, any case: ISO 3166-1 alpha-2 except EL for Greece (GR is refused)","required":true,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"example":"BE"}],"responses":{"200":{"description":"Its situation dates (empty before the first synchronization)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/VatSituationsResponse"}}}},"400":{"description":"A country TEDB does not publish (code VAT_COUNTRY_NOT_SUPPORTED), or a malformed code (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/vat-rates/categories":{"get":{"tags":["EU VAT rates"],"summary":"TEDB categories","description":"The TEDB categories of goods and services found in the stored rates, alphabetically.","operationId":"findCategories","responses":{"200":{"description":"Every category (empty before the first synchronization)","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VatCategoryResponse"}}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}}},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"correlationId":{"type":"string"}}},"CountryVatRatesResponse":{"type":"object","description":"The VAT rates of one member state in force on the date asked","properties":{"country":{"type":"string","description":"TEDB code of the member state (EL for Greece)","example":"BE"},"requestedDate":{"type":"string","format":"date","description":"The date asked (today in Brussels when none)","example":"2026-09-28"},"situationDate":{"type":"string","format":"date","description":"Date of the TEDB situation in force then - the latest on or before the date asked","example":"2026-07-01"},"rates":{"type":"array","description":"Its rates matching the filters, in published order","items":{"$ref":"#/components/schemas/VatRateResponse"}}}},"VatCategoryResponse":{"type":"object","description":"A TEDB category of goods or services","properties":{"identifier":{"type":"string","description":"TEDB identifier","example":"FOODSTUFFS"},"description":{"type":"string","description":"TEDB description, in English"}}},"VatRateCodeResponse":{"type":"object","description":"A CN code (goods) or CPA code (services) the member state attached to a rate, as published","properties":{"code":{"type":"string","description":"The code with its published spacing: a chapter, a heading or a full code","example":"1302 11 00"},"description":{"type":["string","null"],"description":"Its published description","example":"Opium"}}},"VatRateResponse":{"type":"object","description":"One rate of a member state, as published in TEDB","properties":{"type":{"type":"string","description":"STANDARD or REDUCED","enum":["STANDARD","REDUCED"]},"rateType":{"type":"string","description":"TEDB's kind of rate: DEFAULT (the standard rate), REDUCED_RATE, SUPER_REDUCED_RATE, PARKING_RATE, EXEMPTED, NOT_APPLICABLE or OUT_OF_SCOPE","enum":["DEFAULT","REDUCED_RATE","SUPER_REDUCED_RATE","PARKING_RATE","NOT_APPLICABLE","OUT_OF_SCOPE","EXEMPTED"]},"value":{"type":["number","null"],"description":"The percentage as published (21, 25.5); null when TEDB publishes none. TEDB may send 0 for EXEMPTED, NOT_APPLICABLE and OUT_OF_SCOPE","example":6.0},"category":{"type":"null","$ref":"#/components/schemas/VatCategoryResponse","description":"What the rate applies to; null for a standard rate"},"cnCodes":{"type":"array","description":"CN codes attached, in published order (incomplete for some member states)","items":{"$ref":"#/components/schemas/VatRateCodeResponse"}},"cpaCodes":{"type":"array","description":"CPA codes attached, in published order (incomplete for some member states)","items":{"$ref":"#/components/schemas/VatRateCodeResponse"}},"comment":{"type":["string","null"],"description":"The member state's comment as published - legal basis, conditions, and for a second standard rate its scope (\"VAT - Canary Islands - ...\", \"VAT - Import - ...\"). It may contain HTML: display it as text"}}},"VatSituationsResponse":{"type":"object","description":"The TEDB situations stored for a member state","properties":{"country":{"type":"string","description":"TEDB code of the member state","example":"BE"},"situationDates":{"type":"array","description":"Situation dates, newest first","items":{"type":"string","format":"date"}}}}},"securitySchemes":{"apiKey":{"type":"apiKey","description":"Optional. A key of a registered developer (portal: /account/) raises the request rate of the client from the anonymous per-IP limit to the plan's. Without it the request is anonymous; an unknown or revoked key is refused (401 INVALID_API_KEY).","name":"X-API-Key","in":"header"}}}}