For AI agents and LLMs: a structured documentation index is available at /llms.txt. Every page has a Markdown sibling — append .md to any URL.

Skip to content
Docs

Pause a subscription

Pause subscriptions when customers want to take a break and come back later. Offering the option to pause a subscription can lower voluntary churn and increase customer LTV.

AI summary

Pause a subscription to temporarily stop billing without canceling, letting customers take a break and resume later — reducing voluntary churn.

  • • Pausing is not available in the customer portal — customers cannot self-serve a pause; you must build a workflow using the Paddle API or pause from the Paddle dashboard.
  • • Set effective_from to next_billing_period to pause at the end of the current period, or use immediately to stop billing right away — each creates different proration scenarios.
  • • To resume a paused subscription, update it with resume_at set to a future date or use the resume subscription operation; the subscription returns to active on that date.

Pause subscriptions to stop billing for them temporarily. Paddle doesn't bill for paused subscriptions until they're resumed.

You may wish to give customers some level of access to your software while paused to maintain a relationship and encourage them to return. For example, you might let customers download reports or access existing data, but restrict their access to create records.

How it works

Pause

When you pause a subscription, its status is set to paused and Paddle doesn't create any transactions or collect payment for it. You should provision your app so customers don't have access, or have limited access, while paused.

When sending a request to pause, you can tell Paddle to:

  • Pause at the end of the billing period
    Paddle creates a scheduled change to say the subscription should be paused on the next billing date. The subscription remains active until the next billing date, when the subscription status changes to paused.
  • Pause immediately
    Paddle pauses the subscription right away. Its status changes to paused.

To avoid charging for overlapping billing periods, any past due transactions for subscription renewals, where the transaction origin is subscription_recurring, are automatically canceled.

If you've made changes to a subscription or billed for one-time charges and set them to be charged on the next billing period:

  • When changes result in a credit, these are automatically forgiven.
  • When changes result in a charge, these are applied to the transaction created on resume.

Resume

Subscriptions remain paused until they're resumed. Pauses can be open-ended, or you can set a resume date. We recommend giving customers a set of pause duration options in your frontend — for example, 30 days, 60 days, or 90 days.

You can resume a paused subscription at any time, even if there's a resume date already set, by sending a request to resume. It's good practice to make it as easy as possible for customers to resume their subscription, so we recommend building a way for self-serve customers to reactivate their account.

When sending a request to resume, you can tell Paddle to:

  • Start a new billing period
    Paddle starts a new billing period for the subscription. The current_billing_period.starts_at is set to the date and time that the subscription is resumed, and Paddle creates a transaction to collect for the new billing period immediately.
  • Continue the existing billing period
    Paddle checks the end date of the existing billing period. If the resume date is within the existing billing period, Paddle continues the existing billing period. The current_billing_period dates aren't changed, and there's no immediate charge.

Before you begin

To pause a subscription, you'll need to get the subscription ID for the subscription you want to change.

You can use the status query parameter when listing with the value active to get a list of active subscriptions.

Pause a subscription

  1. Go to Paddle > Customers, and find the customer whose subscription you want to pause.
  2. Find the subscription under the Subscriptions heading and click it.
  3. From the subscription overview page, click Pause subscription
  4. Use the When do you want to pause the subscription? to choose whether to pause now or at the end of the billing period.
  5. To resume a subscription on a particular date, toggle Automatically resume on, then set a date and time. Toggle off to pause indefinitely.
  6. Click Pause subscription to confirm.
  7. If you chose to pause now, click Pause subscription again on the confirmation box.

Illustration of a customer page with a list of subscriptions.

Illustration of the pause subscription drawer, showing a subscription that's set to pause immediately for an indefinite amount of time.

Send a POST request to the /subscriptions/{subscription_id}/pause endpoint to pause a subscription.

In your request, include effective_from to tell Paddle when to pause (next_billing_period or immediately). Include resume_at (RFC 3339 timestamp) to set a scheduled resume date — omit for an indefinite pause. Include on_resume to control charging on resume — defaults to start_new_billing_period (customer is charged immediately for the new billing period).

Paddle creates a scheduled change with an effective_at date matching the subscription's next_billed_at date.

POST /subscriptions/{subscription_id}/pause
Request
{
"effective_from": "next_billing_period"
}
Response (200 OK)
{
"data": {
"id": "sub_01h8bxswamxysj44zt5n48njwh",
"status": "active",
"customer_id": "ctm_01h8441jn5pcwrfhwh78jqt8hk",
"address_id": "add_01h848pep46enq8y372x7maj0p",
"business_id": "biz_01h84a7hr4pzhsajkm8tev89ev",
"currency_code": "USD",
"created_at": "2023-08-21T11:31:10.292Z",
"updated_at": "2023-09-27T10:54:24.066Z",
"started_at": "2023-08-21T11:31:08.689295Z",
"first_billed_at": "2023-08-21T11:31:08.689295Z",
"next_billed_at": null,
"paused_at": null,
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": {
"starts_at": "2023-09-21T11:31:08.689295Z",
"ends_at": "2023-10-21T11:31:08.689295Z"
},
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"scheduled_change": {
"action": "pause",
"effective_at": "2023-10-21T11:31:08.689295Z",
"resume_at": null
},
"items": [
{
"status": "active",
"quantity": 30,
"recurring": true,
"created_at": "2023-08-21T11:31:10.292Z",
"updated_at": "2023-09-21T11:32:06.153Z",
"previously_billed_at": "2023-09-21T11:31:08.689295Z",
"next_billed_at": null,
"trial_dates": null,
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"description": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3266",
"currency_code": "USD"
}
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01h8bxswamxysj44zt5n48njwh/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01h8bxswamxysj44zt5n48njwh/cancel"
},
"discount": null
},
"meta": {
"request_id": "3c69e2df-9f2f-4fb3-afa8-474fd768836b"
}
}

The subscription status changes to paused right away.

POST /subscriptions/{subscription_id}/pause
Request
{
"effective_from": "immediately"
}
Response (200 OK)
{
"data": {
"id": "sub_01hbxebsqc7qg1fbqg5eqz1v82",
"status": "paused",
"customer_id": "ctm_01hbxeaqa73chfk9ants8gtrjf",
"address_id": "add_01hbxeaqb46zke464dwjjh7zab",
"business_id": null,
"currency_code": "USD",
"created_at": "2023-10-04T13:34:45.484Z",
"updated_at": "2023-10-05T10:03:01.546Z",
"started_at": "2023-10-04T13:34:44.39169Z",
"first_billed_at": "2023-10-04T13:34:44.39169Z",
"next_billed_at": null,
"paused_at": "2023-10-05T10:03:01.544Z",
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": null,
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"scheduled_change": null,
"items": [
{
"status": "active",
"quantity": 10,
"recurring": true,
"created_at": "2023-10-04T13:34:45.484Z",
"updated_at": "2023-10-04T13:34:45.484Z",
"previously_billed_at": "2023-10-04T13:34:44.39169Z",
"next_billed_at": null,
"trial_dates": null,
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"description": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3266",
"currency_code": "USD"
}
}
},
{
"status": "active",
"quantity": 1,
"recurring": true,
"created_at": "2023-10-04T13:34:45.484Z",
"updated_at": "2023-10-04T13:34:45.484Z",
"previously_billed_at": "2023-10-04T13:34:44.39169Z",
"next_billed_at": null,
"trial_dates": null,
"price": {
"id": "pri_01h1vjfevh5etwq3rb416a23h2",
"product_id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"description": "Monthly (recurring addon)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "10887",
"currency_code": "USD"
}
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01hbxebsqc7qg1fbqg5eqz1v82/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01hbxebsqc7qg1fbqg5eqz1v82/cancel"
},
"discount": null
},
"meta": {
"request_id": "af4b4f10-e051-4f6d-9b27-0af0573b16da"
}
}

Paddle creates a scheduled_change to resume with an effective_at matching the resume_at date you sent.

POST /subscriptions/{subscription_id}/pause
Request
{
"effective_from": "immediately",
"resume_at": "2023-11-01T00:00:00.000Z"
}
Response (200 OK)
{
"data": {
"id": "sub_01hbzxvbv3swwa9e3k17q9jhsg",
"status": "paused",
"customer_id": "ctm_01hbzfn01epffnm8azqj8va535",
"address_id": "add_01hbzxtk9rmhjqsfgqcrfpe3y3",
"business_id": null,
"currency_code": "USD",
"created_at": "2023-10-05T12:43:53.059Z",
"updated_at": "2023-10-05T12:50:54.857Z",
"started_at": "2023-10-05T12:43:51.363035Z",
"first_billed_at": "2023-10-05T12:43:51.363035Z",
"next_billed_at": "2023-11-01T00:00:00Z",
"paused_at": "2023-10-05T12:50:16.963Z",
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": null,
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"scheduled_change": {
"action": "resume",
"effective_at": "2023-11-01T00:00:00Z",
"resume_at": null
},
"items": [
{
"status": "active",
"quantity": 10,
"recurring": true,
"created_at": "2023-10-05T12:43:53.059Z",
"updated_at": "2023-10-05T12:43:53.059Z",
"previously_billed_at": "2023-10-05T12:43:51.363035Z",
"next_billed_at": "2023-11-01T00:00:00Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"description": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3266",
"currency_code": "USD"
}
}
},
{
"status": "active",
"quantity": 1,
"recurring": true,
"created_at": "2023-10-05T12:43:53.059Z",
"updated_at": "2023-10-05T12:43:53.059Z",
"previously_billed_at": "2023-10-05T12:43:51.363035Z",
"next_billed_at": "2023-11-01T00:00:00Z",
"trial_dates": null,
"price": {
"id": "pri_01h1vjfevh5etwq3rb416a23h2",
"product_id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"description": "Monthly (recurring addon)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "10887",
"currency_code": "USD"
}
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01hbzxvbv3swwa9e3k17q9jhsg/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01hbzxvbv3swwa9e3k17q9jhsg/cancel"
},
"discount": null
},
"meta": {
"request_id": "823fab25-9a78-4f5b-b331-fcbc8534c23b"
}
}

Remove a scheduled change

You can stop a pause from going through at the end of the billing period by removing the scheduled change.

You might also do this to remove a scheduled resume from a paused subscription, so it's paused indefinitely until you resume.

  1. Go to Paddle > Customers, and find the customer whose subscription you no longer want to pause.
  2. Find the subscription under the Subscriptions heading and click it.
  3. From the subscription overview page, click Don't pause
  4. Click Don't pause on the confirmation box.

Illustration of a subscription page with a banner saying that a subscription is scheduled to pause.

Send a PATCH request to the /subscriptions/{subscription_id} endpoint to update the subscription.

In your request, set scheduled_change to null to remove the scheduled pause or resume.

PATCH /subscriptions/{subscription_id}
Request
{
"scheduled_change": null
}
Response (200 OK)
{
"data": {
"id": "sub_01htymmb3hj0q9fmckjbtrmd73",
"status": "active",
"customer_id": "ctm_01htymkpj07kjy7p5q1vzqpk70",
"address_id": "add_01htymkpjq97zpchxzdyyas99v",
"business_id": null,
"currency_code": "USD",
"created_at": "2024-04-08T10:38:58.673Z",
"updated_at": "2024-04-08T10:44:18.005Z",
"started_at": "2024-04-08T10:38:57.97967Z",
"first_billed_at": "2024-04-08T10:38:57.97967Z",
"next_billed_at": "2024-05-08T10:38:57.97967Z",
"paused_at": null,
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": {
"starts_at": "2024-04-08T10:38:57.97967Z",
"ends_at": "2024-05-08T10:38:57.97967Z"
},
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"scheduled_change": null,
"items": [
{
"status": "active",
"quantity": 10,
"recurring": true,
"created_at": "2024-04-08T10:38:58.673Z",
"updated_at": "2024-04-08T10:38:58.673Z",
"previously_billed_at": "2024-04-08T10:38:57.97967Z",
"next_billed_at": "2024-05-08T10:38:57.97967Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"type": "standard",
"description": "Monthly",
"name": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": {
"features": {
"crm": true,
"data_retention": false,
"reports": true
},
"suggested_addons": [
"pro_01h1vjes1y163xfj1rh1tkfb65",
"pro_01gsz97mq9pa4fkyy0wqenepkz"
],
"upgrade_description": "Move from Basic to Pro to take advantage of advanced reporting and a CRM that's right where you're chatting."
},
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 999
},
"import_meta": null,
"created_at": "2023-02-23T13:55:22.538367Z",
"updated_at": "2024-04-05T14:30:28.146783Z"
}
},
{
"status": "active",
"quantity": 1,
"recurring": true,
"created_at": "2024-04-08T10:38:58.673Z",
"updated_at": "2024-04-08T10:38:58.673Z",
"previously_billed_at": "2024-04-08T10:38:57.97967Z",
"next_billed_at": "2024-05-08T10:38:57.97967Z",
"trial_dates": null,
"price": {
"id": "pri_01h1vjfevh5etwq3rb416a23h2",
"product_id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"type": "standard",
"description": "Monthly",
"name": "Monthly (recurring addon) ",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "10000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 100
},
"import_meta": null,
"created_at": "2023-06-01T13:31:12.625056Z",
"updated_at": "2024-04-05T14:33:48.860572Z"
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01htymmb3hj0q9fmckjbtrmd73/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01htymmb3hj0q9fmckjbtrmd73/cancel"
},
"discount": null,
"import_meta": null
},
"meta": {
"request_id": "a37dc0cb-0337-45cb-8f2c-8bd31db37553"
}
}

Set or change a resume date

You can change when a subscription is set to resume, or set a resume date where a subscription is paused indefinitely.

  1. Go to Paddle > Customers, and find the customer whose paused subscription you want to set or change the resume date for.
  2. Find the subscription under the Subscriptions heading and click it.
  3. From the subscription overview page, click Set resume date or Edit resume date
  4. Choose a new date and time under the Automatically resume toggle. Toggle off to pause indefinitely.
  5. Click Save to confirm.

Illustration of a subscription page with a banner saying that a subscription is scheduled to pause.

Send a POST request to the /subscriptions/{subscription_id}/resume endpoint to set or change the resume date for a paused subscription.

In your request, include effective_from with either an RFC 3339 timestamp (to resume on a specific date) or next_billing_period. Include on_resume to control charging on resume — defaults to start_new_billing_period (customer is charged immediately for the new billing period).

POST /subscriptions/{subscription_id}/resume
Request
{
"effective_from": "2023-11-01T00:00:00.000Z"
}
Response (200 OK)
{
"data": {
"id": "sub_01h8bxswamxysj44zt5n48njwh",
"status": "paused",
"customer_id": "ctm_01h8441jn5pcwrfhwh78jqt8hk",
"address_id": "add_01h848pep46enq8y372x7maj0p",
"business_id": "biz_01h84a7hr4pzhsajkm8tev89ev",
"currency_code": "USD",
"created_at": "2023-08-21T11:31:10.292Z",
"updated_at": "2023-10-21T11:32:49.597295Z",
"started_at": "2023-08-21T11:31:08.689295Z",
"first_billed_at": "2023-08-21T11:31:08.689295Z",
"next_billed_at": "2023-11-01T00:00:00Z",
"paused_at": "2023-10-21T11:32:03.228295Z",
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": null,
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"scheduled_change": {
"action": "resume",
"effective_at": "2023-11-01T00:00:00Z",
"resume_at": null
},
"items": [
{
"status": "inactive",
"quantity": 30,
"recurring": true,
"created_at": "2023-08-21T11:31:10.292Z",
"updated_at": "2023-10-21T11:32:03.234295Z",
"previously_billed_at": "2023-09-21T11:31:08.689295Z",
"next_billed_at": "2023-11-01T00:00:00Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"description": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3266",
"currency_code": "USD"
}
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01h8bxswamxysj44zt5n48njwh/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01h8bxswamxysj44zt5n48njwh/cancel"
},
"discount": null
},
"meta": {
"request_id": "fb4c8524-1337-4446-b6cc-a022cede97fa"
}
}

Resume a paused subscription

Resume a subscription to start billing for it again. You should grant the customer access to your app once resumed.

When resumed, Paddle bills for the subscription immediately. The subscription billing date is recalculated based on the resume date.

  1. Go to Paddle > Customers, and find the customer whose subscription you want to pause.
  2. Find the subscription under the Subscriptions heading and click it.
  3. From the subscription overview page, click Resume subscription
  4. Click Resume subscription on the confirmation box.

Illustration of a subscription page with a banner saying that a subscription is paused.

Resume a paused subscription using the API in two steps:

  1. Preview charging Optional
    Preview what the customer will be charged when the subscription resumes.
  2. Resume subscription
    Send a request to resume the subscription.

Preview charging Optional

Send a GET request to the /subscriptions/{subscription_id} endpoint with include=recurring_transaction_details to get a preview of what the customer will be charged on resume.

GET /subscriptions/{subscription_id}?include=recurring_transaction_details
Response (200 OK)
{
"data": {
"id": "sub_01hbb6jctayag2q3ptdftmt89n",
"status": "paused",
"customer_id": "ctm_01h8441jn5pcwrfhwh78jqt8hk",
"address_id": "add_01hbb6hmaggbtq4df34cy39e4b",
"business_id": null,
"currency_code": "USD",
"created_at": "2023-09-27T11:32:13.258Z",
"updated_at": "2023-10-27T11:32:34.158969Z",
"started_at": "2023-09-27T11:32:12.028969Z",
"first_billed_at": "2023-09-27T11:32:12.028969Z",
"next_billed_at": null,
"paused_at": "2023-10-27T11:32:34.146969Z",
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": null,
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"recurring_transaction_details": {
"tax_rates_used": [
{
"tax_rate": "0.08875",
"totals": {
"subtotal": "40000",
"discount": "0",
"tax": "3549",
"total": "43549"
}
}
],
"totals": {
"subtotal": "40000",
"tax": "3549",
"discount": "0",
"total": "43549",
"fee": null,
"credit": "0",
"balance": "43549",
"grand_total": "43549",
"earnings": null,
"currency_code": "USD",
"exchange_rate": "1"
},
"line_items": [
{
"price_id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"quantity": 10,
"totals": {
"subtotal": "30000",
"tax": "2662",
"discount": "0",
"total": "32662"
},
"product": {
"id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"name": "ChatApp Pro",
"description": "Everything in basic, plus access to a suite of powerful tools and features designed to take your team's productivity to the next level.",
"tax_category": "standard",
"image_url": "https://paddle-sandbox.s3.amazonaws.com/user/10889/2nmP8MQSret0aWeDemRw_icon1.png",
"status": "active"
},
"tax_rate": "0.08875",
"unit_totals": {
"subtotal": "3000",
"discount": "0",
"tax": "266",
"total": "3266"
},
"proration": {
"rate": "1",
"billing_period": {
"starts_at": "2023-09-27T11:32:12.028969Z",
"ends_at": "2023-10-27T11:32:12.028969Z"
}
}
},
{
"price_id": "pri_01h1vjfevh5etwq3rb416a23h2",
"quantity": 1,
"totals": {
"subtotal": "10000",
"tax": "887",
"discount": "0",
"total": "10887"
},
"product": {
"id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"name": "Voice rooms addon",
"description": "Create voice rooms in your chats to work in real time alongside your colleagues. Includes unlimited voice rooms and recording backup for compliance.",
"tax_category": "standard",
"image_url": "https://paddle-sandbox.s3.amazonaws.com/user/10889/GcZzBjXRfiraensppgtQ_icon2.png",
"status": "active"
},
"tax_rate": "0.08875",
"unit_totals": {
"subtotal": "10000",
"discount": "0",
"tax": "887",
"total": "10887"
},
"proration": {
"rate": "1",
"billing_period": {
"starts_at": "2023-09-27T11:32:12.028969Z",
"ends_at": "2023-10-27T11:32:12.028969Z"
}
}
}
]
},
"scheduled_change": null,
"items": [
{
"status": "inactive",
"quantity": 10,
"recurring": true,
"created_at": "2023-09-27T11:32:13.258Z",
"updated_at": "2023-10-27T11:32:34.159969Z",
"previously_billed_at": "2023-09-27T11:32:12.028969Z",
"next_billed_at": null,
"trial_dates": null,
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"description": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3266",
"currency_code": "USD"
}
}
},
{
"status": "inactive",
"quantity": 1,
"recurring": true,
"created_at": "2023-09-27T11:32:13.258Z",
"updated_at": "2023-10-27T11:32:34.160969Z",
"previously_billed_at": "2023-09-27T11:32:12.028969Z",
"next_billed_at": null,
"trial_dates": null,
"price": {
"id": "pri_01h1vjfevh5etwq3rb416a23h2",
"product_id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"description": "Monthly (recurring addon)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "10887",
"currency_code": "USD"
}
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01hbb6jctayag2q3ptdftmt89n/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01hbb6jctayag2q3ptdftmt89n/cancel"
},
"discount": null
},
"meta": {
"request_id": "3e7bfaba-420d-4c3c-bb59-e3046ef54058"
}
}

Resume subscription

Send a POST request to the /subscriptions/{subscription_id}/resume endpoint with an empty request body to resume the subscription right away.

Paddle creates a transaction for the new billing period. If automatically collected, Paddle attempts to collect immediately. If collection fails, the subscription becomes past_due.

POST /subscriptions/{subscription_id}/resume
Response (200 OK)
{
"data": {
"id": "sub_01hv959anj4zrw503h2acawb3p",
"status": "active",
"customer_id": "ctm_01hv8wt8nffez4p2t6typn4a5j",
"address_id": "add_01hv958rbhm5n0r6h3tmna4gtv",
"business_id": null,
"currency_code": "USD",
"created_at": "2024-04-12T12:42:27.89Z",
"updated_at": "2024-04-12T12:44:51.309Z",
"started_at": "2024-04-12T12:42:27.185672Z",
"first_billed_at": "2024-04-12T12:42:27.185672Z",
"next_billed_at": "2024-05-12T12:44:51.27Z",
"paused_at": null,
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": {
"starts_at": "2024-04-12T12:44:51.27Z",
"ends_at": "2024-05-12T12:44:51.27Z"
},
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"scheduled_change": null,
"items": [
{
"status": "active",
"quantity": 10,
"recurring": true,
"created_at": "2024-04-12T12:42:27.89Z",
"updated_at": "2024-04-12T12:44:51.311Z",
"previously_billed_at": "2024-04-12T12:44:51.27Z",
"next_billed_at": "2024-05-12T12:44:51.27Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"type": "standard",
"description": "Monthly",
"name": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 999
},
"import_meta": null,
"created_at": "2023-02-23T13:55:22.538367Z",
"updated_at": "2024-04-11T13:54:52.254748Z"
},
"product": {
"id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"name": "AeroEdit Pro",
"type": "standard",
"tax_category": "standard",
"description": "Designed for professional pilots, including all features plus in Basic plus compliance monitoring, route optimization, and third-party integrations.",
"image_url": "https://paddle.s3.amazonaws.com/user/165798/bT1XUOJAQhOUxGs83cbk_pro.png",
"custom_data": {
"features": {
"aircraft_performance": true,
"compliance_monitoring": true,
"flight_log_management": true,
"payment_by_invoice": false,
"route_planning": true,
"sso": false
},
"suggested_addons": [
"pro_01h1vjes1y163xfj1rh1tkfb65",
"pro_01gsz97mq9pa4fkyy0wqenepkz"
],
"upgrade_description": "Move from Basic to Pro to take advantage of aircraft performance, advanced route planning, and compliance monitoring."
},
"status": "active",
"import_meta": null,
"created_at": "2023-02-23T12:43:46.605Z",
"updated_at": "2024-04-05T15:53:44.687Z"
}
},
{
"status": "active",
"quantity": 1,
"recurring": true,
"created_at": "2024-04-12T12:42:27.89Z",
"updated_at": "2024-04-12T12:44:51.312Z",
"previously_billed_at": "2024-04-12T12:44:51.27Z",
"next_billed_at": "2024-05-12T12:44:51.27Z",
"trial_dates": null,
"price": {
"id": "pri_01h1vjfevh5etwq3rb416a23h2",
"product_id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"type": "standard",
"description": "Monthly",
"name": "Monthly (recurring addon)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "10000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 100
},
"import_meta": null,
"created_at": "2023-06-01T13:31:12.625056Z",
"updated_at": "2024-04-12T10:42:45.476453Z"
},
"product": {
"id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"name": "Analytics addon",
"type": "standard",
"tax_category": "standard",
"description": "Unlock advanced insights into your flight data with enhanced analytics and reporting features. Includes customizable reporting templates and trend analysis across flights.",
"image_url": "https://paddle.s3.amazonaws.com/user/165798/97dRpA6SXzcE6ekK9CAr_analytics.png",
"custom_data": null,
"status": "active",
"import_meta": null,
"created_at": "2023-06-01T13:30:50.302Z",
"updated_at": "2024-04-05T15:47:17.163Z"
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01hv959anj4zrw503h2acawb3p/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01hv959anj4zrw503h2acawb3p/cancel"
},
"discount": null,
"import_meta": null
},
"meta": {
"request_id": "7c010829-486c-4fb6-ac5d-44fbea7723d0"
}
}

Update payment method Optional

When resumed, Paddle creates a transaction to collect for the new billing period. If automatically collected, Paddle automatically attempts to collect using a payment method on file immediately on resume. This may have expired or no longer be valid, especially when resuming after a long period of time.

If collection fails, the subscription and related transaction become past_due and events for subscription past due occur. As collection is attempted immediately, if a subscription becomes past due then we recommend presenting a way for customers to update their payment method as part of your resume workflow.

Events

For a full list of events that occur when a subscription is paused or resumed, see Subscription pause or resume

Was this page helpful?