What gets sent to SimplePay (imports & sync)
What this guide covers
Exactly what data crosses from myWork to SimplePay during a payroll run, and what comes back. myWork sends the variable inputs (leave and the mapped pay components); SimplePay holds the basic salary and does the maths, tax and bank file. This explains the two pushes, the read-back, what's never sent, and how employees are matched — so the numbers are never a mystery.
Who does this: payroll administrators, from the Payroll Runs console. It's a live write to SimplePay (behind a feature switch) — nothing is sent without you clicking a button, and every step is safe to re-run.
The data flow at a glance
First: matching the employee
Before anything is sent, myWork resolves each person to their SimplePay employee:
- their stored SimplePay link (set by Create / link in SimplePay on the HR page), else
- a match on Worker ID (employee number, leading zeros tolerated).
If neither matches, that employee comes back UNRESOLVED and nothing is sent for them until they're linked.
Push 1 — Send leave (to SimplePay's leave calendar)
For the run's period, myWork takes the approved leave straight from the attendance records — one entry per actual leave working-day (so weekends and public holidays are naturally excluded). Each entry carries:
- the date,
- the hours for that day (the scheduled day length — halved for a half/partial-leave day), and
- the leave type (its SimplePay leave type, from the mapping).
A leave type with no SimplePay mapping is reported as unmapped and skipped. The leave API adds days, so myWork first reads what's already in SimplePay and skips anything already there — re-running never duplicates.
Push 2 — Export inputs (to the draft payslip)
myWork then pushes the period's variable pay components onto each employee's draft SimplePay payslip (dated the run's pay date). For each mapped component it sends:
- overtime / public-holiday → hours (SimplePay works out the rand from the basic it holds), and
- bonuses, allowances, deductions, loan recovery, the unpaid-leave dock → amounts (the rand value).
Components that aren't mapped (or have nothing for the period) are simply not sent. The export overwrites the draft inputs rather than adding to them, so re-running is safe.
Read back — the reconciliation
Right after a successful push, myWork reads SimplePay's recalculated totals for that employee — Gross / Deductions / Net / Employer contributions — and shows them side-by-side with myWork's own. That's the reconciliation in the export results. Small differences are normal (the two systems compute tax slightly differently); a material net mismatch is flagged for you to investigate. If a payslip is still recalculating ("dirty") the moment after sending, re-open the export so the read-back catches up.
What is never sent
- Basic salary — SimplePay holds it (and uses it to value the overtime hours you send).
- Tax & statutory — PAYE, UIF, SDL, ETI. These are never mapped, so they're never pushed; SimplePay calculates them.
myWork only ever sends the variable inputs + leave.
Per-employee outcome
Every employee gets a status in the results:
| Status | Meaning |
|---|---|
| OK | Sent/saved on their SimplePay draft (and read back for the reconciliation). |
| SKIPPED / NOOP | Nothing to send (no mapped inputs, or the leave is already in SimplePay). |
| UNRESOLVED | Not linked to a SimplePay employee yet. |
| FAILED | SimplePay rejected it (reason shown — e.g. the payslip is already finalised). |
A failure for one person never breaks the run or the others — each is independent and best-effort.
A note on leavers
For an employee terminating in the period, myWork folds their expected annual-leave payout (annual-leave days × daily rate) into its gross and net, because SimplePay pays that out on the final payslip. Without it, the payout would look like a false mismatch in the reconciliation.
Good to know
- Order matters: send leave first, then the inputs — so unpaid leave is already reflected when you reconcile (see Running monthly payroll).
- It's live, but gated — the export is behind a feature switch and only runs when SimplePay is configured; nothing leaves myWork without your click.
- myWork never pays the bank — the EFT/bank file is produced in SimplePay.
Related guides
- Running monthly payroll (myWork → SimplePay) — the step-by-step run that performs these sends.
- How SimplePay mapping works — what makes a component or leave type sendable in the first place.
- The employee page (HR): Salary, banking & compliance — linking an employee to SimplePay.