Set Up Recurring Billing
Turn a charge into a subscription: pick a cadence, save a payment method, and let invoices generate and charge themselves each cycle.
Recurring billing in ClientCasa is invoice-native. There's no separate "subscriptions" screen — a charge with a repeating cadence becomes a recurring obligation, and a background sweep generates and charges each cycle's invoice automatically. This guide walks the whole loop: mark a charge recurring, set up the subscription on a client, and understand how charges, advance notice, and pausing work.
You'll need Stripe connected first — recurring billing charges a saved payment method on your connected account.
Mark a Charge Recurring
A charge becomes recurring when you give it a repeating Frequency.
- Go to Charges
(/dashboard/charges)and open or create a charge. - Set Frequency to Monthly, Quarterly, or Annual. (Leaving it One-time keeps it a single charge — not a subscription.)
- Set a Start date for the first billing period, and fill in the amount and the rest of the charge as usual.
- Save the charge.
That's all the charge itself needs. The subscription doesn't switch on yet — it activates when the first invoice carrying this recurring charge is sent to a client.
Set Up the Subscription on a Client
Recurring billing turns on automatically the first time you send an invoice that includes a recurring charge. Two things get established at that moment:
- The billing contact — the contact whose saved Stripe Customer and payment method the schedule will charge each cycle. This is the contact the invoice is billed to, which doesn't have to be the client's primary contact (for example, the recurring invoice can go to whoever holds the card).
- The saved payment method — the card or bank account future invoices charge off-session.
There are two ways the payment method gets saved:
- On the first invoice. When the client pays the first invoice through the hosted checkout and a Stripe Customer is attached, the payment method is saved for future off-session charges. The next cycle then auto-charges with no action from the client.
- Via a setup link. Send the client a setup link (the Set up automatic payments page at
/pay/setup/[token]). They save a card or bank account once; future invoices charge it automatically.
Once a sent invoice activates the schedule, the client's billing status becomes Active and a Next charge date appears. You can see and manage this on the client's detail page (/dashboard/clients/[id]) in the recurring billing section, which lists each recurring charge with its amount, frequency, and next date.
The connected Stripe account is stamped on the subscription at setup. If you later switch connected accounts, the saved card lives on the old account, so billing pauses with an Account mismatch warning until you reconnect that account (or reset billing for the client). This is intentional — it never silently charges the wrong account.
How Invoices Generate and Charge Each Cycle
A reconciliation sweep runs every hour and does the work — there's no fixed queue of future jobs. Each pass, for every active subscription:
- Generate. When the next billing date enters its advance-notice window and nothing is already outstanding, the sweep creates the next period's invoice. It's created already sent, so the client receives it like any other invoice, showing the line items and the date they'll be charged.
- Charge. When that invoice's due date arrives, the sweep charges the saved payment method off-session. The payment confirmation flows back through Stripe webhooks, marks the invoice paid, and advances the schedule to the next cycle.
Because the sweep reconciles against the database every hour, it's self-healing: a missed cycle, a crashed run, or a transient failure is picked up and re-driven on the next pass, and it can never double-charge a period.
Issued Before Charged (Advance Notice)
Recurring invoices are issued a few days before they're charged (3 days by default) so the client gets a heads-up. This works because the invoice's due date is the start of the period it covers — the invoice can land in the client's inbox early as a notice, but the sweep only charges it once the due date arrives. An invoice that's sent early is never charged early.
Annual renewals can be issued with a longer lead than monthly ones, so a yearly invoice gives more notice than a monthly one.
Billing Statuses
A client's recurring billing carries one of these statuses:
- Active — billing normally each cycle.
- Past due — a charge failed and ClientCasa is mid-dunning (still retrying). On a soft decline it retries on a spaced schedule; on a hard decline it stops auto-retrying and asks the client to update their card.
- Suspended — retries are exhausted; no further auto-charges until the client fixes their payment method.
- Paused — you paused billing manually (optionally until a future resume date).
- Pending setup — the schedule was reset (for example after a Stripe account switch) and is waiting for a fresh payment method on the current account. The next invoice goes out as a normal pay link, and billing resumes automatically once it's paid.
These describe the subscription, not the invoices it produces. An auto-generated invoice is just a normal invoice — open/payable while its status is sent or partial. "Overdue" is a derived condition (a sent or partial invoice past its due date with a balance), never a stored status you set.
Pause, Resume, or Stop Billing
You control a subscription from the client's detail page (/dashboard/clients/[id]):
- Pause All / Resume All pauses or resumes every recurring charge for the client. Pausing leaves the obligation in place; resuming picks billing right back up on the next due cycle.
- Per-charge controls let you pause, resume, or cancel an individual recurring charge without touching the others.
Cancelling stops future cycles for that charge; it doesn't void invoices already issued.
What the Client Can Do
When you've connected Stripe, the Stripe Customer Portal is auto-configured so the client can update their saved payment method and view their invoice history. The portal does not let the client cancel the subscription — recurring billing is self-managed inside ClientCasa, so pausing, resuming, and cancelling are owner actions on the client's detail page. If a client wants to stop or change their plan, they reach out and you make the change.
Related
- Set Up Payments — connect Stripe before enabling recurring billing.
- Create an Invoice — how invoices are built and sent.
- Set Up Payment Schedules — installment plans for one-off project work (distinct from recurring subscriptions).