Skip to main content
List the statements of one period (required) that you can see, one row each, with their amount, status, awaited approvers and lines. No argument selects the statement’s user by id: target a person with search (name or email), a team with manager_id. A row’s id, not its user.id, is the statement_id that get_statement, get_statement_compensation and list_statement_records take. A statement with no line is never listed. A quarter or a year returns one row per user and month, ordered by user then month: period='2026' with search set to an email gives that user’s monthly totals in one call, with no loop over the months. To find what an approval holds up (who to chase before payroll), filter on approver_id for one approver’s queue, or payment_status='awaiting_approval' for every statement a mandatory stage blocks, rather than reading each statement with get_statement. To total or compare across users or periods, pass currency_mode='company' so every amount lands in one currency, and never sum amounts in different currencies. The default (payment) leaves each amount in the user’s own pay currency, which is not comparable across a multi-currency team. Each row’s conversion block gives the currency its amounts are stored in and the rate applied (list_exchange_rates holds the rates). A statement with no rate for the requested currency refuses the call. Each row’s compensations lists its lines without amounts: pass the row’s id and a line’s compensation_id straight to get_statement_compensation, with no get_statement call in between. Each row exposes a resource_url that opens that single statement. The result also carries a list-level application_url that reopens the statements board on the queried period, a quarter or a year opening on its last month as the board shows them.

Parameters

Body

string
required
Required. A month (YYYY-MM), a quarter (YYYY-QX) or a year (YYYY); quarters and years follow the company’s fiscal calendar, as get_identity reports it. A quarter or a year lists every month it spans.
Name or email of the statement’s user, the only way to target a person: every word must appear in either, in any order, case and accents ignored.
string
ongoing: open, not locked. locked: amounts locked, not paid. paid: sent to payroll. error: a calculation error, which shadows the others, so an errored statement is only found here. One of: error, ongoing, locked, paid.
string
Keep only statements with this payment_status, as each row reports it. Finer than status for the locked ones: awaiting_approval is a statement held by a mandatory approval, awaiting_payroll one ready to pay. One of: blocked_by_error, awaiting_lock, awaiting_approval, awaiting_payroll, paid.
string
Keep only the locked, unpaid statements on which a validation-workflow stage awaits this approver now: a user id from list_users or an exact email. A stage still waiting behind an earlier mandatory one does not count yet. Refused when the company’s validation workflow is off.
boolean
true: only statements whose overwritten is true. false does not filter: it reads like omitting it.
boolean
true: only statements with at least one linked request you can access. false does not filter: it reads like omitting it.
string
Keep only statements with a line from a live compensation of this plan: an id from list_plans, read in the same environment as sandbox_id.
string
A statement view id from get_identity, to narrow the rows to that view’s users. Never widens what you can see.
string
Id from list_users, or exact email, of a manager: keeps everyone below them at every level, not the manager. As the team stood in each statement’s month; never widens what you can see.
string
Currency each total_amount and balance is converted into and labelled with: ‘payment’ (default) the currency the user is paid in, ‘calculation’ the currency the plan computes in, ‘company’ the company’s currency. One of: company, payment, calculation.
string
Id of a sandbox from list_sandboxes, to read it instead of the live environment. Omit it for live, the company’s real data, unless the question is explicitly about a sandbox. Never a name, never the live id.
integer
Rows per page, 1 to 50. Default 25. A larger value is refused.
integer
Rows to skip. Omit it for the first page, never null or the string ‘None’; for the next page pass the previous next_offset.

Response

Body

object[]
integer
string
Deep link that reproduces this list in the web app — the statements board opened on the queried period. A quarter or a year opens on its last month, where the board shows it.