Back to Playbook
Act 6: Crossing Borders

27. Multi-Country Payroll (Bangladesh & Canada)

Story

A year in, Sarah's company opens a small office in Toronto. Her CEO assumes payroll for the Canadian hires will mean a second system, a second vendor, and a second year-end scramble. Sarah has a better idea: run it on the platform the team already trusts.

The promise that drew her in was "statutory-ready payroll." The question now is whether that holds across a border.

Happy Path

Sarah creates the Canadian company workspace and sets its country to Canada during company setup. That one choice changes what payroll does under the hood — the engine loads the Canada pack instead of the Bangladesh one.

She configures the statutory inputs the same way she always has: contribution rates, tax brackets, and credits live in company settings, not in code. Nothing about a customer's numbers is hardcoded — the pack ships sensible defaults, and the live values are hers to own and update.

She runs October payroll for the Canadian team. For each employee the engine computes:

At year-end, Sarah opens an employee's T4 — Statement of Remuneration Paid. It's assembled automatically from that year's finalized runs; she prints it to PDF for the employee and generates the CRA electronic-filing XML for submission. When someone leaves, the Record of Employment (ROE) preview builds insurable hours and earnings from payroll history, ready to print or e-file to Service Canada.

The same engine, the same audit trail, a second country — continues to the Epilogue.

  • CPP and second CPP (CPP2) and EI, each capped against year-to-date ceilings.
  • Federal income tax, plus provincial tax for Ontario, British Columbia, or Alberta.
  • Net pay, rounded to the cent — reconcilable line by line, exactly like a Bangladesh run.

What Stays the Same

ScenarioBehaviorWhy
One engine, country "packs"Bangladesh and Canada share the run pipeline; only the statutory layer swaps
Statutory values live in settingsRates, brackets, and ceilings are configuration — never hardcoded
Reprocess-safe integrityVoids and reprocesses reverse cleanly in either jurisdiction
Full audit trail + RBACWho ran what, when — identical governance everywhere

Failure Modes

FailureWhat the user seesWhat happens next
Company not on the Canada packT4/ROE pages show "no data"Set the company country to Canada in setup
No finalized runs for the yearEmpty T4 / ROE previewApprove or pay the relevant runs first
Statutory config left at defaultsAmounts compute on shipped defaultsEnter the company's own current-year rates and brackets

Edge Cases

ScenarioBehaviorWhy
Country we haven't verified end-to-endRuns as Tier-2 configurable — you define components, no statutory-compliance claimHonesty: we name exactly what's verified
Employee with mid-year province changeProvince of employment drives provincial tax and the T4 boxCRA expects a slip per province of employment
Quebec, or non-monthly Canadian cyclesOut of the current verified scopeWe support fewer countries with confidence, not everything loosely