v1.
What can change inside a version
Treat the API as additive within a version. Your client must tolerate new fields appearing.
v1 without notice:
- New endpoints.
- New optional request fields.
- New response fields.
- New values in a non-exhaustive enumeration.
- Better error messages, under the same
code.
Writing a client that survives
Ignore unknown fields
Ignore unknown fields
Do not use a parser that errors on unrecognised keys. New response fields are additive and will appear.
Branch on code, never on message
Branch on code, never on message
Error codes are stable. Message text is written for humans and may be reworded at any time.
Handle unknown enum values
Handle unknown enum values
Payment link
status is active, completed or inactive today. Give your client a default branch rather than crashing on a value it has not seen.Do not hardcode page size
Do not hardcode page size
limit is returned in every list response. Read it rather than assuming it.Pin the path version, not the schema
Pin the path version, not the schema
Call
/v1/… explicitly. Do not build the path from a value fetched at runtime.The schema is the contract
The machine-readable schema is served live and covers the authenticated endpoints:
Generate your client from it, and regenerate to pick up additions.
Deprecation
When a version is superseded, the current one keeps working while consumers migrate. Deprecations are announced before anything is withdrawn — nothing is removed without notice.Next
Introduction
Base URL and endpoints.
Errors
Stable error codes.
Moove Payment Links
The v1 surface.