MomijiPay
Canadian payroll, built in. Not bolted on.
CPP, EI, and provincial tax across the country, computed from the hours you already approved.
Dry-run.Commit.Publish.Reconcile.
Approved hours arrive from MomijiTime; stubs, the PD7A, the journal entry and the deposit file leave. Nothing is exported in between.
Payroll that stays inside the work.

Real CRA math
CPP, CPP2, EI, federal tax, and provincial tax in all twelve CRA jurisdictions, for every person, every period. Bonuses use the CRA bonus method; reimbursements pass through untaxed.
Approved hours become paid hours
MomijiTime's approved timesheets land in the run priced at the right multiplier, with overtime and statutory holiday pay computed under the rules of the province each person works in.
Dry-run before a dollar moves
Every run stages as a full register with period-over-period variances; material swings must be explained before approval.
Committed means frozen
A committed register is never edited. Corrections are reversing runs that leave the original on the record.
Stubs to a private vault
Publishing writes one PDF per person; each opens their own stub and only their own.
Remittances reconcile themselves
Committed runs roll into a monthly PD7A: what is due, when, and the CRA confirmation number once you remit.
The whole cost, not half of it
The workers compensation premium your board charges and the payroll health tax your province levies are computed on every committed run, each ceiling and exemption applied cumulatively across the year, so total cost of a cycle means total.
Deductions held on the person
Registered pension, group RRSP, union dues, garnishments and taxable benefits live on the employee, not typed onto a run. Annual caps are applied against the year to date.
The entry your books need
Every committed run posts one balanced journal entry against accounts you map once. It balances to the cent or it refuses to emit and names the side that is short. CSV, QuickBooks, or Xero.
Year-end
Year end, and the money out the door.
The whole year, one package
T4 slips, the summary, the CRA electronic return itself, a plain-language PD7A reconciliation, and a filing checklist with deadlines, bound into one package in the vault.
Every box, explained
Plain-language help on every T4 box, Box 45 dental codes built in, and Box 22 composed exactly as your PD7A, so the slip ties to the remittance trail.
ROE, as a file, not a form
Blocks 15A, 15B, and 15C fill from the register, every block explained, a five-day countdown, and the ROE Web payroll extract itself, validated against Service Canada's own schema. A keying worksheet is there too, for anyone who would rather type.
Direct deposit, off by default
Momiji held no bank account numbers at all until direct deposit, deliberately. It is still off for every organization until an owner switches it on, and then the employee types their own details in, on the web, never on the phone.
Encrypted, masked, audited
The account is stored only as ciphertext under a key held outside the database. No administrator ever sees more than a mask, and the only path to the digits is a call the account owner alone can make, which writes an audit line before it answers.
The file your bank accepts
A committed run produces a Payments Canada Standard 005 credit file, transaction code 200. It has to add back to the register total to the cent, or it is not produced at all.
Everyone else stops at the timesheet.
Payroll is native, not an integration.
Proof
Checked against the CRA.
- 01CRA T4127 formulasCPP, CPP2, EI, federal tax, and twelve provincial and territorial tables, each with its own surtax, premium, and reduction.
- 02Verified to the pennyField by field against the CRA's own Payroll Deductions Online Calculator.
- 03Version-stampedEvery committed row records the engine and tax-table edition that produced it.
- 04Every action loggedWho prepared, approved, and committed each run, on an append-only trail.
- 05Comp closed by defaultA payroll grant gates the numbers; sensitive people can be owner-only.
- 06Built by CPAsDesigned to be relied on by your accountant and your auditor.
Before you switch
Bring your last pay stub.
Your current provider already produced one. It is what your employee actually received, and what the CRA already holds remittances against. Momiji recomputes that same period from your new setup and shows you every figure side by side. If it does not tie to the cent, you do not go live.
Illustrative figures for a $75,000 salary on a semi-monthly cycle. The real one runs on your numbers, and it writes nothing: it is a calculation, not a payroll.
Switching mid-year, your opening balances are read straight from your previous provider’s year-to-date report, so CPP and EI carry on from where they left off instead of starting again at zero.
A mismatch is the valuable outcome
It means one of two things, and we would rather find either one now. Our setup is wrong, a claim code or an opening balance or a pay frequency, and the fix is an edit instead of an amended remittance. Or the figure you have been paying was wrong, which you would otherwise keep paying.
So this is not a promise that it will match. It is a promise that you will know, either way, before it matters.
What it does not do
It proves your setup reproduces a period we can check. It is not a guarantee about every future scenario, and it is only as good as the figures you give us for that period. Manitoba we will not tie out at all yet, because its basic personal amount is income-tested down to zero and the CRA has published no worked example inside that range for us to anchor to. We block live runs there for the same reason, and we would rather tell you that than show you a match we cannot stand behind.
Questions
The things people ask first.
What pay frequencies can I run?
Weekly, bi-weekly, semi-monthly, or monthly.
The pay calendar and the per-period tax math both follow the frequency you set; weekly and bi-weekly cycles anchor to your first pay date, and a frequency change waits for a clean tax-year boundary instead of corrupting the year in flight.
Do I still remit to the CRA myself?
Yes. Momiji computes the monthly PD7A from the committed register, shows what is due and when based on your CRA remitter class, and records your confirmation number after you pay, so the reconciliation trail is complete.
Do you handle T4s and ROEs?
Both, from the same committed register, and both as the files the government actually accepts. Year-end produces one bound package: the T4 slips, the summary, a plain-language PD7A reconciliation that ties the register to what you remitted, and a filing checklist. Box 22 is composed the same way your monthly PD7A composes its tax total, so the slip ties to the remittance trail by construction.
Momiji builds the CRA electronic return itself, the T619 transmittal wrapping every slip and the summary, validated against the CRA's own published schema before it is written. An amended return gets its own filing record rather than overwriting the one you already sent, because a filed return is immutable here.
A SIN is never stored as a column. It is keyed only at the moment a slip is generated and lives inside the slip PDF in the private vault, nowhere else.
For a departure, an ROE assembles Blocks 15A, 15B, and 15C from the register, explains every block, counts down the five days you have to file, and builds the ROE Web payroll extract, validated against Service Canada's own schema, with a keying worksheet beside it for anyone who would rather type.
What Momiji does not do is press the button. Neither the CRA nor Service Canada offers an interface for that, so a person signs in, uploads the file Momiji built, and types the confirmation number back onto the filing record, which is then sealed.
Which provinces can you run?
Twelve: Ontario, British Columbia, Alberta, Manitoba, Saskatchewan, New Brunswick, Nova Scotia, Prince Edward Island, Newfoundland and Labrador, Yukon, the Northwest Territories, and Nunavut. Each is computed from its own published table rather than falling back to another province's rates, and each is anchored to the worked example the CRA publishes for it.
Two honest exceptions. Manitoba is computed but we block live runs there, because its basic personal amount is income-tested down to zero and the CRA has published no worked example inside that range for us to anchor to. And Quebec is a second regime, not a thirteenth column: QPP instead of CPP, QPIP, Revenu Quebec's own tables, and an RL-1 instead of the provincial half of a T4. Withholding for Quebec is built and sits behind a switch only an owner can turn on; the Revenu Quebec remittance and the RL-1 are not built, and until they are we say so rather than sell it.
How do hourly hours get into a pay run?
Automatically, from MomijiTime. Approved timesheets are priced at the right rate and multiplier and pulled straight into the run; nothing is re-keyed, so nothing can be mis-keyed.
How do I know the math is right?
The engine implements the CRA's published T4127 formulas, edition by edition: CPP and CPP2, EI, federal tax, and all twelve provincial and territorial tables, each with the factors that are its own, from the Ontario surtax and health premium to the income-tested basic amounts in Yukon and Manitoba and the mid-year rate changes in British Columbia, Newfoundland and Labrador and Prince Edward Island.
It is verified field-by-field against the CRA's own payroll calculator, to the penny, and re-verified whenever a new tax-table edition lands.
Every committed run is stamped with the engine and tax-table version that produced it, the register is immutable once committed, and corrections are reversing entries, never edits. It was built by CPAs to hold up in front of your auditor.
Who can see payroll and pay stubs?
Only the payroll administrators you grant, a role separate from general admin and assignable only by the owner.
Sensitive people can be marked confidential, material period-over-period variances must be annotated before a run can be approved, and the vault shows each person only their own statement.