/v1. Within a version, Infinity makes only backward-compatible changes, so an integration built against /v1 today keeps working without changes.
Backward-compatible changes
Infinity may make these changes to/v1 at any time, without notice:
- Adding endpoints.
- Adding optional request parameters.
- Adding fields to response objects and events.
- Adding values to enumerated fields, such as a new payout
status,failure_codeorrail. - Adding event types.
- Adding error codes.
- Adding currencies, countries and rails.
- Changing the wording of error messages.
Breaking changes
These changes are never made within/v1:
- Removing or renaming an endpoint, parameter, field or enumerated value.
- Changing a field’s type or meaning.
- Making an optional parameter required, or tightening validation on an existing parameter.
- Changing the meaning of an error code.
/v2), and /v1 continues to operate alongside it.
Building for forward compatibility
- Ignore unknown fields. Don’t fail when an object or event contains a field you don’t recognise, and avoid strict schema validation on responses.
- Ignore unknown event types. Acknowledge them with
2xxand discard them. - Handle unknown enum values. Treat an unfamiliar
statusas non-terminal and retrieve the object again later; treat an unfamiliar errorcodeaccording to its HTTP status andtype. - Don’t parse error messages. Branch on
code.