October 14, 2026
· 4 min read
This release introduces read-only access control for machine-to-machine tokens and exposes plan change options across customer membership endpoints. Developers can now create or update M2M tokens with read-only permissions to limit API access, and retrieve detailed plan change options when working with customer memberships.
- POST /auth/m2m_tokens now supports creating machine-to-machine tokens with read-only access restrictions
- PATCH /auth/m2m_tokens/{id} now allows updating tokens to read-only mode and returns the read-only status in responses
- PUT /auth/m2m_tokens/{id} now supports setting read-only access when fully replacing a token
- GET /customer_memberships now returns available plan change options for each membership in the list
- POST /customer_memberships now includes plan change options in the response when creating a new membership
- POST /customer_memberships/bulk_edit_prices now returns plan change options after bulk price updates
- GET /customer_memberships/{id} now provides plan change options when retrieving a specific membership
- POST /customer_memberships/{id}/cancel now returns plan change options when canceling a membership
POST /auth/m2m_tokens
- added the new optional request property
is_read_only(media type: application/json)
PATCH /auth/m2m_tokens/{id}
- added the new optional request property
is_read_only(media type: application/json) - added the required property
is_read_onlyto the response with the200status (media type: application/json)
PUT /auth/m2m_tokens/{id}
- added the new optional request property
is_read_only(media type: application/json)
GET /customer_memberships
- added the optional property
results/items/plan_change_optionsto the response with the200status (media type: application/json)
POST /customer_memberships
- added the optional property
plan_change_optionsto the response with the201status (media type: application/json)
POST /customer_memberships/bulk_edit_prices
- added the optional property
plan_change_optionsto the response with the200status (media type: application/json)
GET /customer_memberships/{id}
- added the optional property
plan_change_optionsto the response with the200status (media type: application/json)
POST /customer_memberships/{id}/cancel
- added the optional property
plan_change_optionsto the response with the200status (media type: application/json)