Skip to main content

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

Status: Available1 comment

Log in to comment and vote

Comments1

  • Rana Haleem

    Team•

    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.