Update Subscription
Update Subscription items and handle proration behavior. Can modify prices, quantities, and add/remove items. The items array is the desired end state of the Subscription: items are paired to existing lines by offerId, missing ones are removed, and new ones are added (up to 20 total). All resulting items must share the same currency and billing period (recurring interval + interval count); otherwise the request is rejected with a 400.
Authorization
Public key Secret key In: header
In: header
Path Parameters
Subscription ID or order number
^#?([0-9A-Za-z]{12,32}|[0-9]+)(-[0-9]+)?$Request Body
application/json
PATCH /v0/subscriptions/:subscriptionIdOrNumber/update Request body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v0/subscriptions/string/update" \ -H "Content-Type: application/json" \ -d '{ "items": [ {} ] }'{ "status": "success", "data": { "success": true }}Get Upcoming Subscription Payment GET
Preview the amount and date of the Subscription's next renewal charge. Returns null when the Subscription is not active or is set to cancel at the end of the current interval — in both cases there is no upcoming charge to preview. The amount reflects Stripe's live invoice preview at request time and can still change before the charge actually happens (e.g. proration from a mid-cycle plan change, a coupon expiring, or tax recalculation) — it is a forecast, not a guarantee.
Charge Subscription POST
Charge an additional one-off amount to an active Subscription. Creates a new Invoice and handles payment processing. Multiple items (up to 20) can be charged in a single call; each becomes its own Invoice line. All items must share the same currency, and that currency must match the Subscription's currency. Tax is calculated on the total and distributed proportionally across the lines.