list_statements returns. It returns one minimal row per commission line
(drill into a line’s variables and scopes with get_statement_compensation),
the complete activity log, the validation state, the draw balance, and the
linked requests.
Identify the statement one of two ways (exactly one): statement_id (the id
list_statements returns), or owner + period (the statement’s user
and its month).
The headline total_payment is converted into the currency named by
currency_mode (payment by default) and labelled with it, so amount and
currency always agree. The per-line compensation breakdown stays in the plan’s
calculation currency.
A statement you can’t access reads exactly like one that doesn’t exist, so the
error never reveals a statement outside your scope.
Parameters
Body
Body
string
The statement’s id, as returned by list_statements. Mutually exclusive with
owner / period.
string
The statement’s user, matched by name or email (case-insensitive substring)
or by ObjectId — same matching as list_users. Must be paired with period.
string
The statement’s period in YYYY-MM format (e.g. 2026-03, never day-first).
Must be paired with owner.
string
Which currency total_payment 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 global currency. The amount
and its currency always agree. One of:
company, payment, calculation.Response
Body
Body
string
string
Deep link to open this statement in the Qobra web app.
object
string
string
Overall processing state: error (calculation failed), ongoing (open, not yet
locked), locked (frozen, not yet paid), paid (sent to payroll). A paid
statement is always frozen too. Distinct from the per-period reporting stage
of list_statement_periods. One of:
error, ongoing, locked, paid.number
Net amount to be paid out on this statement, expressed in
currency —
already reflects draw and manual payments, so it is not just the sum of the
compensation lines.string
The ISO currency code that total_payment is expressed in. One of:
AED,
AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD,
BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN,
BWP, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, COU,
CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN,
ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ,
GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR,
ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD,
KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD,
MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN,
MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN,
PGK, PHP, PKR, PLN, PYG, QAR, RMB, RON, RSD, RUB, RWF,
SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, STD,
SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD,
TZS, UAH, UGX, USD, UYI, UYU, UZS, VEF, VND, VUV, WON,
WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, XSU, YER,
ZAR, ZMK, ZWL.string
When the statement last finished computing and was up to date; null if it
never reached that state.
object[]
boolean
True if at least one amount was manually adjusted.
string
object[]
The groups (by dimension) this user belongs to on the statement.
object
object[]
object[]
One minimal row per commission line. Drill into a line with
get_statement_compensation for its variables and scopes.
object[]
object[]
The statement’s detailed calculation errors, resolved to variable / quota /
scope names. Populated only for callers who can manage compensations or
quotas (mirroring the web app’s admin-only error panel); empty for anyone
else and whenever the statement has no calculation error.