How to Set Up Stripe Billing for Your White-Label Cold Email SaaS
Most agencies leave $3,000–$10,000/month on the table by not white-labeling their cold email stack. Here's the exact Stripe billing setup to turn your cold email operation into a recurring-revenue SaaS — step by step.
Most cold email agencies are running a services business when they could be running a SaaS. The difference between charging $2,500/month per client for "done-for-you outreach" versus charging $497/month for a white-labeled platform you operate? Margins, scale, and an exit multiple that actually means something.
Setting up Stripe billing for your white-label cold email SaaS is the infrastructure move that separates the agencies doing $20K/month from the ones doing $200K. I'm going to walk you through the exact setup I'd use — products, pricing tiers, webhook logic, and the counterintuitive billing decisions most people get wrong.
Why Stripe Billing White-Label Cold Email SaaS Is the Right Business Model
Here's a number that should stop you cold: the average B2B SaaS company trades at 5–10x ARR at exit. A services agency? Maybe 1–2x revenue if you're lucky. If you have 30 clients paying you $2,500/month for outreach management, that's $900K/year in revenue — but as a services business, it's worth maybe $1.5M.
Flip those same 30 clients onto a $497/month white-label platform with a $199/month "managed" add-on, and you've got $20,880/month in recurring SaaS revenue. At a 6x ARR multiple, that same business is now worth $1.5M — and you've barely changed what you're delivering.
The billing infrastructure is what makes or breaks this transition. Get Stripe set up wrong and you're manually invoicing, chasing payments, and doing upgrade math on a spreadsheet. Get it right and the whole thing runs itself.
Step 1: Structure Your Stripe Products Before You Touch the Dashboard
Most people open Stripe and immediately start clicking "Create Product." Don't. Spend 20 minutes on paper first.
Here's the product architecture I'd use for a white-label cold email platform:
| Tier | Monthly Price | Annual Price | What's Included |
|---|---|---|---|
| Starter | $97/mo | $970/yr | 3 mailboxes, 1,000 contacts, 2 campaigns |
| Growth | $297/mo | $2,970/yr | 15 mailboxes, 10,000 contacts, unlimited campaigns |
| Agency | $497/mo | $4,970/yr | 50 mailboxes, 50,000 contacts, API access |
| Enterprise | $997/mo | Custom | Unlimited everything, white-glove onboarding |
A few things to notice here:
- Annual pricing is exactly 10x monthly (2 months free). This is the industry standard and converts well.
- The jump from Growth to Agency is where you make your margin. Most clients who are serious about cold email will land at Agency tier.
- Enterprise is intentionally vague on "unlimited" — this is a sales conversation, not a self-serve tier.
The counterintuitive insight most people miss: Don't create usage-based billing for email sends. I know it feels logical — charge per email, scale with the client. But it creates billing anxiety that makes clients pause campaigns. Flat-rate billing at each tier means clients send more, get better results, and churn less. I've seen agencies switch from per-email billing to flat-rate and watch their average client LTV increase by 40%.
Stop paying monthly
Cleanmails — self-hosted cold email infrastructure.
Step 2: Set Up Products and Prices in Stripe
Once you have your architecture mapped, here's the exact Stripe setup:
Create Your Products
# Using Stripe CLI
stripe products create \
--name="Growth Plan" \
--description="15 mailboxes, 10,000 contacts, unlimited campaigns"
Or in the dashboard: Products → Add Product → Recurring
For each product, create two prices: one monthly, one annual. Set the annual price as the default — this is what shows up in your pricing table and nudges people toward the higher LTV option.
Configure Trial Periods
Give every plan a 7-day free trial. Not 14, not 30 — 7 days. Here's why: 14-day trials are long enough that people forget they signed up. 7-day trials create urgency. You want someone to set up their first campaign within 48 hours of starting a trial, which means they need to feel the clock ticking.
In Stripe, set this at the Price level:
- Trial period days: 7
- Collect payment method upfront: Yes (critical — no card, no trial)
Step 3: Build the Subscription Webhook Logic
This is where most agencies building a white-label cold email SaaS fall down. They set up Stripe, collect payments, and then manually provision access. That's a disaster at scale.
You need to handle at minimum these Stripe webhook events:
const relevantEvents = [
'customer.subscription.created', // Provision access
'customer.subscription.updated', // Handle upgrades/downgrades
'customer.subscription.deleted', // Revoke access
'invoice.payment_succeeded', // Confirm renewal
'invoice.payment_failed', // Trigger dunning
'customer.subscription.trial_will_end' // Send trial expiry warning
];
For each customer.subscription.created event, your logic should:
- Create the user account in your platform
- Set their mailbox limit based on the price ID
- Send a welcome email with login credentials
- Trigger your onboarding sequence
If you're using webhooks to connect your cold email stack with other tools, you can pipe these Stripe events directly into your CRM or onboarding automation.
Handle Dunning Properly
Stripe's built-in Smart Retries will retry failed payments 3–4 times over 2 weeks. Turn this on. But also build your own dunning email sequence:
- Day 1 after failure: "Your payment didn't go through — update your card"
- Day 3: "Your campaigns are paused — here's what you're missing"
- Day 7: "Your account will be deleted in 7 days"
The "campaigns are paused" framing on day 3 converts dramatically better than a generic payment reminder. People don't care about paying a bill — they care about their pipeline drying up.
Step 4: Build Your Pricing Page That Converts
Stripe has a hosted pricing table you can embed with two lines of code:
<script async src="https://js.stripe.com/v3/pricing-table.js"></script>
<stripe-pricing-table
pricing-table-id="prctbl_YOUR_ID"
publishable-key="pk_live_YOUR_KEY">
</stripe-pricing-table>
This handles plan selection, checkout, and trial activation automatically. For a white-label setup, you'll want to customize the colors to match your brand — Stripe's no-code editor handles this.
One strong opinion: Don't put your pricing behind a "Contact Us" wall unless the plan is genuinely Enterprise. Forcing people to talk to sales for a $297/month product just adds friction. Self-serve SaaS wins because of zero-friction conversion.
Step 5: White-Label the Billing Experience
This is the detail most people skip, and it kills the illusion of a real SaaS product. If your clients are paying "Stripe" or seeing your agency name on their credit card statement, they know you're not a real software company.
Fix this in Stripe under Settings → Business Settings:
- Statement descriptor: Your white-label brand name (max 22 chars)
- Customer portal branding: Upload your logo, set brand colors
- Email templates: Customize all transactional emails with your brand
Enable the Stripe Customer Portal so clients can self-serve their billing — update cards, download invoices, pause subscriptions. This saves you hours of support time every month.
For the portal URL, set up a subdomain like billing.yourbrand.com and redirect it to your Stripe portal link. It takes 5 minutes and makes everything feel polished.
Step 6: The Upgrade Flow That Actually Works
Here's where you make real money: in-app upgrade prompts at the exact moment of friction.
When a user hits their mailbox limit, don't just show an error. Show a modal:
"You've hit your 3-mailbox limit. Upgrade to Growth for $297/month and add 12 more mailboxes — your campaigns won't skip a beat."
Stripe's Payment Links make this dead simple. Create a Payment Link for each upgrade path, deep-link to it from your in-app modals. No custom checkout code required.
The best upgrade moments to instrument:
- Hitting mailbox limit
- Hitting contact limit
- Trying to access a locked feature (API, advanced reporting)
- After a campaign gets a reply rate above 4% (they're winning — upsell them more capacity)
If you're running a platform like Cleanmails as your underlying infrastructure, you already have sender rotation and cadences built in — which means your Growth and Agency tier clients are getting genuinely better deliverability than they'd get from any subscription tool. That's your upsell story.
The Pricing Mistake That Costs Agencies $50K/Year
I've watched agencies build beautiful white-label cold email SaaS products and then price them at $47/month to be "competitive." This is a catastrophic mistake.
Low prices don't attract budget clients — they attract clients who don't value the service. A $47/month client will demand more support, churn faster, and refer you to other $47/month clients. A $297/month client assumes you're serious, onboards themselves, and refers you to $497/month clients.
If you're worried about subscription tool fatigue from your clients, the answer isn't lower prices — it's better ROI storytelling. Show them their reply rates, their pipeline generated, their cost-per-meeting. When a client can see that $297/month generated 8 meetings last month, they never question the invoice.
Checklist: Your 30-Minute Stripe Setup
- Map your 3–4 pricing tiers on paper before touching Stripe
- Create Products with monthly and annual Prices (annual as default)
- Enable 7-day trial with card collection required
- Set up webhook endpoint and handle at minimum 6 event types
- Enable Smart Retries + build 3-email dunning sequence
- Embed Stripe Pricing Table on your marketing site
- Customize statement descriptor, portal branding, email templates
- Set up
billing.yourbrand.comsubdomain for Customer Portal - Create Payment Links for each upgrade path
- Instrument in-app upgrade triggers at limit moments
Before you start sending through your white-label platform, make sure your deliverability infrastructure is solid. Run your domains through the SPF/DKIM/DMARC Checker and clean your contact lists with the CSV Email List Cleaner — billing infrastructure means nothing if your emails are landing in spam.
The Bottom Line
The agencies winning in 2025 aren't the ones with the best outreach copy or the largest lead lists. They're the ones who built recurring revenue infrastructure on top of their expertise. Stripe billing for your white-label cold email SaaS isn't a technical project — it's a business model transformation that takes less than a day to execute.
Set it up once, price it confidently, and stop trading hours for dollars.
Related:
Stop paying monthly for cold email.
Cleanmails — self-hosted, unlimited everything, $200 one-time.



