Last updated: April 5, 2026
EuroValidate follows Semantic Versioning 2.0.0. This document describes what changes we consider breaking, how long older versions remain supported, and how to stay ahead of upcoming changes.
The API is versioned in the URL path: /v1/*. A new major version (/v2/*) is only introduced when we cannot avoid backwards-incompatible changes. Both versions run in parallel during the deprecation window.
We treat the following as breaking and will only ship them in a new major version:
int → string, "valid":true → "status":"ok").meta block.type URI and status are stable; the detail string can improve).Clients should be written to tolerate unknown fields in responses.
Deprecation and Sunset HTTP header (per RFC 8594) and a X-EuroValidate-Deprecation header with a link to the migration guide./v1/status response.| Event | Minimum notice |
|---|---|
| Next major version announced | 6 months before release |
| Old major version receives security fixes only | 12 months after successor release |
| Old major version shut down | 24 months after successor release |
Until we reach 1.0.0 (current version: 1.0.0-beta.1), we reserve the right to make breaking changes in minor releases. We will still give at least 4 weeks' notice via email and the changelog, and will never change contracts silently.
We recommend sending an X-EuroValidate-Client header with each request so we can notify you proactively when you are on a soon-to-be-deprecated version:
X-EuroValidate-Client: eurovalidate-python/2.3.0X-EuroValidate-Client: my-checkout-service/1.4.7Features marked as beta in the documentation are not subject to this policy. They may change or be removed with 30 days' notice. Beta features are always explicitly labelled (in the endpoint description and in the meta.stability field of the response).
Planning a large integration and need additional commitments? Email [email protected].