Support subscription plan changes in Core API
🔍 Problem Statement
Change plan functionality does not exist in the Core API, which forces teams to rely on manual intervention.
💡 User Story
As a developer, I want the Core API to support change plan functionality so that I can manage subscription plan changes programmatically in bulk, without manual steps, and maintain consistency with the platform and Open API.
🎯 Definition of Done (DoD)
A feature is considered complete when:
✔️ The Core API subscriptionUpdate endpoint supports change plan functionality.
✔️ The Core API subscriptionUpdate endpoint supports updating address functionality.
✔️ All validations match those that exist in the platform/Open API.
✔️ Subscriptions can be updated via the Core API without requiring manual intervention.
Test Cases
Changing a subscription to a plan that costs less than the next upcoming phase
Changing a subscription to a plan that costs less than the next upcoming phase
Changing a subscription to a plan that costs more than the next upcoming phase
Changing a subscription to a plan that costs more than the next upcoming phase
Changing a subscription to a plan that costs less than the next upcoming phase
Changing a subscription to a plan that costs more than the next upcoming phase
Changing a subscription to a plan that costs less than the next upcoming phase
When the address ID belongs to another customer or is invalid, the error message should be changed from "This product is not available in your area"
Trying to change an expired subscription
Changing to an archived plan
Changing to a plan that exists in another account should be blocked
Changing a redeemed gift should be blocked
Sending a subscription ID that belongs to another site
Coupon gets applied to the new subscription invoice although it was restricted for the first plan only
Changing from an auto-renewal plan to a one-time plan should set the subscription to cancel_at_period_end
Changing from a one-time plan to an auto-renewal plan should set the subscription to renewal cycles instead of expire_at_period_end
Downgrading/upgrading any subscription that has a schedule will not change the end_date for the current phase
Changing a subscription that has future phases changes the collection method to "paying manually" on the cancelled plan and the new one
Log in to comment and vote
Comments1
Rana Haleem
Sep 17, 2025
We decided to implement further enhancements rather than creating a new endpoint. Instead, we will leverage the existing Update Subscription endpoint to ensure better tracking. This change will be included in the next release. We apologize for the inconvenience.