What this guide covers
How to process a month's payroll end to end. myWork prepares the variable inputs (overtime, bonuses, allowances, deductions, leave); SimplePay calculates the pay and tax; myWork then adopts SimplePay's figures as the payslip of record, closes the period and builds the bank payment file. You stay in control at every step — nothing is sent without you clicking a button, and every step is safe to re-run.
Who does this: payroll administrators. The screens are gated by the payroll permissions; real pay runs also require the payroll feature to be switched on. Building the bank file needs a separate permission (PAYMENT_BATCH_GENERATE).
One-time setup (do this once)
Only needed the first time — or when something changes (e.g. a new employee).
Connect SimplePay — an administrator enters the SimplePay API key (App Config, group SimplePay) and switches the payroll → SimplePay feature on.
Open Payroll > Payroll Settings > SimplePay Export Setup. Register your SimplePay company (mapping is per company / client id) and select it. Click "Fetch from SimplePay" to load that company's pay items, leave types and pay frequencies. If you will push banking to SimplePay, also fill in the SimplePay banks register.
Map the pay items — for each myWork component pick the matching SimplePay item and choose "Send as" (e.g. Overtime (×1.5) → Overtime, Hours). Leave the tax items (PAYE/UIF/SDL) blank — SimplePay handles those. Click "Save component mapping".
Map the leave types — match each myWork leave type to its SimplePay type (e.g. Annual → Annual, Unpaid → Unpaid), then "Save leave-type mapping".
Set the default pay frequency — pick your monthly frequency and "Save pay frequency".
Link employees — every employee must exist in SimplePay. On each person's HR employee page (Personal Info tab) click "Create / link in SimplePay" (it links to the existing SimplePay employee or creates one). Complete each new employee's banking in SimplePay.
See How SimplePay mapping works for the detail.
Each month — the payroll run
Go to Payroll > Runs and History > Payroll Runs, pick the pay group and a date inside the period, and click "Open run". (You can only open a run once the period's cut-off has passed.) The run console then walks you through numbered steps.
1 · Prepare
Click "Check readiness" (or "Refresh readiness" to re-scan). The readiness panel either says "All hours authorised or declined — everyone's hours are in the figures" or lists the employees with unauthorised hours that are NOT in the figures (Employee, Pending (h)). You can still calculate and pay, but anything not authorised won't be paid — ask the manager to authorise or decline in Manage hours first if it should be included.
Tick "Exclude short-hours deductions" if this run should skip the no-work / shortfall dock. Unpaid leave, bonuses and other deductions still apply.
Click "Calculate". The payslip table appears — one row per employee with Gross / Deductions / Net. Calculate is safe to re-run; it changes nothing in SimplePay or the bank.
2 · Push to SimplePay
Click "Send leave to SimplePay" and confirm (step 2a). It posts the period's approved leave to each employee's SimplePay leave calendar; leave already there is skipped, so no duplicates. Do this first: leave — especially unpaid leave — changes the payslip, so SimplePay's draft must already reflect it before the inputs land.
Click "Export to SimplePay" and confirm (step 2b). This pushes overtime hours, bonuses, allowances and deductions onto each employee's draft SimplePay payslip. Re-running is safe — it overwrites, it doesn't duplicate. A results window opens with one row per employee (see What the statuses mean).
3 · Reconcile
Click "Get SimplePay results" (step 3a). myWork reads SimplePay's computed figures back — Gross / Deductions / Net / Employer contributions and the line detail — and shows them next to its own, with the difference. Small differences are normal (the two systems calculate tax slightly differently); a material net mismatch is flagged — look into those. A leaver shows a TERM tag, with their expected annual-leave payout included so the totals line up.
Click "Check stale inputs" (step 3b) to list SimplePay lines that myWork does not send — values someone keyed directly in SimplePay, or last month's leftovers.
"Refresh SimplePay labels" turns raw SimplePay item ids into their friendly names. Display only.
4 · Adopt figures
Click "Write to ledger". SimplePay's figures become the payslip of record in myWork's ledger — this is what Employee Overview, Payslip History and the bank file read. It is reversible.
"Revert to myWork" undoes it and generates from myWork's own figures again.
5 · Close
Click "Mark as paid" once SimplePay has paid the run. This records it in myWork (the run must be Calculated).
Click "Finalise" to close the period and make it immutable (the run must be Paid). No further changes after this.
"Release to employees" publishes the run's payslips to each employee's My Payslip view; "Un-release payslips" hides them again.
6 · Pay the bank
This step appears for users with the bank-file permission, once the run is Paid or Finalised.
Choose the "Figures:" source — SIMPLEPAY (the adopted SimplePay net, the normal choice) or MYWORK (myWork's own net).
Click "Generate bank file". The "Bank payment file" dialog shows the figure source, the number of employees to pay, the total credit and any exclusions. Click "Download file" to get the ACB (.SSV) file, then submit it to the bank.
The bank file pays whatever figures you chose. Only generate it after step 4 has written SimplePay's figures to the ledger and the reconciliation was clean.
Repair
"Undo leave (SimplePay)" deletes this period's leave in SimplePay so corrected leave can be re-sent with "Send leave to SimplePay". It is a live delete in SimplePay — use it only when leave was sent wrongly.
What the result statuses mean
OK — sent/saved in SimplePay. Nothing to do.
FAILED — SimplePay rejected it. Read the reason; if the payslip is finalised, un-finalise it in SimplePay and re-run.
UNRESOLVED — employee not linked in SimplePay. Link them (HR page → "Create / link in SimplePay"), then re-run.
SKIPPED / NOOP — nothing to send (no mapped inputs, or leave already there). Nothing to do.
TERM — employee is leaving; annual leave paid out. Check the payout figure in the expanded row.
Troubleshooting
"UNRESOLVED" employees — they aren't in SimplePay yet. Open their HR page → "Create / link in SimplePay", then re-run the export.
"Unmapped" leave or items — a leave type or pay component has no SimplePay mapping for this company. Set it on SimplePay Export Setup and re-run.
A net mismatch on the reconciliation — usually tax on a once-off item (e.g. a termination leave payout) or a manual change made directly in SimplePay. Run "Check stale inputs" and expand the row to see the breakdown.
A payslip still "recalculating" (dirty) just after sending — run "Get SimplePay results" again so the read-back picks up the fresh leave and inputs.
Don't double-count unpaid leave — handle it once: map Unpaid leave as a leave type (recommended) or as a deduction component, not both.
Re-running is always safe — the export overwrites the draft inputs and the leave sync skips leave already recorded. When in doubt, run the step again.
Related guides
Manage hours: authorise and decline your team's time — getting the period's hours authorised (step 1).
Manage your team's leave — approving the leave that's sent in step 2.
Pending Approvals — approving the bonuses and advances that the run picks up.
What gets sent to SimplePay (imports & sync) — exactly what crosses in each direction.
Employee page: Personal Info — linking employees to SimplePay.