Reference · current version 1.0.0
Versioning and deprecation
The REST contract follows semantic versioning and is frozen at 1.0.0. Every response carries the version it follows, so you and a support ticket can say exactly which contract was served.
API-Version: 1.0.0The SDKs expose it as ravelo.apiVersion (TypeScript) and client.api_version (Python).
What the version numbers mean
| Change | Version | Examples |
|---|---|---|
| Backwards compatible addition | minor (1.1.0) | A new endpoint, an optional request field, a new response field, a new error code, a new enum value in a response. |
| Documentation or behaviour fix that keeps the contract | patch (1.0.1) | A clarified description, a corrected example. |
| Breaking change | major (2.0.0) | Anything in the next list. |
What counts as breaking
- Removing or renaming an endpoint, an
operationId, a response field or an enum value. - Changing a field's type, format or meaning, including how an amount is encoded.
- Making an optional request field or a parameter required.
- No longer guaranteeing a response field that was always present.
- Removing a documented response status.
- Changing the semantics of an existing error code.
Write clients that tolerate additions. Ignore response fields you do not know, keep a default branch for enum values and error codes you have not seen, and do not depend on the order of fields or of keys in an object.
How a breaking change ships
- The old behaviour stays served under the current major version for at least 12 months after the notice, and at least 6 months for an endpoint nobody called in the last 90 days.
- From the notice, the affected endpoints answer with
Deprecation: true, aSunsetheader carrying the removal date (RFC 8594) and aLinkheader withrel="deprecation"pointing to migration notes. The release notes and the dashboard carry the same date, and merchants whose keys called the endpoint in the last 30 days are emailed. - The replacement is available before the notice starts.
- The old behaviour is removed on the
Sunsetdate, and the new major version appears inAPI-Version.
Deprecation: true
Sunset: Wed, 30 Jun 2027 00:00:00 GMT
Link: <https://example.com/migrate>; rel="deprecation"Security fixes can shorten this period. The notice then says why.
How we hold ourselves to it
A copy of the frozen 1.0.0 contract is kept in the repository and our test suite compares every change to the live contract against it. The build fails when an operation, a documented response, a schema property, an enum value or a guaranteed response field disappears, or when an existing operation gains a required parameter or field. The staff Admin API is internal, versioned separately, and carries no compatibility promise.