Skip to main content
GET
List payments

Authorizations

Authorization
string
header
required

Access token issued by POST /sessions and associated with a valid server-side session.

Query Parameters

company_id
string<uuid>
required

Company UUID. Must equal the authenticated session company when that session has a company assigned; the equality check is skipped for sessions without one.

school_id
string<uuid>

School UUID. Omit to use the operation's documented company/session scope.

school_ids
string<uuid>[]

Optional school UUID filter. When school_id is also supplied, both filters apply. Accepts repeated query parameters or comma-separated values; empty entries are dropped and surrounding whitespace is trimmed.

family_id
string<uuid>

Row view only: optional family UUID. When family_ids is also supplied, the reader first restricts to this family; family_ids cannot widen that scope.

family_ids
string<uuid>[]

Optional family UUIDs; row view only. Accepts repeated query parameters or comma-separated values; empty entries are dropped and surrounding whitespace is trimmed.

family_name
string

Case-insensitive family-name substring filter.

date_from
string<date>

Inclusive start date in YYYY-MM-DD. Optional; both date bounds must be supplied together and date_to must not precede date_from.

date_to
string<date>

Inclusive end date in YYYY-MM-DD. Optional; both date bounds must be supplied together and date_to must not precede date_from.

last_n_days
integer

Rolling lookback on payment created_at (not transaction_date). Positive values add this filter; zero/negative values do not. May be combined with a transaction-date range.

state
string

Case-insensitive payment state filter.

is_posted
boolean

Filter by posted state; omit for both states. Accepts true/1 and false/0, case-insensitive.

successful_only
boolean
default:false

Include payments that are posted or whose normalized state is success, succeeded, completed, paid, posted, processed, settled or state_success. Only true/1 enables the filter; other values disable it.

payment_mode
string

Case-insensitive payment mode filter.

payment_method_sub_kind
string

Case-insensitive payment method subtype filter.

min_amount
number

Inclusive minimum payment amount.

max_amount
number

Inclusive maximum payment amount.

fields
enum<string>[]

Select response properties. Unknown names return 400. Default: payment_id, family_id, family_name, transaction_date, amount, total_amount, state. Row view only. Accepts repeated query parameters or comma-separated values; empty entries are dropped and surrounding whitespace is trimmed.

Available options:
payment_id,
transaction_id,
school_id,
family_id,
family_name,
transaction_date,
amount,
fee_amount,
total_amount,
balance,
state,
receipt_number,
payment_mode,
payment_method_sub_kind,
description,
is_posted,
payd_online,
auto_billing,
created_at
sort_by
string

Rows: transaction_date, amount, total_amount, created_at or family_name with _asc/_desc (default transaction_date_desc). Aggregates: group or any supported metric with _asc/_desc. Unrecognized sort keys fall back to the backend default. Aggregate default: count_desc.

group_by
enum<string>

Select an aggregate representation; metrics must also be supplied.

Available options:
school_id,
family_id,
month,
state,
payment_mode,
payment_method_sub_kind
metrics
enum<string>[]

Metrics to calculate; required with group_by and invalid without it. Accepts repeated query parameters or comma-separated values; empty entries are dropped and surrounding whitespace is trimmed.

Available options:
count,
sum_amount,
sum_total_amount,
sum_fee_amount,
avg_amount,
avg_total_amount,
avg_fee_amount
limit
integer
default:50

Aggregate result limit. Defaults to 50 and clamps values above 200 to 200. Zero and negative values use the default.

page
integer
default:1

One-based page number. Row view only.

Required range: x >= 1
per_page
integer
default:100

Items per page; values greater than 200 are clamped to 200. Row view only.

Required range: x >= 1

Response

Successful response.

A sparse row containing only the selected fields. Default fields: payment_id, family_id, family_name, transaction_date, amount, total_amount, state.

payment_id
string

Payment id.

transaction_id
string

Transaction id.

school_id
string

School id.

family_id
string

Family id.

family_name
string
transaction_date
string<date>
amount
number
fee_amount
number | null
total_amount
number
balance
number
state
string
receipt_number
string
payment_mode
string
payment_method_sub_kind
string
description
string
is_posted
boolean
payd_online
boolean
auto_billing
boolean
created_at
string

Local timestamp in YYYY-MM-DD HH:mm:ss format; no timezone suffix.

Example:

"2026-01-15 09:30:00"