Running the week
Packs, subscriptions and failed payments
Add a billing plan, send and resend payment links, record cash, and chase a failed card.
How to sell session packs and monthly subscriptions, send and resend payment links, record cash payments, and chase a failed card without an awkward conversation. Everything about getting paid as a personal trainer, in one place.
Every client's billing lives in the Billing section of their row in My Clients, and on the Billing & Sessions tab of their workspace. A plan is either collected by Stripe, where the client's card is charged automatically, or Manual, where you record the money as it arrives. Problems surface on your dashboard under Needs Attention and on My Analytics.
Add a plan
- Open My Clients, click the client's row to expand it, and find Billing.
- Click + Add Billing Plan. Choose In person or Online, then Subscription, Pack or Program, then Stripe or Manual / off-platform.
- Fill in the price and details. A subscription has sessions per period and a billing period. A pack has a number of sessions and an optional expiry. A program has a start, a length in weeks, a price, and optional instalments.
- Click Generate Payment Link for Stripe, or Create plan for manual.
- For Stripe, click Email or Copy on the Payment link created panel. For manual, record the first payment if it has already been made, or click Skip — record later.
The statuses on a plan card
- Awaiting payment link: the client has not paid yet. Resend the link if it is more than a day old.
- Card on file · billing scheduled: the client has paid and the first charge is set for a later date. Nothing to do.
- Active, Past due, Paused (away), Completed, Expired, Cancelled, Superseded.
- A Manual badge means TrainerStack tracks sessions but does not charge the card.
Resend a link, record cash, change or stop a plan
- Copy Link or Email Link on an unpaid plan mints a fresh link. Stripe links expire after 24 hours.
- Record payment on a manual plan logs cash or a bank transfer against a cycle. View all opens the full ledger with refunds.
- Edit plan changes the price or sessions from a chosen date. The old plan becomes Superseded.
- Pause billing stops Stripe collecting until you resume or until a date you set. Reschedule next billing moves renewals to a new date. Cancel subscription offers end of period, a chosen date, or immediately. Immediate cancellation cannot be undone.
- Email update link emails the client a branded link to change the card on file. You never see the card number.
When a payment fails
- You get a "Payment Failed" notification. The plan shows Past due and the dashboard row Failed payments appears.
- Open My Analytics and click the row under Failed payments.
- In the Failed payment modal, click Email client to fix payment. The client receives a branded email with a secure link to pay the outstanding amount, or to pay with a different card.
- When they pay, the plan returns to Active on its own.
What you should see
- The client's row shows sessions as completed over expected for the period, and pack credits remaining.
- My Analytics tiles for gross volume, net profit, MRR and active subscribers update as payments land. Use Export revenue for a CSV with Stripe fees for your accountant.
- Packs running low on the dashboard lists packs with three or fewer credits left.
If it is not working
- "Connect your Stripe account in Settings before adding a Stripe-collected plan". Connect Stripe, or choose Manual. See Connect Stripe.
- "This client has no card on file yet, so there's nothing to update." They have never completed a payment. Send a payment link instead of an update link.
- The client paid but the plan still says Awaiting payment link. Give it a minute and refresh. If the link they used was more than a day old it had expired. Send a fresh one.
- The session count looks wrong, or the client shows as underbooked. Sessions must be marked complete on the Calendar. Also check the dashboard row Appointments not linked to a plan. On the client's Billing section click Link to current plan.
- "Links awaiting client" rows are not clickable. Resend from the client's Billing section.
- A manual plan shows outstanding money I have received. Click Record payment on the card. Deleting a recorded payment only removes the record. It does not reverse money.
- The client cancelled from Stripe's portal. You get a "Subscription cancelled" notification. Add a new plan when they return.
- Immediate cancel left sessions on the calendar. A banner offers Link to current plan or Delete them for sessions still attached to the old plan.
Still stuck? Use Help → Report a problem in the dashboard, or email support@trainerstack.pro.