{"openapi":"3.1.0","info":{"title":"EU VAT Info API","version":"1.0.0","description":"Free, open EU VAT rate data, calculator, and VIES validation for all 27 EU member states. No authentication required.","contact":{"url":"https:\/\/vat.businesspress.io"},"license":{"name":"MIT","url":"https:\/\/opensource.org\/licenses\/MIT"}},"servers":[{"url":"https:\/\/vat.businesspress.io\/api\/v1","description":"Production"}],"paths":{"\/countries":{"get":{"operationId":"listCountries","summary":"List all EU countries with VAT rates","tags":["Countries"],"responses":{"200":{"description":"Array of EU countries with current VAT rates","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CountryListResponse"}}}}}}},"\/countries\/{slug}":{"get":{"operationId":"getCountry","summary":"Get a single country by slug or ISO code","tags":["Countries"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Country slug (germany), ISO alpha-2 (DE), or code"}],"responses":{"200":{"description":"Country with VAT rates","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CountryResponse"}}}},"404":{"description":"Country not found"}}}},"\/calculate":{"get":{"operationId":"calculateVat","summary":"Calculate VAT for an amount and country","tags":["Calculator"],"parameters":[{"name":"amount","in":"query","required":true,"schema":{"type":"number"},"description":"Monetary amount"},{"name":"country","in":"query","required":true,"schema":{"type":"string"},"description":"Country slug, ISO code, or name"},{"name":"rate_type","in":"query","required":false,"schema":{"type":"string","enum":["standard","reduced","super_reduced","parking"],"default":"standard"}},{"name":"mode","in":"query","required":false,"schema":{"type":"string","enum":["add","remove"],"default":"add"},"description":"add = net\u2192gross, remove = gross\u2192net"}],"responses":{"200":{"description":"Calculation result","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CalculationResponse"}}}},"404":{"description":"Country not found"},"422":{"description":"Rate type unavailable for country"}}}},"\/validate":{"post":{"operationId":"validateVatNumber","summary":"Validate an EU VAT number via VIES","tags":["Validation"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["country_code","vat_number"],"properties":{"country_code":{"type":"string","minLength":2,"maxLength":2,"description":"ISO country code (use EL for Greece)"},"vat_number":{"type":"string","minLength":5,"maxLength":50,"description":"VAT number without country prefix"}}}}}},"responses":{"200":{"description":"Validation result with company info if valid","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ValidationResponse"}}}},"422":{"description":"Validation error"}}}}},"components":{"schemas":{"Country":{"type":"object","properties":{"name":{"type":"string","example":"Germany"},"iso_code":{"type":"string","example":"DE"},"slug":{"type":"string","example":"germany"},"currency":{"type":"string","example":"EUR"},"rates":{"type":"object","properties":{"standard":{"type":"number","example":19},"reduced":{"type":["number","null"],"example":7},"super_reduced":{"type":["number","null"]},"parking":{"type":["number","null"]}}},"last_updated":{"type":"string","format":"date-time"}}},"CountryListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/Country"}}}},"CountryResponse":{"type":"object","properties":{"data":{"$ref":"#\/components\/schemas\/Country"}}},"CalculationResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"country":{"type":"string"},"iso_code":{"type":"string"},"rate_type":{"type":"string"},"rate":{"type":"number"},"mode":{"type":"string"},"amount":{"type":"number"},"net":{"type":"number"},"vat":{"type":"number"},"gross":{"type":"number"},"currency":{"type":"string"}}}}},"ValidationResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"valid":{"type":"boolean"},"country_code":{"type":"string"},"vat_number":{"type":"string"},"company_name":{"type":["string","null"]},"company_address":{"type":["string","null"]}}}}}}}}