While in Beta: 0.x
A0.x version is pre-release. Until 1.0.0:
- Anything can change, including paths, fields, enumerations, event names and the webhook headers. Each change is a new
0.xversion in the changelog, with what changed and what to do about it. - Changes are announced before they are made to the technical contacts registered with Securitize, and the changelog carries them on the day. There is no parallel run of two versions in Beta.
- Sandbox moves first. A change reaches sandbox before production, so your integration can be adjusted against sandbox.
From 1.0.0
What your consumer must tolerate
Minor versions add things without notice to your code, so from the first day:- Ignore fields you do not know, in every object and in the envelope.
- Accept enumeration values you do not know: a
caType,reasonCode,restrictionType,status,eventTypeoroptionTypeyou have not seen is informational, never an error. - Switch on
eventTypeandobjectTypewith a default branch that appliesdatabyversionand does nothing else. - Read
nullas “not set”: a key is always present once it exists, withnullwhen there is no value.
The envelope’s schemaVersion
Every event carries schemaVersion, the version of the envelope’s own shape, 1.0 today. It is independent of the API version: it changes only when the envelope’s structure changes, which is a major change of the API, and it lets a consumer that stores raw events tell generations apart. The objects inside data are versioned by the API version, not by schemaVersion.
Where the version is
- The OpenAPI file,
/corporate-actions-api/openapi.yaml, carries it ininfo.version; the Download option on every reference page gives you the file. - The changelog lists every version, newest first.
- Nothing in a response carries the API version: it is a property of the contract, not of a call.