Outbound remittances from South Africa rose from US$897 million in 2016 to US$1.012 billion in 2022, an increase of about 12.8% over six years, according to Statistics South Africa's 2023 country profile. The same profile records US$873 million of inbound remittances in 2022, so recorded outflows exceeded inflows by about US$139 million. That gap is not a curiosity for the Reserve Bank. It is the cash your export or BPO finance team already moves to people, contractors and households outside the country.
Global payroll is the system that has to survive those repeated payments. Headline software fees are the small line. Worker status and the all-in rand cost decide whether the run is lawful and whether the margin survives the rate. Settle both before you open a vendor shortlist.
Choose a Global Payroll Model First
Write one model beside each cross-border person before anyone demos a platform. A Cape Town BPO with support staff in Kenya and a designer in the United Kingdom should not force both onto the same arrangement. Kenya might be a lasting team. The UK designer might be a genuine project contractor. One company-wide slogan will misclassify at least one of them.
Read the rows in order. Pick the row that matches how the work is directed, not the row that looks cheapest on a slide.
| Model | Legal employer | Where tax usually sits | Best when | Main risk |
|---|---|---|---|---|
| South African employer, staff abroad | SA company | SA PAYE, UIF and SDL if it is remuneration; check foreign PE and the foreign-employment exemption | Short assignment or remote work still directed from SA | Exemption fails the day tests or the R1.25 million cap |
| Host-country local entity | Local subsidiary | Host payroll and social charges; SA tax on the entity | A lasting team in one country | Slow setup, local labour law and a second payroll calendar |
| PEO or employer of record | PEO in the host country | Host payroll via the provider; SA company pays a service invoice | First hires where you will not open an entity | Day-to-day control that doesn't match the PEO contract |
| Independent contractor | The individual | Own tax unless deemed an employee; possible SA withholding | Project work with substitution and more than one client | PAYE exposure if status fails, including possible South African withholding |
How the four rows behave in practice
South African employer, staff abroad. You remain the legal employer. If the amount is remuneration, South African PAYE, UIF and SDL stay on the table, and you still test permanent establishment in the host country. I would use this for a short assignment or for remote work your managers in South Africa still direct. It fails later when someone assumes a foreign-employment exemption without the day tests, or when exempt income blows through the cap.
Host-country local entity. The subsidiary employs the person, runs host payroll and social charges, and the South African company deals with tax on the entity. This fits a team you expect to keep in one country. Setup is slow, local labour law arrives with the registration, and you now have a second payroll calendar to hit.
PEO or employer of record. The provider is the legal employer. You pay a service invoice. It is the practical route for first hires when you will not open an entity. The failure that hurts is day-to-day control that the PEO contract doesn't allow. If your team leader sets hours, tools and exclusivity, you don't have a light-touch placement. You have an employment relationship wearing someone else's name.
Independent contractor. The individual invoices, and only when the status is genuine. Project work, a real right to substitute, and more than one client are the fit. If those aren't true, PAYE exposure doesn't disappear because the invoice is in dollars.
A model is a legal choice about who employs the person. It isn't a payment-rail setting you can flip after the file has gone to the bank.
Finish this step with a name-level list: person, country, model, and who the legal employer is. Carry that list into classification. Software comes after the list exists.
Classify Worker Status Before Any Invoice or Payslip
A contractor can be cheaper to run and still be the riskier file in the payroll. When the relationship looks like employment, the invoice saves a payslip and creates a PAYE problem. Payment method doesn't decide status, and a foreign-currency account doesn't remove South African exposure.
The split that matters is simple. Independent contractors generally manage their own tax, but PAYE can still arise when the person works mainly for one client or performs duties resembling those of an employee. If contractor status fails, the payments can attract South African withholding, so confirm the current SARS rate before you budget. Treat it as a cost of getting classification wrong, not a fee you discover after an audit.
The shortcut hits small exporters and BPOs hardest. A lean finance team reaches for a contractor agreement to avoid admin, then inherits exposure that sits on the payroll it skipped. The invoice was never the protection.
Seven questions, in order
Ask them for every foreign-paid person. Write the answer next to the name.
- Who sets the hours and the workday? If your roster does, that leans to employment.
- Does the company control how the work is done? A brief and a deadline can still be a contract. A script, a QA scorecard and a daily stand-up usually aren't.
- Is the person economically dependent? Working mainly for one client is the dependence test, not a vibe.
- Can the person send a substitute or subcontract? If substitution needs your permission and never happens, treat the right as decorative.
- Who supplies the laptop, tools and workspace? Your kit, your VPN and your office point to employment.
- Is the person barred from other clients? Exclusivity is one of the strongest tells.
- Where is the work directed from? A person sitting in Nairobi, managed hour by hour from Cape Town, is still your operation.
If most answers lean toward employment, budget employment costs. A contractor template doesn't fix a relationship that behaves like a job.
Practical rule: If you would discipline the person for missing a shift, you are not buying a project. You are employing them.
Keep, beside each decision, the signed contract, the hours record, the equipment list and the client list. Reclassify anyone who fails before the next EMP201. A wrong status that survives one month becomes the opening balance of the next return.
Map Tax Jurisdiction and Exemptions Before Payment
Start from the status you just wrote down. Don't pay an international salary until the tax home is explicit.
The flow below is the order finance should follow, not a poster for the intranet.

Four steps before the first salary
Record service location, tax residence and permanent-establishment exposure. Service location is where the work is done. Residence is a tax concept, not the address on the passport. Permanent establishment is the question of whether the South African company has created a taxable presence in the host country through that person.
Check whether a tax treaty applies. Name the treaty or write "none identified", with the person who checked it. A blank cell isn't a no.
Decide which payroll applies. Use the model you already chose. The options are South African PAYE, UIF and SDL, foreign withholding, or host-country payroll. Don't mix them because two managers prefer different calendars.
Set the rate rule. Convert to rand on a documented payment-date rate. A monthly average hides the day the cash moved and won't match the bank advice.
SARS's employer guide on employees' tax states the remittance rule. An employer who pays, or becomes liable to pay, remuneration must withhold employees' tax and remit it monthly through the EMP201, together with applicable UIF and SDL, generally within seven days after month-end.
Where the exemption tests sit
Put the foreign-employment tests beside step 3, not in a later tidy-up. Paying in dollars is not an exemption. Foreign employment income may still be South African remuneration. The foreign-service exemption needs more than 183 days outside South Africa in a 12-month period, including more than 60 continuous days, and it is capped at R1.25 million under that guidance.
Say a BPO employee never leaves the South African employing entity, works remotely, and doesn't meet those day tests. No exemption applies. Full PAYE, UIF and SDL run on the remuneration. The foreign bank account is only a settlement detail.
Build one evidence file per worker: contract, workday calendar, residency, travel days, tax forms, exchange-rate source, approval trail, and the annual reconciliation. Staff can sit in another country without the South African entity changing. The file is what proves you noticed.
If your team is still arguing the day count, this briefing is worth watching before you lock the EMP201 figures.
Price the Rand Cost of Each Payment Run
The useful question isn't "what is the transfer fee?" It is "how many rand left the account, and can we prove it?"
Build one monthly case for a mixed export or BPO team. Wages are quoted in US dollars. Settlement comes from a rand account. Forecast four lines every run: the foreign wage, the rate applied, any spread sitting inside a transfer advertised as free, and the gap between the booking date and the arrival date.
A zero SWIFT fee can still cost more than a transparent spot rate. If the bank rate is worse than mid-market, the loss is inside the rate. It never prints on the fee line, so a fee comparison will pick the worse deal.
A labelled USD 20,000 illustration
This isn't a live quote. It's the comparison your forecast should be able to show. About 2 percent of the rand equivalent, lost inside the rate, is the spread to hunt for.
| Cost line | Spot-rate run | Bank-spread run | What to check |
|---|---|---|---|
| Foreign wage | USD 20,000 | USD 20,000 | Amount in the pay currency per contract |
| Rate basis | Documented spot or mid-market rate on the payment date | Bank rate with spread inside it | Same calendar day and a named source |
| Spread cost | Reference, no spread | About 2 percent of the rand equivalent lost inside the rate | Rand lost doesn't appear as a transfer fee |
| Fee line | Transparent fee only | Zero SWIFT fee can still sit beside the spread | Compare all-in rand, not the fee alone |
| Evidence | Rate, timestamp, beneficiary, BoP category, invoice or contract, payroll journal | Same pack plus bank advice | Net pay equals the approved payment file |
On the spread run, finance thinks the payment was free. Treasury sees a worse rand amount and a value date that slipped. Those are different costs. Only the all-in rand figure catches both.
What BPO finance is actually forecasting
The rate isn't the only moving part. A 2025 report discussed by UCT's case writing centre sits next to older operating strain: skills shortages, POPIA obligations, labour-law complexity, infrastructure disruption and uneven connectivity. The same report estimated that 40% of tasks in the region's technology-outsourcing sector could be affected by AI by 2030, with customer-experience work, 44% of current BPO employment, particularly exposed. Treat 2030 as a projection, not a headcount you can book today.
Role mix will keep changing. A team that is mostly voice this quarter may be a smaller specialist bench next quarter. Re-forecast the rand cost on every run. Don't roll forward last month's rate or last month's contractor mix.
Pack for that run, every time:
- Rate source and timestamp: the page or feed, the clock time, and the calendar date of payment.
- Beneficiary: name and account exactly as the bank file will carry them.
- Balance of Payments category: the code you will defend, not a guess in the narrative.
- Invoice or contract: the document that fixes the foreign-currency amount.
- Payroll journal: the line that ties net pay to the payment file.
A free transfer with a fat spread is an expensive transfer. Price the rand, then look at the fee.
Run the Monthly Payroll as a Controlled Pipeline
Treat the pay run as eight deadline steps. A single payment batch hides the breaks until the bank rejects a beneficiary or SARS has a return you can't support.

The checklist is the run. If a step has no owner, it didn't happen.
- Freeze inputs. Approved time, leave, commissions and expenses stop moving. Late claims wait for the next cycle.
- Validate master data and bank details. Include foreign beneficiary fields, not only the South African account number. A wrong branch code on a cross-border file is a failed salary, not a typo.
- Calculate taxable remuneration on the current SARS tables. Stale parameters are the quiet error. Last year's rebate still "looks fine" on a payslip.
- Calculate UIF. Employee UIF is 1% and employer UIF is 1%, each limited by the monthly remuneration ceiling of R17,712, so the maximum is R177.12 a side. Payroll guidance used by South African employers is the reference for that ceiling. Applying 1% with no ceiling overstates the contribution as soon as pay exceeds it.
- Assess SDL at 1% only when annual payroll exceeds R500,000. Below that threshold, don't accrue a levy you don't owe. Above it, don't discover the levy at year-end.
- Produce payslips and the payroll journal. BCEA-related practice is to keep payroll records for three years and to give every worker a payslip. An immutable log and a downloadable statement are the practical version of that duty.
- Reconcile. Net pay must equal the payment file. Tax, UIF and SDL must equal the EMP201. A second person checks tax tables, beneficiaries and the FX rate. The working standard is zero unexplained variance. A difference you "understand" but don't write down is still a difference.
- Submit, pay and store. File and pay by the seventh day after month-end. Keep the evidence with the run, not in someone's downloads folder.
Where runs actually break
The usual failures are stale tax parameters, a duplicated or omitted worker, the wrong UIF ceiling, a beneficiary that doesn't match the bank, and a late EMP201. None of those need a new system. They need a stop in the pipeline.
Three signatures close the file: the preparer, the reviewer, and the person authorised to release the cross-border payment. One person must not both edit a beneficiary and release the money.
Operating habits sit on the same page as the steps. Refresh tax parameters when SARS publishes them. Never reuse last month's exchange rate. Log each miss as a control break, not a note in a handbook nobody opens.
If the payroll file is still rebuilt from an HR spreadsheet each month, start by planning your HR and payroll integration so joiners, leavers and bank changes arrive as data, not as an email on pay day.
Lock the Model, Tools and Settlement Path
Close on the person, not a company slogan. A tool that can't show each worker's model and tax home will only speed up the wrong payment.
Work the lock in this order.
List every cross-border worker and write the chosen model and tax home beside the name. If the cell is empty, that person isn't ready to be paid.
Note the rand cost basis from the last run. Spot or mid-market, payment-date source, and the all-in rand. If last month's basis was a bank rate with a hidden spread, don't let that basis become the budget.
Diary the EMP201 date as the seventh day after month-end, with the preparer and the reviewer named. A calendar entry without a name is a wish.
What the tool has to do
Only then test software. I would reject a platform that can't do all of these:
- Statutory outputs: EMP201 figures and current tax-table calculations, not a generic gross-to-net export.
- Beneficiaries: validated foreign bank fields, with changes logged and an approver named.
- FX: a documented-date rate stored on the run, so the journal cites the same rate the payment used.
- Worker statements: an export each person can receive, kept with the three-year record.
A payroll tool that calculates beautifully and then dumps you into an unlogged bank payment has only done half the job.
Choose the settlement path last. It has to repeat at a rate the payroll journal can cite. A business that holds rand and dollar balances can pay from the dollar balance at a documented spot rate, instead of discovering a spread after the file has gone.
We can sit in that settlement step, and only after the employment decision is made. You sign up, complete KYB, fund ZAR and USD accounts by bank transfer, then make and receive cross-border payments. Cards are coming soon. Funds from the US typically reach a South African account in a matter of minutes, which is the value-date problem in the cost illustration, not a reason to skip status. Services are for lawful business use. The business must pass KYB, and the user must be authorised to bind the organisation. Alongside that, our free BoP code checker finds the likely category for an export receipt or import payment, copies bank-ready wording, and shows which documents to have ready. Use it on the evidence pack, not as a substitute for the worker's tax file.
The next hire is the test. Lock that person's model, tax home and payment-date rule before anyone negotiates a platform rate. If those three aren't written down, you aren't buying payroll. You're buying a faster way to move the wrong amount.
Zaro lets South African exporters and BPOs hold ZAR and USD, then send and receive cross-border pay at a documented rate once worker status and tax are already settled. Complete KYB, fund the accounts by bank transfer, and keep the payment evidence your EMP201 and payroll journal need. Visit Zaro when the next hire's model is locked and you are ready to price the rand, not the fee line.
