Skip to main content
GET
Get group wallet statement
Returns a running-balance statement for one group and one asset. asset_id is required. Each row is one posting with its signed amount, bucket, action_type, journal entry, created_at, and the running balance after it. A successful response contains data, opening_balance, closing_balance, and pagination. Treat missing or malformed fields as an error rather than substituting an empty movement list or zero balance. from and to select rows by the posting’s created_at. Both bounds are inclusive, and they do not reset the running balance. opening_balance is the balance before from, and closing_balance is the balance through to. Opening plus the rows in the window equals closing. Pass bucket to limit rows and balances to one or more buckets, such as bucket=AVAILABLE,DEFERRED. The balances cover the selected buckets together. Pass program_id to include only journal entries recorded under that program. The filter applies to movements and all reported balances. It uses the entry’s program, which can differ from the program that originally issued a lot. Entries without a program_id, such as lot expirations, are excluded. Rows created by a rule carry rule_id and event_id. A manual adjustment has neither. reference_id is the shared ID that links related rows, such as a hold and its release.
For how to classify rows, exact window boundaries, when to treat a statement as final, and why statements use posting time rather than event_timestamp, see Statements in the Reporting guide.

Authorizations

X-API-Key
string
header
required

API key passed in the X-API-Key header.

Path Parameters

id
string<uuid>
required

Group ID

Query Parameters

program_id
string<uuid>

Scope movements and balances to this program

asset_id
string<uuid>
required

Asset to produce the statement for

bucket
string

Scope the statement (rows and running balance) to one or more buckets. Accepts one or more comma-separated values from AVAILABLE, HELD, DEFERRED (for example AVAILABLE,DEFERRED); rows and the running balance are scoped to the union of the listed buckets. Omitted, the statement covers all buckets

from
string<date-time>

Start of statement window (RFC 3339), inclusive; applied to the journal entry posting time (created_at)

to
string<date-time>

End of statement window (RFC 3339), inclusive; applied to the journal entry posting time (created_at)

limit
integer
default:50

Maximum number of results (default 50, max 200)

Required range: x >= 1
cursor
string

Pagination cursor from previous response

Response

Statement page with running balances

asset_id
string<uuid>

Asset the statement covers

Example:

"550e8400-e29b-41d4-a716-446655440000"

bucket
string

Bucket scope, when the statement was requested for one or more buckets: the normalized list (trimmed, deduplicated, in the order requested) as a comma-joined string, for example "AVAILABLE,DEFERRED". Absent when the statement covers all buckets (running balance is then the total across buckets).

Example:

"AVAILABLE"

closing_balance
string

Scope balance as of the end of the window (the current balance when no to is given). Always equals the as-of(to) balance for the same entity/asset/bucket scope, regardless of pagination.

Example:

"350"

data
object[]

Statement lines, oldest first

from
string

Start of the statement window, when provided

Example:

"2024-01-01T00:00:00Z"

opening_balance
string

Scope balance immediately before the window ("0" when no from is given)

Example:

"250"

pagination
object

Pagination metadata for fetching subsequent statement pages

to
string

End of the statement window, when provided

Example:

"2024-02-01T00:00:00Z"