Platform

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.

Run lifecycle

Six stages. No shortcuts.

01 · Lock

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.

02 · Validation

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.

03 · Approval

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.

04 · Disbursement

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.

05 · Reconciliation

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.

06 · Audit

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.

Server-side only · 10 states · 17 transitions · 2 terminal

Select a state to see where a run can go from it.

straight to approvalrecallresolve driftretry failedretry in placestop paymentscancel, with reasonDraftReady for approvalSent for approvalApprovedPaying employeesPaidReconciledSome payments failedFailedCancelled

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

Disbursement: gated, confirmed, reconciled.

Gating

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.

Per-transfer truth

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.

Failure handling

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.

Auditability

The activity log, as an auditor reads it.

Append-only

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.

Co-sign records

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.

Two people, one run

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.

Special Payments

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.

For your team

Payslips, self-service, and setup.

Payslips

Per employee, per run

Payslips are generated for every employee on every run, viewable and downloadable, with the full history preserved across pay periods.

Employee portal

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.

Guided setup

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.

Or write to us: info@januspayroll.com