Developers & APIUpdated 12 Aug 2026

Employees and payroll journals

An employee directory to name expense claims and payroll runs against, and a replay-safe way to post a whole payroll run as one balanced journal. API and assistant only. There is no payroll screen, and Finocket never calculates or pays a salary.

Finocket keeps a lightweight employee directory so an expense claim or a payroll run can be named against a person, and it can post a whole payroll run as one balanced journal so salary cost lands in your Profit & Loss.

In practice that system is usually ashr.work, Finocket's sister product for HR and people. A payroll run there posts into these books as one journal. See how Finocket and ashr.work connect for the wider picture.

What an employee is here

An employee is a company-scoped directory row, not a Finocket login. Your team's access to Finocket is a separate thing entirely. See Team & roles. A directory row carries a name, optional email, phone and employee code, and optionally the ledger account their reimbursements build up on.

Each row can also carry an external reference: which system it came from, and that system's id for the person. That pair is what makes the sync idempotent: sending the same person twice updates the row rather than creating a second one.

Posting a payroll run

A payroll run posts as a single balanced journal voucher: salary cost, employer contributions and the statutory amounts you withhold, all in one entry. Because it is an ordinary journal, it appears in your ledgers and reports exactly like any other. Nothing about it is special-cased.

Stamp the run with its source system and that system's run id, and the post becomes replay-safe: sending the same run again returns the voucher already created instead of double-counting your salary cost. A retried webhook is the normal way payroll gets posted twice.

What Finocket will not do

  • It will not calculate payroll. No salary computation, no PF, ESI, professional tax or TDS-on-salary working. Those belong to your payroll system.
  • It will not pay anyone. Finocket never moves money; the payroll journal is a record of a payment your bank made.
  • It will not give an employee a Finocket login. A directory row is not an account and grants no access.
  • It will not post an unbalanced run. The journal has to balance like any other, or it is refused.

Does this work offline?

Frequently asked questions

Is there a payroll screen in Finocket?

No. Employees and payroll journals are an integration surface reachable through the developer API and your AI assistant. There is nothing to open in the app.

Does Finocket calculate payroll?

No. There is no salary computation and no PF, ESI, professional tax or TDS-on-salary working. Those belong to your payroll system; Finocket records the result.

Is an employee a Finocket user?

No. An employee is a company-scoped directory row and grants no access to anything. Your team's access is separate; see Team & roles.

What stops a retried webhook posting payroll twice?

Stamp the run with its source system and that system's run id. Posting the same run again returns the voucher already created instead of double-counting your salary cost.

Related articles