Pause subscription

Pause subscription
Pause and resume Subscriptions 2.0 subscriptions, schedule pause windows, control renewal timing, and handle pause-related webhook events

A subscription pause offers an alternative to cancellation when a customer needs a temporary break, such as during a vacation or a period when they cannot use the service.

Offering a pause can help merchants retain customers who intend to return instead of losing them to cancellation. It temporarily suspends subscription billing while preserving the customer relationship.

You can pause a subscription immediately or schedule a pause for a future date. Set a fixed end date or leave the pause indefinite. While paused, the subscription has the PAUSED status.

Pause options

A pause has a start point and a stop point. Each accepts one of the following modes:

FieldModeBehavior
start_point NOW Pauses the subscription immediately.
SPECIFIC_DATE Schedules the pause to begin at the specific date and time in start_point.starts_at . Must be in the future.
stop_point INFINITE Keeps the subscription paused indefinitely, until you resume it.
SPECIFIC_DATE Resumes the subscription at the specific date and time in stop_point.ends_at . Must be in the future.

Create or update pause

Send a request to the pause subscription API v2 endpoint to create or update a pause. There is no separate update endpoint. The request must include at least one of start_point or stop_point .

  • For a scheduled pause, you can send the field you want to change. Omit start_point to keep the current start time, or omit stop_point to keep the current end time.
  • For an active pause, you can change only stop_point . Do not include start_point .

The response returns the full subscription, including status and a pause_info object with starts_at , requested_at , and ends_at . The ends_at is absent when the subscription is paused indefinitely.
Before a pause takes effect, Change pause lets you adjust both the start and the end date. Once a pause is active, Change pause lets you adjust only the end date. To pause a subscription or edit a scheduled pause

  1. Go to Billing > Billing 2.0 > Subscriptions.
  2. Click on the subscription ID to open the details page.
  3. Click on Pause. If a pause is already scheduled, click on Change pause instead.
  4. In the Pause subscription dialog, under Pause starts, select when the pause begins:
    • Immediately: pauses the subscription as soon as you confirm.
    • On a specific date: sets when the pause begins.
  5. Under Pause ends, select when the pause stops:
    • Indefinitely: keeps the subscription paused until you resume it manually.
    • On a specific date: sets when the pause ends and the subscription resumes automatically.
  6. Click on Save to confirm.

To change the end date of the active pause

  1. Go to Billing > Billing 2.0 > Subscriptions.
  2. Click on the subscription ID to open the details page.
  3. Click on Change pause.
  4. In the Change pause end dialog, under Pause ends, select when the pause stops:
    • Indefinitely: keeps the subscription paused until you resume it manually.
    • On a specific date: sets when the pause ends and the subscription resumes automatically.
  5. Click on Save to confirm.
Once a pause is scheduled or active, the subscription details page shows a Scheduled pause or Pause section with Starts at, Ends at, and Requested at.

Remove scheduled pause or resume subscription

You can remove a scheduled pause for an active subscription or resume a subscription that is already paused.

Send a request to the delete subscription pause API v2 endpoint. If the subscription is already paused, the request resumes it immediately. The response returns the full subscription with no pause_info object.
The Resume button appears only once a pause is scheduled or active.

To resume a paused subscription

  1. Go to Billing > Billing 2.0 > Subscriptions.
  2. Click on the subscription ID to open the details page.
  3. Click on Resume.
  4. In the Resume subscription dialog, confirm the resume.

Billing and renewal timing

No renewals or charges occur while a subscription is paused. next_billing_at does not change while a pause is scheduled or active.

When the subscription resumes, next_billing_at shifts forward by the time the subscription spent paused. The subscription resumes when stop_point.ends_at is reached or when you send a resume request.

For example, a 10-day pause delays all subsequent renewals by 10 days. The pause does not cause the customer to skip any billing cycles.

Cancellation during pause

You can cancel a paused subscription immediately. Scheduling a cancellation for the end of the billing period is not available while the subscription is paused and fails with INCOMPATIBLE_STATUS .

SCHEDULED_FOR_CANCELLATION blocks a pause request only when the subscription already has a cancellation scheduled for a future date. It does not apply to subscriptions that are already cancelled or have no cancellation scheduled.

Pause restrictions

Solidgate returns an error and does not apply the pause if:

ErrorCondition
INCOMPATIBLE_STATUS Pausing requires the ACTIVE or PAUSED status. Any other status, including TRIALING , REDEMPTION , and UNPAID , fails with this error.
SCHEDULED_FOR_CANCELLATION The subscription already has a cancellation scheduled.
SUBSCRIPTION_IN_PROCESSING The subscription has a payment or other operation in progress.
INVALID_PAUSE_CONFIG The request's start_point / stop_point combination is not valid.
INVALID_PAUSE_DURATION The pause duration is outside the allowed range.
PAUSE_OUT_OF_PERIOD The requested pause dates fall outside the current billing period.
IDEMPOTENCY_KEY_REUSED The idempotency key was already used with a different request body.

Solidgate returns an error and does not resume or delete the pause if:

ErrorCondition
INCOMPATIBLE_STATUS The subscription's current status does not allow removing a pause. Only a subscription with the ACTIVE status (with a pause scheduled) or the PAUSED status can have its pause removed.
Any other status, including TRIALING , REDEMPTION , and UNPAID , fails with this error.
NOT_SCHEDULED There is no pause scheduled to remove.
IDEMPOTENCY_KEY_REUSED The idempotency key was already used with a different request body.

Handle events

The following webhooks cover the pause lifecycle:

Event typeSent when
SUBSCRIPTION_SCHEDULED_FOR_PAUSE A pause is scheduled for a future date. Updating a scheduled pause before it takes effect, such as changing start_point or stop_point , sends this event again. If the update sets start_point to NOW , SUBSCRIPTION_PAUSED is sent instead.
SUBSCRIPTION_PAUSED The subscription is paused.
SUBSCRIPTION_UPDATED You change stop_point on an active pause, or remove a scheduled pause before it takes effect.
SUBSCRIPTION_RESUMED A paused subscription is resumed.

Each webhook payload includes the full subscription object under data.subscription , with the same structure as the pause and delete-pause API responses.


Looking for help? Contact us
Stay informed with Changelog