Payroll

Run payroll from HR salaries: pay now, accrue payable, or settle — journals post to books; void mistakes instead of deleting history.

Business Suite · Ops & people

Path: Store → Payroll

Definition

Store → Payroll → New pay run(period?, employees[], kind) | Add payroll(employee, kind, amount)

Payroll pays (or accrues) Active HR employees using each person’s employment.salary. A pay run creates one posted payroll voucher per selected employee and writes accounting journals when CoA is configured. Posting kind controls whether cash leaves now or later.

Compatibility

  • Minimum plan: Business Suite (Billing name) or higher — confirm Store → Billing.
  • Requires Active HR employees with salary > 0.
  • Journals need CoA / salary & cash-bank GL accounts (Growth+ books typically already seeded).
  • Bank pay mode needs a Banking treasury account linked to GL.
  • Payroll permission required.

HR = who · Staff = login · Payroll = compensation vouchers & journals · Accounting = books · Banking = cash/bank for paid/settle.

Posting vs payment (kinds)

Kind “Paid now” (default)
  Dr Salary expense · Cr Cash/Bank
  → expense + treasury payment in one journal

Kind “Accrue payable”
  Dr Salary expense · Cr Salary payable
  → recognize cost without paying cash yet

Kind “Settle”
  Dr Salary payable · Cr Cash/Bank
  → pay a previously accrued liability

Important: choose Accrue then Settle when you want expense recognition and cash payment as separate events.
Default Paid now combines them.

Pay run creation posts immediately (status posted). Correct with Void — do not delete posted history.

Typical monthly flow

HR → Active employees (salary > 0)
  → Payroll → New pay run
  → period + kind + cash/bank (if paying)
  → Save run → one voucher + journal per employee
  → (if Accrue earlier) later Settle run or single settle
  → Accounting TB / P&L review

Path & fields

Store → Payroll
  Pay run:
    { date, periodFrom?, periodTo?, kind, payMode?, bankAccountId?, employees[] | all }
    → creates Payroll[] using each HR employment.salary
  Single payroll:
    { employeeId, date, kind, amount, payMode?, bankAccountId? }
  status: posted | voided

Net for a line today = HR salary amount on that voucher
(no separate earnings/deductions editor in the current UI)

UI hint: a pay run creates one payroll entry per employee from their HR salary.

There is no automatic mid-month prorating — set the correct salary on HR (or use a single adjusted voucher) before running.

How to run a pay run

  1. Confirm Business Suite on Billing and Active employees with salary under Store → HR.
  2. Open Store → Payroll → New pay run.
  3. Set date and optional period From / To.
  4. Choose kind: Paid now (default), Accrue payable, or Settle.
  5. If Paid now or Settle: choose cash or bank; for bank pick the treasury account.
  6. Include all Active salary employees, or select specific people.
  7. Save the run — vouchers and journals post immediately.
  8. If you used Accrue, run Settle later (same people/amounts) when cash leaves.
  9. If something is wrong, Void the payroll voucher(s) — do not delete history.

Accounting effect

Paid now     Dr Salary expense (5200) · Cr Cash/Bank
Accrue       Dr Salary expense · Cr Salary payable (2100)
Settle       Dr Salary payable · Cr Cash/Bank

Void reverses the source-linked journal so TB and P&L stay auditable.

Examples

Monthly paid now
  Period 1–30 Jun · 3 Active · kind Paid now · bank treasury
  → 3 vouchers · Dr expense / Cr bank · totals = sum of HR salaries

Accrue then pay
  Month-end Accrue (no cash)
  → next week Settle with bank
  → expense recognized earlier; cash moves on settle

Mid-month joiner
  Add in HR (Active + salary) before the run
  → full HR salary is used (no auto-prorate) — adjust salary on HR if policy needs a partial month

Wrong amount posted
  Void the payroll voucher → fix HR salary or create a corrected voucher/run

Common errors

  • Empty employee list — add Active people with salary > 0 under Store → HR.
  • Cannot create run / post — check payroll permission, Business Suite plan, CoA, and bank treasury if payMode is bank.
  • Nothing in Accounting — confirm the run completed (posted vouchers) and journal date falls in Accounting From/To.
  • Expected draft → edit → pay later — current pay runs post on save; use Accrue then Settle to split expense vs cash.
  • Trial balance off — check voided vs posted payroll journals and date range.
  • No Payroll menu — Business Suite plan and payroll permission.
Note: Employee directory: HR. Cash/bank masters: Banking. Books: Accounting. Map: Ops & people overview. Abbreviations: HR = Human Resources · CoA = Chart of Accounts · GL = general ledger · TB = Trial Balance · P&L = Profit & Loss · UI = user interface · MFS = Mobile Financial Services.

See also