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.