Subscription billing for consumables brands

Your billing flatlined
on Recharge.
We bring it back to green.

RefillKit runs subscribe & save on your Shopify store, then automatically recovers the failed payments your old app quietly wrote off. Every declined charge gets retried on a +1 · +3 · +5 · +7 day ladder, the customer is prompted to update their card, and the charge that failed gets collected instead of written off.

payment declined$48.00+1d+3d+5d+7drecovered & rebilled+$48.00
Recovered for merchants this month$0.00
  • Built on Shopify’s subscription APIs
  • GDPR data-request & redaction webhooks
  • Storefront widget under 10 Lighthouse points — no speed hit

The leak

A declined card isn’t a lost customer. Most stores treat it like one.

When a subscription charge fails — an expired card, a momentary bank decline — the order just doesn’t happen. No retry, no email, no order. The customer never meant to leave; the revenue leaves anyway, and it shows up later as “churn.” RefillKit treats every failed charge as recoverable until proven otherwise.

The recovery ladder

One failed charge, retried until it clears.

This is the one part of RefillKit that really is a sequence, so it’s the one place we number things. Retries fire in your shop’s morning window (9–11am shop time, on a schedule you set), spaced so you never burn a customer’s patience. Follow a single $48.00 charge down the rungs.

  1. +1d

    First retry

    We re-run the same charge the next morning. Many declines are temporary and clear here.

    retrying
  2. +3d

    Retry + update-card email

    Still failing, so the customer gets a “your card needs updating” email with a secure, Shopify-hosted link. They fix it in two taps — RefillKit never touches card data.

    recovered · +$48.00
  3. +5d

    Third retry

    If the card still isn’t updated, one more attempt. Hard declines skip the wait and go straight to the card-update path instead of burning retries.

    scheduled
  4. +7d

    Final retry, then your call

    The last attempt. If it can’t be saved, the contract does exactly what you chose — pause, cancel, or flag — never something surprising.

    your rule

Every offset, the fire window, the number of retries, and the final action are merchant settings with safe defaults. The whole ladder is idempotent, so a replayed webhook can never double-charge.

What you leave behind, and what you take with you.

Leave behind

  • Failed payments that silently churn
  • Support tickets for skips, swaps, and pauses
  • A portal customers complain about
  • Revenue your app quietly wrote off
  • Guessing where the money went

Take with you

  • A retry ladder that books recovered revenue
  • Customers who skip, swap, and pause themselves
  • A portal in their own account, no login wall
  • A recovered-revenue line you can point to
  • MRR, churn, and save rate on one screen

The customer portal

The tickets that never reach you.

Customers manage their own subscription right inside their Shopify account — every change runs through RefillKit, shop-scoped and audited, so the box that runs out gets refilled on a rhythm they control. When someone moves to cancel, they see one targeted save-offer first, set by you.

See it on your store →
  • Skip nextone box, no email to you
  • Change frequencyevery 30, 45, or 60 days
  • Swap the variantfrom a list you curate
  • Change quantitymore coffee, less often
  • Pausegoing travelling, back later
  • Update paymentShopify-hosted, secure
  • Cancel — with a save-offera discount, swap, or pause, set per reason

The statement

Every figure, reconciled against the raw events.

Recurring revenue is a ledger, so we set it like one — integer cents, currency-aware, cents lined up in a column. The figures below are an example month, not a forecast.

Recovered this month
$12,840.00
Monthly recurring revenue
$148,920.00
Active subscriptions
3,114
Churn
2.7%
Skip rate
6.1%
Save rate on cancels
31%

MRR, active, new, churned, recovered, skip rate, and save rate — exportable to CSV.

Switching

Move off Recharge or Bold. We do the move.

Switching subscription apps is the scary part, so we made it reversible. You don’t flip a switch and hope.

  1. Bring your export

    Upload a Recharge or Bold CSV. We map the columns for you with a preset, and never import raw card data.

  2. Read the report

    A row-by-row validation report flags anything off — bad dates, unknown variants, missing customers — before a single contract is created.

  3. Dry run, then execute

    See exactly what will be created, then build the contracts paused, paced to stay inside Shopify’s limits.

  4. Roll back if it’s wrong

    Nothing bills until you activate. Don’t like what you see? One-click rollback, no charges, no mess.

White-glove migration is free on every plan. Tell us your store and we’ll run it with you.

Pricing

Plain pricing, billed on your Shopify invoice.

14-day free trial on every plan. No separate card — it’s on your regular Shopify bill. Usage is a small percentage of the subscription revenue we process for you.

Starter

$19/mo

For stores getting their first subscriptions going.

  • Subscribe & save plans
  • The full recovery ladder
  • Customer self-serve portal
  • Free migration
Start free trial

Pro

$149/mo + 0.5% usage

For high-volume stores that live in the numbers.

  • Everything in Growth
  • Lower usage rate
  • Priority migration & support
  • Dunning & ops health checks
Start free trial

Straight answers

The questions merchants actually ask.

Will the widget slow my storefront?

The product-page widget is Liquid-first with under 10KB of JavaScript and no external requests. Measured against a clean product page, it costs less than 10 Lighthouse points — effectively no hit to your page speed or SEO.

What happens to a failed payment, exactly?

It enters the recovery ladder: retries at +1, +3, +5, and +7 days in your morning window, a card-update email along the way, then your chosen final action. Hard declines skip straight to the card-update path.

Do you ever touch card data?

Never. Payment methods are Shopify references only; card updates happen through Shopify’s own hosted flow. We can’t see a card number, so we can’t leak one.

How does billing work for me, the merchant?

Through Shopify. Your plan and usage appear on your regular Shopify invoice — no separate card to manage, and a 14-day free trial before anything is charged.

Is the migration from Recharge safe?

It’s reversible. You get a validation report and a dry run before anything is created, contracts are built paused, and nothing bills until you activate. One-click rollback up to that point.

Is it GDPR-ready for App Store review?

Yes. The three GDPR webhooks are implemented, PII is redacted on request, and access tokens are encrypted at rest. It’s built to pass review, not to scrape by.

Keep the heartbeat green.

Turn on RefillKit, recover the next failed charge, and stop writing off revenue you can still collect.