Running the week
Move a client to no plan or stop a per-session charge
End a subscription, pack or program so the client is on no plan, stop an $80-a-session style charge, cancel payment links you have sent, and refund a charge that already went through.
How to take a personal training client off their payment plan and put them on no plan, stop a weekly or per-session charge, cancel payment links you have already sent, and refund a payment that went through, without losing the client, their history or their sessions.
"No plan" and "Casual" are the same thing, and neither is a setting you switch on. A billing plan is a Subscription or a Pack (for in-person clients), or a Subscription or a Program (for online clients), each collected by Stripe or Manual / off-platform. Casual is what you pick when adding a client who has no plan at all. An existing client is casual, on no plan, when none of their plans is still running: nothing Active, Past due, Paused or Awaiting payment link. Nothing charges them automatically, and any session you book for them is priced and paid on its own as a casual session. Their Billing section shows a Pay-as-you-go card marked No plan once they have casual sessions, or "No billing plans yet." if there is nothing at all.
So to move a client to casual, you end the plan they are on. There is no Casual choice in + Add Billing Plan, because casual means having no plan. The old plan stays in their Billing section as history (Cancelled, Completed or Expired), and their payments, sessions and app account are untouched.
Do not change the client's status to Cancelled to stop billing. That status is for a client who is leaving: it takes them out of chat and stops their notifications.
Find what is charging them
Open My Clients, click the client's row to expand it and find Billing (or open their full profile and the Billing & Sessions tab). In the trainer app, open My Clients, tap the client and open the Billing tab.
- A card under Subscriptions. This is what charges every week, fortnight, four weeks or month. A subscription is priced per session, so "$80 per session" is usually a subscription: the cycle price is the price per session times the sessions per cycle, and it is charged on schedule whether or not the sessions happen. Go to End a subscription below.
- A card under Packages. A pack is paid once, up front. Go to End a pack.
- A card under Programs. Go to End a program.
- A card that says Awaiting payment link. The client has not paid yet. Go to Cancel a plan the client has not paid.
- Only a Pay-as-you-go card marked No plan. The client is already on no plan, and the $80 comes from casual sessions you book. Nothing is charged automatically; each session is paid through its own link or recorded by you. Go to Stop charging per session on casual sessions.
End a subscription
On the web:
- On the subscription card, click Cancel subscription.
- Pick how it ends:
- End of current period: the client is billed for the cycle they are in and nothing after it. This is the default.
- On a specific date: pick the last date. Billing stops on that date.
- Immediately: cancels in Stripe straight away, with no further charges. It cannot be undone.
- Click Cancel at period end, Schedule cancellation or Cancel immediately. For Immediately, click again to confirm.
The status gets (ending soon), or the card shows Cancels on: with the date. When that date passes the plan shows Cancelled and the client is on no plan. Nothing already paid is refunded: see Refund a charge that already went through if you need to give money back.
The same buttons work on a Manual subscription. Nothing is charged to a card there anyway; cancelling stops TrainerStack expecting the payments.
In the trainer app:
- Open the client's Billing tab and tap Manage plan on the subscription.
- Under Ending the plan, pick Cycle end, On a date or Now.
- Tap Cancel this plan. Now asks you to confirm.
Changed your mind before the date? In the trainer app, Manage plan shows Keep the plan running while a cancellation is scheduled, and tapping it calls the cancellation off. The web has no button for this. An Immediately or Now cancellation cannot be taken back; add a new plan if the client returns.
Pausing instead. If the client is only taking a break and will come back on the same plan, use Pause billing rather than cancelling. See Packs, subscriptions and failed payments.
End a pack
A pack has no cancel button once it is paid, on the web or in the app. It ends by itself when the last credit is used, or on its expiry date if you set one, and the client is then on no plan.
To end a Stripe pack early and give back the unused sessions:
- Click View all on the pack card.
- Click Refund… on the payment.
- Click Refund unused $…. TrainerStack works out the value of the sessions not used. Confirm.
When Stripe confirms the refund, the pack closes: it shows Completed with the credits cut down to the sessions already used. A pack refunded in full before any session was used shows Cancelled.
A Manual pack cannot be ended early. Its remaining credits stay until they are used or the pack expires.
End a program
Programs are for online clients, including a program sold as an offer from your store. A program ends by itself on its end date, with no renewal. To end one early:
On the web:
- On the program card, click End program.
- Pick where it stops:
- After payment N: payments up to that one are still collected. The program closes on the day the next payment was due, and that payment and every one after it are cancelled. Only offered while a later payment is still to come.
- Now: the program closes today and every payment still to come is cancelled.
- Click End after payment N, or End program now and then Click again to confirm.
A program ending after a payment shows Ends on: with the date, and Keep the program running calls it off and puts the cancelled payments back. When the date arrives the program shows Cancelled and the client is on no plan. Nothing already paid is refunded: see Refund a charge that already went through.
This works the same for a Stripe program paid in instalments and a Manual one. On a Stripe program, a payment that has already gone out as an invoice link is voided in Stripe as well, so the client cannot pay it later.
In the trainer app:
- Open the client's Billing tab and tap Manage plan on the program.
- Under Ending the plan, pick After a payment and choose the last payment to collect, or pick Now.
- Tap End after payment N or End program now. Now asks you to confirm.
A program has no Pause billing or Reschedule next billing: those are subscription controls.
Cancel a plan the client has not paid
A plan that shows Awaiting payment link has charged nothing, because the client never finished checkout. This works for a subscription, a pack or a program.
- On the plan card, click Cancel plan.
- Click Click again to remove.
The plan is removed and the client is on no plan. The payment link stops working at the same time, so a link you emailed earlier cannot be paid afterwards. If the client paid the link in the moment before you clicked, TrainerStack keeps the plan and tells you to refresh.
In the trainer app, open Manage plan on the plan. Under Not started yet, tap Remove this plan and confirm.
Stop charging per session on casual sessions
A client on no plan never has a saved card charged for a session. Each casual session is paid one of three ways, chosen when you book it: Stripe payment link (the client pays a link), Already paid (off-platform), or Track for later (nothing is sent and you mark it paid when you collect). So "stopping the $80" means dealing with the links already sent and the price you book at from now on.
Cancel a link you have already sent:
- Open the session on the Calendar.
- Under Payment, click Cancel payment link (or Cancel this link if you have just made it).
The link stops working and the session shows as unpaid, so you can record cash instead or leave it. If the client paid the link a moment before you cancelled, TrainerStack keeps the payment and shows the session as paid. The trainer app has the same Cancel payment link button on the session.
Book future sessions at a different price. When you book a client with no plan, Price ($) fills in with the rate saved on the client when you added them, for example $80. There is no setting to change that saved rate, on the web or in the app, so type the price you want each time you book. A client on no plan cannot be booked at $0: TrainerStack asks you to "Enter a session price before booking a billable session." Waive / no charge is only offered to clients who have a plan.
Sessions already booked for later dates. Open each one on the Calendar. Cancel its payment link, or click More → Delete session if it is not going ahead.
What happens to sessions booked on the old plan
Ending a plan never deletes sessions: everything already booked stays on the calendar. Sessions dated before the plan ends are covered by it as normal.
- When you cancel Immediately on the web and sessions are still booked into the plan, TrainerStack stops and shows how many first. Delete … appointments & cancel removes them, Keep them & cancel leaves them on the calendar, and Back cancels nothing.
- A banner on the client's Billing section, "… appointments are still linked to an old plan", appears when the client has a new plan and sessions are still attached to the old one. Link to current plan moves them onto the new plan's cycles so they count, and Delete them (click twice) removes them. On a client with no plan this banner does not appear, because there is no current plan to link to.
- Sessions after the end date on a client with no plan are not charged by anything. To charge them one by one, delete them and book them again, so each is booked as a casual session with its own price and payment choice.
Refund a charge that already went through
Ending a plan never refunds anything by itself. To give money back:
- A subscription, pack or program payment: click View all on the plan card, then Refund… on the payment. Choose the suggested amount, or Custom amount for part of it, and Confirm refund.
- A one-off charge to the card on file: click Refund… beside it under One-off charges.
- A casual session paid through a payment link: there is no refund button for these in TrainerStack. Open Settings → Integrations → Open Stripe Dashboard, find the payment in Stripe and refund it there. TrainerStack records the refund when Stripe reports it, and a session refunded in full shows as unpaid again.
Refunds are done on the web; the trainer app does not issue them. TrainerStack's 1% + GST on the refunded amount comes back to you. A refund cannot be undone.
After the client is on no plan
- Their Billing section shows no Active plan, and nothing is charged until you book a session or add a new plan with + Add Billing Plan.
- They keep the client app, their program, check-ins and chat.
- The app closes after 30 days with nothing on. If a client has no running plan and no session on the calendar (past or upcoming) for 30 days, their app closes automatically and shows "Your coaching has ended". It reopens within a day of adding a plan or booking a session. There is no setting to keep it open for a client who has neither. See When a client cannot sign in.
Still stuck? Use Help → Report a problem in the dashboard, or email support@trainerstack.pro.