Upgrade a subscription
Subscriptions
Upgrade Subscription
Upgrades the customer to a better device. Creates a new subscription and ends the current one.
POST
Upgrade a subscription
Overview
Upgrade a customer to a different (typically better) device. This ends the current subscription and creates a new order for the upgraded product. The customer returns their current device and receives a new one.When to Use Upgrades
Upgrade Flow
Request Fields
| Field | Required | Description |
|---|---|---|
newSku | Yes | SKU of the upgrade product |
newContractLength | Yes | Contract length for new subscription |
reason | No | Reason for upgrade |
Example Request
What Happens
When you process an upgrade:- Current subscription marked as ending (status changes on return)
- Upgrade order created with type
upgrade - Order linked to original subscription for tracking
- Pricing calculated based on new variant’s rates
- Return scheduled for current device
Response Structure
Upgrade Pricing Considerations
Consider these factors when setting upgrade prices:- Remaining value on current device
- New device acquisition cost
- Market rates for the new device
- Customer loyalty and history
Completing the Upgrade
After calling upgrade:- Process the return of the current device
- Create subscription on the upgrade order (like any new order)
- Ship the new device to customer
Error Handling
| Error Code | Cause | Solution |
|---|---|---|
SUBSCRIPTION_NOT_ACTIVE | Cannot upgrade inactive subscription | Check subscription status |
VARIANT_NOT_FOUND | New SKU doesn’t exist | Verify SKU in product catalog |
VARIANT_INACTIVE | New SKU is deactivated | Use an active variant |
INVALID_CONTRACT_LENGTH | Contract length not supported | Use valid contract length |
Related Endpoints
- Get Subscription - Check current subscription
- List Variants - Find upgrade options
- Create Subscription - Fulfill the upgrade order
- Replace Device - For faulty device swaps (not upgrades)
Authorizations
API key obtained from FlexPortal dashboard
Headers
Your tenant identifier
Path Parameters
The subscription ID
Body
application/json
Minimum string length:
1Minimum string length:
1Minimum string length:
1Required range:
1 < x <= 120Required range:
x >= 0Minimum string length:
1