At 8am, Dr Christian opens his practice. His secretary greets the first patients, answers the phone, and prepares the day's appointments.

Some days, about fifteen patients come through the practice. Consultations follow one another, one patient reschedules, another pays in cash, a third prefers to pay by mobile money. Meanwhile, supplies need buying, bills need paying, and the cash needs checking.

Dr Christian knows his job. What gets complicated isn't the medicine: it's keeping track of everything happening around the consultations.

For a long time, appointments were written in a notebook, phone numbers saved on different phones, and the day's takings recounted in the evening. This method can work — until the day you need to find a specific piece of information or explain a discrepancy in the till.

Dr Christian then decides to start simply, with no subscription, using three free zBilling.net modules: Contacts, Calendar and Finance.

He wants to answer four questions:

💡

Who's coming, when, who paid, and how much is actually left in the practice's accounts?

Who are my patients?
Contacts
one administrative record per patient
Who is coming, and when?
Agenda
one appointment per consultation
Who paid, and how much is left?
Finances
one revenue entry or one expense
⚠️

One essential limit: zBilling.net is used here for the practice's admin and finances, not as medical-record software. Diagnoses, prescriptions, medical history, observations and clinical documents stay in the practitioner's usual secure system.

A day with Dr Christian

8h00 · Agenda → Calendrier

"Who's coming today?"

The secretary opens Calendar → Calendar view. Appointments show up in one place. On her phone, she can check them day by day.

She notices Achille Mbarga is due at 9:30am. Before offering a slot to a new patient, she checks the calendar: zBilling.net doesn't automatically prevent two appointments at the same time.

💡

The calendar doesn't replace specialized medical scheduling software. For this practice, it already gives a simple view of the day.

9h30

Achille Mbarga arrives

The secretary pulls up Achille's administrative record: his name, phone number, useful contact details and, if needed, his paper file reference.

The record contains no diagnosis or medical report. It's there to identify the right person and to link administrative events to the same contact.

The secretary can move the appointment to Confirmed, then Dr Christian will mark it Completed after the consultation.

10h00

A consultation, a payment

Achille pays 10 000 FCFA in cash.

The secretary opens Caisse Express, enters an income of 10,000 FCFA, selects Achille as Payer and the category CONSULTATION.

⚠️

Important point: she records the money in Caisse secrétariat, not in the doctor's personal cash account. Dr Christian has set up permissions and cash accounts so everyone knows who collected what.

The transaction is recorded on the account that was actually used. Achille can later be found in the transaction history.

11h15

Mrs. Ngo calls for an appointment

A new patient contacts the practice. The secretary creates an administrative record, then assigns her an available slot.

She can set a reminder 24 hours ahead. But she checks the channel first:

  • a WhatsApp number connected to the workspace is needed for a WhatsApp reminder to the patient;
  • an SMS account configured is needed to send by SMS;
  • email requires the patient's address;
  • the internal notification alerts the zBilling.net user, not the patient.

If WhatsApp or SMS isn't configured, the matching option appears grayed out. And if a channel becomes unavailable or the necessary contact details are missing, the reminder is redirected to an internal notification: staff then have to contact the patient themselves.

⚠️

Dr Christian insists on another point: the reminder reuses the appointment's subject and notes. You must never write any clinical or confidential information there.

14h00

Buying supplies

The practice buys gloves and dressings for 18 000 FCFA.

This time, it's an expense. The doctor or the authorized person selects the account that's actually paying, Caisse cabinet in our example, then the category CONSOMMABLES and the payee Pharmacie du Centre.

A cash account refuses a payout larger than its balance: so it needs to be funded enough before recording the purchase.

17h30

The moment the oversight becomes concrete

The day is over. The secretary has collected money into her own cash account. She counts the money she's about to hand over to Dr Christian.

In zBilling.net, she creates a transfer from Caisse secrétariat to Caisse cabinet, for the amount actually handed over.

But the transfer isn't final yet. It stays pending and doesn't affect either balance until the doctor confirms it.

Dr Christian receives the money, counts it, then finds the pending transaction in the Finance overview. He confirms it only if the declared amount matches what he actually received.

💡

That's the difference between trusting and being able to verify. Both people take part in managing the money, without pretending they share the same cash drawer.

As an example, the day's transactions might show:

Today's receipts
85 000 F
Today's outflows
18 000 F
Net balance of movements
+67 000 F
⚠️

Watch out: this 67,000 FCFA is the gap between receipts and outflows over the filtered period; it isn't automatically the practice's accounting profit, nor the contents of any one cash account. A transfer between cash accounts isn't new income.

Dr Christian now has a record of every transaction and control over the handover. He can compare his cash accounts' balances with the money actually on hand.

Reproducing this setup in zBilling.net

The story looks simple. Here are the settings and steps needed to reproduce it in the app, from creating contacts to controlling the cash accounts.

0
Sign-up

Create the practice's workspace

Sign up on zBilling.net. In the setup wizard, at the Your workspace, step, enter:

FieldExample value
Type of activityPersonal use
Workspace nameCabinet médical du Dr Christian

This profile gives free access to Contacts, Calendar and Finance, with two users.

The activation code is sent by WhatsApp if you entered a number, otherwise by email.

💡

Don't confuse activating the workspace with sending appointment reminders by WhatsApp: for the latter, a WhatsApp number must also be connected to the workspace.

1
Contacts

Structuring the administrative file

Three groups are enough to start

Go to Contacts → Groupes → New group, then create:

GroupWhat it's for
Patientsadministrative contacts for the people seen
Fournisseurspharmacies, lab, landlord, cleaning company
Assurancesinsurers and health funds that make payments

On phone, the + button at the bottom of the Groups screen gives access to New group.

Achille Mbarga's record

Open Contacts → Liste → New contact. On phone: + → New contact.

FieldExample
TypeIndividual
Last nameMbarga
First name(s)Achille
Date of birthonly if useful for administrative purposes
Phonemain number
WhatsAppnumber approved to receive reminders
Emailoptional; needed for email reminders
Addressneighborhood, city
GroupPatients
Notes / CommentsDossier papier n° 0412 or administrative reference

Click Save contact, then confirm.

For a minor patient, create the record under the child's name and use the parent's or authorized representative's contact details for communications, taking care to keep them confidential.

What about attachments?

On a record, the Files → Add a file panel lets you attach a document. An expiry date can be set when adding it, or changed later with the calendar icon. Alerts are sent 30 days, 7 days and on the day of expiry, to the person who added the file.

This can be useful for proof of coverage or an insurance authorization valid until a given date.

⚠️

Don't attach a prescription, medical letter or lab result: these documents may contain health data. This kind of document has no place in the general administrative file used in this example. Even for administrative documents, check their content and who has access to the contacts.

2
Finances → Comptes

Preparing the money accounts

When the workspace is created, four accounts already exist. They can be renamed with Edit:

Starting accountSuggested nameUse
Caisse principaleCaisse cabinetcash held by the doctor
Orange MoneyCompte mobile cabinetpayments on this wallet
MTN Mobile Moneykeep or renamepayments on this other wallet
Cpte BancaireCompte professionnelbank, transfers, insurance payments

The secretary will later get her own cash account, created in the step on working as a team.

⚠️

One essential rule: an account represents an actual pocket of money. Don't create an account per patient or per type of service. The Payer / Payee field is for finding the person; the Category is for classifying the transaction.

3
Agenda → Rendez-vous → New appointment

Organizing appointments

Open Calendar → Appointments → New appointment; on phone, use the + in the green header.

FieldExample
SubjectConsultation — Achille Mbarga
Start15/10/2026 09:30
End15/10/2026 10:00
LocationCabinet
Contactselect Achille Mbarga from the list
Notesonly administrative instructions meant for the patient
Reminder24 hours before, through a channel that's actually configured

The subject is visible in the calendar and appears in reminders: avoid any sensitive medical detail.

Reminder channels and their conditions

The lead time can be set between 15 minutes and 48 hours.

ChannelWho receives the reminderCondition
WhatsApppatient, on their WhatsApp or, failing that, their phoneWhatsApp number connected to the workspace
SMSpatientSMS account configured
Emailpatientemail on the record
Internal notificationzBilling.net userno external configuration

WhatsApp and SMS channels that aren't configured are shown as such and can't be selected. If the selected channel later fails, or the necessary contact details are missing, the reminder falls back to an internal notification, flagged to show the patient wasn't informed.

For a reminder received by a patient, only write things in the notes that can be shared, for example Merci de vous présenter 15 minutes avant le rendez-vous.

Moving the appointment forward

StatusUse
Scheduledappointment created
Confirmed ✓attendance confirmed
Completed 🏁consultation done
Cancelled ✗appointment cancelled

The lists offer Upcoming, Confirmed, Past and Cancelled filters. The calendar shows every appointment, day by day on phone.

After a consultation, Dr Christian can schedule a follow-up, for example Contrôle — Achille Mbarga, with a reminder 48 hours ahead if a suitable channel is configured.

⚠️

Known limitation: two appointments can be created at the same time slot. Check the calendar before assigning a slot.

4
Finances → New transaction

Receive a consultation payment

Open Finance → New transaction, then Caisse Express → Income → New income.

FieldExample
AccountCaisse secrétariat if the secretary is collecting in cash
LabelConsultation
Amount10 000
PayerAchille Mbarga
CategoryCONSULTATION

Confirm with Save (computer) or Receive (phone), then Yes, I confirm.

If the patient doesn't have a record yet, the Payer field may offer Create contact "…". Then complete their group Patients.

Frequent transactions

After the first few entries, the payment can reappear as a frequent-transaction card. For a follow-up consultation, the secretary selects the card and enters the amount: the usual fields are already filled in.

What if the network drops?

On phone, an offline entry mode shows a banner saying transactions are kept on the device and sent once the connection comes back.

⚠️

This is useful during a home visit, but you need to check that syncing actually happened before treating the day's accounts as fully up to date.

When an insurer settles several consultations at once

Record an income entry on Compte professionnel, with the insurer as Payer, the category ASSURANCE and, in Advanced options → Note, the period or the administrative reference of the statement.

This is the money actually received; it doesn't automatically calculate the amount owed by the insurer.

5
Caisse Express → Expenses

Recording expenses

Still in Caisse Express, choose Expenses → New expense.

FieldExample
Accountthe account that actually paid, for example Caisse cabinet
LabelGants et compresses
Amount18 000
PayeePharmacie du Centre
CategoryCONSOMMABLES

Confirm with Save (computer) or Pay out (phone), then confirm.

A cash account can't record an expense larger than its balance. So make sure it actually holds the available funds.

Recurring payments — rent, internet, salaries — can also show up as frequent transactions.

The practice's categories

Use a short, consistent list, without accents (the app capitalizes them).

Income

  • CONSULTATIONregular consultation
  • CONTROLEfollow-up consultation, if priced differently
  • ACTEbilled service or treatment
  • CERTIFICATadministrative certificate or fitness exam
  • VISITE DOMICILEhome consultation
  • ASSURANCEpayment actually received from an insurer

Expenses

  • LOYERrent for the premises
  • CONSOMMABLESgloves, dressings, disinfectant…
  • MATERIELequipment and repairs
  • SALAIRESsecretarial staff and other employees
  • EAU ELECTRICITEwater, electricity, internet, phone
  • IMPOTS ET COTISATIONStaxes and professional dues
6
Finances → Transactions

Read the practice's numbers

Open Finance → Transactions. By default, the screen shows the current day.

An example day gives:

Receipts
85 000 F
Outflows
18 000 F
Net balance
+67 000 F
⚠️

This net balance is the result of the movements in the filtered scope, and shouldn't be confused with accounting profit or the balance of any one cash account.

Viewing the month

On computer, select Quick period → This month, then Search. On phone, the This month chip is enough. The Payee and Categories filters are behind the filter button.

Filtered categoryQuestion it answers
CONSULTATIONhow many consultations were paid?
ASSURANCEhow much have insurers actually paid?
CONSOMMABLEShow much have supplies cost?

Finding a transaction linked to a patient

In Transactions, filter by Payee and select Achille Mbarga, over a long enough period. The filter can cover partners on both income and expenses.

💡

You'll find this patient's recorded payments, not a full clinical history or necessarily every appointment that took place.

Export

The CSV button exports the transactions. The Print button gets you the list on paper. In a spreadsheet, a pivot table can group income and expenses by Category or Partner.

7
Agenda → Tâches

Not forgetting anything, with tasks

Go to Calendar → Tasks. From any other screen, the + button in the top bar also opens task creation (Alt+N on computer).

Examples:

  • Follow up with Mrs. Ngo — administrative payment to check
  • Order gauze pads
  • Send the statement to the health plan
  • Call Achille Mbarga back — administrative file to complete

Check Do today to show the task in My day. Otherwise, it goes to the inbox of tasks to be organized.

Don't write symptoms, lab results, or any clinical details in tasks.

Working as a team: the secretary collects, Dr Christian checks

To work as a team, the clearest approach is not to give everyone the same cash account. Each person needs permissions matching their role, and a verifiable handover process.

1

Create the "Secretariat" role

In the Settings icon in the top bar, open User management. On phone, go through the workspace name menu, then Project tools.

Choose New user. If no role exists yet, zBilling.net first offers to create one. Name it Secrétariat, then save.

2

Creating the secretary's account

Go back to User management → New user.

  1. Search for the secretary. If she doesn't have a record yet, choose Create a contact record and enter her last name, first name and email.
  2. From her record, use Create an account; enter a username (for example bngono), the role Secrétariat and Activate immediately.
  3. After confirming, a temporary password appears on screen. Note it down right then, and share it with the secretary securely.

At her first login, she accepts the terms of use, then chooses a personal password in My account → Security.

3

Granting the necessary Finance permissions

By default, the role Secrétariat has access to Contacts and Calendar, but not Finance.

Open Finance → Settings → Manage role permissions, then check for Secrétariat :

  • View cash accounts;
  • Add a transaction.

Only grant the permissions needed for day-to-day operation.

4

Create "Caisse secrétariat"

A person collects into a cash account they're the cashier of (or have access to as supervisor). Dr Christian keeps Caisse cabinet ; the secretary gets her own cash account.

Open Finance → Accounts → New account → Cash:

FieldValue
NameCaisse secrétariat
Cashierthe secretary
SupervisorDr Christian

From now on, payments received by the secretary are recorded in her cash account; those received directly by the doctor go into his.

5

The evening handover, step by step

When she finishes her day, the secretary counts the cash she's handing over to the doctor.

She opens New transaction → Transfers → New transfer:

  • Source: Caisse secrétariat ;
  • Destination: Caisse cabinet ;
  • Amount: the amount actually handed over.

After entry, the transfer stays pending confirmation. It doesn't count toward either balance until it's validated.

Dr Christian:

  1. receives and physically counts the cash;
  2. opens Finance → Overview;
  3. uses the Transactions awaiting confirmation → Process banner;
  4. checks the transfer amount and clicks Confirm if the figures match.

Next time, a frequent-transaction card Caisse secrétariat → Caisse cabinet makes entry faster.

💡

This check doesn't create any extra income. It moves an amount already collected from one cash account to another, after verification.

SecretaryDr Christian
Administrative recordscreates and updatesreviews
Appointmentscreates, confirms, cancelscloses if needed
ReceiptsCaisse secrétariatCaisse cabinet
End of daycounts and declares the handoverrecounts and confirms

The right habits to remember

  • 1Always select the right patient in the appointment (Contact) and in the income entry (Payer).
  • 2Never write clinical data in contacts, tasks, administrative files or notes that can be reused in reminders.
  • 3Check the calendar before giving out a slot, since double-bookings aren't blocked.
  • 4Don't confuse an internal notification with a message to the patient. Without a working external channel, the front desk needs to notify the patient some other way.
  • 5Collect into the right cash account, at the moment of payment. Transfers between cash accounts are neither income nor expenses.
  • 6Only confirm handovers after actually counting the cash. A pending transaction isn't the same as a verified cash handover.
  • 7Keep categories consistent, for example CONSULTATION rather than sometimes CONSULTATION, and sometimes CONSULTATIONS.
  • 8Check the period of the transactions list: it opens on the current day.
  • 9Check syncing after an offline entry, before closing out the accounts.
  • 10Strictly separate the practice's money from the personal money of the doctor.
Out of scope

What this free scenario doesn't cover

This guide deliberately uses the Personal use workspace and only its Contacts, Calendar and Finance modules. It doesn't cover:

  • the medical record, diagnoses, prescriptions, observations or medical history;
  • prescriptions or medical results in contact files;
  • creating invoices, receipts or care statements to hand to the patient;
  • automatic tracking of receivables and unpaid amounts — a sum owed must be tracked manually, for example with a task;
  • calculating direct insurer billing or the insurance share to be collected;
  • online appointment booking by patients;
  • automatically blocking slots that are already taken;
  • the list of appointments on the patient's record;
  • a specialized calendar per practitioner: here, a single calendar serves the whole workspace; with several practitioners, you'd need to identify the practitioner in the subject or location, without claiming to have real multi-practitioner scheduling.

Invoices, receipts and advanced receivables-management features belong to billing modules available in plans suited to those needs.

What Dr Christian actually changed

Dr Christian hasn't replaced his medical record. He hasn't automated his entire practice.

He started by solving three concrete problems:

  • patients' administrative information is no longer scattered;
  • appointments are visible in a shared calendar, with reminders when the channel is configured;
  • income and expenses are recorded in the right accounts, with a controlled handover between the secretary and the doctor.

From there, he can move forward at his own pace, with no subscription needed for this first level of organization.

💡

The first real progress isn't having software for everything. It's no longer depending solely on a notebook, a phone and memory to run the practice.

Ready to organize your practice?

Contacts, Calendar and Finance are available for free in the Personal workspace — up to two users, no credit card required.

Request a demo Start for free