Skip to main content
For each payroll, Nmbr generates two payroll-level journal entries, plus a recording entry for each pay stub.

1) Payroll Recording (Accrual Entry)

  • Recognises payroll expenses and corresponding liabilities.
  • Ensures costs are recorded in the correct accounting period.
  • Debit: Expense accounts (e.g. Wages Expense).
  • Credit: Liability accounts (e.g. Payroll Payable, Tax Withheld Payable).
Example (simplified):

2) Payroll Payment (Payment Entry)

  • Reflects the actual cash movement when payroll and remittances are paid.
  • Debit: Liability accounts (clearing what was accrued).
  • Credit: Bank account.
Example (simplified):

Pay stub recording entries

Alongside the two payroll-level entries, Nmbr generates a pay_stub_recording entry for each pay stub, holding the accrual detail for that single pay stub. These carry a pay_stub reference and are returned by the Journal Entries API with the payroll-level entries. Filter by type to narrow the list. Only the two payroll-level entries (payroll_recording and payroll_payment) are exported to the connected accounting platform.

Tracking dimensions

When a line item is allocated across tags, each journal entry row carries the matched tags in its dimension_1_tag, dimension_2_tag, and dimension_3_tag fields, and the row is split per allocation. This breaks down payroll cost by department, project, or location. The tags are returned as stubs by default; resolve them with a nested expand such as journal_entry_rows.dimension_1_tag. See Journal entry tracking dimensions and Retrieving dimension tags for the full model.

Sample Journal Entry JSON

Journal entries can be retrieved via the Journal Entries API.

Validation flags

Before a journal entry can be exported it must be complete and balanced. Inspect these flags on the entry: To stop incomplete entries from reaching an approved payroll, enable block_approval_on_incomplete_journal_entries (or block_approval_on_missing_export_identifiers) on the Business Entity’s accounting_settings.