Ledgr/Documentation/Invoicing
Invoicing & quotes
Watch the 3 lessons: Raise and send an invoice (2:21), Send a quote and convert it to an invoice (2:00), Record a payment or issue a credit note (2:11).
Everything you issue to a customer lives here — eleven document types sharing one wizard, one numbering scheme and one settings centre.
The eleven document types
Each type has its own prefix, colour and behaviour. Pick the type at the top of the create wizard; you cannot change it afterwards, but you can convert between some of them.
| Type | Use it for | Posts to the ledger? |
|---|---|---|
| Tax invoice | The real thing. VAT-compliant sale. | Yes, on send |
| Quote | A price offered, not yet accepted. | No |
| Sales order | An order your customer has placed. Its stocked items are reserved, so Inventory shows them as reserved rather than available, until you convert it to an invoice or cancel it. | No |
| Lay-by | Goods held for a customer who pays them off. They are reserved until collected; the payments are held as the customer's money, not a sale. How a lay-by works. | No — its payments are held in Lay-by Payments Held |
| Pro-forma | A request for payment before you supply. | No |
| Deposit / prepayment | Money up front, held until you deliver. | Yes, to deferred revenue |
| Credit note | Reversing all or part of an invoice. It names the invoice it corrects and why (see below). | Yes, negative |
| Debit note | Charging more against an existing invoice, which it names with the reason. | Yes |
| Delivery note | Goods handed over. Carries a picking list for the warehouse. | No |
| Purchase order | What you are ordering from a supplier. | No |
| Receipt | Acknowledging money received. | Against the invoice |
Create an invoice
- Client & Terms
Choose the customer — start typing and the contact list filters. Set the document date, the payment terms (COD through to Net 90) and the currency. The due date is worked out from the terms. The terms and the currency start from the customer's contact record, so a Net 60 customer's invoice opens at Net 60 — and a term that is not on the list, such as 45 days, is kept as Net 45 rather than rounded to the nearest one.
Invoicing in a currency other than your own needs Business or above, and the rate, the revaluation and where the rates come from are covered under foreign currency. A card payment link is only offered on a rand invoice — see recording payment.
A tax invoice that charges VAT in another currency also prints its value, VAT and total in rand at the invoice's rate, under the totals: the VAT Act asks for a tax invoice in rand, and your customer needs the rand VAT to claim it. A zero-rated invoice may stay in the other currency. Ledgr will not issue a VAT-charging foreign tax invoice it cannot convert to rand.
A foreign invoice is converted at the rate on file for its document date. Change the date of a draft and the rate follows it, and a quote converted to an invoice takes the rate of the day it is converted — unless you typed the rate yourself, which stays.
- Line Items
Add lines with + From catalogue (a product or service you have already set up), + Custom item, or Paste… to bring in several at once from a spreadsheet. The P/S switch at the start of each line says what it is:
- P (product) — quantity and unit price
- S (service) — hours and rate
Discount is per line and can be a percentage or a rand amount — use the toggle next to the field. The Type column sets the VAT treatment per line — standard, zero-rated, or a price that already includes VAT — so a zero-rated export line can sit next to a standard-rated one on the same invoice. Goods you ship out of South Africa are Zero-rated exported goods; a service to a client outside South Africa, such as consulting for an overseas company, is Zero-rated service — see which box each line goes in.
- Review
Check the totals, then fill in the three text blocks that are separate from your notes: terms & conditions, banking details and footer. They pre-fill from your defaults and you can edit them for this one document. Attach a payment link here if you want one.
- Save as Draft, or Send
Save as Draft leaves it as a draft you can still edit. Send Invoice (Send Quote, Send Credit Note and so on) saves it and takes you straight to the sending choices below; it is marked sent when it goes.
A draft or sent invoice is freely editable. Of tax invoices only a draft can be voided: once one has been issued (sent, or marked sent) the VAT Act (section 21) has it corrected by a credit note, and its number stays in the sequence (section 20), so Ledgr offers no Void on it and refuses one through the API with a message that names the credit note. The same holds for an issued credit note or debit note: it is corrected by a further note (a debit note when it credited too much, another credit note when too little), never voided. As soon as any payment is recorded, including a part payment, Ledgr also refuses to take its total below what has been received — because the difference would be money in your bank with no invoice left to settle. You can still correct upwards, and down as far as the amount paid. Beyond that, use a credit note rather than an edit: that is what an auditor will expect to see, and Ledgr names the figure and the shortfall when it refuses.
A tax invoice is issued only when it carries what the VAT Act requires
Once your company has a VAT number, Ledgr checks each tax invoice before it is issued (sent, or marked sent). Section 20(4) of the VAT Act asks a tax invoice for the words “Tax Invoice”, your business's name, address and VAT number, an invoice number and date, a description and quantity on every line, and — above R5 000 including VAT — your customer's name and address (and their VAT number when you hold one). At R5 000 or less an abridged tax invoice is enough (section 20(5)): the customer's details and the quantities are not needed. A credit or debit note needs the same parties' details (section 21(3)), except the customer's when the invoice it adjusts was R5 000 or less. A draft saves without them; issuing it is refused with the list of what is missing and where to add it (Settings → Company for your own details, Contacts for your customer's). Your customer cannot claim the VAT on an incomplete tax invoice. While Settings → Company lacks your business's name, address or VAT number, a notice on the dashboard and the invoice screens names what is missing and opens Settings → Company; it goes once the record is complete.
Credit and debit notes name their invoice and their reason
The VAT Act (section 21(3)) has a credit or debit note identify the tax invoice it adjusts, by number and
date, and say why it is being raised: your customer needs both to correct the input tax they claimed. So
a credit or debit note carries an Original invoice (chosen from that customer's issued invoices
on the Line items step, or sourceDocumentId through the API) and a Reason (the Notes
box, headed “Reason for credit note” on the printed copy). You can save one as a draft
without them, but it cannot be sent or marked sent until both are there; Ledgr says which is missing.
The printed note reads “Credit against INV-0042” with the invoice's date under its own
number. The original must be an invoice to the same customer: a note for one customer against another's
invoice is refused at issue, naming both. The credit notes Ledgr raises itself — an early-payment
discount, a refund from your online store, returned containers' deposits — name the invoice they
adjust the same way.
The moment a credit note is issued it comes off the invoice it names: that invoice owes less, and your customer's statement and the age analysis show it that way. If the invoice owes less than the credit note (it was already paid, or part of it was), only what it owes comes off and the rest stays on the credit note as the customer's credit, to apply to their next invoice or refund. When you apply a customer's credit to an invoice, a credit note raised against that same invoice is used first.
On a credit note, each goods line asks The goods came back to stock. Leave it ticked when the customer
returned the goods: they go back on the shelf at the cost they left at. Untick it for a credit that is only
about the price — an allowance, a short delivery, goods damaged at the customer — and the sale is
credited with nothing added back to stock and no cost reversed. Through the API this is
returnsGoods on the line (true when left out).
Sending
An open document offers three routes:
- Send via Email — uses the template for that document type, with your subject and body, reply-to address and the PDF attached if you have that switched on
- Send via WhatsApp — sends to the contact's mobile number through the WhatsApp Business channel
- Copy Payment Link — a portal link the customer can open without an account, to view the document and pay
Every email and WhatsApp send — the document itself and every payment reminder — is recorded on the customer's Communication History in Contacts, with the date, the channel and whether it went. A send that failed is recorded too, with the reason, so you can prove what went out and when. Copying a link is not recorded, because nothing has been sent yet.
An invoice's Reminder history goes further for WhatsApp: once WhatsApp reports back, a reminder reads delivered or read, and one WhatsApp could not deliver reads not delivered — and is not counted against your WhatsApp messages.
Recording payment
- Open the invoice and choose Record Payment
Enter the amount, the method (EFT, cash, cheque, card or other) and the date. A partial payment moves the invoice to Partial and leaves the balance outstanding; a full payment settles it and moves it to Paid.
Choose the bank account the money was received into and the payment also appears as a line on that account, ready for its statement. When the bank's statement arrives carrying the same money, Ledgr recognises it as that line instead of adding a second one, and the invoice is not paid twice. Removing the payment takes its line off the account again. An account held in a third currency — a euro invoice received into a dollar account — shows the receipt in its own currency, converted from its rand value at that currency's rate on file for the day.
- Or let the bank do it
If the money arrives as a bank transaction, match it in Banking and the invoice settles from there — no double capture.
- Or let the gateway do it
Payments taken through a PayFast or Yoco link arrive in the Payments inbox (the Payments button on the Invoicing toolbar) and auto-match to the invoice within your tolerance. Anything the matcher is unsure about waits in the review queue with a manual match dropdown.
Money a customer paid beyond what they owed
When a payment is more than the invoice owes, Record Payment asks whether to keep the extra as the customer's credit. You can also keep the whole amount as credit against one of their invoices that is already paid, which is how money received on account is recorded. The credit appears on the customer's next invoice, ready to apply, and in your books it is money you owe them, not income.
To give it back, open an invoice of theirs and choose Pay … back to them on the credit card. Choose the bank account the money leaves from and confirm: the credit is used up, the account shows the payment as a line, and your debtors figure returns to what is really owed. No sale is reversed and no VAT moves, so this is not a credit note. Only money they paid you can be paid back this way; a credit note's credit is refunded on the credit note itself. A refund can be removed from the invoice's payment list, which puts the credit back.
A customer you have not invoiced has no invoice to hold the money. If you are registered for VAT, raise a deposit invoice for it: money received before an invoice is when the supply is taxed, and the deposit invoice is what declares that VAT.
An early-payment discount
An invoice can offer a discount for paying early — for example 2% if paid within 10 days. The terms are set when the invoice is created through the API, and the customer's copy then says what to pay and by which day. When money arrives dated on or before that day — recorded by hand, matched in Banking or paid through a link — and it leaves no more owing than the discount, Ledgr grants the rest: it issues a credit note for the discount, with its share of VAT, books it to Sales Discounts and applies it, and the invoice is paid. Your output VAT falls by the credit note's VAT in that period. A payment after the last day, or one that leaves more than the discount owing, earns nothing, and the balance stays due.
Quote to invoice
Open the accepted quote or pro-forma and choose Convert to Invoice. The lines, customer and pricing carry across to a new tax invoice with a fresh number and your chosen terms. The original quote stays in the list, marked Invoiced, so the history holds together.
Retention on a contract
A construction client usually holds back part of each progress payment until the work is finished. Set Retention % on the quote, and every invoice raised from it — each part, and the last one — withholds that share of the claim before VAT: the customer is asked for, and charged VAT on, what is payable now. What is withheld is held in Retentions Receivable, out of your aged debtors, which show it as a separate figure. The quote's progress card shows what has been withheld, released and is still held, and two buttons release it: Release half at practical completion, and Release the rest when the defects period is over. Each raises a draft invoice that charges VAT on the retention then, and is sent like any other. Ledgr refuses a release of more than is held, and refuses to void a claim whose retention has already been released.
Where a document's state calls for one action, it is offered at the top of the document's actions as a Next step card that says what it will do: an accepted quote offers Convert to invoice, a delivery note that has gone out offers Invoice this delivery, and an invoiced sales order offers Open its invoice. The same card is on a signed-off, completed job card (Invoice this job), on a received and billed purchase order (Open its bill) and on an approved supplier bill (Pay). When the step cannot be taken yet, the card says why instead of showing a button.
Sales orders: from order to door
The Sales Orders tab is your list of every customer's orders. Each order says where it is — Open, On a trip, Part delivered, Delivered or Invoiced — and the day it is due to be delivered. Ledgr works this out from the order's delivery notes and invoices, so it is never something you have to update by hand. Pick a customer at the top of the tab to see only their orders.
To send goods out, open the order and choose Create delivery note. The note takes whatever is still open on each line, and that note is what goes on a trip in Logistics. If you deliver part of an order, the next note takes only what is left. A note for more than is still open on the order is refused, so nothing leaves twice. When you convert the order to an invoice, it bills the whole order but takes from stock only what no note has already delivered.
Lay-by: goods held while the customer pays
Raise a Lay-by like any document, with the goods on it, the date it must be paid by and the cancellation fee the customer agrees to — no more than 1% of the price, which is the law's limit. The fee is printed on the lay-by, so the customer knows it before they agree. Issue it, and the goods are reserved: Inventory shows them as reserved, not available, until the lay-by is collected or cancelled.
On the lay-by, Take payment records each payment into a bank account, where it is also a line on that account for the bank's statement to confirm; a refund on cancelling is a line out of the account. Until the goods are delivered every payment is still the customer's money, so it is held in Lay-by Payments Held, not booked as a sale, and no VAT arises on it: a lay-by is not a supply until the goods are delivered (VAT Act section 8(4)). A payment that would take the lay-by past its price is refused.
Once it is paid in full, Collect issues the tax invoice for the goods, dated the day they leave, takes them out of stock and settles the invoice from what was held. A lay-by cannot be collected before it is paid in full, or voided while it holds money.
Cancel lay-by — when the customer cancels, or has not paid in full within 60 business days of the date to pay by — keeps the agreed fee and refunds the rest from the bank account you choose; the goods go back on the shelf. The fee is raised on its own invoice (with VAT if you are a VAT vendor, because a fee kept on a cancelled lay-by is a supply of a service, VAT Act section 8(4)) and is booked as income. Tick Waive the fee when the customer could not pay because of death or hospitalisation: then everything they paid is refunded.
Gift vouchers: a value to spend, VAT when it is spent
A gift voucher is sold for a stated value ("R500 to spend") into a bank account. Until it is spent the money is the holder's, not yours, so Ledgr holds it in Gift Vouchers Outstanding as something you owe — it is not income, and no VAT arises when you sell it: the sale of a voucher for a value is disregarded for VAT (VAT Act section 10(18)). Money paid above the value printed on it is not a voucher and is invoiced.
When the holder buys something, issue the tax invoice for it as usual: the invoice carries the VAT on the goods or services supplied, on its own date. Spend the voucher on that invoice and it pays it, in whole or part, out of Gift Vouchers Outstanding. A voucher cannot pay a draft or a voided invoice, more than its balance, or more than the invoice still owes.
A voucher is good for three years from the day it is sold unless you give it a longer term; a shorter one is refused (Consumer Protection Act section 63). After that, Expire releases what is left to Sundry Income, with no VAT, because no supply was ever made. A voucher for specified goods or services ("one car wash") is different: its sale is the taxable supply, so sell it as an invoice line. The voucher list shows its total beside the ledger's Gift Vouchers Outstanding, and the two always agree.
What a quote or an order earns
Open a quote or a sales order and the Margin card shows what each line earns: its price before VAT, less what the line costs you. Something you make is costed at its standard cost, or what its recipe adds up to if it has no standard yet. Something you buy in is costed at its cost price. The card totals the document too. A typed line with no product has no cost, and when a line has no cost the total says so. The card is never printed or sent to the customer, and it appears only for people whose role may see cost.
Recurring invoices and reminders
The Recurring button on the Invoicing toolbar holds the schedules. A new schedule takes a customer, a product or service and its quantity, a frequency (weekly, monthly, quarterly or annually), the next issue date and a currency. On that date Ledgr raises the next invoice as a draft, on the customer's own payment terms, for somebody to look over and send. Pause a schedule any time without losing it, and Resume it later.
A subscription paid in advance. Tick Bills the cycle in advance on a schedule whose invoice pays for the period it opens, such as an annual plan. Each invoice then carries that period (the issue date to the day before the next one) on its line, and at every month end Ledgr moves the part of the income not yet served into Deferred Revenue (2150), returning it to income as the days pass. The invoice, its VAT and what the customer owes do not change. On any service line of a draft you can also choose Earned over a period and set the two dates by hand. A schedule that is not ticked raises its line as before, all earned on the invoice date.
VAT across a rate change, and supplies to a connected person
A rate change. A line's VAT rate follows the days it was delivered or performed, not only its invoice date (section 67A of the VAT Act). Work done before a new rate took effect and invoiced after it carries the old rate; a period that spans the change is charged at each rate for its own days, so Ledgr asks you to split that line in two at the change; and work invoiced after an increase was announced but done after it took effect carries the new rate (a recurring schedule's invoices excepted). Give the line its period with Earned over a period and Ledgr refuses a rate the Act does not allow, naming the right one.
A connected person. Mark a customer Connected person for VAT on their contact when they are a related party as the VAT Act defines it: a relative, a company you control or that controls you, a partner, a trust you benefit from. Two rules then apply to tax invoices made out to them:
- When the supply is made (section 9(2)(a)). Work invoiced after the return for the period it was done in was due is a supply of that period: Ledgr posts the invoice and declares its VAT on the last day the line was delivered or performed. If that return has been filed, the invoice is refused until it is marked for that period's correction.
- What it is worth (section 10(4)). Selling for less than its open market value to a connected person who is not registered for VAT, the VAT is worked out on the open market value (including VAT) you give the line. The VAT beyond what you charged is your own cost, posted to Non-claimable VAT. A customer with a VAT number is taken to be able to claim the VAT back in full, so the rule is not applied to them. A registered customer that also makes exempt supplies cannot claim it all, and Ledgr cannot see that: take such a sale up with your tax practitioner.
Collecting a recurring invoice automatically
A schedule that emails or WhatsApps its invoices in rand can also collect payment automatically by card, through your own PayFast account (Settings → Payments). The customer gives their card once, the first time they pay one of the schedule's invoices with its PayFast link — PayFast keeps the card, not Ledgr. From then on each invoice the schedule sends is charged to that card straight away, once, and marked paid when PayFast confirms the payment. A charge that does not go through — a declined card, an expired one — leaves the invoice sent and owed, like any unpaid invoice, and reminders carry on. A schedule that only drafts its invoices cannot collect, because a draft owes nothing yet.
Reminders are set up separately, with the Reminders button on the Invoicing toolbar (on a phone it is in the menu beside the refresh button). Tick the days a reminder goes out — 7 or 3 days before the due date, and 3, 7, 14, 30, 60 or 90 days after it — and whether each goes by email, WhatsApp or both. A reminder before the due date reads as a friendly note that payment is coming up and does not mark the invoice overdue. Each day fires once per invoice; an invoice that is already late when the schedule is switched on gets one reminder for the latest day it has passed, not a burst of catching up. Configure Reminders on an open invoice edits the same schedule, and adds an optional message of your own, which goes into the email (WhatsApp messages use fixed, pre-approved wording). To stop chasing one customer — say they are on a payment arrangement — mark their reminders paused on their contact.
Interest on overdue accounts is off until you switch it on, in Configure Reminders: tick Charge interest on overdue invoices and give the annual rate your terms allow. The National Credit Act limits interest on overdue accounts (incidental credit) to 2% a month, which is 24% a year, for customers who are consumers under the Act — individuals and small businesses — so a higher rate is refused unless you confirm that none of your customers on credit is a consumer. Once a month, each invoice past its due date with money still owed gets a debit note for one month's interest on what is owed, stated as a monthly rate (at 2% a month (24% a year)) as the Act's regulations require — 24% a year on R10 000 is R200.00 — with no VAT, because interest is an exempt supply. It is booked to Interest Received. Each invoice is charged at most once a month however often the reminders run, and the interest charged on one invoice never adds up to more than the debt itself.
The dashboard's Remind button sends one reminder straight away, outside the schedule, once you confirm it.
Letting property: a lease on a schedule
If the schedule bills rent, add its lease terms: the property (a value of an analysis dimension you have named, for example “Property”), the unit, the lease start, the escalation (a percentage, the date it first applies and how many months apart it repeats) and the deposit the agreement requires. The invoice raised on or after the escalation date is raised at the new rent, and the schedule keeps the new rent from then on. Reports → Rent roll lists every lease with its tenant, rent, next escalation, the deposit it requires and the deposit it actually holds, and what the tenant owes and has let fall past due.
A tenant’s deposit is the tenant’s money until you apply it or pay it back, so it is a liability (account 2158 Tenant Deposits Held), not income and not something typed on the lease. Take it on the lease (POST /api/recurring/{id}/lease/deposit, into a bank account), apply it to the tenant’s own invoice for what they owe, and refund the rest. The rent roll’s Deposit held is what those movements add up to, and it shows the ledger’s 2158 and any difference when a journal reached the account some other way. A bank line cannot be coded straight to 2158.
On a residential lease the Rental Housing Act (section 5(3)) has you keep the deposit in an interest-bearing account, and the interest is the tenant’s. When the bank pays it, record it on the lease as interest (the same request with "interest": true): it goes to 2158 with the deposit, never to your income, the lease’s deposit shows it as its own line (proof for the tenant), and a refund pays it back with the deposit. Ledgr does not work the interest out for you: the figure is the one on your bank statement.
Straight-lining the rent. When the rent escalates by agreement, the income you recognise over the lease is the total rent spread evenly over the term, not the escalated invoices (IFRS for SMEs 20.25 for a lessor). Set the schedule’s end date to the last rent cycle, then switch Straight-line the rent on the lease (straightLine in PUT /api/recurring/{id}/lease). Ledgr fixes the level rent from the cycles still to come; each rent invoice then books its income at the level rent and carries the difference to 1335 Straight-line Rent Receivable, which builds while the level rent is above the invoice and clears with the last one. The tenant’s balance and the VAT are exactly what the invoice says. For tax, rent is taxed as it is received or accrued under the agreement, so the ITR14 takes the not-yet-invoiced part back out of taxable income. Only rent invoices raised after you switch it on take part, so switch it on when the lease starts. A lessee’s own rent (a lease Ledgr does not bill) is not straight-lined here: expense it as the bills arrive, or journal the difference yourself.
Attachments on a document
Up to ten supporting files on any document — the customer's signed order, a delivery note, a spec sheet, the photograph of the meter reading the invoice is based on. PDF, JPEG, PNG, HEIC, WebP, CSV, plain text, Word and Excel, up to 15 MB each.
They are for your own record and for whoever asks later. They are not sent with the invoice and they do not appear on the customer's copy: what your customer receives is the document itself, which is the one layout shared by the preview, the PDF, the emailed attachment and the portal page.
Invoice settings
Seven tabs under Invoicing → Settings. Worth ten minutes early on:
| Tab | What it controls |
|---|---|
| Numbering | Prefix and starting number per document type, so your sequence continues from your old system. |
| Labels & titles | Rename the document heading ("Sales Invoice" → "Tax Invoice") and the column headers ("Price/Rate" → "Unit Price"). |
| Field visibility | Show or hide due date, contact name, business address, VAT number, discount column, payment links and the association logo. While you are VAT-registered, the contact name, address and VAT number cannot be hidden: a tax invoice must show your name, address and VAT number and your customer's name, address and, where they are a vendor, VAT number (VAT Act section 20(4)), so those three are locked on and the screen says why. If you are not registered, they stay yours to set. |
| Email templates | Subject and body per document type, reply-to, CC yourself, auto-attach the PDF. Supports variable substitution. |
| Logos & branding | Your primary logo plus a slot for a professional body mark — SAICA, SAIPA, SAIBA, IRBA or B-BBEE. |
| Defaults | Default terms & conditions, banking details and footer, kept separate from the notes field. |
| Auto-reconciliation | Turn gateway auto-matching on or off, set the rand tolerance, and enable per gateway. Your own Yoco and PayFast account details live under Settings → Payments. |
Deposits and prepayments
Issue a deposit invoice when you take money before delivering. The payment is held in deferred revenue rather than counted as income, and the deposit invoice shows Held (Deposit). When you deliver, create the final tax invoice, then open the deposit invoice and choose Apply Deposit to Invoice, picking the final invoice — the held amount is released against it and only the balance remains payable.
If you are registered for VAT, the deposit invoice already gave your customer its input tax. The final invoice therefore prints, beside each applied deposit, the VAT that deposit included, and a line VAT still due on this invoice with the rest, so the customer claims the VAT on the supply once across the two invoices (VAT Act section 16(2)).
Picking lists
A delivery note carries a picking list for whoever packs the order. While you create the delivery note, its Picking List section takes the warehouse and the picker's name and lists each line's bin, SKU, item, quantity and the stock on hand, with signature lines for the picker and the customer. Once saved, the delivery note shows the picking list as its own card, with a tick against each line that has been picked. The PDF and the copy your customer receives are the delivery note itself.
Common problems
| What you see | What to do |
|---|---|
| Cannot create another document this month | You are on the Free plan, which allows 5 documents each calendar month — invoices, quotes and every other kind count. Upgrade under Settings → Billing & Plan, or wait for the first of the month. |
| The number is not what you expected | Numbering is per document type. Check the prefix and next number on the Numbering tab — sent documents keep the number they were issued with. |
| The customer says they never got it | Check the Communication History on the contact. If the send is there and marked sent, copy the payment link and send it to them another way, and ask them to check spam. If it is marked failed, the reason is beside it. |
| A payment arrived but the invoice still shows outstanding | Look in the Payments inbox for an unmatched event, or match the bank transaction manually. Widen the match tolerance if the gateway deducted a fee. |