Ledgr/Documentation/Expenses
Expenses & bills
Watch the 2 lessons: Capture a receipt as an expense (2:01), Record a supplier bill and pay it (2:27).
Ten tabs covering every way money leaves the business — starting with an inbox you can email paperwork to, and ending with an approval queue over the top of all of it.
Expenses & bills is included from Starter upwards.
The tabs
Scroll the table sideways to see every column.
| Tab | What belongs here |
|---|---|
| Inbox | Paperwork that has arrived but nobody has filed — a bulk upload, or an invoice emailed to your company's Ledgr address |
| Expenses | Card and cash spend, usually with a receipt attached |
| Bills | Supplier invoices you owe, with a due date. The count is what is overdue |
| Purchase Orders | What you have committed to buy, and receiving against it. The count is what is still open |
| Supplier balances | Aged creditors oldest first, a statement per supplier, and reconciling one against your own records |
| Mileage | Business trips claimed at the SARS rate |
| Per Diem | Daily subsistence allowances |
| Petty Cash | The float and what came out of it |
| Categories | Your expense categories, their budgets, and the category Ledgr has learned for each supplier |
| Approvals | Everything waiting for sign-off. The count is what is pending |
Inbox is first because it is the start of the work: documents flow out of it into Expenses and Bills. It carries a count, and so do Bills, Purchase Orders and Approvals, because a queue nobody can see is a queue nobody empties.
The document inbox
Paperwork does not arrive when you are sitting at Ledgr with the file in front of you. A supplier invoice lands in an email while nobody is thinking about bookkeeping; a month of receipts gets dealt with in one sitting on the 25th. The inbox is where both of those wait.
- Get the documents in
Receipts by WhatsApp: link your phone once — Ledgr shows a short message to send from it to Ledgr's WhatsApp number — and every photo or PDF you send from that phone lands here, in the company you linked it in. Messages from a phone nobody has linked are ignored, and Ledgr sends nothing back. Not on the Free plan.
Add documents takes several files at once. Or use your email-in address, shown on the same tab: forward a supplier's invoice there, or give the address to the supplier so their invoices arrive by themselves. Each of your companies has its own address, so a group's paperwork lands in the right set of books.
- Let it read itself
Each document is read in the background — you do not wait for it. The row shows whether it was uploaded or emailed, how many pages it has, and moves from pending through reading to ready.
- File it
File it opens the document beside what was read off it — supplier, date, total, VAT — and you turn it into an expense or a bill. A bill opens on the document's own lines, each at the VAT it carried, when those lines add up to the document's totals; if they do not, the form says why and keeps the total on one line. The document stays on the bill, so Bill Detail shows the supplier's invoice behind it. Try again re-reads one that came back badly; Discard removes something that was never paperwork.
That is deliberate — forwarding has to work from a director's phone, a bookkeeper's client and a supplier's billing system, and a list of approved senders would silently drop the ones it had never seen. What arrives is not a transaction: it is a document in a queue that somebody reviews. Treat the address like a key and ask for a new one if it gets out.
What Ledgr can read, and how well
- A digital PDF is not recognised — it is read. An emailed supplier invoice carries the characters the supplier's own system wrote, so Ledgr takes them exactly, with no recognition step and therefore no recognition error. The document says read from the PDF rather than a confidence score, and those are different claims.
- A photograph or a scan is recognised, and every field carries a confidence score. Low ones are worth a glance — the total and the VAT especially.
- A page is checked against itself. Where two of subtotal, VAT and total agree at the statutory rate to the cent, they corroborate each other and a misread third figure is repaired. Where they do not, the figure is reported rather than rewritten.
- Several receipts photographed on one page are split apart — but only when the whitespace says so and every piece independently reads as a whole document with a labelled total. If it gets that wrong, Not separate documents on any of the pieces puts the page back as it was.
- Multi-page documents are handled: a PDF, a multi-page TIFF from an office scanner, or a bank statement of twenty pages.
Ledgr recognises a bank statement as a bank statement rather than filing it as a supplier invoice, and takes it through to Banking instead. Ask your bank to email your monthly statement to this address.
The dictionary knows Engen sells fuel. It cannot know that your business books Makro to Consumables while the shop down the road books it to Stock. So the category you choose is remembered against that supplier — by their VAT registration number first, which is why every branch of a chain counts as one supplier — and offered next time, with how many times you have done it that way. Accepting a suggestion teaches it just as changing one does; changing it starts the count again, because "filed to Fuel the last six times" must not be said about a supplier whose last five went elsewhere.
What is deliberately not remembered is the VAT rate. A garage sells zero-rated fuel and standard-rated pies, the document states its own VAT, and Ledgr checks that statement against the arithmetic — a remembered rate would override a figure that was read and checked with one that was merely habitual, on a VAT201.
Capture a receipt
- Expenses → Capture Receipt
On a phone or tablet this opens the camera. On desktop, upload a photo or PDF.
- Let the scan run
Ledgr reads the slip and fills in supplier, date, total, VAT and a suggested category.
- Check the confidence scores
Each extracted field shows how sure the scanner is. Anything low is worth a glance — the total and the VAT especially.
- Correct and save
Fix what is wrong, confirm the category, save. The image stays attached to the expense as your supporting document.
Two fields on that form are worth knowing about because they are what make the spend reportable later:
- Cost centre, if you have any. Tagging spend to a branch, a department or a project is what puts it in the right column of the departmental income statement. The field is hidden entirely if you have not set any up, so a single-location business is never asked which branch it is.
- The job, if the spend belongs to one. Allocating an expense or a supplier bill to a job card puts the real document's cost against that job — so the job's margin is measured against what you actually paid rather than against a figure somebody re-typed. Correct it on the purchase, not on the job.
On desktop and web you upload an existing image or PDF instead. The reading step is the same either way.
Every scan is fingerprinted, so the same file scanned twice is recognised — a Scanned before notice appears on the capture form and says what the first one became: an expense, a supplier bill, or nothing yet if that scan was never saved. It is an exact match on the file, so it never fires on two genuinely different receipts from the same shop on the same day, and the warning does not stop you: a supplier sometimes really does email the same invoice twice for two different jobs. The check is across your whole business rather than per company, because capturing one invoice under two entities is the same mistake.
Capturing a purchase twice is how it gets paid twice, so this is worth reading rather than dismissing. There is a second, looser check when you save a supplier bill: the same supplier with the same invoice number is refused outright, and Ledgr names the bill that already exists with its date, amount and status. The supplier is the one you picked (or, with none picked, the name without "(Pty) Ltd" and the like), and the number is read by its letters and digits, so INV1001 is INV-1001. A bill with no number, or an expense, has nothing to refuse on: if the same supplier, the same total and a date within three days already exist, on a bill or an expense, Ledgr saves it and tells you, so you can delete the second copy before it is paid.
A bill on top of an accrual. If you accrued a month's cost with a journal that reverses on the first of the next month, and then capture the supplier's bill dated inside that month on the same expense account, the month holds the cost twice. Ledgr saves the bill and tells you which account and how much, and what to do: date the bill on or after the reversal, or reverse the accrual now. It is a notice only, because the bill may genuinely be a second purchase.
Goods you received without an order
When you paid for stock you had already received by hand — a card payment, a claim — the capture form offers Goods this paid for whenever goods are waiting for an invoice. Choose the product and how many it paid for: the expense is booked to Purchases and clears those goods from Goods Received Not Invoiced, so they are not owed twice. If you paid a different price, the difference goes with the stock: onto the units still on the shelf, and into cost of sales for the units already sold. What is still waiting is listed under Inventory → Awaiting Invoice, oldest first, with how many days each has waited.
The same holds for a supplier bill against a purchase order that charges more than the order: the extra on goods you have received and still hold is part of what they cost, so it raises their value in stock; only the extra on goods already sold, or not yet delivered, stays in Material Price Variance.
Supplier bills
A bill is money you owe on terms, so it is tracked separately from card spend. Capture the supplier, the bill date, the due date, the lines and the VAT. Bills feed the payables side of the dashboard and appear in the cash flow forecast; mark one paid when you settle it, or match it against the bank transaction in Banking. Approved bills can be paid together in a payment run, whose bank file comes as a payment schedule or in your bank’s own upload layout.
Paying a bill in parts, or in advance. Open the bill and press Pay part of this bill: enter the amount and the day you paid it (never before the bill, never in the future). The bill then owes what is left, on its own page, on the supplier’s statement, in the aged creditors and in the payment run, and the instalment that leaves nothing owing settles the bill. If you paid a supplier before their bill arrived, record it as a prepayment on the supplier; it shows as money they hold of yours, and the bill’s page offers to set it against the bill. A prepayment is in your own currency; a payment can be taken back off a bill that is not yet paid. A bank line for part of a bill is matched to the bill for the amount paid, and the same applies.
Rent you pay on a lease. When the rent escalates by agreement, the expense you recognise over the lease is the total rent spread evenly over the term, not the escalated bills (IFRS for SMEs 20.15 for a lessee). Make the lease first (POST /api/rented-leases): the landlord, the dates the term runs between, how often the rent falls due, the first cycle’s rent excluding VAT and its yearly escalation. Ledgr fixes the level amount per cycle from them. Then name the lease on each of the landlord’s bills (rentedLeaseId on the bill): the bill books its rent expense at the level amount and carries the difference to 2122 Straight-line Rent Accrual, which builds while the level amount is above the bill and clears with the last bill of the term. What you owe the landlord and the VAT are exactly what the bill says. For tax, rent is deducted as it is incurred under the agreement, so the ITR14 adds the accrual back until the bills catch up. The terms of a lease cannot change once a bill is against it; a bill in a foreign currency cannot be rent of a straight-lined lease.
Purchase orders
A purchase order is what you have committed to buy before the invoice exists. The tab shows your open commitments — useful on its own for a cash-flow forecast — and is where you receive against an order as the goods arrive, part-delivery by part-delivery.
Receiving is what turns a commitment into stock and a liability. When the supplier's invoice then arrives, attaching it to the order lets Ledgr compare all three — what you ordered, what you received and what you were billed — line by line rather than only on the total. An invoice that arrives by email days after the lorry can still be attached to its order, which is the ordinary case in any business whose paperwork does not travel with the goods.
Larger buying operations — requisitions, approval routing, RFQs, approved vendors and contracts — live on the Procurement screen on the Manufacturing plan. This tab is the part every business needs.
Suppliers
The creditors' side of the same coin as aged debtors: what you owe, in ageing buckets, oldest first. It ties to the creditors control account in the ledger, and the report says whether it does — a supplier ageing that does not agree with the balance sheet is worse than none, because every figure on it looks reasonable.
Open a supplier for their statement, and reconcile it against the statement they sent you. Where the two disagree it is usually an invoice you have not captured or a payment they have not allocated, and both are easier to settle in the month they happened.
Per diem
A daily subsistence allowance for somebody travelling for work: the first and last day of the travel, the destination, the rate, the number of days and the kind of trip. The cost is booked on the last day of the travel, not the day the claim was typed in, so a February trip captured in March stays in the February books. The days cannot be more than the days between the two dates. It goes through the same submit → approve → pay states as any other claim, and each of those is a real step — a claim cannot be marked paid without having been approved by somebody who holds the approve permission.
The rate is one your business sets. Somebody who approves expenses adds them under Per Diem → Your per-diem rates — a name such as “Overnight, local” and the daily amount you pay — and a claim is raised at one of them. Until a rate is set, the claim form says so rather than suggesting one. A claim keeps the rate it was raised at, so changing a rate later does not change claims already made. SARS’s daily amount for local travel is shown beside your rates for reference: an allowance above it is taxable in the employee’s hands.
Approved and paid claims appear on the traveller’s tax certificate (IRP5) for the tax year the travel ended in — within SARS’s daily amount as a non-taxable allowance, above it as a taxable one. Which daily amount depends on the kind of trip you choose: the larger amount (meals and incidental costs) applies to an overnight stay, and only the smaller incidental-costs amount to a day trip with no night away, or where the meals and bed are provided. The traveller is the employee named on the claim, matched on first and last name (so a bookkeeper who captures a claim for a colleague puts it on the colleague’s certificate, not their own); a name that matches nobody on the payroll, or two people, reaches no certificate until the claim is corrected. Mileage is certified for the person who logged the trip, provided they are linked to their employee record under Payroll → Employees → Ledgr login: trips at or under the SARS rate are reported as non-taxable, and a higher rate reports the excess as taxable, which Payroll warns about because no tax was taken off it.
For travel outside South Africa choose the country on the claim, as SARS spells it (for example United Kingdom or USA; Other countries not listed for a country SARS does not name). Outside the Republic SARS deems the amount it publishes for that country to have been spent each day, in the currency it names (114 pounds a day for the United Kingdom for 2027), so the certificate compares your daily rate with that amount converted to rands at the exchange rate on the last day of the travel. Add that rate under Settings → Currencies; until it is held the claim is reported as taxable rather than guessed at. Leave the country blank for travel in South Africa.
A claim paid before the travel is an advance. If the first night away is not by the last day of the month after the one it was paid in, SARS treats the advance as pay for that month (Income Tax Act section 8(1)(a)(ii)): the traveller’s first pay run whose period ends on or after that day taxes it, without paying it again, and the tax certificate reports it as an other allowance (code 3713) instead of a subsistence allowance. Because the advance was paid in cash, it also counts towards the employee’s monthly remuneration for the Employment Tax Incentive that month. A refunded advance is not taxed: reject or delete the claim once the money is back. This applies to overnight trips with their dates filled in.
No input VAT is claimed on it, and that is correct rather than an omission: a subsistence allowance is not a supply made to the business and carries no tax invoice.
Petty cash
The tin. Record the float when you put cash in, then a slip for each thing that comes out of it, and the tab shows the balance that should physically be there. Count it against that figure now and again — that is the whole control. Press Count the Tin, type the cash you counted, and Ledgr books the difference on the day of the count: cash found short is an expense to Sundry Expenses, cash found over is a credit to it, and the tin then holds what you counted. A count typed wrongly is put right by counting again.
The float is the amount the tin is topped back up to. When the slips have spent some of it, open Replenish Float and keep the float as it is: Ledgr records the cash you draw from the bank to restore the tin (the dialog shows how much), and the tin reads the float again. Type a larger or smaller float to raise or lower the amount the tin holds. A slip cannot be more than the tin holds on its day: Ledgr refuses it and asks you to replenish first, because a tin cannot pay out cash it does not have.
Slips post to the category you choose, against the petty cash account, so the tin appears on the balance sheet as the asset it is. A slip claims no input VAT: there is no rate on a till slip Ledgr could stand behind on a return.
Mileage
- Expenses → Mileage → Log New Trip
- Record the trip
Date, from, to, purpose and kilometres. If the trip was for a customer, pick them under Customer: the trip log then shows who it was for, so you know whom to recharge the travel to. The claim itself is still reimbursed to whoever drove.
- The claim is calculated
At the SARS prescribed rate — R4.95 per kilometre for 2026/27. The trip log is the record you would produce if the claim were ever questioned, so keep the purpose specific.
Cost centres. When your business uses cost centres (branches, departments or projects), a trip, a per-diem claim and a petty-cash slip each take one, as an expense or a bill does: pick it on the form and every line of the journal (the cost, the amount owed or paid, the petty-cash credit) carries it, so a rep’s travel shows under the branch it belongs to in the departmental income statement instead of “Unallocated”.
Categories, budgets and rules
On the Categories tab you set a monthly budget per category and watch actual spend track against it — the bar runs green, then amber, then red.
Below that, Learned from how you file lists every supplier Ledgr has learned a category for — the suggestion the capture form makes the next time one of their documents arrives, with how many times in a row you filed it that way. Nothing is typed in to make a rule: filing a document is what teaches it, and changing the category teaches it the new answer. Forget removes one you no longer want suggested.
Approvals
Claims raised by someone without approval rights land in the Approvals queue rather than posting straight to the ledger. An approver sees the claim, the attachment and the category, and either approves it — at which point it posts — or rejects it with a reason that goes back to the person who raised it.
Who can approve is set in Roles & users: the approve permission on the expenses module. Approving is not a field somebody can write — the claim records who approved it and when, and that is what an invoice raised on the back of it rests on. A claim approved before Ledgr started recording approvers says so in those words rather than showing a blank where a name should be.
Approval limits. An owner or an admin can say how much a role, or one person, may approve — for example a bookkeeper up to R5 000 — on the Approvals tab, under Approval limits. Above their limit a person’s approval does not count: pressing Approve says so, and a bill they capture is saved but waits for someone whose limit covers it, or for the owner, who has no limit. A person’s own limit takes the place of their role’s. Purchase requisitions keep their own approval steps.
An approved claim is an accrual and a paid one is cash, so both reach the general ledger and neither can be quietly restated afterwards: once a claim has been paid, its amount is fixed. Correcting one means reopening it first, which is a step somebody can see.
The day it was paid. Marking an expense, trip or per-diem claim paid books the payment on the day the money left: today unless you type an earlier day, never a day before the claim and never a future one. The approval stays in the month it was made in — the month it was reported owing does not change — and the payment is its own entry on its own day, so a claim from a month you have already closed can still be paid, in the month you are working in.
Paying claims in one run. On the Approvals tab, Pay claims lists every approved claim not yet paid — expenses, mileage and per diem — with the employee each is owed to, and pays them all from the bank account you choose in one step. Each claim is marked paid and posted exactly as if it had been paid on its own. Then download the bank file, one line per employee, as a payment schedule or in your bank’s own upload layout, and upload it at the bank yourself: Ledgr does not send payments. A claim is paid to the account on the employee’s payroll record, so a claim whose claimant is not on the payroll — a user not linked to an employee, or a per-diem claim naming someone the payroll does not know — is listed apart with what to fix, and is never paid to whoever pressed the button. The same window shows the claims report: what is owed and paid, by employee. What it shows as owed is what your accruals account holds for claims.
A note on VAT
Input VAT is only claimable where you hold a valid tax invoice from a VAT-registered supplier. Capture the VAT amount separately rather than folding it into the total, or the VAT201 will understate your input claim.
Above R50, Ledgr claims the VAT only when it holds the supplier's VAT number: ten digits beginning with 4, as printed on their tax invoice (VAT Act section 20). Spaces and dashes do not matter. Words such as "N/A" or "none" are not a VAT number, so that VAT is booked as cost and the expense says so; type the real number, on the expense or on the supplier's contact, and the claim follows. At R50 or less a till slip is enough.
Common problems
| What you see | What to do |
|---|---|
| "Scanned before — This exact file was scanned on … and saved as …" | Ledgr recognised the same file and says what the first scan became. Open that record rather than capturing a second one — see above. |
| A supplier bill is refused as already captured | The same supplier and the same invoice number already exist (a hyphen, space or capital letter does not make a different number). Ledgr names the bill; open it. If the supplier genuinely reused a number, change one of them. |
| A claim or bill will not save, and Ledgr names a date | A document dated more than a year ahead is refused, and so is a due date that falls before its own issue date — both would put a journal in a period no close will ever reach. Correct the date. |
| A paid claim or bill will not let you change the amount | Money has already been recorded against it. Reducing the amount would leave cash in the ledger with nothing behind it. Press Reopen on it first — that undoes the payment posting — then edit, then pay again. Notes and purposes stay editable throughout. |
| Someone approved their own claim, or a status jumped | That cannot happen: a claim's status moves only through submit, approve, reject and pay, and approving needs the approve permission rather than edit. Check the role under roles & users. |
| A category shows spend against no budget | That is correct — it reads "No budget set" rather than inventing one. Set a budget on the Categories tab if you want the bar. |
| A recurring bill is on the payables list but not in the ledger | An occurrence posts in the same step it is created, so this only affects older bills. Open and re-save the bill to post it. |
| This month's bill from a recurring schedule in another currency has not appeared | Each bill is converted at the exchange rate for its own date, so it waits until that day's rate is on file. Add the rate under Settings → Localisation and the bill is created on the next run, with every line of the original. |
| An emailed document never arrived in the inbox | Check the address is the one on Expenses → Inbox for that company — each company has its own — and that the document was an attachment rather than an image pasted into the message body. An inline image is treated as a signature or a logo, not a receipt. |