Baloyi & Partners Accountants Baloyi Books {{ buildVersion }}
Consolidation workspace · FYE {{ consolidationFyeLabel }}
{{ currentUserName }}
{{ currentUserRoleLabel }}
{{ currentUserInitials }}

Client set-up

Record the client and its bank accounts. Once saved, you'll import and allocate statements from the Allocate screen.

Client details
Choose the client for this statement, or add a new one.
◆
{{ c.name }}
{{ c.meta }}
{{ c.dupNote }} Select →
Only an accountant, manager or admin can add clients. Choose a client above to allocate its statements.
{{ clientFormTitle }}
{{ restrictNote }}
A VAT-registered client must have a VAT number before saving.
{{ pj.name }}
{{ cu.name }} · {{ cu.roleLabel }}
Save the client first, then add its users.
Bank accounts Add each account this client banks with
✓ Saved
{{ cf.msg }}
Client
{{ clientName }}
Registration no.
{{ clientReg }}
Financial year end
{{ clientFyeLabel }}
Added by
{{ clientAddedBy }}
Bank accounts
{{ a.bank }} {{ a.no }}
No bank accounts added yet.
Saved
Only an admin can delete clients
Only an accountant, manager or admin can set up clients. Choose a client to start allocating its statements.
Account
Tick the rows to delete first.
My statements
Assigned to {{ assignNote }}
{{ myWorkEmptyText }}
Allocated
{{ allocatedCount }} / {{ totalCount }}
{{ pct }}%
{{ trashLabel }} — recover if this was a mistake.
! {{ ocrBannerText }}
! {{ fyWarnText }}
🔒 {{ fyClosedText }}
{{ selectedCount }} selected Includes duplicate transactions — allocate once, applied to all.
{{ dupBannerTitle }}
{{ dupBannerDetail }}
Date
Description
Ref
Debit
Credit
Balance
Allocation
{{ r.date }}
{{ r.desc }} {{ r.dupLabel }} ⚑ Reviewer
⚑ {{ r.flagNote }} — {{ r.flagBy }}
{{ r.ref }}
{{ r.debit }}
{{ r.credit }}
{{ r.balance }}
{{ r.catLabel }} {{ r.autoBadgeLabel }} Already on file Unallocated {{ r.explConfLabel }} {{ r.customer }} {{ r.supplier }} VAT
Options
✓ All transactions in this statement are allocated. Nothing left to import or re-do.
{{ dropZoneTitle }}
Drop a CSV, a PDF, or a photograph of a statement here — or click to browse.
CSV
Delimited export — columns auto-mapped
PDF
Password-protected or text PDF statement
↑↓ Move Space Select A Assign Tab Accept suggestion
{{ countUn }} still to allocate ⚠ {{ autoToReview }} auto to review
✓ Posted — nothing left to post

Posted to your ledger

{{ totalCount }} transactions from the {{ periodLabel }} statement were written to the system.

Review allocations

Grouped by chart-of-accounts code before posting.

Client
{{ clientName }}
Registration no.
{{ clientReg }}
Financial year end
{{ clientFyeLabel }}
! {{ countUn }} transactions are still unallocated. They'll be posted to a suspense account until categorized.
Code
Account
Txns
Amount
{{ g.code }}
{{ g.name }}
{{ g.count }}
{{ g.total }}
{{ it.date }}
{{ it.desc }}
R {{ it.amount }}
Net movement
{{ totalCount }}
{{ netTotal }}
{{ wfStatusLabel }} {{ wfSentBackInfo }} {{ wfSentBackNote }} {{ wfSubmittedInfo }} {{ wfApprovedInfo }}
Some income transactions have no customer yet. {{ awaitApprovalText }} {{ selfBlockedText }} {{ awaitPostText }}
Send batch back for changes

Tell the allocator what needs fixing. This reopens the statement for editing and shows your note.

Reopen {{ reopenCount }} statement(s) to change allocations

They go back to Allocating so rows can be changed. Who submitted, approved and posted them stays on the record, with your reason. Approve and post again when you are done.

!
{{ confirmFyCloseTitle }}

{{ confirmFyCloseText }}

!
Delete all allocations?

This clears every allocation across all accounts and statements back to unallocated. Transactions themselves stay; only the account assignments are removed. This can't be undone.

!
Delete this bank account?

You're about to remove {{ confirmAcctLabel }} from this client. This can't be undone.

!
Delete this client?

You're about to delete {{ confirmClientName }}, its accounts and its invoices. {{ confirmClientWhat }} This can't be undone.

!
Clear all statements for {{ confirmClearName }}?

{{ confirmClearWhat }}

Accounts affected: {{ confirmClearAccounts }}

The client, its accounts and its invoices stay. The statements and their allocations do not, and this can't be undone.

Hand over {{ handoverCount }}

{{ handoverExplain }}

Send this draft back?

{{ confirmReturnLabel }}

!
Delete this invoice?

You're about to delete {{ confirmInvoiceLabel }}. This can't be undone.

!
Delete employee profile?

You're about to remove {{ confirmUserName }} from the team. They'll lose access and their role assignment. This can't be undone.

Add a transaction manually
Record an entry the import missed — e.g. a credit / income line.
{{ custPickerTitle }}
+ Add “{{ custAddLabel }}”
◆ {{ c.name }}
No customers yet — type a name above to create your first one.
Only this client’s customers and suppliers are listed · Esc to close

Clients

Choose a client to work on, or add a new one.

{{ c.initials }}
{{ c.name }}
{{ c.meta }}
{{ c.accts }}
Open →

Allocated transactions

{{ allocatedSubtitle }}

Nothing needs attention — every transaction is allocated, income has a customer, and nothing sits in suspense.
Account
Date
Description
Amount
Issue
{{ a.acct }}
{{ a.date }}
{{ a.desc }}
{{ a.amount }}
{{ a.reason }}
No transactions allocated yet. Allocate transactions under My statement and they'll collect here.
{{ allocSelCount }} selected
Account
Date
Description
Allocation
Customer
Debit
Credit
Balance
{{ r.acct }}
{{ r.date }}
{{ r.desc }}
{{ r.ref }}
{{ r.alloc }}
{{ r.customer }}
{{ r.debit }}
{{ r.credit }}
{{ r.balance }}

Consolidation

Allocated totals rolled up per client, across all their accounts and statements.

Clients
{{ conStatMembers }}
Transactions consolidated
{{ conStatTx }}
Consolidated net
{{ conNet }}
Team & roles
{{ m.initials }}
{{ m.name }} You ✓ Invited {{ m.contactLabel }}
{{ ac.name }}
All clients (role has full access)
Clients: {{ m.accessLabel }}
{{ m.roleLabel }}
+ Add new user
{{ teamNote }}
Only an admin or manager can add team members or change roles.
Backups
A copy of every statement, allocation and invoice
Taken automatically at 21:00 each night. Take one by hand before anything large — a bulk re-allocation, a month-end, an import you are unsure of.
{{ backupMsg }}
No backups held yet. Take the first one above — the nightly copy starts at 21:00.
{{ b.taken }} {{ b.howLabel }}
{{ b.detail }}
{{ backupKeptLabel }}
Totals per client
{{ u.initials }}
{{ u.name }} You
{{ u.countLabel }}
{{ u.statusLabel }}
{{ u.pctLabel }}
Totals per project / site — {{ clientSummaryName }}
Project / site
Income
Expenses
Net
{{ p.project }}
{{ p.income }}
{{ p.expense }}
{{ p.net }}
Tag each allocated transaction to a site with the small “Site” dropdown on the Allocate grid.
Chart of accounts used — {{ clientSummaryName }}
Closed
Nothing allocated yet for this client.
VAT control has moved to its own page — {{ conVatLabel }}: {{ conVatNet }}
Account no.
Description
No. of transactions
Debit
Credit
{{ g.code }}
{{ g.name }} {{ g.treatmentLabel }} · net {{ g.netAmt }} · VAT {{ g.vatAmt }}
{{ g.count }}
{{ g.debitAmt }}
{{ g.creditAmt }}
{{ it.date }}
{{ it.desc }}
R {{ it.amount }}
Totals
{{ summaryCount }}
{{ summaryDebit }}
{{ summaryCredit }}

VAT

VAT position for {{ clientSummaryName }}, built from the allocated transactions.

VAT control · 15% {{ vatPeriodNote }}
{{ vatNoLabel }}
Output VAT (on income)
{{ vatOutput }}
Input VAT (on expenses)
{{ vatInput }}
{{ vatNetLabel }}
{{ vatNet }}
No VAT-bearing allocations yet — allocate transactions to standard-rated accounts and they will appear here.
Account no.
Description
Treatment
Net (excl. VAT)
VAT (15%)
Gross
{{ g.code }}
{{ g.name }} {{ g.count }} txn{{ g.plural }}
{{ g.treatmentLabel }}
{{ g.netAmt }}
{{ g.vatAmt }}
{{ g.total }}
Date
Description
Net
VAT
Gross
{{ it.date }}
{{ it.desc }}
{{ it.net }}
{{ it.vat }}
{{ it.gross }}
{{ vatIncLabel }}
{{ vatIncNet }}
{{ vatIncVat }}
{{ vatIncGross }}
{{ vatExpLabel }}
{{ vatExpNet }}
{{ vatExpVat }}
{{ vatExpGross }}
Totals
{{ vatTotNet }}
{{ vatTotVat }}
{{ vatTotGross }}
Bank amounts are treated as VAT-inclusive. Only standard-rated accounts carry VAT — salaries, drawings, loans and transfers are excluded. Input VAT is only claimable with a valid tax invoice.
Input VAT with no registered supplier behind it
{{ vatSupNote }}
At risk
{{ vatSupTotal }}
{{ vatSupPct }}
Supported — supplier has a VAT number
{{ vatSupSupported }}
Supplier has no VAT number
{{ vatSupUnregistered }}
No supplier recorded
{{ vatSupUntagged }}
Supplier with no VAT number on file
Payments
Input VAT
{{ sp.name }}
{{ sp.count }}
{{ sp.vat }}
Capture each supplier's VAT number on its creditor record, and tag payments to a supplier, and this figure falls to what is genuinely unclaimable.
No VAT charged — review
{{ vatExcNote }}
Total with no VAT
{{ vatExcTotal }}
Account no.
Description
Treatment
Amount
{{ g.code }}
{{ g.name }} {{ g.count }} txn{{ g.plural }}
{{ g.treatmentLabel }}
{{ g.total }}
{{ it.date }}
{{ it.desc }}
{{ it.gross }}
If any of these accounts should carry 15% VAT, ask the admin to change the account's VAT treatment — the VAT control will recalculate automatically.
{{ clientSummaryName }} is not marked as VAT registered.
Open the client's details, tick "VAT registered" and capture the VAT number — the VAT control will then build automatically from the allocations.
Statement is password-protected
{{ pwName }}
{{ pwError }}
Who does what
{{ workloadSummary }}
{{ workloadSelected }}
Client
Statement
Rows
To do
Assigned to
{{ r.client }}
Imported by {{ r.importerName }}
{{ r.period }}
{{ r.rows }}
{{ r.left }}
{{ r.holderName }}
Nothing here.
{{ workloadNote }}

{{ ledgerTitle }}

{{ ledgerSubtitle }}

Select a client to view its debtors and creditors.
No open items

Capture invoices with the button above. Outstanding balances will be aged here by due date.

Current
{{ ledgerTotals.current }}
1–30 days
{{ ledgerTotals.d30 }}
31–60 days
{{ ledgerTotals.d60 }}
61–90 days
{{ ledgerTotals.d90 }}
90+ days
{{ ledgerTotals.d90p }}
Total outstanding
{{ ledgerGrand }}
{{ ledgerPartyHead }}
Current
1–30
31–60
61–90
90+
Total
{{ r.party }}SUBCONTRACTOR{{ r.retLabel }}
{{ r.current }}
{{ r.d30 }}
{{ r.d60 }}
{{ r.d90 }}
{{ r.d90p }}
{{ r.total }}
▾
📍 {{ r.detailAddress }} VAT: {{ r.detailVat }} Reg: {{ r.detailReg }}
Invoices
{{ iv.invNo }}
{{ iv.txType }}
{{ iv.desc }} · inv {{ iv.date }} · due {{ iv.due }} {{ iv.draftLabel }} {{ iv.returnedLabel }}
R{{ iv.amount }}
R{{ iv.outstanding }}
{{ iv.days }}d
{{ ledgerReceiptLabel }}
{{ rc.date }}
{{ rc.ref }}
{{ rc.desc }}
−R{{ rc.amount }}
Total
{{ ledgerTotals.current }}
{{ ledgerTotals.d30 }}
{{ ledgerTotals.d60 }}
{{ ledgerTotals.d90 }}
{{ ledgerTotals.d90p }}
{{ ledgerTotals.total }}
Retention register {{ ledgerFilterNote }} Total held: {{ retTotal }}
Date
Invoice
Debtor
Project / site
%
Retention held
{{ rr.date }}
{{ rr.invNo }}
{{ rr.party }}
{{ rr.project }}
{{ rr.pct }}
{{ rr.amountFmt }}
Reading statement…
{{ ocrLabel }}
{{ s.mark }} {{ s.label }}
🔍
Review before importing
Check the figures below match the statement, then confirm.
{{ pi.bankName }} · {{ pi.source }}
Transactions
{{ pi.count }}
Account
{{ pi.account }}
Period
{{ pi.periodLabel }}
Opening balanceR {{ pi.opening }} Money in (credits)R {{ pi.credits }} Money out (debits)R {{ pi.debits }} Calculated closingR {{ pi.expected }} Statement closingR {{ pi.closing }}
✓ Balances reconcile — the calculated closing matches the statement. Safe to import.
⚠ Balances don't reconcile — off by R {{ pi.diff }}. Some rows may be missing or misread. You can still import and fix manually, but check the statement first.
No closing balance found to reconcile against — please spot-check the transaction count and totals against the statement.
⚠ This account already has a statement for this period imported — confirming may create duplicates.
⚠ {{ piDupRowsText }}
⚠ Pages missing. {{ piPageWarnText }}
Continuity check: {{ piGapText }}
⛔ Not this account's statement. {{ piIdentBlockText }}
Client record: {{ piIdentWarnText }}
FNB Transaction History: {{ piHistoryNoteText }}
ℹ Read by text recognition (OCR) from a scanned PDF. Amounts are derived from the running balance; scans can misread, so check the reconciliation and spot-check figures before confirming.
Flag for the allocator

Leave a note on this transaction. The allocator sees it highlighted on their statement and clears it once fixed.

!
Check this allocation

{{ allocMismatchMsg }}

✓
!
✕
{{ importResultTitle }}

{{ importResultDetail }}

Edit transaction
{{ txnEditError }}
Edit debtor / creditor

Updates {{ renameOld }} across all its invoices and tagged bank transactions.

{{ renameError }}
Invoice preview
{{ invoiceFormTitle }}
{{ invoicePartyLabel }} not listed? + Create a new {{ invoicePartyLabelLower }}
Prices entered are
Code
Description
Qty
Price{{ vatExclNote }}
Discount
Amount{{ vatExclNote }}
{{ li.lineTotal }}
{{ vatEntryHint }}
SubtotalR {{ invoiceItemsNet }}
VAT @ 15%R {{ invoiceVatAmt }}
TotalR {{ invoiceItemsTotal }}
periods
{{ invoiceError }}
{{ invoiceDraftNoticeText }}
Record payment

{{ paymentParty }} · outstanding R{{ paymentOutstanding }}

{{ paymentError }}
{{ pickerTitle }}
/ {{ pickerGroupCrumb }} {{ pickerLevelLabel }}
{{ c.code }} {{ c.name }} {{ c.meta }} › ↵
No matching account
Esc to close
{{ pendingCodeLabel }}
{{ pickerCustStepLabel }}
+ Add “{{ pickerCustAddLabel }}” & allocate
◆ {{ c.name }}
Type a name above to create the first one.
Enter to add · Esc for accounts
New account
! Code already used by {{ naCodeUsedName }}. Choose a unique number.
Split transaction
{{ splitDesc }} {{ splitAmount }}
R
Remaining to allocate: {{ splitRemaining }}
User details
{{ userFormName }}
✓ Login link created and queued to {{ userFormEmail }}
{{ userFormLink }}
Actual email/SMS delivery activates when the system goes live — for now, copy the link and share it with the user.
Email to debtor
Send invoice
From{{ emailDlgFrom }}
To{{ emailDlgTo }}
Subject{{ emailDlgSubject }}
{{ emailDlgBody }}
✓ Recorded as sent. Attach the saved PDF if you email it from your mailbox.
{{ toastMsg }}