app.cardhawk.app / dashboard
Today, 9:42 AM
Cards expiring this quarter
Sorted by expiry window — earliest first
Live · synced 2m ago
Expiring soon
12cards
↑ 3 since last week
MRR at risk
$2,840/mo
↑ $390
Recovered
$1,932/mo
↑ 68% rate
CustomerExpiresMRRWindowStatus
SKSarah KowalskiMar 26$49/mo7 days
Card updated
MTMike TanakaApr 26$199/mo14 days
Alert sent
ABAnna BauerMay 26$29/mo30 days
Alert sent
LHLin HayashiMay 26$99/mo30 days
Watching
DSDevon SchwartzJun 26$49/mo45 days
Watching
PRPriya RaoJun 26$149/mo52 days
Watching
Pre-dunning · for Stripe

Stop failed paymentsbefore they happen.

Stripe retries after the payment fails. We warn your customers before their card ever expires — with a one-click fix.

No credit cardConnects in 60 secondsRead-only access
Built onStripe ConnectResendNext.jsVercelPostgres
By the numbers

The cost of waiting until the payment fails.

Most dunning tools show up after the charge has already bounced. By then the customer is annoyed, the email goes to spam, and your MRR is already gone.

0%
of SaaS revenue lost to failed payments every year
Recurly · 2024
0%
of involuntary churn caused by expired cards
Industry average · ProfitWell
0%
of customers update their card when emailed in time
CardHawk benchmark · Q1 '26
How it works

Three steps. Two minutes.

No engineering work. No sales calls. Connect Stripe and we handle the rest.

Step 01

Connect Stripe

One-click OAuth. Read-only Stripe Connect access. We identify every active subscription whose card expires in the next 30, 14, or 7 days.

↳ 60 seconds · OAuth · read-only
Step 02

Customers get a nudge

A clean email fires automatically with a one-click Stripe Customer Portal link. They update their card in seconds — not after the payment fails.

↳ Sent via Resend · branded · plain-text fallback
Step 03

Watch MRR stay safe

Dashboard shows exactly how much revenue is attached to expiring cards, who updated, and who didn’t. Involuntary churn quietly disappears.

↳ Live sync · CSV export · Slack alerts
The difference

What happens when a card expires.

Same customer. Same expiring card. Two very different outcomes.

● Without CardHawk

You find out after it breaks.

  • ×Day 0: Card silently expires. Stripe attempts the renewal — declined.
  • ×Day 0: Subscription paused. Customer locked out mid-workflow.
  • ×Day 1: Generic Stripe failure email. Half end up in promotions.
  • ×Day 7: Smart retries fail. Customer cancels — or just forgets.
  • ×Net result: Lost MRR. Lost trust. A "win-back" campaign next quarter.
vs
● With CardHawk

You fix it before they notice.

  • 30 days out: Customer gets a friendly heads-up. One-click portal link.
  • 14 days out: Gentle reminder if they haven’t updated yet.
  • 7 days out: Final nudge — branded, on your domain, opens at 62%.
  • Renewal day: New card on file. Charge clears. No interruption.
  • Net result: MRR retained. Customer stays. Slack quiet.
The email your customer gets

A nudge that doesn't feel like dunning.

Plain, branded, on your domain. Single CTA. No guilt-trip language, no "FINAL NOTICE" subject lines. Just the date, the card, and a one-click portal link.

  • Sent from your domain via Resend
  • 62% open rate · 41% click-through
  • Plain-text fallback for old clients
  • Branded with your logo and colors
"I was losing roughly $1,800 a monthto expired cards and didn't even know it. CardHawk found it in the first scan. Two weeks in, our involuntary churn is essentially zero — and I haven't written a single line of dunning code."
M
Maya Okafor — Founder, Tablecue ($24k MRR)
Security & trust

Built on the safest scopes Stripe gives us.

Pre-dunning works without a single write permission. We see only what we need to email your customers before their card expires — and nothing else.

Read-only Stripe Connect access

We request read-only Stripe Connect access — we can never create charges or move money.

No card numbers, ever

We never see or store full card numbers — only last 4 digits and expiry date.

Three emails per card. Maximum.

Your customers receive a maximum of 3 emails per card expiry window — signed with your product name, not ours.

Revoke instantly from Stripe

You can revoke our access from your Stripe dashboard instantly at any time.

ROI calculator

How much are you losing right now?

Type your MRR. We'll show you the industry-average leak from expired cards — and how much of it pre-dunning typically claws back.

$/ month
Lost to expired cards9% industry baseline · annual
$16,200/yr
Recoverable with pre-dunning68% update rate when emailed in time
$11,016/yr
Net keep with CardHawkAfter $228 / yr Launch plan
$10,788/yr
Try it now

See your leak in 60 seconds.

This is a sandbox demo with sample data. The real scan looks identical — just with your numbers.

Cards expiring ≤ 30 days
MRR at risk

Connect to reveal your numbers

Sandbox · no real connection · sample data only
How we stack up

Three options. One actually catches the leak.

The honest comparison.

Stripe aloneGeneric dunningCardHawk
Warns before card expiresNoNoYes
One-click update linkNo~SometimesYes
Flat pricing~Per-charge~% of revenueYes
Setup timeN/A~Days60 seconds
Indie-founder focusedNoNoYes
Pricing

Honest pricing. No per-seat math.

Start free. Upgrade when the savings dwarf the bill.

Free
$0
Scan your Stripe and see what's leaking. Forever free.
  • Up to 100 active subscriptions
  • 30-day expiry scan
  • Manual one-off emails
  • Read-only dashboard
Pro
$49/ month
For growing SaaS with more on the line.
  • Unlimited subscriptions
  • Custom email templates & cadence
  • Multi-workspace · team seats
  • Webhook + API access
  • Priority founder support
Frequently asked

The questions every founder asks first.

Short answers. Real ones.

Is it safe to connect my Stripe account?+
Yes — we use read-only OAuth. We never store card numbers, never create charges, never modify your data. You can revoke access from your Stripe dashboard anytime.
Will it spam my customers?+
No — we send a maximum of 3 emails per card expiry window at 30, 14, and 7 days. Plain text, professional, signed with your product name.
What if Stripe already handles this?+
Stripe retries failed payments. We warn customers before the payment ever fails. Completely different.
How long does setup take?+
60 seconds. Click Connect, authorize your Stripe account, done.
Get started

Stop losing MRR to a date on a card.

Connect Stripe in 60 seconds. See your leak today. Plug it tomorrow.