Skip to main content
Get the full, audit-grade detail of one statement you can access. Use this to audit a single statement end-to-end — drill into the summary rows 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

statement_id
string
The statement’s id, as returned by list_statements. Mutually exclusive with owner / period.
owner
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.
period
string
The statement’s period in YYYY-MM format (e.g. 2026-03, never day-first). Must be paired with owner.
currency_mode
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

id
string
resource_url
string
Deep link to open this statement in the Qobra web app.
user_email
string
period
string
status
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.
total_payment
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.
currency
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.
last_ready_at
string
When the statement last finished computing and was up to date; null if it never reached that state.
linked_requests
object[]
overwritten
boolean
True if at least one amount was manually adjusted.
last_calculating_at
string
groups
object[]
The groups (by dimension) this user belongs to on the statement.
balance
object
validations
object[]
compensations
object[]
One minimal row per commission line. Drill into a line with get_statement_compensation for its variables and scopes.
activities
object[]
errors
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.