New setting "Additional Countries for VAT Validation" treats VAT IDs from configured non-EU countries (e.g. Switzerland) like EU countries for validation and automatic customer group assignment, without touching Magento's global EU country list
Format precheck filters implausible input (free text, placeholders) before it reaches the validation API, saving requests against paid or rate limited services. Configurable under "Format Precheck": off, basic (default) or strict
The basic check works without a country prefix, so tax numbers from countries that do not carry one (Canada, Mexico, Israel, Norway, India, ...) pass unchanged
strict additionally verifies the syntax of the 27 EU member states plus Northern Ireland and the modulo 11 check digit of Swiss UIDs
VAT numbers are normalised to uppercase and the Swiss MWST/TVA/IVA suffix is stripped regardless of separators, so CHE-332.396.092 MWST and che332396092mwst share one cache entry instead of causing two API requests
Qualified check (company, street, postcode, city) now always runs against the current address data, regardless of "Validate on Each Transaction". Magento only revalidates when country or VAT ID changed, so the qualified result could previously be stale or missing entirely.
Validation no longer leaks the current address into the next check when the gateway throws
VAT validation time in order comments now displayed in store timezone instead of UTC
Re-validate against API on order placement when certificate has mismatches but VAT is valid (ensures legally correct certificate for § 18e UStG compliance)
Full API response details saved as order comment (company, address, status codes, certification)
New ResponseFormatterInterface for provider-specific response formatting (Endereco implementation included)
Generic JSON fallback for validators without custom formatter (e.g. FinanzOnline)
Added $useCache parameter to checkVatNumber() to allow cache bypass