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:
| Field | Mode | Behavior |
|---|---|---|
| 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
- 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.
- Go to Billing > Billing 2.0 > Subscriptions.
- Click on the subscription ID to open the details page.
- Click on Pause. If a pause is already scheduled, click on Change pause instead.
- 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.
- 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.
- Click on Save to confirm.
To change the end date of the active pause
- Go to Billing > Billing 2.0 > Subscriptions.
- Click on the subscription ID to open the details page.
- Click on Change pause.
- 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.
- Click on Save to confirm.
Remove scheduled pause or resume subscription
You can remove a scheduled pause for an active subscription or resume a subscription that is already paused.
To resume a paused subscription
- Go to Billing > Billing 2.0 > Subscriptions.
- Click on the subscription ID to open the details page.
- Click on Resume.
- 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:
| Error | Condition |
|---|---|
| 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:
| Error | Condition |
|---|---|
| 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 type | Sent 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.