---
title: "Get group wallet statement"
method: GET
path: "/v1/groups/{group_id}/statement"
tags: ["Groups"]
---

# Get group wallet statement

`GET /v1/groups/{group_id}/statement`

## Request

- Base URL: `https://api.scrip.dev`
- URL: `https://api.scrip.dev/v1/groups/{group_id}/statement`
- Auth: HTTP bearer

Returns a running-balance statement of a group wallet's ledger activity for one asset, with opening and closing balances for the window. When program_id is provided, movements and balances are scoped to that program's journal entries.
This report does not accept created_after or created_before.

## Path parameters

- `group_id` string, uuid, required

## Query parameters

- `program_id` string, uuid
- `asset_id` string, uuid, required
- `bucket` string
- `period_start` string, date-time
- `period_end` string, date-time
- `limit` integer
- `cursor` string

## Response `200`

Statement page with running balances

- StatementResponse: One page of a statement for one asset, with the opening balance, the closing balance and each entry between them.
  - `asset_id` string, uuid: Asset the statement covers
  - `bucket` string: The buckets this statement covers, as a comma-separated list in the order you requested, with duplicates removed, for example "AVAILABLE,DEFERRED". Omitted when the statement covers all buckets; the running balance is then the total across buckets.
  - `closing_balance` string: Scope balance as of the end of the period (the current balance when no period_end is given). Always equals the as-of(period_end) balance for the same entity/asset/bucket scope, regardless of pagination.
  - `data` StatementEntryResponse[]: Statement lines, oldest first
    - `action_type` 'CREDIT' | 'DEBIT' | 'TRANSFER' | 'HOLD' | 'RELEASE' | 'FORFEIT' | 'EXPIRATION' | 'REDEMPTION' | 'REVERSAL' | 'BURN' | 'FUND' | 'ADJUSTMENT' | 'MATURITY' | 'VOID_PENDING': The kind of ledger action that produced the entry. A manual adjustment is a `CREDIT` or `DEBIT`; no operation creates `ADJUSTMENT` entries.
    - `amount` string: Movement amount, negative for debits
    - `bucket` 'AVAILABLE' | 'HELD' | 'DEFERRED': The balance bucket the entry affected.
    - `created_at` string, date-time: When this movement was recorded
    - `created_by_api_key_id` string, uuid: API key that initiated this movement, if via API
    - `description` string: Operation summary
    - `event_id` string, uuid: Event that triggered this movement, if any
    - `event_timestamp` string, date-time: When the originating event occurred (from event_timestamp), if event-driven
    - `journal_entry_id` string, uuid: Ledger journal entry for this movement
    - `posting_id` string, uuid: Posting this line represents
    - `reference_id` string: Caller-supplied reference on the journal entry (authorization, order, or settlement id), if any
    - `rule_id` string, uuid: Rule that produced this movement, if rule-driven
    - `running_balance` string: Scope balance after this movement (computed over the full unfiltered history of the statement scope)
  - `opening_balance` string: Scope balance immediately before the period ("0" when no period_start is given)
  - `pagination` PaginationResponse: Cursor details for a list. `has_more` says whether another page exists, and `next_cursor` is the value to send to get it.
    - `has_more` boolean, required: Whether more results are available beyond this page
    - `next_cursor` string, nullable, required: Cursor to fetch the next page. Null on the last page
  - `period_end` string: End of the statement period, when provided
  - `period_start` string: Start of the statement period, when provided

## Other responses

- `400`: Invalid query parameters (code: validation_error)
- `401`: The API key is missing or not valid. See [Authentication](https://docs.scrip.dev/authentication).
- `404`: Group or asset not found (code: group_not_found | asset_not_found)
- `429`: Too many requests. Wait the number of seconds in the `Retry-After` header, then retry. See [Limits and durations](https://docs.scrip.dev/limits#rate-limits).
- `500`: Something failed on Scrip's side. Retry the request, and quote `request_id` if it keeps failing. [Errors](https://docs.scrip.dev/errors) lists every code, and the [API introduction](https://docs.scrip.dev/api-reference/introduction) describes the error format.

---

[API](https://skmtc.dev/scrip/apis/scrip-api.md) · [All operations](https://skmtc.dev/scrip/apis/scrip-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrip/apis/scrip-api/revisions/c52d35da8d97?raw)
