Running monthly payroll (myWork → SimplePay)
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 produces the bank 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.
The run, in order
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 and Client ID (App Config, group SimplePay) and switches the payroll → SimplePay feature on.
- Open Payroll → SimplePay Export Setup and click Fetch from SimplePay to load your SimplePay pay items, leave types and pay frequency.
- Map the pay items — for each myWork component pick the matching SimplePay item and choose Hours or Amount (e.g. Overtime (×1.5) → Overtime, Hours). Leave Basic Salary and tax items (PAYE/UIF/SDL) blank — SimplePay handles those.
- 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 click Create / link in SimplePay (it links to the existing SimplePay employee or creates one). Complete each new employee's banking in SimplePay.
Each month — the payroll run
1. Prepare the month (in myWork)
Make sure the period's hours are authorised (Team Hours) and leave is approved. Pending (unauthorised) hours aren't a hard blocker, but anything not authorised won't be paid — sort these first.
2. Open the run
Go to Payroll → 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.)
3. Calculate
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. If a warning shows pending hours, authorise/decline them and Calculate again.
4. Send the leave to SimplePay — before the inputs
Click Send leave to SimplePay and confirm. It posts the period's approved leave to each employee's SimplePay leave calendar (leave already there is skipped — no duplicates). Why first? Leave — especially unpaid leave — changes the payslip. Sending it first means SimplePay's draft already reflects the unpaid-leave reduction, so the next step reconciles like-for-like and won't flag a false mismatch.
5. Export the inputs to SimplePay
Click Export to SimplePay and confirm. This pushes overtime hours, bonuses, allowances and deductions onto each employee's draft SimplePay payslip, then reads the recalculated totals back. Re-running is safe — it overwrites, it doesn't duplicate. A results window opens with one row per employee (see What the statuses mean).
6. Check the reconciliation
In the Export results, expand a row to compare myWork vs SimplePay totals (Gross / Deductions / Net / Employer contributions) and the difference. Because leave went first, SimplePay's net already includes any unpaid-leave reduction. Small differences are normal (the two systems calculate tax slightly differently); the window flags any material net mismatch — look into those. A leaver shows a TERM tag, with their expected annual-leave payout included so the totals line up. Tip: if a payslip still shows "recalculating" (dirty) just after sending, re-open (or re-run) the Export so the read-back picks up the fresh leave + inputs.
7. Pay (in SimplePay) and send to the bank
Open the run in SimplePay and review the payslips (they now include the OT/inputs/leave). Then in SimplePay go to Pay Runs → EFT Export, fill in the date/reference, download the bank file, and upload it to your bank to pay salaries. (Bank payment happens in SimplePay — myWork does not pay the bank.)
8. Close the run in myWork (optional)
Back in myWork you can click Pay and then Lock to mark the period done in the ledger.
What the result statuses mean
| Status | Meaning | What to do |
|---|---|---|
| OK | Sent/saved in SimplePay | Nothing |
| 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 |
| 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. 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. Expand the row to see the breakdown.
- 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 4.
- The employee page (HR): Salary, banking & compliance — linking employees and their banking.