Payroll Overview
ianaiERP's Payroll module runs on four building blocks that build on one another: a Pay Structure defines how someone is paid, a Pay Record links a specific employee to a structure, a Pay Period is one payroll run, and a Payslip is the result for one employee in that run. Approving a payslip posts it to your general ledger and updates the employee's year-to-date totals, so payroll and accounting never drift apart. This page covers those four pieces, running a payroll from start to finish, and correcting one afterwards; tax filings, year-end, and severance each have their own guide (linked below).
Where it lives
Payroll is a single workspace with a row of tabs, so you never leave the module to move between related screens:
- Overview — the landing tab: the current pay period, a table of recent periods, a setup-health checklist, and a Run Bonus Payroll shortcut.
- Pay Periods — every payroll run, past and current.
- Pay Records — the list of employees and the pay structure each one is on.
- Structures — the reusable pay templates.
- Attachments — wage attachments: court- or agency-ordered deductions such as garnishments, child support, and tax levies. This is separate from payroll tax.
Opening YTD, Year-End, Severance, and Leave Liability live in the same workspace and are covered in Year-End & Severance. Tax Registrations, Tax Ledger, Tax Deposits, Filing Adjustments, Tax Deadlines, and Employer Returns are covered in Payroll Tax & Compliance. Opening a pay period or a payslip from a list takes you to its own detail page.
Getting ready: the setup checklist
The Overview tab shows a Payroll Setup Health checklist so you can see at a glance what's blocking a clean payroll run. Work through it top to bottom:
- Load your country's statutory rules. In HR Settings, open Compliance and use Init Country Compliance to load the tax and social-insurance rules for your country — the United States and Korea are supported. With Auto-apply statutory components on (the default), the right withholding is added to each payslip based on the employee's country and work location, so you don't have to list every tax on the pay structure.
- Create a pay structure on the Structures tab.
- Map payroll's GL accounts. Approval posts a journal, so payslips can't be approved until payroll's accounts are mapped; the checklist links an admin straight to the mapping screen.
- Give each employee an active pay record on the Pay Records tab.
- Open a pay period.
Once every check passes, the checklist shows Ready.
How the four pieces fit together
Pay Structures are templates — a name, a country, a base pay type (salary or hourly), a pay frequency (weekly, bi-weekly, semi-monthly, or monthly), and a list of components: earnings, deductions, and taxes. Each component can be a fixed amount, a flat percentage, or a calculation method tied to a statutory formula (for example, capped contributions, progressive brackets, or a country's overtime rules). A component can also link to a compliance rule, so when that rule's rate changes the structure picks it up automatically instead of you re-entering a number — use Add from compliance rule to create one already wired up. A few tips:
- A percentage Rate is entered as a fraction: 4.5% is
0.045, not4.5. - Component order matters — put a pre-tax deduction ahead of the tax it should reduce.
- A component with no calculation method still works, but its payslip lines won't show how the number was derived.
A Pay Record is what actually puts a structure to work: it points one employee at one structure, with an effective date and a base pay (the annual salary or hourly rate), plus optional overrides for pay frequency and currency. An employee needs an active pay record before a payslip can be generated for them — if payslip generation reports that no active pay records were found, this is the first place to check. A pay record can be marked exempt from overtime, and deactivating one (rather than deleting it) is the safe way to stop paying someone while keeping their history intact.
A Pay Period is one run, with a type, a date range, a pay date, and a status: Open, Processing, Closed, or Void.
| Period type | Use for |
|---|---|
| Regular | The normal pay cycle, created with New Period. |
| Bonus | Year-end bonuses, holiday gifts, and other supplemental wages. |
| Off-Cycle | Correcting or supplementing a prior period — retroactive pay or missed wages — and an employee's final payout. |
| Imported | Payroll history brought over from the system you're migrating off. |
Turning on AutoPilot when you create a regular period tells the scheduler to generate payslips automatically once the period ends. AutoPilot only generates — review and approval always stay with you.
Running a payroll
Opening a period takes you to its detail page, where payroll is actually run:
- Generate Payslips creates one payslip per employee with an active pay record, ready for review. The button is only there while the period is Open and empty — it isn't a re-run button; once payslips exist, you correct them one by one.
- Review. A summary card shows gross, net, and employer cost, plus how many payslips are calculated, approved, and paid, and it updates as you work.
- Approve. Use Approve Remaining to approve everything still waiting, or tick specific rows and choose Actions → Approve selected. A confirmation reminds you that each approved payslip posts its payroll journal and counts toward year-to-date totals.
- Pay. Use Mark Remaining Paid, or tick rows and choose Actions → Mark selected as Paid. Marking a payslip paid posts the payment journal.
When your selection mixes approved and not-yet-approved payslips, each action shows how many rows it will act on — for example Approve selected (3) — and skips the rest. If some payslips in a bulk action can't be processed, you're told which ones and why, and the others still go through.
No statutory tax rules warning. If your country's compliance rules haven't been set up, the period shows a red No statutory tax rules alert: payslips will withhold no income tax or social insurance and accrue no employer taxes, so net pay would simply be gross minus your structure's own deductions. The approval confirmation repeats the warning. Use Set up compliance rules to fix it before approving.
Other tools on the period page:
- Remove from this run takes one employee out of the period. Their payslip is voided rather than deleted, so it stays visible for audit.
- More → Download Direct Deposit File builds a bank-ready file — NACHA for US ACH, or a Korean bank-transfer CSV — from the period's approved payslips. Employees without bank details on file are skipped, so approve first and check bank details for anyone missing.
- A Statutory Payroll Inputs panel appears when a jurisdiction's rules need an extra employee-level figure — see Payroll Tax & Compliance.
- Korean companies see Generate Social Insurance Annual Reconciliation under More in March and April.
Bonus, off-cycle, and final-payout runs
Run Bonus Payroll on the Overview tab creates a one-off period outside your regular cadence: pick Bonus for supplemental pay such as a year-end bonus, or Off-Cycle Correction for retroactive pay or a missed-wage fix. If you leave the pay date blank, it uses the end date. These periods follow the same Generate → Approve → Pay steps as a regular one.
A bonus or off-cycle period also asks Who's on this run? Leave it as is to include every active employee, or pick specific people. The list can be edited until payslips are generated; after that, the payslips themselves are the record of who was included.
Final payout. When an employee leaves, open their record in People, go to the Pay History tab, and select Compute Final Payout — marking an employee as resigned takes you straight there. The review shows their severance (net of any interim settlement already paid) and the value of their unused leave; choose which to include, set the pay date, and add review notes. The server works out the remaining regular wages, deductions, and taxes. Create Draft Payout places a Draft payslip in an off-cycle period for that pay date — reusing an open one or creating it — for payroll to review. Nothing is approved, posted, or paid at this step.
Imported periods. Choosing Imported payroll as the period type on New Period is for bringing in history from a previous provider. Instead of generating payslips, you use Import Payslip to enter each employee's gross, deductions, taxes, and net pay, with a reference back to the source system. Imported payslips then go through the same approve and pay steps, and are never recalculated.
Payslips
A payslip belongs to one employee and one pay period and moves through Draft → Calculated → Approved → Paid (or Void). Opening one shows:
- Line Items — Earnings, Deductions, Taxes (Employee), and Employer Contributions, grouped separately so the employee-side lines add up to net pay.
- Computation — for each traced line, the calculation method, the compliance rule and version it used, the inputs, and the arithmetic, so you can show an auditor exactly how a number was produced.
- Adjustments — corrections made after approval (see below).
- Audit — who approved it, when it was paid, and links to the journals it produced.
A payslip is a snapshot: changing a pay structure or pay record later doesn't rewrite payslips that already exist, and year-to-date totals only move when a payslip or adjustment is approved.
Correcting a payslip
How you fix a payslip depends on how far it has gone:
| Status | How to correct it |
|---|---|
| Draft or Calculated | Adjust Pay — add a bonus or extra earning (or a non-taxable reimbursement) and override regular or overtime hours, then Recalculate. Tax and statutory withholding are re-run on the new totals, so gross, net, and every deduction line stay consistent. Or Void it if it shouldn't be paid at all. |
| Approved | Reverse — posts a reversal journal that offsets the original and rolls back the employee's year-to-date totals. The original journal and payslip stay in place for audit. Or add an adjustment. |
| Paid | Record Correction — opens a new adjustment, pre-set to a clawback. |
If an approved payslip is missing its journal, Replay Journal posts it.
Adjustments are signed corrections against an approved or paid payslip — Bonus, Retroactive Pay, Missed Overtime, Correction, Reimbursement, Clawback, or Other — each with a required reason that carries through to the journal. An adjustment does nothing until it's approved; approving it posts its own journal and year-to-date change, leaving the original payslip untouched. A clawback is entered as a positive amount and recovers that amount from the employee. Retroactive Pay can spread a per-period amount across several of the employee's most recent approved payslips in one step, creating one adjustment for each.
Wage attachments
The Attachments tab lists every court- or agency-ordered deduction held against an employee's pay — child support, bankruptcy orders, tax levies, student loans, creditor garnishments, wage assignments, union dues, and others. Each order is either a fixed amount per period or a percentage of disposable earnings (gross pay less legally required deductions), with an optional per-order cap and a running balance and arrears that payroll pays down as it withholds.
Once your country's compliance rules are loaded, active orders are withheld automatically when payslips are generated. When an employee has several, they're satisfied in priority order — child support first by default — within the jurisdiction's limit, so a lower-priority order may take less than it asks for in a given period. An order is Active, Suspended, Released, or Completed; Release Order lifts an active or suspended order early, and an order completes on its own once its balance is paid off.
The jurisdiction's limit — how much of an employee's pay the law protects — comes from the country's garnishment rule. Korea's and the United States' compliance rules include one; other countries' rule sets do not, and rules cannot be added on screen, so ask ianaiERP support to add it. Without it, when an employee has an active order other than child support, Generate Payslips stops with a message naming the employee, the country, and the date, and creates no payslips, so nothing is withheld on a guess. For Korea or the United States, load the country's compliance rules with Init Country Compliance in HR Settings; for any other country, ask support to add a garnishment rule. Then generate the payslips again.