Skip to content

Journal and Chart of Accounts ​

The clinic keeps proper double-entry books, and it keeps them by itself. Booking an appointment, taking a payment or recording an expense each writes its own journal entry. These two screens are where you read them.

No journal entry is typed here by hand. The one thing you can change is the chart itself: you may add your own accounts and file them under a parent. Find both screens under Journal Entries.

Where to Find It ​

Click an address to open that screen on your own clinic. The first click asks which clinic you are, then remembers it. Addresses holding a {id} or {token} need a specific record, so they are shown but not linked.

ScreenAddress
Journal entries/all-journal
One journal entry/journal/{id}
Chart of accounts and ledger/chart-of-accounts
Payments without entries/payments-without-entries

What a Journal Entry Is ​

You do not need to be an accountant to use these screens, but a few words make everything else on this page readable. Start here.

A journal entry is the clinic's written record of one thing that happened with money. It always has two sides, because money never simply appears: it moves from somewhere to somewhere. One side records where it went, the other where it came from.

Debit and credit are just the two sides ​

The wordWhat it actually means here
DebitOne column of the entry. Money arriving into something, or something the clinic is owed
CreditThe other column. Money leaving something, or the reason the clinic earned it

The two columns always add up to the same total. That is the only rule, and the system enforces it: an entry that does not balance is never written.

WARNING

In everyday Arabic, مدين means "someone owes". In the books it does not. Debit and credit here are only the left and right sides of the entry — neither one means good or bad, owed or paid. An expense is a debit and a payment received is also a debit.

One patient, start to finish ​

Take a patient with a 300 fee. Nothing here is typed by anyone — this is what the system writes on its own:

What you doThe entry it writes
Book the appointment, fee 300debit Patient Receivables 300 · credit Clinic Service Revenue 300
Patient pays 300 in cashdebit Clinic Cash 300 · credit Patient Receivables 300

Now read it back in plain words:

  • After the first entry, the clinic has earned 300 but is holding nothing — the patient owes it.
  • After the second, the clinic is holding 300 and nobody owes anything — the debt was replaced by cash.

That is the whole of double entry. Every other entry in the system is a variation on those two lines.

Why the clinic bothers ​

Because every question about money then has one answer instead of three:

  • How much do patients owe us? — one account holds it, and it updates itself with every booking and every payment.
  • Did we make money last month? — revenue and expenses are already separated, so Profit & Loss is a reading, not a calculation.
  • Where did this number come from? — View Source on any entry jumps back to the appointment, receipt or expense that caused it. No figure in this system is unexplainable.

The words used on these screens ​

WordMeaning
Journal entryOne recorded event, made of two or more lines
LineOne row inside an entry: one account, one amount, on one side
AccountA named box that money is counted in — Clinic Cash, Rent Expense, and so on
Debit / CreditThe two sides of an entry. Always equal in total
Normal balanceWhich side increases that account. Cash grows on the debit side; revenue grows on the credit side
PostedFinal and counted. Balances and reports use posted entries only
DraftWritten but not counted yet
CancelledUndone, but kept visible so the history stays honest
Chart of accountsThe list of all the accounts, grouped by kind
LedgerEverything that ever moved through one single account, in order

TIP

Nobody types journal entries in this system. Your job is to record the appointment, the payment or the expense correctly; the entry follows by itself. These two screens are for reading the result.


One Set of Books, With a Branch on Every Entry ​

A clinic with three locations is still one business with one tax file, so there is one chart of accounts and one journal — not a separate ledger per branch. What changes with a second location is that every entry records which branch it happened in.

On Journal Entries that shows up in two places: a Branch filter beside the date range, and the branch shown next to each entry's code. Filter to one branch and the account balances you see are that branch's — including what the account was carrying before the period you asked for. Clear the filter and you are back to the whole clinic.

Two things people ask about:

  • Journal codes are not per branch. JE-00001 onwards is one sequence for the whole clinic, and it does not restart or split when you open a location. Each code is simply displayed with its branch.
  • A patient's entries always cross branches. Open the journal from a patient's file and you see everything for that patient, wherever it was posted — a patient belongs to the clinic, not to one location.

What Gets Posted, and When ​

What you doWhat the books record
Book an appointment with a feeDebit Patient Receivables, credit Clinic Service Revenue — the patient owes the clinic
Change the fee to zeroThe entry is cancelled
Record a paymentDebit the cash account for that payment method, credit Patient Receivables — the debt is settled
Edit a paymentThe entry is re-synced
Delete a paymentThe entry is cancelled, not erased
Post an income transactionDebit the cash account, credit the account you chose
Post an expense transactionDebit the account you chose, credit the cash account
Set a transaction back to DraftIts entry is removed
Mark a payroll as PaidDebit Staff Salaries Expense, credit Clinic Cash — see Contracts and Payroll
Put a visit on a payer's contractThe patient's half stays on Patient Receivables; the company's half moves to Payer Receivables — revenue is untouched, only who owes it changes
Record what a company paid on a claimDebit the cash account for that payment method, credit Payer Receivables — exactly as a patient's payment settles theirs
Bill a refused share back to the patientDebit Patient Receivables, credit Payer Receivables — the debt moves between the two, nothing is created
Write a refused share offDebit Payer Write-offs (5700), credit Payer Receivables — an expense, never a reversal of the revenue you earned on the day
Give a patient a discount on what they oweDebit Discounts & Adjustments (5600), credit Patient Receivables — the price and the revenue stay as they were. See Patient Dues
Write off a patient's debtDebit Patient Bad Debts (5710), credit Patient Receivables — kept apart from discounts so the profit and loss reads bad debt on its own line
Undo a discount or write-offIts entry is cancelled; reversed with an entry dated today if its month has closed

The payment method decides which cash account moves:

MethodAccount
Credit/Debit Card, Bank TransferClinic Bank Account
CheckDigital Wallet
Cash, OtherClinic Cash
A method your clinic addedThe ledger account chosen for it on Payment Methods

A payment is never saved without its entry ​

When the journal is on, every payment is saved together with its journal entry, or not at all: on an appointment, a session, a desk invoice, while booking a visit, and on the dues page. Edits and deletes follow the same rule. If the entry can't be posted, the payment isn't saved and the form names the account to fix. Typical causes:

  • Patient Receivables (1100) is inactive;
  • a method your clinic added has no ledger account.

Every refused attempt is written to the activity log with the person and the reason. Before this rule, a payment could be saved while its entry failed, and the failure only reached the log. Those payments are what the next section finds.

Payments without entries ​

Journal Entries → Payments without entries lists every payment in the clinic that has no posted journal entry. It covers appointment and session payments, and completed payments on desk invoices. Each row gives the date, patient, record, method and amount, and opens the record the money was taken on. The total at the top is the cash your books are short of.

Filter it by date or branch. Post each one by hand, then check the list again: an empty list means every payment is in the books. The report needs Settings → View, and it only exists when the journal is on.

A date in a closed month ​

A payment, or a discount, may be dated in a month that has already closed. The payment keeps that date. Its journal entry is dated today, because a closed month has already been read and reported. Correcting or deleting something from a closed month works the same way: instead of rewriting the old entry, a new entry dated today posts the difference.

TIP

Two facts worth internalising: cancelled entries stay in the journal, and only posted entries count towards balances and reports. That combination is what lets you correct a mistake without the books ever losing their history.


Journal Entries ​

Journal Entries → Journal Entries is the ledger of everything the clinic has recorded. Nothing here is typed by hand: each row was written by an appointment, a payment, a session or an income/expense transaction.

The header counts how many entries exist and how many are posted. Four chips filter by state — All, Posted, Draft, Cancelled — and under Search & Filter there is more:

FilterNotes
SearchMatches the entry code or its description
PatientEvery financial movement for one person, in one screen
StatusPosted · Draft · Cancelled
DateA range over the entry date, not the date it was created

Sort by newest or oldest first, or by entry date ascending or descending. Page sizes are 10, 20, 50 and 100.

The columns ​

ColumnWhat it shows
CodeThe automatic JE-… reference
DateThe accounting date of the entry
DescriptionWhat created it, in words
LinesHow many account lines it holds — two for a simple payment, more for a mixed entry
Total debit and Total creditAlways equal. That equality is double entry; an entry that failed to balance was never written
StatusPosted, Draft or Cancelled

Opening a patient from their file lands here pre-filtered, with the patient's name in the header and a Clear button to widen back out.


One Journal Entry ​

The entry page has two tabs: Details and Activity Log.

The header block carries the code, the date, the status, the entity type that produced it (appointment, payment, physio session, income, expense, payroll), the patient where one is involved, and the description.

Then the lines — the entry itself:

ColumnWhat it shows
AccountWhich account moved, with its code
PatientThe person the line belongs to, where relevant
DescriptionThe line's own note
Debit / CreditThe amount, on one side only

View Source is the important button. It jumps to whatever created the entry — the appointment, the receipt, the invoice, the physiotherapy session, the income or expense transaction, the payroll, the goods receipt or purchase return, the supplier, or the payer claim. A record with no page of its own opens the page it is read on: a stock movement opens its item's movements, a supplier payment its supplier. That is how any figure in a report is traced back to the thing that happened.

The way back works too. An appointment, a physiotherapy session, a payment, an invoice, a payroll, a goods receipt and a purchase return each show a small Journal Entry JE-… link at the end of the line under their title, after the branch and date, once they have put something on the books. It opens that entry. A record that has posted nothing, or a clinic with the journal switched off, shows no link.

TIP

Two facts worth internalising: cancelled entries stay in the journal, and only posted ones count toward balances and reports. That combination is what lets you correct a mistake without the books losing their history.


Chart of Accounts ​

Journal Entries → Chart of Accounts opens on the clinic's whole position in one line, then the account tree beside a panel.

The equation across the top ​

The top of the page prints the accounting equation with your own figures:

Assets = Liabilities + Equity + Revenue − Expenses

Each term is the total of one type of account, on that type's usual side. Underneath, one line says whether the two sides agree. They always do when every entry balances; if they ever do not, the line says by how much.

A figure in brackets, such as (156,000.00), sits on the opposite side to its type's usual one — owner capital that is a debit, for example. Bookkeepers read brackets as negative.

Click any term to open that type in the panel. On a phone the equation is written down the page as a sum: liabilities, equity, revenue and expenses, a rule, then the assets they add up to.

The tree ​

The tree on the side lists accounts by type — Assets, Liabilities, Equity, Revenue, Expenses — each with the range of codes the system's accounts use. Every row is an icon, a code and a name:

IconWhat it is
FolderA parent account. It holds other accounts and takes no entries; its balance is the total of what is under it
PageAn account. Entries are posted to it

Accounts nothing was ever posted to are greyed out; the switch at the bottom of the tree hides them. Search matches a name or a code and opens the branches above whatever it finds. Expand all and Collapse all open or shut every parent.

The tree carries no balances: it is for finding an account. The figures are in the panel.

Every account has a level: 1 for an account at the top of its type, one more for each parent above it. The panel shows it beside the code, and the form tells you the level a new account will sit at.

The panel ​

What the panel shows depends on what you pick:

You pickThe panel shows
A typeEvery account in it, indented as the tree has them, with entries, balance and each account's share of the type. Parent rows are shaded and carry their subtotal
A parent accountThe same table for what it holds, with the path above its name (Assets › Current assets › …). Each step of the path opens that level
An accountIts ledger

Balances come from posted entries only, with the side they fall on.

Above every panel, a path starts at Chart of accounts and names each level down to what you are reading. Each step opens that level.

A date range ​

The Date field in the panel narrows the whole page to a period:

FigureWith a range
Entries, Debit, CreditWhat moved inside the range
Balance, and the equation at the topWhat each account held at the end of the range, including what it carried in
The ledgerOnly the lines inside the range, starting from the balance it opened the range with

Clear the field to go back to the whole of the books. The range is kept with the branch filter and after adding or editing an account.

The ledger ​

Picking an account opens every posted line that touched it:

ColumnWhat it shows
TransactionDate, entry code and description, linked to the entry
Debit / CreditThe movement
Balance afterA running balance in the account's own direction, so a debit account rises on debits

The first row is the opening balance: what the account held before the window you are looking at, so a filtered page still adds up. On a later page it says what was carried from the page before. The ledger reads the page's date range and shows 20 rows at a time.

WARNING

Both the panel balances and the ledger read posted entries only. A draft transaction is invisible here — which is the point of Draft, but it does mean an expense you left as a draft never reaches Profit & Loss either.


Adding Your Own Accounts ​

The accounts the clinic was created with cover what the system posts automatically. You may add your own beside them — one cash box per branch, a separate account for each bank, an expense line your clinic tracks — and group them under parent accounts of your own.

Use Add account at the top of the page, the Add an account to … row under any table, or ⋯ → Add an account under it on a row. The form asks for:

FieldWhat to put
Account kindAccount if entries will be posted to it. Parent account if it only groups others
Account nameOne name, in the language your staff read
Filed underA type, or a parent account. Type a name or a code to find it. Each place shows where it sits
CodeSuggested as the next free code there. Digits only, and no two accounts share one
Normal sideFilled in from the type. Change it only for an account that runs against its type, the way owner withdrawals is a debit inside equity

After saving, the page comes back open where the account was filed, with the new row highlighted.

Edit on an account's page, or ⋯ → Edit on its row, opens the same form.

What cannot change, and why ​

RuleWhy
Entries are never posted to a parent accountIts balance is the sum of what is under it. A line posted to it directly would be counted by none of them
The system's own accounts keep their codePayments, invoices and sessions post to them by code. You may still rename one, or file it under a parent of its type
Nothing is filed under a system accountThe system posts to it directly, so it must stay an account
Once an account has entries, its kind and normal side are fixed, and it moves only within its own typeIts entries were read against them. Changing either would restate months already reported
Filing an account under one of your own accounts that has no entries makes that one a parentThe form warns you before you save

Parent accounts never appear in the account list of Income and Expense, on a payment method, or on an item category. Only accounts that take entries do.

INFO

Adding and editing accounts needs a connection. Offline, the chart can still be read, but the buttons wait until you are back online. On the desktop app it works the same way.


The Account Categories ​

Categories group accounts for the filter and for reporting. Ten ship with the system:

CategoryArabicAccountsTied to
Cash & Bankالنقدية والبنوك1000, 1010, 1020—
Receivablesالذمم المدينة1100, 1110—
Inventory & Equipmentالمخزون والمعدات1200, 1300—
Patient Liabilitiesالتزامات المرضى2000—
Payables & Accrualsالموردون والمصروفات المستحقة2100, 2200, 2900—
Equityحقوق الملكية3000, 3100—
Appointment Revenueإيرادات المواعيد4000, 4100appointments
Physio Revenueإيرادات الجلسات الطبيعية4200physiotherapy sessions (reserved — see below)
Operating Expensesالمصروفات التشغيلية5000, 5300, 5400, 5500, 5600, 5700, 5710—
HR Expensesمصروفات الموارد البشرية5100, 5200—

The two revenue categories carry an entity type, which is how the system knows a session's income belongs somewhere different from a consultation's.


Every Account ​

All twenty-three, as shipped, and what each one is for.

This is the table to consult when recording something in Income and Expense: that form lists every active account that takes entries in one dropdown — your own included, parent accounts left out — so the choice is yours. Two rules make it easy:

  • Pick the account that names the reason for the money — rent, supplies, salaries, owner withdrawal.
  • Never pick a cash account there. The cash side is chosen for you by the payment method.

Normal balance tells you which side increases the account. The last column says whether the system moves it on its own, or only when you choose it.

Assets — what the clinic has ​

CodeAccountNormalWhat it is forMoves
1000Clinic Cash · النقديةDebitPhysical money in the drawerAutomatic
1010Clinic Bank Account · الحساب البنكي للعيادةDebitMoney in the clinic's bank account — where card payments landAutomatic
1020Digital Wallet · المحفظة الرقميةDebitVodafone Cash, InstaPay, an uncleared cheque — the clinic's money, but not in the drawerAutomatic
1100Patient Receivables · مديونيات المرضىDebitWhat patients owe right now. Booking a fee raises it, a payment lowers it. The basis of the receivables reportAutomatic
1110Payer Receivables · مديونيات جهات الدفعDebitWhat insurers and companies owe you — the payer's half of every covered visit, until a claim is settled. Deliberately apart from 1100: patients and companies are chased in completely different waysAutomatic
1200Medical Inventory · المخزون الطبيDebitStock bought and not yet used — the value of what is on the shelfYou pick it
1300Medical Equipment · المعدات الطبيةDebitThings bought to keep and use for years: a chair, an X-ray unit, a laptopYou pick it

Liabilities — what the clinic owes ​

CodeAccountNormalWhat it is forMoves
2000Patient Advance Payments · دفعات المرضى المقدمةCreditMoney taken before the service exists — a deposit on a treatment plan. It is the patient's money until the work is doneYou pick it
2100Suppliers Payable · الموردونCreditInvoices received from suppliers and not yet paidYou pick it
2200Accrued Expenses · المصروفات المستحقةCreditCosts already incurred but unbilled — this month's electricity before the bill arrivesYou pick it
2900Tax Payable · الضريبة المستحقةCreditTax collected or due and not yet handed overYou pick it

Equity — the owner's stake ​

CodeAccountNormalWhat it is forMoves
3000Owner Capital · رأس مال المالكCreditMoney the owner puts into the clinic from outside — the opening float, an injection to cover a bad monthYou pick it
3100Owner Withdrawals · سحوبات المالكDebitMoney the owner takes out for personal use. Not an expense — the clinic did not spend it on anythingYou pick it

Revenue — what the clinic earns ​

CodeAccountNormalWhat it is forMoves
4000Clinic Service Revenue · إيرادات خدمات العيادةCreditThe clinic's own work: appointment fees, consultations, and the service part of a physiotherapy sessionAutomatic
4100Medical Consultation Revenue · إيرادات الاستشارات الطبيةCreditPhysical products sold during a visit or a session — despite the name, this is the product-sales accountAutomatic
4200Procedure Revenue · إيرادات الإجراءات الطبيةCreditReserved for procedures. Nothing posts here today: sessions credit 4000 and 4100 instead, so it stays at zero unless you pick it yourselfNot used yet

Expenses — what the clinic spends ​

CodeAccountNormalWhat it is forMoves
5000Clinic Rent Expense · مصروف إيجار العيادةDebitRent for the premisesYou pick it
5100Staff Salaries Expense · مصروف رواتب الموظفينDebitWages and salaries. Marking a payroll Paid posts here by itself; you can also record a salary by handAutomatic + you pick it
5200Doctor Commission Expense · مصروف عمولات الأطباءDebitA doctor's share of what they brought inYou pick it
5300Medical Supplies Expense · مصروف المستلزمات الطبيةDebitConsumables used up in the work: gloves, anaesthetic, gauzeYou pick it
5400Utilities Expense · مصروف المرافقDebitElectricity and waterYou pick it
5500Internet & Communication Expense · مصروف الاتصالات والإنترنتDebitInternet, phone lines, mobile creditYou pick it
5600Discounts & Adjustments · الخصومات والتسوياتDebitA goodwill discount or a rounding difference — so that what patients owe on paper matches what you will actually collect. A discount given on the dues page posts hereAutomatic + you pick it
5700Payer Write-offs · إعدامات جهات الدفعDebitA share a company refused and you decided to stop chasing. An expense, never a reversal of revenueAutomatic
5710Patient Bad Debts · ديون معدومة - مرضىDebitA patient's debt written off as uncollectable from the dues page. Apart from 5600, so bad debt and goodwill read separatelyAutomatic

TIP

Supplies vs inventory, in one line: if it is used up in the work, it is Medical Supplies Expense (5300). If it is sitting on a shelf with value, it is Medical Inventory (1200). If it will still be here in three years, it is Medical Equipment (1300).

TIP

Accounts are picked by code, not by name, so renaming one — or translating it — never breaks the automatic posting behind it.


Using This to Answer Real Questions ​

QuestionWhere to look
How much cash should be in the drawer?Chart of Accounts → Clinic Cash balance
How much do patients owe us in total?Chart of Accounts → Patient Receivables — or Patient Receivables report for the ageing breakdown
Where did this figure come from?Open the journal entry and use View Source
What has this patient ever paid or owed?Journal Entries filtered by that patient
Did we make money last month?Profit & Loss