Prepaid session packages

Updated on Thursday 17 September 2026

How to build a package, sell it to a client, and watch sessions come off by themselves. Expiry, freezes, corrections and what the reports mean.

A package is a block of sessions the client pays for today and uses over the following months: “10 waxing sessions”, “5 massages”, “3 cuts + 1 colour”. For you it is cash up front; for the client, a better price and a reason to come back.

What changes with Citauno is that you stop keeping it in a notebook: when the client books, the session comes off by itself, and you can always see how many are left, when they expire, and what happened to each one.

Two different things: the catalogue and the sold package

This is the one idea worth having straight before you start.

What it is Where it lives
Catalogue The template: “10-session pack, Gs. 1,200,000, valid 6 months”. Edit it whenever you like. Packages → Catalogue
Sold package One person’s contract: their balance, their expiry, their history. Packages → Sold

Every sale takes its own copy of the price, the sessions and the services covered. So you can raise the pack’s price tomorrow, drop a service from it, or retire it from the catalogue: packages already sold do not change. The client bought what was written that day.

For the same reason, a sold package is never edited. Everything that happens to it — extending the expiry, freezing it, transferring it, cancelling it — is a named action that leaves its trace in the history, so “why does this package expire on the 30th?” is still answerable six months later.

Building a package in the catalogue

Go to Packages → Catalogue → Create package.

  1. Name, and optionally a description and the terms (what the client accepts when they buy it).
  2. What it includes. Each line is a number of sessions plus the services that line can pay for:
    • 10 × Leg waxing → one line, one service.
    • 5 × any massage (relaxing, deep tissue, sports) → one line, three services. The client chooses on each visit.
    • A package can hold several lines: 2 × cut + 1 × colour.
  3. Price of the whole pack.
  4. Validity: how many days it lasts from the sale. Leave it empty for a package with no expiry (careful: that is an open debt that never closes).
  5. Freezes: how many times it can be paused, and for how many days in total.
  6. Transferable: whether the client may hand the sessions to someone else.
  7. Can be combined with discount codes: off by default. See Packages and discount codes.

The price meter

As you type the price, the screen shows you what those sessions would cost one by one and how much the client saves. If the package lands below that floor, an amber notice appears: “Sold below what its individual sessions add up to”.

It is only a warning, never a block: a loss-leader bundle is a legitimate commercial decision, and the software is in no position to argue. It is there so you don’t do it by accident.

On a line with several services, the floor uses the cheapest one in the group: that is your worst case, because the client is the one who chooses.

Retiring a package from the catalogue

Retire takes it off the list you sell from. Nothing is deleted: packages already sold keep their balance and their history exactly as they were.

Selling a package

Two routes, one form:

  • Packages → Sold → Sell a package.
  • From the client record, with the Sell a package button (the short route when the person is standing at the counter). Once the client has packages, the record lists them in their own card.

In the form:

  1. The template, or Custom when you are putting something together for that one client. Custom is the same form: you type the lines by hand.
  2. The client. If they don’t exist yet, you create them right there with a name and a WhatsApp number.
  3. Price and expiry. The expiry comes prefilled from the template’s validity (or six months when it has none). Change it, or clear it so it never expires.
  4. Origin: Sale (the usual), Gift or Compensation (to make up for a service that went wrong). A gift takes no payment.
  5. The payment: cash, transfer, card, tpago or other. Tick “paid in full” or enter a part payment; the balance stays open and you record the rest later from the package screen.

On save the package gets an 8-character code (the one the client quotes on the phone), and you can print a one-page receipt to hand over.

How a session comes off

This is the part that does the work. There is nothing to remember.

When you take a booking for a client who holds a package — or when the client books online — Citauno recognises that the service is covered, reserves one session from the package and lowers the booking total by whatever the package covers. If the package covers everything, no deposit is asked for.

The full life of a session:

What happens to the booking What happens to the session
It is created (pending or confirmed) It is reserved: nobody else can spend it, but it is not used yet
It is marked completed It is used (that is when it really comes off)
It is rejected, or the business cancels It goes back to the package
The client cancels It goes back to the package (unless your business runs the opposite policy)
No-show It is lost: the session burns, just like the slot did
It is rescheduled The session moves with the booking

Those last two rows are business policy and we can flip them for you. Either way, an admin can void the movement from the package history: if the client called ahead and you decide not to charge the session, you give it back in two clicks.

A session is used on the day of the appointment, never before: a booking on a day that has not come yet cannot be marked completed or no-show while a package holds a session on it. If the client came in before their appointment, move the booking to today first. Cancelling it always works, and the session goes back to the package.

Which package does the session come from?

If the client holds more than one package covering that service, Citauno picks the one that expires first (and on a tie, the most specific line and the most valuable session). You can change it by hand as you take the booking.

If the person shares a WhatsApp number with their family, watch the holder’s name shown next to each package: that is what stops you taking the session off the mother when the daughter came in.

Registering a session with no booking

They walked in without an appointment, or the appointment was never entered. From the package screen, Register a session, with two tabs:

  • With a booking: pick the appointment that took place. The booking is the evidence, so nothing has to be written. Only today’s and earlier appointments are listed; if you can’t find it, widen the search.
  • No booking: pick the service and write a note — it is required (“walked in, seen by Ana”). With no booking, that note is the only evidence there is.

The date can be backdated: what matters is when the session happened, not when you typed it in. It cannot be in the future — a session that hasn’t happened is not a fact.

Fixing a mistake

Nothing is ever deleted. A wrong movement is voided: a second line is written that reverses it, carrying your name and the reason, and both stay on the record.

  • Voiding a use gives the session back to the package.
  • The package screen hides voided movements; a link brings them back when you need them.
  • Voiding twice does nothing: the system tells you it was already voided instead of deducting again.
  • When a use came from a booking, void the use first and the rest afterwards — the system guides you if you try it the other way round.

A professional may only undo what they recorded themselves, and only within 24 hours. After that, the correction belongs to an admin.

Expiry, freezing, transferring, cancelling

All of it lives on the package screen, under Actions.

Expiry

The package works for the whole of its expiry date. From the next day it stops covering bookings, and one night later (we leave a day of grace) the system writes off the unused balance: the package becomes Expired and those sessions are recorded as lost.

Freezing

For “I’m away for two months”. A freeze blocks new deductions, but it does not touch appointments already booked: those sessions are reserved and the client still intends to use them.

When you unfreeze, the days it spent frozen are added to the expiry, up to the day limit you set on the template. How many times it can be frozen comes from there too.

Transferring

“I bought it for myself, but I’m giving it to my sister.” If the package is transferable, pick the target client (or create them there) and how many sessions of each line move across.

  • The sessions move, they are not copied: a new package is born on the other side, marked Received, and each history links to the other.
  • The expiry is inherited: transferring does not reset the clock.
  • Sessions reserved by appointments cannot be transferred. Cancel those appointments first.

Cancelling

For “I’m moving cities and I have 3 of 5 left.” Cancelling writes off the remaining sessions, marks the package Cancelled with its reason, and shows you how much would need refunding (paid minus already used).

If the package still has sessions reserved by appointments, the cancellation is refused until you cancel those appointments — otherwise you’d be stripping a confirmed booking of the thing paying for it.

What the client sees

In their account the client has My packages: how many sessions are left, when they expire, and a plain history of what they used. They book from there.

What they deliberately do not see: your internal notes, which member of staff recorded each session (it says “the business”), how they paid, or the movements you voided. It is their balance, not your cash book.

Today a client cannot buy a package online: packages are sold at the counter (or over WhatsApp, and you enter them).

What the professional sees

Their agenda (/p) gains a Packages entry, listing the packages of their clients — the ones with an appointment on their chair. They see the balance and the expiry, never prices or payments, and they can take a session off against one of their own appointments, and undo it within 24 hours.

They cannot sell, freeze, transfer, cancel, or register a session with no booking. All of that belongs to an admin. The full table is in Roles and permissions matrix.

The reports

Packages → Reports, with a date range at the top. Two kinds of number live on that screen and it is worth not mixing them:

Figure What it means
Open liability Sessions you have already been paid for and still owe in service, valued at the package price. It is today’s balance, not the range’s: this is the number an accountant asks for.
Redemption rate Sessions used ÷ sessions sold, over the packages sold in the range. Expired sessions do not count as used.
Expiry rate Sessions that expired unused ÷ sessions sold. This is the package a client paid for and never came back for.
Sold Price of the packages sold in the range. A sale on instalments counts in full here.
Collected Payments recorded in the range, even for packages sold earlier. Which is why it rarely matches Sold.

Below that sits Expiring in 30 days: the worklist you go through with a phone in your hand, carrying each client’s WhatsApp number and how many sessions they have left. It can be exported.

Clients are told automatically, by email when their card has one: the receipt when you sell, a reminder 30, 14 and 3 days before the package expires (while sessions remain), one when a single session is left and another when they have used them all. Every Monday you get a summary of the packages expiring in the next 30 days with sessions unused. For the personal follow-up — a WhatsApp, a call — this worklist is still the tool.

Commissions and invoicing

  • Commissions: a professional’s commission is worked out on the value the package allocated to that session, not on the list price. The split is not an average: in a “2 cuts + 1 colour” pack, the colour carries the colour’s share and the cut the cut’s.
  • Invoicing: a session paid for with a package is not invoiced again on the booking’s document. The invoice carries the lines the client actually paid that day, plus a note saying how many sessions the package covered.

Packages and discount codes

By default they don’t combine: the package already brought those lines down and the code would discount them twice. To allow it on one particular pack, tick “can be combined with discount codes” on the catalogue template. On a booking fully covered by a package the code is always refused — there is nothing left to discount.

Common mistakes

Symptom Cause Fix
I can’t see Packages in the menu The module is off for your business Write to us to enable it. A Manager does see Packages and lands on Sold: the catalogue, sales and reports are admin-level
I took the booking and no session came off The service isn’t in the package, the package had expired for that date, or it is frozen Open the package: the notice says which of the three it is
It came off the wrong package The client holds two packages covering that service Void the session on that package and register it from the right one with Register a session → With a booking: the appointment is listed there again
It came off the mother’s package but the daughter came in They share a WhatsApp number, so to Citauno they are one person Void the use and re-enter the booking on the right record; always check the holder’s name
“This package expired and its balance was written off” It was extended too late: the sessions are already recorded as lost Sell or gift fresh sessions
It won’t let me transfer Sessions are reserved by appointments, or the package isn’t transferable Cancel those appointments, or check the template
The client says they paid and a balance still shows A part payment was entered at the sale Record the remaining payment from the package screen
I cancelled the package and the client got no money back Citauno issues no refunds Refund it outside; the figure is on the cancellation screen

Good habits

  1. Set an expiry. A package with no date is a debt that never closes. Six months is a good starting point.
  2. Fill in the terms on the template: what happens on a no-show, whether it can be frozen, whether it can be transferred. The client accepts them when buying, and you stop arguing about it.
  3. Keep booking statuses right. A confirmed booking is marked completed on its own two hours after it ends, and that is when the reserved session becomes a used one. Marking it by hand only does it sooner; what you do have to record is a no-show or a cancellation, so the package, the reports and the commissions tell the truth.
  4. Work the “expiring” list once a week. It is the difference between a client who comes back and a session that quietly dies.
  5. Void, don’t improvise. When something goes wrong, void it with the reason written down: three months from now that line is the only thing that will explain the balance.
  6. Check the open liability before a big promotion. It is money you have already taken and still have to work off.

And when the client comes every week

A ten-session package usually ends up as “every Friday at 3pm”. You can book that in one go: see Recurring bookings.