Versioning & deprecation
The version is in the path (/v1); additive changes ship without a bump; breaking changes get /v2 with at least twelve months of overlap, Deprecation and Sunset headers and a changelog entry.
The API version is in the path: https://app.processcart.com/api/v1/…. v1 is the current and only version.
Non-breaking changes ship within v1
These may happen at any time and are announced in the changelog:
- new endpoints, new optional query parameters and new optional body members;
- new members in responses and in webhook payloads;
- new event types, new activity types, new error codes, new enum values (statuses, field types, formats);
- loosened validation (accepting something that was refused), new limits that are higher than today's.
A client must therefore tolerate unknown members and unknown enum values: ignore a member it does not know, and treat an unknown code, event type or status the way its HTTP status or context suggests. The OpenAPI document marks every growable enum with x-processcart-open-enum: true.
Breaking changes get a new version
Removing or renaming a member, changing a type or a canonical format, tightening validation, changing the meaning of a status code, or dropping an endpoint is a breaking change. It ships as /v2, and:
/v1keeps working for at least twelve months after/v2is announced;- the old operations send
Deprecation(RFC 9745, the date the deprecation took effect) andSunset(RFC 8594, the date they stop answering — never less than 90 days afterDeprecation) headers on every response; - the changelog carries the migration notes the day the headers appear.
Within a version, a single operation may also be deprecated the same way (headers + a changelog entry + the 90-day minimum) when a replacement exists.
Before the public launch the API is pre-release: a breaking change may ship inside /v1 with a changelog entry and no /v2 (the 2026-10-12 move from If-Match / ETag to Expected-Revision is the one such change so far). The policy above applies in full from the launch date the changelog announces.
What never changes without a version bump
- The canonical value shapes on Field values & typing — a number stays a number, a percent stays a fraction, a date stays
YYYY-MM-DD. - The envelope
{ data, nextCursor, hasMore }, the Problem Details shape and thecodevalues already published. - The Standard Webhooks headers and signature scheme.
Staying informed
The changelog lists every change with its date; it is written by hand and updated with every release, including the migration notes on the day any Deprecation / Sunset header appears. The OpenAPI document's info.version names the API version and comes straight from the code that serves the API, as does every reference page.