> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Subscription renewed scenario

Simulates all events that occur when a subscription renews.

---


This page describes a webhook scenario with configurable inputs. Each event below lists the conditions under which it fires; combine the per-step and per-event conditions to determine what fires for any given configuration.

## Configuration

- **Payment outcome** (`payment_outcome`) — `success` *(default)*, `recovered_existing_payment_method` (Recovered after retry with existing payment method), `recovered_updated_payment_method` (Recovered after customer updates payment method), or `failed`. What the outcome of the payment should be when the simulated subscription is renewed.
- **Action after payment recovery fails** (`dunning_exhausted_action`) — `subscription_canceled` (Cancel the subscription) *(default)* or `subscription_paused` (Pause the subscription). *Only shown when Payment outcome is "Failed".* Whether the subscription cancels or pauses as a result of all payment recovery attempts being exhausted.

## Events

### Subscription renews

- [`subscription.updated`](/webhooks/subscriptions/subscription-updated) — The subscription and its items are updated with new `previously_billed_at` and `next_billed_at` dates, and the `current_billing_period` is updated.
- [`transaction.created`](/webhooks/transactions/transaction-created) — Paddle creates a transaction for recurring items on the subscription, as well as any prorated or one-time charges that were set to be billed on the next billing period. Its status is `billed`, meaning no changes can be made to the transaction. Its origin is `subscription_recurring`.
- [`transaction.billed`](/webhooks/transactions/transaction-billed) — Occurs because the transaction status changes to `billed`.

### Initial payment collection fails

*Only when Payment outcome is not "Success".*

- [`transaction.updated`](/webhooks/transactions/transaction-updated) — Payment fails using the payment method on file. The transaction is updated with information about the unsuccessful payment attempt. Its status changes to `past_due`.
- [`transaction.payment_failed`](/webhooks/transactions/transaction-payment-failed) — Occurs because payment fails using the payment method on file.
- [`transaction.past_due`](/webhooks/transactions/transaction-past-due) — Occurs because the transaction status changes to `past_due`.
- [`subscription.updated`](/webhooks/subscriptions/subscription-updated) — The subscription status changes to `past_due`.
- [`subscription.past_due`](/webhooks/subscriptions/subscription-past-due) — Occurs because the payment failed for the transaction and the subscription therefore has an overdue payment.

### Customer updates their payment method

*Only when Payment outcome is "Recovered after customer updates payment method".*

- [`payment_method.saved`](/webhooks/payment-methods/payment-method-saved) — Occurs because the customer's payment method has been updated and saved. This results in a successful payment.

### Payment is successfully collected

*Only when Payment outcome is "Success" or "Recovered after customer updates payment method".*

- [`transaction.updated`](/webhooks/transactions/transaction-updated) — The transaction status changes to `paid` now that the customer has paid successfully. The transaction is updated with information about the successful payment.
- [`transaction.paid`](/webhooks/transactions/transaction-paid) — Occurs because the transaction status changes to `paid`.
- [`transaction.updated`](/webhooks/transactions/transaction-updated) — An invoice number is assigned to the transaction. Its status changes to `completed` as Paddle has finished processing it.
- [`transaction.completed`](/webhooks/transactions/transaction-completed) — Occurs because the transaction status changes to `completed`.

### Payment is successfully collected

*Only when Payment outcome is "Recovered after retry with existing payment method".*

- [`transaction.updated`](/webhooks/transactions/transaction-updated) — The existing payment method is retried and payment succeeds. The transaction status changes to `paid` now that the customer has paid successfully. The transaction is updated with information about the successful payment.
- [`transaction.paid`](/webhooks/transactions/transaction-paid) — Occurs because the transaction status changes to `paid`.
- [`transaction.updated`](/webhooks/transactions/transaction-updated) — An invoice number is assigned to the transaction. Its status changes to `completed` as Paddle has finished processing it.
- [`transaction.completed`](/webhooks/transactions/transaction-completed) — Occurs because the transaction status changes to `completed`.

### Subscription is activated

*Only when Payment outcome is "Recovered after retry with existing payment method" or "Recovered after customer updates payment method".*

- [`subscription.updated`](/webhooks/subscriptions/subscription-updated) — The subscription status changes to `active` now that the transaction is completed and no longer past due from payment failures. The subscription can now be considered active so you can handle access provisioning.
- [`subscription.activated`](/webhooks/subscriptions/subscription-activated) — Occurs because the subscription status changes to `active`.

### Payment retries fail and the subscription is canceled

*Only when Payment outcome is "Failed" and Action after payment recovery fails is "Cancel the subscription".*

- [`subscription.updated`](/webhooks/subscriptions/subscription-updated) — All payment attempts fail and dunning options are exhausted. The subscription cancels as a result. The subscription status changes to `canceled`.
- [`subscription.canceled`](/webhooks/subscriptions/subscription-canceled) — Occurs because the subscription status changes to `canceled`.

### Payment retries fail and the subscription is paused

*Only when Payment outcome is "Failed" and Action after payment recovery fails is "Pause the subscription".*

- [`subscription.updated`](/webhooks/subscriptions/subscription-updated) — All payment attempts fail and dunning options are exhausted. The subscription pauses as a result. The subscription status changes to `paused`.
- [`subscription.paused`](/webhooks/subscriptions/subscription-paused) — Occurs because the subscription status changes to `paused`.
