Skip to content

Packages & Payments

Let clients pay for a package in installments

Switch on payment plans for your workspace, offer them on a package, and follow the schedule from the first charge to the last — including what to do when a payment is declined.

Updated August 27, 2026

A six-session package at $900 is a much easier yes at $300 a month. Payment plans let a client spread a package across scheduled card payments while Calso tracks every one of them, releases credits on the terms you choose, and tells you the moment a payment is declined.

Installments are switched on in two places, and both have to be on. The workspace-wide switch and all the settings behind it live in SettingsPayments, under Payment Plans. The per-package switch sits at the bottom of the Pricing section when you create or edit a package offering under Packages.

Turning payment plans on

The Payment Plans card only appears once Stripe is connected and verified, because the schedule runs through your Stripe account — so connect Stripe first.

  1. Open the Payments settings

    Go to Settings in the sidebar, choose the Payments tab, and scroll past your Stripe status and the tax card to Payment Plans.

  2. Switch Payment Plans on

    Use the toggle at the top right of that card. The settings behind it appear as soon as it is on.

  3. Set your defaults

    Work down Default installments, Default frequency, First payment, Pay-in-full discount, Credit grant mode and Cancellation policy — each is explained in the table below.

  4. Save the card

    Press Save Payment Plan Defaults. These settings apply to every package you offer a plan on, so it is worth getting them right once.

  5. Offer the plan on a package

    Open Packages, press Edit on the offering you want, scroll to Pricing, turn on Allow clients to pay in installments at the bottom of that section, and press Save. The offering card now carries a Payment plan badge.

What each default controls

SettingWhat it does
Default installmentsHow many payments the price is split into — 2, 3, 4, 6 or 12.
Default frequencyWeekly, Biweekly (every two weeks) or Monthly. The first payment is always taken on the day of purchase; the rest follow at this spacing.
First paymentEqual split, or a 25%, 33% or 50% deposit up front with the remainder divided evenly across the payments that follow.
Pay-in-full discountAn amount taken off for a client who pays the whole price on the spot. Leave it empty and paying in full simply costs the list price.
Credit grant modeImmediately hands the client every session credit at purchase. Per installment unlocks credits as each payment clears.
Cancellation policyThe policy recorded on each new plan, used if Stripe ends the plan on its own after repeated declines.

A package cannot override any of these — its toggle is on or off, and the numbers always come from this card. A single paid session can: on an event type, the same switch reveals Customize for this event →. See pricing a single session.

What the client sees at checkout

Buying a package sends a client through your normal booking flow with the package attached, so they pick a session time first and reach Complete Payment at the end. Under the order summary they get a Payment Option block with two choices: Pay in full, and Payment plan with the schedule summarised — "3× $300.00/month". If you set a pay-in-full discount, the first option shows the saving and the reduced amount.

Choosing Payment plan adds a Payment Schedule listing every payment, the first dated today and the rest at your chosen frequency, and the confirm button becomes Start Payment Plan with the amount due today. The client enters a card once and the later payments are taken automatically.

The client picks between those two options only — the number of payments and the dates are yours. Package cards on your public booking page show the full price without mentioning installments, so if the plan is a selling point, say so in the package's description.

Following a plan on a client's package

Open Packages and click the client's row in the list below your offerings. The drawer holds the whole schedule in a Payment Plan block: an Amount, Due Date and Status for each payment, reading Paid, Pending, Failed or Cancelled. A Paid row links straight to that invoice in Stripe, and Collected: under the table shows how much has landed so far.

On Per installment plans the table gains a Credits column showing how many sessions each payment released. Credits unlock in whole sessions, rounded down, with the final payment releasing whatever is left — so a four-session package split across six payments releases nothing until the last one. Keep the number of payments at or below the number of sessions.

When a payment is declined

A failed payment puts the package on Payment Hold and freezes the credits. In the client portal it is banded Payment Hold — Credits Frozen and its Book Session button stops working, so a client mid-package notices immediately. Both of you are emailed, as long as Payment plan failed is ticked in your notification preferences.

Your one action is Retry Failed Payment, which appears beside Cancel Plan in the drawer and charges the card on file again. If the card is still being declined you will see Retry failed and the fix has to come from the client: their email links straight to updating the card, and with the client portal turned on they also have Manage Payment Method and Retry Payment on the package itself. Once the payment clears, the package returns to Active and the schedule carries on.

Ending a plan early

Cancel Plan in the drawer opens Cancel Payment Plan, which asks you to choose a cancellation policy: Cancel remaining installments, Revoke ungained credits, or No refund. Press Confirm Cancel to go ahead or Keep Plan to back out.

Whichever you pick, the payments that have not been taken yet are stopped and no money moves on its own. Cancelling a plan is not a refund — anything already collected is returned from your Stripe dashboard, and if you want the client's remaining credits to go away as well, cancel the package itself. Both of those are covered in adjusting a client's package credits.

Frequently asked questions

Can a client choose how many payments to split a package into?

No. The client chooses only between Pay in full and Payment plan. The number of payments, how far apart they fall, and the size of the first one all come from the defaults you set in Settings → Payments, and every client who takes the plan gets the same schedule.

Why is the payment plan option missing at checkout?

Every payment in the schedule has to be at least $25.00. If splitting the price the way you configured it would produce a smaller payment, Calso quietly leaves the option out and the client simply pays in full. The other things to check are that the Payment Plans switch is on in Settings → Payments, that Allow clients to pay in installments is on for that package, and that your plan is Practice or higher.

Does cancelling a payment plan refund the client?

No. Cancelling stops the payments that have not been taken yet — it never moves money that has already been collected. If you want to return some or all of what the client has paid, issue the refund from your Stripe dashboard, and cancel the package itself if you also want their remaining credits to go away.

Can a client book sessions before they have finished paying?

That is what Credit grant mode decides. On Immediately the client can book the whole package from day one. On Per installment their credits unlock as each payment clears, so they can only book as far as they have paid.