Stripe fails a payment
RebillKit receives invoice.payment_failed through your own webhook endpoint and opens one case for that invoice.
RebillKit listens to invoice.payment_failed, sends from your domain through Resend, and stops the moment the invoice is paid. Your Stripe key, your Resend account, your money.
No card required to connect. Keys are encrypted before they touch disk.
Your card ending 4242 did not go through for the March invoice...
Product preview · Sample tenant
Move the slider. The arithmetic is the argument, and the assumptions are on the table.
6% is the middle of the 5–9% range Stripe merchants report. Your dashboard has your real number, and the recovery share is an assumption, not a benchmark.
Arithmetic with visible assumptions, not a promise of recovery.
Three ways to handle a failed payment. The difference is who owns the keys, the sender and the money.
| What changes | RebillKit | Dunning suites with revenue share | Stripe default |
|---|---|---|---|
| Price | $99 once, then $0. Founder Pass for the first 50. | $150–500+/mo plus revenue share. | Free, native emails. |
| Revenue share | 0%. We never touch your payouts. | 1–5% of recovered revenue. | Not applicable. |
| Emails | 3 plain-text notes written like a founder. | HTML templates with a corporate tone. | Generic automated reminders. |
| Sending domain | Your verified Resend domain. | Their shared sending infrastructure. | Stripe's domain, no control over the sender. |
| Card update | Fresh portal session on every click, no login. | Pre-generated links that can expire. | Login required, several steps. |
| Data and keys | Your keys, your data, your Stripe account. | They store your Stripe data. | Stripe owns the flow. |
| Setup | A restricted key and one webhook. | OAuth review and a longer onboarding. | Native, but limited. |
Competitor pricing is a public range at the time of writing and changes often. We do not name products we cannot verify.
RebillKit receives invoice.payment_failed through your own webhook endpoint and opens one case for that invoice.
Day 0, day 3 and day 7, sent from your domain through your Resend account. Plain text, no tracking pixel.
invoice.paid cancels the remaining notes and attributes the recovered amount to the case. No duplicate emails.
One price for the first 50 founders. One monthly plan after that. No revenue share.
$99one time
$29per month
Keys are encrypted at rest with AES-256-GCM, a per-tenant IV and an auth tag. After saving, they never return to the browser: you only see a mask such as rk_live_••••4921. They are not written to logs, and the master key lives in Secret Manager.
A plain note from your verified domain reads like a message from a person, not a receipt from a company. RebillKit sends no tracking pixel, so we never claim an engagement metric we cannot measure.
The email contains an opaque recovery link. When it is clicked, RebillKit creates a fresh Stripe Billing Portal session for payment method update at that moment. There is no pre-generated URL to expire and no password to remember.
RebillKit listens for invoice.paid and subscription status events. The moment Stripe confirms the payment, pending reminders are cancelled. The recovery counter only credits invoices verified as paid after at least one email was sent.
No. Zero revenue share. You pay $99 once for the Founder Pass or $29 per month for Pro. Every recovered dollar or euro stays in your Stripe account.
The Founder Pass is capped at 50 verified purchases with an atomic counter. After seat 50, checkout switches to Pro Monthly. The public counter reads the real Firestore value, never a browser-side estimate.