← Back to the merchant guide Selling

Subscriptions & dunning

Recurring revenue is easy to start and hard to keep. This page covers the whole life of a subscription: free trials and which rails take them, the reminder before each rebill, what actually happens when a renewal fails, how a save gets recorded, and the portal where a buyer updates their own card instead of emailing you.

01 — The whole arc

The life of a subscription

A subscription is a product billed monthly or annually on your own Stripe, PayPal or Airwallex account. Most of what follows is about the parts nobody demos: the reminder before a charge, the failure after one, and the recovery.

A subscription year, including a failed renewal and its recovery A timeline: signup with an optional trial, the first charge, a reminder a few days before each rebill, a renewal that fails, a dunning period during which access continues, and either a recovery that fires a dunning-recovered follow-up or a cancellation. A subscription year — including the part that goes wrong The happy path is three boxes. Everything merchants actually ask about is in the lower half. Signs up trial optional First charge a coupon lands here Reminder 3 days before, by default Rebill full price, no coupon IT FAILS payment_failed fires your follow-up rule runs; the buyer keeps access They fix the card in the buyer portal — dunning_recovered fires Or it ends access is revoked when the subscription cancels
A failed renewal is not the end of a subscription — it opens a window. Access continues, your payment_failed rule runs, and if the buyer fixes their card a dunning_recovered follow-up fires so you can tell the save apart from a fresh sale.

02 — Doing it

Making one

A subscription is the second radio on step 1 of + New offer. Pick it, and two fields appear that a one-time offer does not have: Billed (Monthly or Yearly — there is no weekly or quarterly) and Free trial (days). Fill in a price, a currency and a delivery link, and press Create offer. Or say it to your agent.

Billed is the one field you cannot change afterwards. The Edit dialog has no interval control at all, so a live monthly plan cannot be switched to yearly — you make a second offer and move people across. Price, name, delivery and trial length all stay editable.

A subscription cannot carry a bump, an upsell or a funnel. Try it and the refusal says why: the add-on would never renew. If you want to sell a one-off extra alongside a membership, sell it as its own offer.

Making a subscriptionStep one of the New offer wizard with Subscription chosen, showing price, currency, billing interval and free trial, beside the two things a subscription cannot do and the one field that cannot be changed after creation. Making a subscription — and the one field you cannot change later A subscription is the second radio on step 1. The trial and the price you can edit afterwards; whether it bills monthly or yearly you cannot. 01 — + NEW OFFER › 1 · BASICS What are you selling? One-time Subscription ● Bundle Name Inner Circle Membership Price Currency Billed 29 NZD Monthly Free trial (days) 14 1–365 whole days · blank = no trial Delivery link https://members.yoursite.com OR SAY IT TO YOUR AI “Sell my Inner Circle at NZ$29 a month with a 14-day free trial.” card, PayPal and Airwallex carry trials — crypto does not SET ONCE — EDIT CANNOT CHANGE IT Billed: Monthly or Yearly The Edit dialog has no interval field at all. To move from monthly to yearly, make a second offer. Price and trial do edit. WHAT A SUBSCRIPTION CANNOT CARRY No order bump · no upsell · no funnel “the add-on would never renew” — the exact refusal, if you try it anyway A trial is 1–365 whole days. Zero is not “no trial” — it is refused. Leave the field blank instead. The pre-rebill reminder is not on this form: it is one account-wide setting in your business details, and it defaults to 3 days before.
Step 1 with Subscription chosen. The trial field takes 1–365 whole days and blank means none — zero is refused rather than treated as "no trial". The pre-rebill reminder is deliberately absent here: it is one account-wide setting, not a per-offer one.

03 — Getting them in

Free trials

Set a trial of 1–365 days on a subscription product. The buyer's card is taken up front and charged when the trial ends, so a trial converts by itself rather than needing a second decision.

Trials run on card, PayPal and Airwallex. Only the crypto rail sits them out, because it is one-time by construction. Each rail does it differently underneath — a vaulted card, a free-trial plan variant, a zero-value verified consent — and none of that reaches the buyer.

A trial and a coupon do not combine on PayPal or Airwallex. The checkout says so and asks the buyer to drop the code, because the trial already is the discount. On card, a coupon discounts the first invoice after the trial ends.

04 — Before the charge

The rebill reminder

GoCushy emails your subscribers before each renewal. It is on by default at three days, and you can set it to 3, 5, 7 days or off entirely under Settings → Business.

Turning it off is usually a mistake. A charge nobody expected is the most common cause of both a chargeback and an angry cancellation, and the reminder costs you the small number of people who would have cancelled anyway — earlier, and without a dispute.

05 — The part nobody demos

When a renewal fails

Cards expire. This is not an edge case; on any list of recurring customers it is a monthly event.

When a renewal fails, the payment_failed follow-up trigger fires, so whatever rule you have set — an email, a tag in your ESP — runs immediately. The buyer keeps their access while the payment is being retried, because cutting someone off the hour their card expired loses a customer you were about to keep.

The two follow-up rules a failed renewal needsThe Follow-ups table in the dashboard carrying two rules on the same offer — one on the Payment failed trigger and one on Payment recovered — beside the seven-option Trigger dropdown they were chosen from and the same two rules dictated to an agent. When a renewal fails, the only automatic part is the trigger GoCushy fires payment_failed and dunning_recovered on their own. What a buyer actually hears is the two rows you add here. DASHBOARD → INTEGRATIONS → FOLLOW-UPS Follow-ups How follow-ups work ↗ + Add follow-up When something happens on an offer — a purchase, a refund, an abandoned checkout — add the buyer to a list or tag them in your email tool, automatically. Your email tool's own automations send the emails. OFFER TRIGGER CONNECTION ACTION HEALTH ENABLED The Joinery Course NZ$49 Payment failed Kit tags: card-failed active fired 2 days ago On Edit Delete The Joinery Course NZ$49 Payment recovered Kit tags: card-fixed active never fired On Edit Delete Health is the connection's own pill — active, error, or gone if the connection was deleted — followed by “fired 2 days ago” or “never fired”. When the pill reads error, the connection's last error prints underneath it, cut off at 80 characters. + Add follow-up only appears once an email tool is connected and at least one offer exists — and never for a Support member. THE TRIGGER DROPDOWN — ALL SEVEN Trigger Purchase Refund Upsell taken Renewal Abandoned checkout Payment failed Payment recovered OR SAY IT TO YOUR AGENT “When a renewal fails on The Joinery Course NZ$49, tag them card-failed in Kit. When it recovers, tag them card-fixed.” set_followup trigger=payment_failed set_followup trigger=dunning_recovered Dunning is not automatic sympathy — the two triggers already exist; the two rules are yours to write. payment_failed fires once per dunning episode, not per retry — and neither rule sends an email: GoCushy tags, your ESP sends.
A failed renewal fires a trigger, not a rescue: GoCushy raises payment_failed and dunning_recovered on its own, but nothing reaches the buyer until you add two rows to the Follow-ups table — one per trigger, each pointing an offer at a list or tag in your email tool. Both triggers are already in the Trigger dropdown alongside Purchase, Refund, Upsell taken, Renewal and Abandoned checkout; the Health column shows the connection's pill plus when each rule last fired, so a rule that has never fired is visible as such. The + Add follow-up button only appears once an email tool is connected and at least one offer exists, and payment_failed fires once per dunning episode rather than once per retry.

If they fix it, dunning_recovered fires. That is a separate trigger on purpose: a save is not a new sale, and you want to be able to say something different to someone whose card just bounced.

These two triggers are the ones most merchants never set up. They are the difference between a subscription business that leaks and one that does not, and they are two rules in Follow-ups.

06 — Their side

What buyers can do themselves

Every buyer has a portal — a magic-link page listing everything they have bought from you, with their invoices, their access links, and a Manage subscription control.

That control is where they update a card or cancel, and it matters more than it sounds: without it, every expired card becomes an email to you, and every cancellation becomes a conversation you did not want at a moment you did not choose.

What buyers can do themselves in the GoCushy magic-link portalThree panels showing the buyer portal: the email-a-link sign-in, the purchases page with an order card, and the subscription page whose Update card button hands off to Stripe's own Customer Portal. A fourth panel lists what the buyer cannot do. What buyers can do themselves The magic-link portal at /c/{account}/portal — no password, and no card form of ours. 1 · GET IN 2 · WHAT THEY LAND ON 3 · SUBSCRIPTION PAGE WHAT THE PORTAL WILL NOT DO Your purchases Enter the email you bought with and we'll send you a link to your orders, invoices, and subscriptions. you@example.com Email me a link → Check your inbox It works for 30 minutes. No password field exists on this page. Only emailed if that address really bought. Your purchases Sign out Signed in as jane@example.com The Joinery Course paid NZ$49.00 7 Aug 2026 · The Joinery Course Access The Joinery Course → Invoice INV-00007 Manage subscription Changed your mind? Cancel & refund (14-day right of withdrawal) Records it, emails you both, starts the clock. It moves no money. Your subscription Bought from Fernwood & Co. as jane@example.com. The Joinery Course NZ$49.00 / month Update card & view invoices → Cancel subscription Canceling stops future renewals — you keep everything you've already paid for. Cancels at period end, never instantly. Change plan or upgrade — not enabled Refund themselves — withdrawal only notifies See purchases from any other merchant Manage from a renewal row — original only Reopen an expired link — they request a fresh one HANDED TO STRIPE Update card & view invoices → opens the merchant's own Stripe Customer Portal. GoCushy enables exactly three things there, and renders no card field itself: payment_method_update invoice_history subscription_cancel at_period_end A PayPal subscription shows a different button instead: Manage payment method in PayPal → Buyers update their own card and cancel without emailing you — and the card form is Stripe's, never ours. Airwallex is the exception: while the sub is current there is no card-update surface — the button returns “Your billing is up to date”.
The GoCushy buyer portal at /c/{account}/portal signs a buyer in with a 30-minute emailed link and no password, then lists that one merchant's orders with Access, Invoice and Manage subscription actions. On the subscription page, "Update card & view invoices →" redirects to the merchant's own Stripe Customer Portal, where GoCushy enables exactly three features — payment_method_update, invoice_history, and subscription_cancel at period end — so no card field is ever rendered by GoCushy; PayPal subscriptions instead show "Manage payment method in PayPal →". Buyers cannot change plan or refund themselves: the 14-day withdrawal button records the request and emails both parties but moves no money. On GoCushy-billed subscriptions the manage page also offers Pause — the rules are in the next section.

Card details are handled by your payment provider, never by a GoCushy form. We do not see them and we do not want to.

06b — Pausing

Pausing, and the rules that keep it fair

On subscriptions GoCushy bills for you (the Airwallex-billed kind), the buyer's manage page offers Pause. Stripe- and PayPal-billed subscriptions are managed through their own rails, exactly as before.

Pause stops future billing immediately. What it does not do is hand out anything free — the rules cut both ways, and they're the same for every merchant:

  • Access runs to the end of the period they paid for. Pause on day 3 of a monthly cycle and the buyer keeps access for the rest of that month — then it lapses until they resume. They get exactly what they paid for, nothing more.
  • When the paid period runs out while paused, the buyer gets one email saying so, with a resume link. One — not a drip campaign.
  • Resuming restarts billing from the day they resume. Never a catch-up charge for the paused months: a buyer who pauses for three months and comes back is charged for the month ahead, not the months behind.
  • A pause that lasts 90 days becomes a cancel. Handled exactly like a normal cancellation, so nothing dangles forever in your subscriber list.

Why offer it at all? A pause you make fair is a cancellation you didn't have. The buyer who's travelling, between jobs, or just busy keeps their history and their intent — and resumes with one click instead of re-buying from scratch.

07 — Ending one

Cancelling

Three ways: the buyer cancels in their portal, you ask your agent ("cancel jane@example.com's subscription"), or you do it from the order in your dashboard.

Cancelling stops future renewals. It does not refund what has already been charged — that is a separate decision, and a separate action.

08 — Automating around it

Follow-up triggers

Seven events can fire a rule into your email platform. The last two are the subscription ones people miss:

TriggerFires when
purchaseSomeone buys.
refundYou refund them.
upsell_takenThey accept a one-click step after the sale.
renewalA subscription rebills successfully.
abandonedThey entered an email and never paid.
payment_failedA renewal charge fails.
dunning_recoveredA failed subscription starts paying again.

09 — The rules

Limits

RuleDetail
Monthly or annualSet on the product.
Trials 1–365 daysCard, PayPal and Airwallex. Not crypto.
One trial per buyer per productEnforced where the money moves, not in the browser.
A coupon discounts the first paymentRenewals bill at full price.
Subscription prices are immutableRenewals bill the price minted with the plan. Create a new product to change it.
No bumps or upsell chainsThose attach to one-time offers.
Reminder: off, 3, 5 or 7 daysAccount-wide, default 3.

10 — When it looks wrong

If something looks wrong

A buyer says they were charged without warning

Check the reminder setting under Settings → Business. If it is off, nothing was sent.

Someone's card failed and I did not hear about it

A payment_failed follow-up rule is what tells you. Without one the event still happens and nothing announces it.

I cannot change a subscription's price

Correct, and deliberate — renewals bill the price minted with the plan, so changing it would silently alter what existing subscribers pay. Create a new product at the new price.

A buyer cancelled but still has access

Cancelling stops future renewals; access runs to the end of the period they already paid for.