Versioning
What stays stable inside v1 and what a v2 would mean.
Code written against /api/v1 keeps working: v1 only gains things. Within
v1, changes are additive only: new optional fields, new endpoints, new query
parameters. Write your client to ignore fields it does not know.
A breaking change ships under a new prefix (/api/v2) instead of changing v1
in place. Breaking means a removed or renamed field, a changed field type or
changed error semantics. A v2 does not deprecate v1: existing integrations
keep working.
Every change to the contract is listed in the Changelog.
What you can rely on
- Every documented field stays in
v1with its name and type. codein an error body is stable.messageis not; see Errors.- Query parameters are camelCase (
perPage,fromDate,serviceIds). Every list answers with thedataenvelope and every error is{code, message}.
Before the first production release
Before the first release two changes went into v1 in place instead of a v2:
- On 2026-08-07
appliedVoucherwas renamed toappliedDiscountCodeon the order detail response. - On 2026-09-28
v1was normalised: camelCase query parameters, thedataenvelope on every list,{code, message}on every error.
From the first release on
Changes to v1 are additive only. A breaking change goes to v2.