Admin · Setup

Import workbench

Paste JSON, see exactly what it will do, then apply through an audited database function. Applies run as you, so sign in first.

You are signed out
Previews still work, but every apply will be refused. Go to login.
EnvironmentReadyRoot env loaded
Remote writesTest windowGuarded CLIs
Bootstrap payloadValid1 company, 48 periods
Schema apply50 workbenchespnpm v2:migration-status

Payroll

Pay runs

Back to the app

External AI briefing

Copy this prompt, paste it into ChatGPT/Claude with your Excel/CSV, then paste the returned JSON here.

PAN: not set — add at /app/company

VAT: not set — add at /app/company

Examples are templates, not gospel
Repo examples pass structural validation but use placeholder tax IDs and sample amounts. Your accountant should confirm statutory rules and opening balances before you apply in production.

Payroll Run JSON

Valid
47 lines

Preview

Validation only
Company
SCC
Pay run
PR-2083-84-01
Period
2083-84 P1
Statements
1
Gross
NPR 120000.00
Deductions
NPR 0.00
Net
NPR 120000.00

Creates the draft pay run with its statements and component rows; totals are recomputed from components and must match. Re-importing a draft replaces it; finalized runs are refused. Status "finalized" locks the run on apply; "posted" also posts the payroll journal (expense by component, payroll payable for net). Requires payroll.manage_pay_runs (+ payroll.finalize to finalize/post).

Runs app.apply_import('payroll_run') as you; the database re-checks your permission and records an audit event.