๐Ÿ‡ต๐Ÿ‡ฐ
Compliance configuration โ€” this guide covers statutory and regulatory settings. Octal HR is configurable to support different regions, industries, and business requirements.

Supported Accounting Apps

๐ŸŸฉ
Octal Accounts
Native Sync
๐ŸŸข
QuickBooks Online
CSV Export
๐Ÿ”ต
Xero
CSV Export
๐ŸŸฃ
Sage 50
CSV Export
๐ŸŸ 
Tally
CSV Export
โšซ
Generic (Any ERP)
CSV Export
Native sync vs CSV: Octal Accounts is the only integration with automatic native sync โ€” payroll journals post directly, no manual step. Every other accounting app is supported via CSV export (download after each run and import into your software). Native connectors for the apps above are on the roadmap โ€” contact us for early access.

Enable & Credentials

The Octal Accounts integration lives on a single settings page. Go to Settings โ†’ Octal Accounts.

1
Toggle Enable Octal Accounts integration on.
2
Enter your API Key and Secret Password issued by your Octal Accounts tenant, then click Save credentials.
3
Complete CoA Mapping below so payroll postings land in the right accounts.
Base URL: The Octal Accounts API base URL is set in the server's .env file, not in the settings UI. Ask your administrator if the connection needs to be repointed to a different Octal Accounts environment.

CoA Mapping

Octal HR posts every payroll run as a single journal against three chart-of-accounts codes. Set each code once on the Octal Accounts settings page โ€” the defaults shown below match the standard Octal Accounts CoA and usually don't need to change.

SettingDefault CodeWhat it posts
Salary Expense Code710101Debit โ€” total gross salary for the run
WHT Payable Code120401Credit โ€” income tax withheld
Statutory Payable Code120701Credit โ€” EOBI, PESSI and other statutory deductions

Below the three codes, choose which salary components feed each payable bucket:

  • WHT components โ€” the components (e.g. Income Tax) that credit WHT Payable.
  • Loan components โ€” the loan/advance recovery components netted from salary.
  • Statutory components โ€” the components (e.g. EOBI, PESSI) that credit Statutory Payable.
Only the three CoA codes above and their component lists are configurable. There is no per-department or per-cost-centre GL override โ€” every run posts to the same three codes.

Payroll Journal Entries

Payload generation happens on the payroll run's Export action, not automatically on finalise. When you click Export on an approved run, Octal HR builds a single journal payload from the CoA mapping and queues it for delivery to Octal Accounts.

A typical payroll journal looks like:

  • Dr Salary Expense (710101) โ€” total gross salaries for the run
  • Cr WHT Payable (120401) โ€” income tax withheld
  • Cr Statutory Payable (120701) โ€” EOBI / PESSI / other statutory
  • Cr Net Pay โ€” balance payable to employees

CSV Export (Other Apps)

For any accounting software other than Octal Accounts, export a formatted CSV after each payroll run and import it into your software:

1
Go to Payroll โ†’ Runs โ†’ [Run Name] โ†’ Export โ†’ Accounting CSV.
2
Select the format template: QuickBooks, Xero, Sage 50, Tally, or Generic.
3
Click Download. Import the file into your accounting software per its import instructions.

Sync Now & Recent Exports

The Octal Accounts settings page has a Sync Now button for each entity โ€” Employees, Payroll, Payments, Loans, Pull Employees, and Banks. Clicking one runs the corresponding sync command synchronously and shows the CLI output inline. The Payroll Sync Now also auto-enqueues any approved payroll runs that haven't been queued yet.

Below the sync buttons, status cards show pending and failed queue counts per entity (employees, payroll_run, payment_voucher, loans, banks) alongside the last export timestamp. A Recent exports panel lists the last 10 rows from payroll_export_log โ€” adapter, status, error message, payload, response, and exported-at time โ€” so you can inspect exactly what was sent and how Octal Accounts responded.

How syncs are triggered: either (a) click Export on an individual payroll run, or (b) click one of the Sync Now buttons on the Octal Accounts settings page. There is no "auto-sync on finalise" toggle.
Avoid double-entry: Once the integration is pushing payroll journals into Octal Accounts, do not manually key the same payroll journal in Octal Accounts for that period. Turn the toggle off before any manual adjustments, then turn it back on.