Updates a subscription using its ID.
When making changes to items or the next billing date for a subscription, you must include the proration_billing_mode field to tell Paddle how to bill for those changes.
Send the complete list of items that you’d like to be on a subscription — including existing items. If you omit items, they’re removed from the subscription.
For each item, send price_id and quantity. Paddle responds with the full price object for each price. If you’re updating an existing item, you can omit the quantity if you don’t want to update it.
If successful, your response includes a copy of the updated subscription entity. When an update results in an immediate charge, responses may take longer than usual while a payment attempt is processed.
Requests are authenticated with API keys. Provide your API key as a Bearer token in the Authorization header.
API keys are assigned permissions, granting them access to entities and operations.
Each endpoint may require one or more permissions, defined with the x-permissions extension.
Values for include parameters may require specific permissions as defined in the x-enum-permissions extension.
See all available permissions in the permission schema or documentation.
Get an API key and select the permissions you need from the Paddle dashboard under Paddle > Developer Tools > Authentication.
Paddle ID of the subscription entity to work with.
"sub_01gvne45dvdhg5gdxrz6hh511r"
Represents a subscription entity when updating subscriptions.
Paddle ID of the customer that this subscription is for, prefixed with ctm_. Include to change the customer for a subscription.
"ctm_01grnn4zta5a1mf02jjze7y2ys"
Paddle ID of the address that this subscription is for, prefixed with add_. Include to change the address for a subscription.
"add_01gm302t81w94gyjpjpqypkzkf"
Paddle ID of the business that this subscription is for, prefixed with biz_. Include to change the business for a subscription.
"biz_01grrebrzaee2qj2fqqhmcyzaj"
Supported three-letter ISO 4217 currency code. Include to change the currency that a subscription bills in. When changing collection_mode to manual, you may need to change currency code to USD, EUR, or GBP.
USD, EUR, GBP, JPY, AUD, CAD, CHF, HKD, SGD, SEK, ARS, BRL, CNY, COP, CZK, DKK, HUF, ILS, INR, KRW, MXN, NOK, NZD, PLN, RUB, THB, TRY, TWD, UAH, VND, ZAR 3RFC 3339 datetime string of when this subscription is next scheduled to be billed. Include to change the next billing date.
"2024-10-12T07:20:50.52Z"
Details of the discount applied to this subscription. Include to add a discount to a subscription. null to remove a discount.
How payment is collected for transactions created for this subscription. automatic for checkout, manual for invoices.
automatic, manual Details for invoicing. Required if collection_mode is manual. null if changing collection_mode to automatic.
Change that's scheduled to be applied to a subscription. When updating, you may only set to null to remove a scheduled change. Use the pause subscription, cancel subscription, and resume subscription operations to create scheduled changes.
List of items on this subscription. Only recurring items may be added. Send the complete list of items that should be on this subscription, including existing items to retain.
1 - 100 elementsAdd or update a catalog item to a subscription. In this case, the product and price that you're billing for exist in your product catalog in Paddle.
Your own structured key-value data.
{ "customer_reference_id": "abcd1234" }How Paddle should handle proration calculation for changes made to a subscription or its items. Required when making changes that impact billing.
For automatically-collected subscriptions, responses may take longer than usual if a proration billing mode that collects for payment immediately is used.
prorated_immediately, prorated_next_billing_period, full_immediately, full_next_billing_period, do_not_bill How Paddle should handle changes made to a subscription or its items if the payment fails during update. If omitted, defaults to prevent_change.
prevent_change, apply_change