All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2026-06-29
Added
address_collapsedfield — newlines collapsed into spaces for single-line displaycommer_titlefield — now extractstradingNamefrom VIES response- HTTP 429 rate-limit handling —
:vies_too_many_requestserror code - Empty/whitespace-only VAT validation — returns immediately with no API call
config/config.exswith documented defaults for cache name and TTL- Cache protocol
put/4now accepts:ttloption, falls back to app config
Changed
- Error shape unified to
{:error, %{code: atom, descr: string}}everywhere :plugoption renamed to:test_adapterto avoid confusion with Req.Step plugsaddressnow preserves the raw VIES value (may contain newlines)- Cachex is now a true optional dependency — removed from runtime deps
- Test coverage threshold raised to 80%
- All source files updated to SPDX 2026
- Removed
@specannotations
Fixed
- Req retry disabled when using test adapter — test suite now runs in 0.2s
cache_storenow stores only the data map (not{:ok, data}tuple) — fixes double-wrapping on cache hit- Null
name/addressfrom VIES no longer crashesprocess_name/process_address
0.1.0 - 2026-01-25
Added
- Client for the EU VIES REST API (VAT number validation and company lookup)
VatchexVies.lookup/3with support for country code, VAT ID, and optional cachingVatchexVies.available_countries/0andVatchexVies.available?/1for checking VIES service availability per countryVatchexVies.Cacheprotocol for pluggable cache adaptersVatchexVies.CachexCacheadapter for Cachex v4.x (conditionally compiled when Cachex is available)- Structured error responses:
{:error, %{code: atom, descr: string}} - 11 unit tests with Req.Test stubs (no live service calls)
- DESIGN.md architecture document