SME Thresholds

GET /v1/vat/sme-thresholds — Look up EU SME VAT exemption and scheme thresholds

Endpoint

GET /v1/vat/sme-thresholds

Authentication: Public (no API key required)

Overview

Returns EU Small Business Scheme (SME) VAT thresholds for all 27 member states, sourced from the official EU TEDB SMERetrievalService. Data includes the main national exemption threshold plus optional cash-accounting, flat-rate scheme, reduced-supply-of-services, and non-established-business thresholds where published by TEDB.

Amounts are in whole currency units. For eurozone countries the nationalCurrency is EUR and NAC amounts mirror EUR. For non-eurozone countries (BG, CZ, DK, HU, PL, RO, SE) a separate NAC amount is provided in the national currency.

Country codes: TEDB uses EL for Greece (ISO 3166-1 uses GR).

Query Parameters

ParameterTypeRequiredDescription
countrystringNoISO 3166-1 alpha-2 filter (e.g. DE, EL for Greece). Returns all if omitted.
datestringNoYYYY-MM-DD. Returns the most recent threshold per key ≤ date. Defaults to today.
taxNamestringNoCase-insensitive exact match on TEDB tax name (e.g. VAT).

Example Requests

All thresholds as of today

curl https://api.vat-engine.daily-automations.app/v1/vat/sme-thresholds

Single country

curl "https://api.vat-engine.daily-automations.app/v1/vat/sme-thresholds?country=DE"

Country + specific date

curl "https://api.vat-engine.daily-automations.app/v1/vat/sme-thresholds?country=PL&date=2026-01-01"

Response

{
  "thresholds": [
    {
      "country": "DE",
      "situationOn": "2024-01-01",
      "taxName": "VAT",
      "thresholdType": "Regular scheme",
      "nationalCurrency": "EUR",
      "exemption": {
        "thresholdEur": 22000,
        "thresholdNac": 22000,
        "oneNationalAnnualThreshold": true,
        "nationalAnnualThreshold": false,
        "exclusionArticle288QuarantinePeriod": null,
        "transitionalPeriodExceeded": null,
        "voluntaryCessationArticle290": null,
        "article290QuarantinePeriod": null,
        "sectorals": []
      }
    },
    {
      "country": "PL",
      "situationOn": "2024-01-01",
      "taxName": "VAT",
      "thresholdType": "Specific scheme",
      "nationalCurrency": "PLN",
      "exemption": {
        "thresholdEur": 57602,
        "thresholdNac": 240000,
        "oneNationalAnnualThreshold": null,
        "nationalAnnualThreshold": true,
        "exclusionArticle288QuarantinePeriod": null,
        "transitionalPeriodExceeded": null,
        "voluntaryCessationArticle290": null,
        "article290QuarantinePeriod": null,
        "sectorals": []
      }
    }
  ]
}

Top-Level Threshold Fields

FieldTypeDescription
countrystringISO alpha-2 country code (TEDB uses EL for Greece)
situationOnstringYYYY-MM-DD effective date of this threshold record
taxNamestringTEDB tax name (e.g. VAT, VAT - Canary Islands)
thresholdTypestringTEDB threshold type (e.g. Regular scheme, Specific scheme)
nationalCurrencystringISO 4217 currency code. EUR for eurozone; national currency for others
exemptionobjectMain national exemption details — see below

Exemption Object

FieldTypeDescription
thresholdEurnumber | nullMain exemption threshold in EUR
thresholdNacnumber | nullMain exemption threshold in national currency
oneNationalAnnualThresholdboolean | nullSingle national annual threshold applies
nationalAnnualThresholdboolean | nullNational annual threshold flag
exclusionArticle288QuarantinePeriodstring | nullArticle 288 quarantine period description
transitionalPeriodExceededstring | nullTransitional period exceeded flag (national / sectoral)
voluntaryCessationArticle290boolean | nullArticle 290 voluntary cessation quarantine
article290QuarantinePeriodstring | nullArticle 290 quarantine period description
sectoralsarraySector-specific breakdowns — see below. Empty array if none provided.

Sectoral Threshold Object

Some countries publish sector-specific exemption levels (e.g. France for regulated professions, Denmark for publishers). Each entry in the sectorals array has:

FieldTypeDescription
sectorstring | nullSector label (e.g. Authors and similar professions)
exemptionThresholdEurnumber | nullSector exemption in EUR
exemptionThresholdNacnumber | nullSector exemption in national currency
commentstring | nullOptional TEDB note
cnCodesarrayCN product codes scoped to this sectoral threshold
cpaCodesarrayCPA product codes scoped to this sectoral threshold

Each cnCodes / cpaCodes item has value (code string) and description (human-readable label).

Notes

  • A null monetary amount means TEDB does not publish that value for the country/scheme combination — it is not the same as a zero threshold.
  • Spain and the Canary Islands are returned as two separate rows (taxName: "VAT" and taxName: "VAT - Canary Islands") because TEDB models them separately.
  • TEDB may not publish a threshold for every country. Countries without a general exemption threshold currently appear with exemption.thresholdEur: null.

Error Responses

StatusError codeDescription
400invalid_countryCountry code is not 2 letters
400invalid_dateDate is not in YYYY-MM-DD format
500internal_errorServer error