Ledgr/Documentation/Payroll

Payroll

South African payroll with the statutory maths built in — PAYE on the current brackets, UIF at the cap, SDL at 1%, and the EMP201 totals waiting at the end.

Plan.

Payroll is included from Professional upwards, with up to 50 employees. Above that it is banded — see pricing. Payroll never stops because of a band: if you grow past the one you paid for, payslips still run and the difference is settled at renewal.

Add an employee

  1. Payroll → Employees → New
  2. Identity and statutory fields

    First and last name, SA ID number, SARS tax reference number, email and start date. The tax number is what appears on the IRP5, so get it right up front.

  3. Pay

    Monthly salary or wage. Add recurring allowances and deductions — travel allowance, pension, medical aid — as separate lines so they are treated correctly for PAYE.

  4. UIF status

    Tick whether the employee contributes. Certain categories are excluded; if you are not sure, check before the first run rather than correcting it on an EMP501.

How the tax is worked out

Ledgr uses the 2026/27 tables. You do not enter any of this — it is applied when the run is calculated:

ItemTreatment
PAYE7 brackets from 18% to 45%, applied to annual equivalent remuneration
Primary rebateR17 820 a year, deducted from the annual tax before it is spread over the months
Tax thresholdR99 000 under 65, R153 250 from 65, R171 300 from 75
UIF — employee1% of remuneration, capped at R177.12 a month
UIF — employer1% of remuneration, capped at R177.12 a month
SDL1% of total remuneration, employer cost, where the payroll exceeds the threshold
Retirement (s11F)27.5% of the greater of remuneration or taxable income, capped at R430 000 a year

The Tax tables view inside the module shows every bracket, the rebates and the thresholds as Ledgr is applying them, so you can check a figure against SARS without leaving the screen.

A year Ledgr does not have is refused, not guessed.

Ledgr holds the tables for 2026/27 and the four years before it. Asking it to calculate for a year it does not carry produces a refusal rather than a figure worked out from the nearest year it does have — because too little withheld makes the employer personally liable under the Fourth Schedule, and a plausible wrong number is worse than no number.

Part-year employment

Someone who joins in September has not earned a year's salary, and taxing them as though they had over-withholds heavily. Ledgr annualises to find the rate, then pro-rates by the months actually worked — the Fourth Schedule treatment — so a new hire is withheld what they owe rather than being handed a large refund at assessment.

There is no cumulation across employers: each employer withholds on its own annual equivalent. If that produces the wrong answer for a particular employee, the remedies are a tax directive or a written request for a greater deduction. Never a smaller one.

Run a payroll period

  1. Payroll → Periods → New period

    Pick the month. Employees active in that month are pulled in automatically.

  2. Add the variables

    Overtime, commission, bonuses, unpaid leave, once-off deductions — anything that is not the standard monthly package.

  3. Calculate and review

    Ledgr produces a payslip per employee. Check gross, PAYE, UIF, other deductions and net. At this point nothing is final.

  4. Approve and finalise

    Finalising locks the payslips, generates the EMP201 totals and posts the payroll journal to the ledger. Do this only when you are satisfied — a finalised period should be corrected with an adjustment in the next period, not by unlocking history.

  5. Distribute payslips

    Download as PDF, or send by email or WhatsApp from the period screen.

Finalise before you file.

EMP201 reads finalised periods. If a run is still in draft, its PAYE, UIF and SDL are not in the declaration — which is how a return ends up showing zero when you know you paid people. Check the period status first if the numbers look wrong in the SARS centre.

Leave

Leave balances follow the BCEA:

  • Annual — 15 working days per year, accrued monthly
  • Sick — 30 days per three-year cycle
  • Family responsibility — 3 days per year

Employees request, a manager approves, and approved leave feeds the payroll run. Unpaid leave reduces the gross for that month, which changes the PAYE with it.

EMP201, EMP501 and IRP5

DocumentWhenWhat it contains
EMP201Monthly, by the 7thPAYE, UIF and SDL for the month, with the per-employee breakdown behind it
EMP501Twice a yearReconciliation of what was declared against what was paid
IRP5AnnuallyA tax certificate per employee for the year of assessment

All three are produced from finalised runs and appear in the SARS returns centre alongside your other returns.

Employee self-service

At five employees the owner emails payslips. At fifty it is a job, and at two hundred it is somebody's week. Each employee can have their own link to a page showing their payslips, their leave balances and their own details — without occupying a Ledgr user seat, because charging per user for people who only ever read their own payslip would be exactly the metering the price list promises not to do.

  1. Payroll → Employees → a person → Self-service link

    Generates a link valid for a year. Send it however you already reach them — email or WhatsApp. It opens on any phone, works offline-free with no app to install, and needs no password.

  2. They see only what is theirs

    Approved payslips (a draft is a working figure you have not signed off, so it stays hidden), leave balances, leave history, and their own details with the bank account masked to its last four digits.

  3. They can request leave

    It arrives in the same approval queue you already use. Nothing is granted by asking.

Banking details are a request, never an edit.

Payroll diversion — getting a salary redirected to a different account — is the most common payroll fraud there is, and it works precisely because the change looks routine. So an employee submits a change and a payroll administrator with approve permission reviews it, seeing the old and the new account side by side. The approval is written to the audit log at warning severity with both values, which is what an enquiry afterwards comes looking for. The employee saves you some typing; they do not get to move the money.

Salary, tax number and start date cannot be requested at all — those are terms of employment, not corrections.

A link stops working the day an employee's employment ends. That is checked against their end date on every request rather than kept in a list somebody has to remember to update. Anyone holding the link can open the page, though, so it should be treated like a password — if one is shared by mistake, generating a new one is the fix.

Medical aid, provident fund and garnishees

Most of what comes off a South African payslip does not go to SARS. It goes to a medical aid, a provident fund, a union, or — when a court has ordered it — a creditor. Ledgr records who each of those is, what comes off whose pay, and what to pay across at the end of the month.

  1. Add the beneficiary

    Payroll → Deductions → Add beneficiary: the scheme or fund, its banking details, your account number with them, and where to send the monthly schedule. The kind you pick is not just a label — a retirement contribution reduces taxable income and a medical aid earns the SARS tax credit, so it changes the PAYE on every payslip that uses it.

  2. Add the deduction

    Per employee: a fixed amount, or a percentage of basic or gross. Enter the employee's share and the employer's separately. The employer's half is a company cost — it is remitted with the employee's contribution and never deducted from their salary. Putting the combined figure in the employee field is the classic mistake, and it leaves the payslip short by exactly the employer's half.

  3. Capture each employee's membership number

    Without it the scheme cannot allocate the money, and a member's cover can lapse even though the payment arrived. It appears on the remittance schedule beside their name.

  4. Run the payroll as usual

    Deductions apply automatically and appear on the payslip by name, so an employee can see what came off and where it went.

  5. Pay the schedules

    Payroll → Deductions lists what to pay each beneficiary for the period, with the banking details, the total, and every member it covers. It is built from what the payslips actually deducted, not from the standing instructions.

Garnishee and maintenance orders

An emoluments attachment order is for a fixed total, so Ledgr asks for it and then stops when it is reached — trimming the last instalment to whatever is left. A R3 200 debt at R1 500 a month deducts R1 500, R1 500, then R200, and nothing after that. Continuing past the debt would be withholding a wage the employer had no right to, so it is prevented rather than left to whoever is watching the spreadsheet.

The order reference is kept on the deduction and the payment history on each payslip, which together are what prove the order was served.

Where several deductions compete for a short month, court orders take precedence, then medical and retirement, then voluntary things like savings. Nothing is ever deducted past zero net pay — an employer may not pay someone less than nothing, and Ledgr reports the shortfall instead of quietly creating one.

Cost to company

Packages are usually negotiated as a total cost to the employer, not as a basic salary. Payroll → Deductions → Cost to company works the basic back out for you.

It is not a subtraction: UIF and SDL are percentages of the very salary being solved for, and UIF is capped at R17 712 a month, so the answer settles rather than divides out. Applying it records that the package is a cost to company, so the basic can be re-derived if a contribution changes later instead of the working being lost.

Employment Tax Incentive

ETI reduces the PAYE you pay over for qualifying young employees — it is a genuine discount on your monthly EMP201, and a great many small employers who qualify never claim it because working it out by hand is fiddly.

Mark the employees who qualify and Ledgr computes the claim each month, reduces the EMP201 accordingly, and keeps the schedule behind it. The claim runs for a limited number of months per employee and Ledgr stops when that is used up, rather than carrying on and creating an over-claim you have to repay.

Fringe benefits

A company car, a housing subsidy, an employer's medical contribution or a low-interest loan are not cash, but SARS taxes them. Capture the benefit against the employee and Ledgr adds it to taxable income for the PAYE calculation and shows it separately on both the payslip and the IRP5 — which is where it has to appear separately, not folded into salary.

Bringing payroll across mid-year

If you switch to Ledgr partway through a tax year, the year-to-date figures from your old system have to come with you. Without them Ledgr calculates as though everyone started in March, the annualisation is wrong, and February's IRP5s do not reconcile.

  1. Payroll → Take-on

    Per employee: earnings, deductions and PAYE, UIF and SDL already paid this tax year.

  2. Ledgr checks it is plausible

    Tax that could not have arisen from those earnings is queried rather than accepted, since an error here is invisible until the IRP5 is rejected eleven months later.

  3. It shows on the dashboard checklist

    The setup checklist only marks payroll complete once every live employee has opening figures — so a person missed in the take-on is visible now rather than at year end.

See switching to Ledgr for the rest of the cutover. Mid-February is the easy month to move; mid-October is the one where this screen earns its place.