Skip to content

Payroll

Payroll scopes (payroll:read, payroll:write) are verified-only by default — see Scopes and role tiers for the current verified-only list. An unverified app cannot request them at consent.

The pay-run receiver

payroll:write lets a verified app post pay-runs and corrections into the organisation's ledger. It follows the same flat error envelope as every other endpoint (see Errors) — the pay-run-specific codes (pay_run_not_postable, period_locked, currency_mismatch, account_mapping_missing, …) are in that same catalogue, not a separate one.

An Idempotency-Key header is required on every write. On the create endpoint, retrying the exact same key with the exact same payload is a no-op (200 replay); retrying with a different payload is idempotency_conflict. On the correct endpoint there is no cached replay: retrying the same key once the earlier call has already landed fails 409 pay_run_not_postable instead, whatever the payload — see Idempotency for the full per-endpoint contract.

See the API reference for the full pay-run request and response schemas.