Compliance setup — this guide covers statutory, payroll, tax, and regulatory requirements. Octal HR is configurable for different countries, regions, and organizational policies.

Overview

Every payroll run creates financial obligations — salary expense, tax liability, EOBI payable, and more. Octal HR aggregates the run into the corresponding double-entry journal lines and lets you push them to Octal Accounts or download them as a CSV for your accounting system. This eliminates manual re-keying of payroll figures into accounts, reducing errors and saving time at month-end close.

Journal export is available only for approved payroll runs. Drafts and runs awaiting approval cannot be exported — their figures may still change.

Journal entry structure

A typical monthly payroll journal for PKR 5,000,000 gross payroll looks like this:

AccountDescriptionDr (PKR)Cr (PKR)
Salary ExpenseGross salary — all departments5,000,000—
EOBI ExpenseEmployer EOBI 5% on PKR 37,000 × headcount92,500—
PESSI ExpenseEmployer PESSI contribution45,000—
Salaries PayableNet salaries due to employees—4,650,000
WHT Payable (FBR)Withholding tax deducted—215,000
EOBI PayableEmployee 1% + Employer 5% combined—129,500
PESSI PayableEmployee + Employer contribution—67,500
Loan Recovery PayableEMI deductions collected—75,500

Totals balance: Dr PKR 5,137,500 = Cr PKR 5,137,500

Chart of accounts mapping

The journal groups the run into a small set of ledger lines. Their account codes come from the same chart-of-accounts settings the Octal Accounts integration uses, so both the direct push and the CSV download post against the same accounts:

1
Go to Settings → Octal Accounts and open the account-code (override) panel.
2
Set the account code for each journal line: salary expense, WHT payable, statutory payable, loan receivable, and salary payable. Sensible defaults matching the master chart of accounts are pre-filled.
3
Save. The codes are used for every export.
Journal lineDefault account
All earnings (gross salary)Salary Expense
WHT deductedWHT Payable (Liability)
EOBI / statutory deductionsStatutory Payable (Liability)
Loan recoveryEmployee Loan Receivable (Asset)
Net salarySalaries Payable (Liability)

Export formats

Octal Accounts (direct push)

If you use Octal Accounts, the journal is posted directly via API when you run the export — no file download needed. A reference number links the journal back to the payroll run in both systems.

Accounting CSV templates

For any other system, download a journal CSV in the column shape your app expects. Templates are provided for QuickBooks, Xero, Sage 50, Tally, and a generic Date / Reference / Account / Description / Debit / Credit layout. The file is UTF-8 CSV, ready to import.

Export steps

1
Payroll → Payroll Runs — open the approved run you want to export (e.g., April 2026).
2
To post to Octal Accounts, run the run's Export action — the journal is pushed via API.
3
To download a CSV instead, use the Accounting CSV download and pick the format (QuickBooks, Xero, Sage 50, Tally, or generic). The file downloads immediately.
4
Each export is recorded in the audit log with the user, format, and timestamp.

Octal Accounts direct integration

If your company uses Octal Accounts, enable the integration under Settings → Octal Accounts and save your API key and account-code mapping. Once enabled, running the Export action on an approved run posts the journal directly, and a reference links it back to the payroll run in both systems.

Reconciliation tips

Month-end reconciliation checklist:

  • Salary Payable balance should equal the sum of net bank transfer files
  • WHT Payable should match the FBR challan amount for the month
  • EOBI/PESSI Payable should match the statutory challan
  • Loan Recovery Payable should reduce the Employee Loan Receivable asset

If a difference exists, compare the journal lines against the payroll summary totals for the run to identify the component causing the discrepancy.