The payroll run, as a controlled operation.
Janus treats a payroll run the way finance treats a treasury event: a locked snapshot, gated approvals, controlled disbursement, and a permanent record. Here is how the run lifecycle works.
Six stages. No shortcuts.
Lock who is paid
Every run starts from a locked list of who is paid and what they are paid. What gets paid is what was locked. If anything changes after the lock, Janus flags it and will not pay until you resolve it.
Resolve issues before approval
Missing bank details, terminated employees still on the list, unresolved overrides: validation runs before the run can advance, and the system refuses to move forward while issues remain open.
Maker-checker, enforced
The person who prepares a run cannot be the only person who releases it. Approvals are role-gated, recorded with actor and timestamp, and the approver is asked for their password again before money moves.
Money moves under control
Transfers go out as tracked batches and every transfer is confirmed by the bank before Janus marks it paid. No transfer is ever assumed to have succeeded.
Match against the bank
Confirmed, in-flight, and failed transfers are reconciled per run. Upload bank statements or payment confirmations as evidence and close the run against what actually cleared.
Everything on record
Every action across the lifecycle appends to an immutable audit trail: who did it, in what role, when, and what changed. The record is the record.
Select a state to see where a run can go from it.
Solid lines advance a run. Dashed lines send it back or stop it. Every transition the system permits is drawn: nothing is described in words that is missing from the diagram.
Disbursement: gated, confirmed, reconciled.
Refuse-to-disburse checks
A terminated employee in the snapshot, a missing approval, an override without a co-signer: any of these stops disbursement before money moves. The system says no until the run is right.
Bank-confirmed transfers
Each transfer is confirmed by the bank before it counts as paid. Confirmed, in flight and failed are tracked per employee, so you always know exactly who has been paid.
Partial failure, handled
Failed transfers are isolated with per-employee status and controlled retry. Employees terminated after the first attempt are excluded from retries - the system re-checks before every movement.
Disbursement runs on licensed providers: Paystack today, with Flutterwave integrated. Janus is not a bank and holds no deposit account for you. When you fund a run, the money moves into the licensed payment provider's settlement balance and out to your employees in a single batch tied to that run; every leg is recorded in the activity log. Nothing is marked paid until the bank confirms it, and a run is never shown as complete while a transfer is still outstanding.
The activity log, as an auditor reads it.
Immutable events
Audit events are written once and never edited or deleted. Approvals, overrides, lock changes, and payment decisions all append with actor, role, and timestamp.
Overrides carry their approvals
Every override records who requested it and who co-signed it, tied to the specific run and employee it touched. “Who approved this?” is a lookup, not an investigation.
One version of the truth
Runs carry version numbers and state transitions are serialized. Two people acting on the same run at once cannot silently overwrite each other - the second actor sees exactly what changed.
One-off payments. Same spine.
Final settlements for leavers, bonuses, signing bonuses, ad-hoc transfers: Special Payments run through the same snapshot, approval, disbursement, and audit controls as your regular payroll cycle.
There is no side channel. Your operators do not learn a second system, and your auditors do not chase a second trail.
Payslips, self-service, and setup.
Per employee, per run
Payslips are generated for every employee on every run, viewable and downloadable, with the full history preserved across pay periods.
Self-service built in
Employees see their own payslips, benefits, and notifications in their own portal: fewer requests landing on HR, full transparency for staff.
Onboarding, in order
Company details, statutory defaults, departments, pay groups and team invites, in a fixed sequence that ends at an account ready for its first run.
See the run for yourself.
Set up your company and take a payroll run from snapshot to reconciliation.