Stripe doesn't have a "suspend" button. When a client stops paying and you need to freeze their subscription, you reach for the API docs and discover that Stripe calls it "pause collection." That semantic gap creates real confusion for B2B businesses that need to enforce payment terms — not just offer a friendly break.
This guide covers exactly how Stripe's pause mechanism works, where it falls short for billing operations, and how PayRequest's subscription suspension feature fills the gap. If you manage recurring clients — hosting, agencies, SaaS, service businesses — you'll walk away knowing when to pause, suspend, or cancel, and how to automate the entire workflow.
What Does "Suspend" Mean for a Stripe Subscription?
Stripe's subscription lifecycle has three official states: active, paused, and canceled. There is no "suspended" status in Stripe's data model. When billing teams say "suspend," they typically mean something more forceful than a voluntary pause — they mean an admin-enforced freeze triggered by non-payment or a policy violation.
Understanding the distinction matters because each action signals different intent to your customer and triggers different operational workflows.
Pausing is voluntary. The customer asks for a break — perhaps they're traveling for a month or seasonally scaling down. You stop collecting payments, and the customer knows they can resume anytime. Stripe supports this natively through `pause_collection`.
Suspending is enforced. You freeze the subscription because the customer hasn't paid, has violated terms, or needs to resolve an account issue before service continues. The customer doesn't choose this — you impose it. Stripe doesn't have a dedicated action for this, which is why teams cobble together workarounds.
Canceling is permanent. The subscription ends, the customer loses access, and reactivation requires creating a new subscription entirely. This is Stripe's nuclear option, and it's often overused when suspension would be more appropriate.
For B2B billing — where client relationships span months or years — canceling over a missed payment destroys value. Suspension preserves the relationship while enforcing payment discipline.
How to Pause a Subscription in Stripe
To pause invoice collection on a Stripe subscription, you use the `pause_collection` parameter on the subscription object. This stops Stripe from generating new invoices while keeping the subscription record intact.
```bash curl https://api.stripe.com/v1/subscriptions/sub_1234567890 \ -u sk_live_your_key: \ -d "pause_collection[behavior]=void" ```
The `behavior` parameter controls what happens to invoices during the pause:
| Behavior | What Happens | Best For |
|---|---|---|
| `void` | Invoices are voided (deleted) | Voluntary pauses — no charge intended |
| `mark_uncollectible` | Invoices are created but marked uncollectible | Tracking lost revenue during suspension |
| `keep_as_draft` | Invoices are created as drafts | Resuming with back-payment when reactivated |
For B2B suspension due to non-payment, `mark_uncollectible` or `keep_as_draft` makes the most sense. You want a record of what was owed, and `keep_as_draft` lets you finalize those invoices when the client pays up.
You can also pause from Stripe's web interface:
- Navigate to Customers → [Customer] → Subscriptions
- Click the subscription you want to pause
- Select Actions → Pause payment collection
- Choose the behavior (void, mark uncollectible, or keep as draft)
- Optionally set a resume date
- Click Pause payment collection
This works for one-off situations, but it doesn't scale when you're managing dozens of B2B clients with varying payment terms.
The Limitations of Stripe's Pause for B2B Billing
Stripe's `pause_collection` was designed for consumer SaaS — think Netflix users pausing their account over summer. It was not designed for B2B billing operations where suspension is a collections tool, not a customer convenience feature. Here's where it breaks down.
When you pause collection in Stripe, the customer receives no email, no webhook-triggered message, nothing. They might not even realize their subscription has been suspended until their access is revoked. For B2B relationships, this silence is damaging. Clients need to know why billing stopped, what they owe, and how to fix it.
You could build notification logic yourself using Stripe webhooks (`customer.subscription.paused`), but that means maintaining email templates, delivery infrastructure, and retry logic — operational overhead that compounds across clients.
Stripe's pause is a one-way switch. You turn it on, and it stays on until you manually resume the subscription or a scheduled resume date arrives. There's no built-in mechanism to say "reactivate this subscription when the outstanding invoice is paid."
For B2B suspension workflows, auto-reactivation is essential. The goal isn't to punish the client — it's to create a clear cause-and-effect: pay the overdue invoice, and service resumes automatically. Without this, your team becomes the bottleneck, manually checking payment status and toggling subscriptions back on.
Stripe doesn't record *why* a subscription was paused. Was it non-payment? A contractual dispute? A temporary project hold? You'd need to store this context in metadata fields or an external system. For businesses that need an activity log of billing actions — which is most regulated industries and any company with multiple team members — this gap creates compliance and accountability issues.
Stripe Native vs PayRequest Suspension
PayRequest doesn't replace Stripe — it adds billing operations on top. You connect your Stripe account, and PayRequest becomes the control layer for subscriptions, invoicing, and client management. Here's how the two approaches compare for suspension specifically.
| Capability | Stripe (pause_collection) | PayRequest Suspension |
|---|---|---|
| Trigger | Manual API call or Dashboard | One-click from subscription view |
| Customer notification | None | Automatic email with reason and next steps |
| Reason tracking | Not supported (metadata only) | Built-in reason field, logged in activity timeline |
| Auto-reactivation | Not supported | Resumes when outstanding invoice is paid |
| Audit trail | Basic event log | Full activity log with user, timestamp, reason |
| Access control | Requires API key or Dashboard access | Team members with appropriate permissions |
| Customer visibility | None | Visible in customer portal with payment link |
| Dunning integration | Separate configuration | Integrated with dunning workflows |
| Back-payment handling | Manual draft invoice finalization | Automatic invoice with payment link |
| Bulk operations | API scripting required | Bulk suspend/resume from dashboard |
The key difference is operational completeness. Stripe gives you a primitive (`pause_collection`); PayRequest gives you a workflow (suspend → notify → hold → auto-reactivate).
How PayRequest Subscription Suspension Works
PayRequest's suspension feature is designed for the B2B billing scenario: a client hasn't paid, and you need to freeze their subscription until they settle the balance. The entire flow is automated.
From the subscription detail view, click Suspend. You'll enter a reason (e.g., "Invoice #INV-2026-042 overdue 14 days") and confirm. The subscription status changes to "Suspended" immediately.
PayRequest sends an automatic email to the customer explaining that their subscription has been suspended, the reason, and a direct payment link for the outstanding balance. The email is professional and clear — no ambiguity about what happened or what to do next.
While suspended, no new invoices are generated. If you use PayRequest's customer portal, the customer sees their subscription status as suspended with a clear "Pay now to reactivate" call to action. This creates urgency without requiring your team to chase them.
When the customer pays the outstanding invoice — whether through the emailed link, the customer portal, or a manual payment — PayRequest automatically resumes the subscription. The next billing cycle starts from the reactivation date, and the customer receives a confirmation that their service is active again.
This four-step flow replaces what would otherwise require Stripe API calls, custom webhook handlers, email service integration, manual monitoring, and human intervention to resume. For a business managing 50+ recurring clients, the time savings are substantial.
When to Suspend vs Pause vs Cancel
Choosing the right action depends on the situation. Using the wrong one creates unnecessary friction — canceling when you should suspend loses clients, and pausing when you should suspend enables non-payment.
| Scenario | Action | Why |
|---|---|---|
| Client requests a 1-month break | Pause | Voluntary, time-bound, client-initiated |
| Invoice 14+ days overdue | Suspend | Enforces payment terms, preserves relationship |
| Client disputes a charge | Suspend | Freezes billing while dispute is resolved |
| Client requests permanent end | Cancel | Clean break, no intent to resume |
| 90+ days overdue, no response | Cancel | Suspension hasn't worked, relationship is over |
| Seasonal business (e.g., ski rental) | Pause | Predictable, scheduled, both parties agree |
For B2B billing, adopt a suspend-first mindset. When a client misses a payment, your dunning sequence should escalate from reminders to suspension before ever reaching cancellation. Here's a typical escalation:
- Day 1–3: Automated payment reminders (email + customer portal notification)
- Day 7: Second reminder with late fee warning
- Day 14: Subscription suspended with notification
- Day 30: Final notice — cancel in 7 days if unpaid
- Day 37: Subscription canceled
This graduated approach recovers more revenue than jumping straight to cancellation. Most B2B clients who reach the suspension stage pay within a week — the suspension itself is the wake-up call they needed.
Getting Started with Subscription Suspension
Setting up suspension workflows in PayRequest takes minutes:
- Sign up at payrequest.app/register — 14-day free trial, all features included
- Connect [Stripe](/payment-providers/stripe) — PayRequest syncs your existing subscriptions
- Configure dunning — Set your escalation timeline in dunning settings
- Suspend as needed — One-click suspension with automatic notification and reactivation
PayRequest's Business plan at €20/month includes unlimited subscriptions, suspension workflows, customer portal, dunning, and activity logging. There are no per-subscription fees and 0% platform commission — you only pay Stripe's processing fees.
Your next step: Start your free trial and see how subscription suspension transforms your collections process. Your clients will appreciate the clarity, and your cash flow will reflect it.
Frequently Asked Questions
Stripe doesn't have a native "suspend" action. The closest equivalent is `pause_collection`, which stops invoice generation on a subscription. However, Stripe's pause lacks customer notifications, reason tracking, and automatic reactivation — features that B2B businesses need for enforced suspension. PayRequest adds a true suspension workflow on top of Stripe with automated emails, audit logging, and auto-resume when the outstanding balance is paid.
To reactivate a paused subscription in Stripe, you remove the `pause_collection` setting via the API (`pause_collection: ''`) or click "Resume payment collection" in the Dashboard. This is a manual action — Stripe won't reactivate automatically when a customer pays. PayRequest solves this by auto-reactivating subscriptions the moment the outstanding invoice is settled.
No. When you pause a subscription in Stripe, it stays paused until you manually resume it or a pre-set resume date arrives. There is no mechanism to tie reactivation to invoice payment. You need to monitor payments yourself and toggle subscriptions back on. PayRequest's suspension feature handles this automatically — pay the invoice, and the subscription resumes instantly.
It depends on the `pause_collection` behavior you choose. With `void`, invoices are deleted entirely. With `mark_uncollectible`, invoices are created but marked as uncollectible for revenue tracking. With `keep_as_draft`, invoices are created as drafts that you can finalize later. For B2B suspension, `keep_as_draft` is usually best because it preserves a record of what the client owes.
Stripe allows you to pause a subscription indefinitely or until a specific date. There is no maximum pause duration. However, leaving subscriptions paused for months creates operational debt — you lose visibility into which clients are active. A better approach is to set clear timelines: suspend for non-payment, give 30 days to resolve, then cancel if unresolved.
Pause (or suspend) first. Cancellation is permanent — the customer must create a new subscription to restart, which means new payment authorization, potential pricing changes, and friction. Suspension preserves the subscription record, maintains the billing relationship, and gives the customer a clear path back. Reserve cancellation for clients who are 90+ days overdue or have explicitly ended the relationship.
Not in Stripe directly — Stripe doesn't provide a customer-facing portal that shows suspension status. With PayRequest's customer portal, suspended customers see their subscription status, the reason for suspension, and a direct "Pay now" button to reactivate. This self-service approach reduces support tickets and speeds up payment resolution.
Use PayRequest's dunning feature to create an automated escalation sequence. Set rules like: send reminders at day 3 and 7, suspend at day 14, send final notice at day 30, and cancel at day 37. The entire flow runs automatically — no manual intervention needed until you decide to make exceptions for specific clients.
