Getting started
Payroll runs
Guide

Running payroll

The three-act flow in product: compile the roster, calculate the maths, and export the bank file + SARS paperwork.

Every payroll run on payloop moves through the same three acts: Compile, Calculate, Export. This page walks through the in-product flow for each.

If you want the philosophy behind the three-act shape, read The anatomy of a calm payroll run.

Creating a run

From the dashboard, click New payroll run. We’ll create a draft for the current pay period with every active employee at their current salary. The run starts in Compiling status.

You can have multiple runs in flight (e.g. monthly + a separate once-off bonus run) but only one of each type per period.

Act 1 — Compile

In the Compile tab you’ll see:

  • The full roster for the period.
  • Joiners flagged with a New chip.
  • Leavers flagged with a Final chip and a calculated end date.
  • An Adjustments queue for once-off items (bonuses, deductions, reimbursements, garnishees).

Adding an adjustment

Click Add adjustment, select an employee, choose a type, enter the amount. The most common types:

  • Bonus — taxed using the annualised method (don’t worry, it’s correct).
  • Reimbursement — non-taxable, doesn’t affect PAYE.
  • Deduction — post-tax, e.g. a loan repayment.
  • Garnishee — emoluments attachment order, with the required reference number.

Closing the act

Click Lock roster → Continue to calculate. This freezes act 1 — you can’t add adjustments after the lock without re-opening compile (which resets act 2).

Act 2 — Calculate

When you continue, payloop runs the maths against the live SARS tax tables. For each employee you’ll see:

  • Gross, PAYE, UIF, Other deductions, Net pay.
  • A prior-month delta for every line item.
  • A flag (yellow / red) for anything that moved more than 3% / 10%.

Reviewing diffs

Click any flagged row to see the side-by-side comparison. You’ll see both months, the delta in rands and percent, and a brief explanation if we can derive one (e.g. “Pension contribution changed from R 4 200 to R 5 495 on 1 Oct”).

Acknowledge each >10% movement. The run cannot close until every red flag has been reviewed.

Asking the assistant

For anything you don’t recognise, open Ask payloop at the bottom of the page and type your question in plain English — “why did Nia’s PAYE drop?”. The answer is grounded in your run data, cites the change that caused it, and links to the underlying records.

Closing the act

Click Approve calculations → Continue to export. You can re-open this act if you spot something later, but doing so resets the export.

Act 3 — Export

In the Export tab, four artefacts are generated:

ArtefactFormatSent to
Bank-import fileBank-specific (see below)You upload to your bank
PayslipsSigned PDFEmployees, by email or mobile app
EMP201SARS eFiling XMLSARS, when you submit
Ledger entryXero / Sage JSONYour accounting system

Downloading the bank file

Choose your bank from the dropdown — FNB, Standard Bank, Capitec, Nedbank, Absa, Investec. We generate the file in the bank’s exact format, with universal branch codes and a 20-character reference scheme.

For the upload steps on each bank’s portal, see How to upload bulk salary payments.

Dispatching payslips

Click Send payslips. Employees receive a signed PDF by email (or push notification if they use the mobile app). You’ll see delivery status per employee on the export page.

Staging EMP201

The EMP201 is pre-populated and ready to submit. You can submit directly from payloop (via eFiling integration) or download the XML for manual submission. The full filing calendar is here: The South African employer tax filing calendar (2026/27).

Posting the ledger entry

If you’ve connected Xero or Sage, the journal entry posts automatically when the run is marked Completed. You can preview the entry before it posts.

After the run

Once all four artefacts have been generated:

  • The run status changes to Completed.
  • The audit log records every act’s opening, every change, and every approval.
  • The next run inherits this roster as its baseline.

Re-opening a completed run

If you discover an error after closing — e.g. a missed bonus — you can re-open the run via Run → Re-open. This will:

  1. Re-open act 1 (compile).
  2. Invalidate the existing bank file, payslips, and EMP201.
  3. Require you to step through all three acts again.

Re-opening is logged and visible in the audit trail. Use it sparingly — it’s usually cleaner to handle a missed item as an adjustment in the next run.