Update Subscription
paddle.update_subscription
ActionBusiness appsconnection required
Calls the Paddle API with the connection's credentials.
Change the plan, quantity, billing date or collection of a subscription.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Paddle
- Secret shape
- the Paddle API key (pdl_…), or {"api_key": "…"}
- Config it needs
- environment, base_url
- Resolved by
- config.connection_id, else node.connection_id
Configuration
14 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
subscription_id The subscription id, prefixed sub_. | string | Yes | — | — | — |
proration_billing_mode How Paddle bills a mid-cycle change; required when items or dates change. | string | No | — | one of "prorated_immediately", "prorated_next_billing_period", "full_immediately", "full_next_billing_period", "do_not_bill" | — |
items JSON array replacing every subscription item; omitted ones are removed. | array | No | — | ≥ 1 characters; array of object | — |
price_id Shortcut for putting the subscription on this single price. | string | No | — | — | — |
quantity How many units of price_id the subscription should carry. | number | Conditional | 1 | ≥ 1; only with price_id | — |
next_billed_at RFC 3339 date to move the next charge to. | string | No | — | — | — |
collection_mode automatic to charge the saved card, manual to issue invoices. | string | No | — | one of "automatic", "manual" | — |
currency_code Three-letter currency to bill in; Paddle only allows this on manual ones. | string | No | — | 3–3 characters | — |
customer_id Move the subscription to a different customer. | string | No | — | — | — |
address_id Move the subscription to a different billing address. | string | No | — | — | — |
business_id Move the subscription to a different business. | string | No | — | — | — |
discount_id Apply this discount to the subscription immediately. | string | No | — | — | dsc_01gtgztp8f4kek3yd4g1wrxw3z |
on_payment_failure Whether to keep the change when the proration payment fails. | string | No | — | one of "prevent_change", "apply_change" | — |
custom_data Replacement key-value data for the subscription (JSON). | object | No | — | — | — |
- At least one of discount_id, price_id, items, next_billed_at, collection_mode, currency_code, customer_id, address_id, business_id, on_payment_failure, custom_data must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"discount_id": "dsc_01gtgztp8f4kek3yd4g1wrxw3z",
"quantity": 1
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
id The subscription id, prefixed sub_. | string | — |
status active, trialing, paused, past_due or canceled. | string | — |
customer_id The customer this subscription bills. | string | — |
currency_code Three-letter currency this subscription bills in. | string | — |
collection_mode automatic when Paddle charges, manual for an invoice. | string | — |
billing_cycle interval and frequency of the recurring charge. | object | — |
current_billing_period starts_at and ends_at of the period being billed. | object | — |
next_billed_at RFC 3339 date of the next charge, or null. | string | — |
scheduled_change A pending cancel, pause or resume, or null. | object | — |
items The prices on the subscription and their quantities. | array | — |
{
"billing_cycle": {},
"collection_mode": "",
"currency_code": "",
"current_billing_period": {},
"customer_id": "",
"id": "",
"items": [],
"next_billed_at": "",
"scheduled_change": {},
"status": ""
}Notes
- The items list is a replacement, not a patch: send every price the subscription should keep, or Paddle removes the ones you left out.
See Update Subscription run in a workflow.
In a technical demo we add the Paddle connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.