/v1/payroll/calculate call and every successful row of /v1/payroll/batch is
recorded before the response is sent, and can be fetched later exactly as it was
answered.
What is stored
/simulate is the explicit ephemeral path: use it for quote and preview UIs, scenario
comparison, and anything that must not leave a record.
The audit trail is always stored, even when you asked not to receive it
(options.include_audit_trail: false). Showing a number and being able to defend it are
different things, and the second is what you need eight months later.
Isolation and immutability
- Everything is keyed to your
client_id, not to the API key you presented. Rotating a key does not cost you your history. See Authentication.
Employers and employees id
In every calculation you have to send youremployer.id and employee.id.
Both ids accept any string up to 128 characters. Longer returns 422.
An employee.id is unique within its employer. emp_001 at company A (corp_a) and emp_001 at
company B (corp_b) are two different people. An integrator serving many client companies cannot
guarantee IDs unique across them, and merging them would mix two workers’ histories.
Retrieve
The four GET endpoints, filters and cursor pagination.
Provenance
record, rule_fingerprint and content_digest.Idempotency
Retry a calculation without duplicating your history.
Corrections
Recalculate without destroying what you already answered.