Charge Subscription
paddle.create_subscription_charge
ActionBusiness appsconnection required
Calls the Paddle API with the connection's credentials.
Bill a one-off charge on top of an existing 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
6 fields, 2 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 | — | — | — |
effective_from immediately bills now; next_billing_period adds it to the next renewal. | string | Yes | — | one of "immediately", "next_billing_period" | — |
items JSON array of items to charge, each with a price_id and a quantity. | array | No | — | ≥ 1 characters; array of object | [{"price_id":"pri_01gsz8x8sawmvhz1pv30nge1ke","quantity":1}] |
price_id Shortcut for charging a single price instead of filling in items. | string | No | — | — | pri_01gsz8x8sawmvhz1pv30nge1ke |
quantity How many units of price_id to charge for. | number | Conditional | 1 | ≥ 1; only with price_id | — |
on_payment_failure Whether to keep the charge when the payment fails. | string | No | — | one of "prevent_change", "apply_change" | — |
- At least one of price_id, items must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"items": [
{
"price_id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"quantity": 1
}
],
"price_id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"quantity": 1
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
subscription The subscription as Paddle returned it. | object | — |
subscription_id The subscription that was charged. | string | — |
effective_from When the charge was asked to take effect. | string | — |
items_submitted How many line items were sent to Paddle. | number | — |
charges_returned Always false: Paddle does not return the billed charges on this call. | boolean | — |
{
"charges_returned": false,
"effective_from": "",
"items_submitted": 0,
"subscription": {},
"subscription_id": ""
}Notes
- Paddle answers with the subscription and documents that the charges themselves are not held against it, so no transaction id comes back here. Follow with paddle.list_transactions filtered by this subscription to find them.
See Charge 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.