> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tesouro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transaction pagination

> Cursor-based pagination contract for the embedded-banking transactions endpoint.

The endpoint follows the standard [cursor-based pagination](/embedded-banking/api/concepts/pagination-sorting-filtering) contract used across the Embedded Banking REST API. The [Quick reference](/embedded-banking/api/concepts/quick-reference) lists the defaults at a glance.

| Parameter          | Default | Notes                                                            |
| :----------------- | :------ | :--------------------------------------------------------------- |
| `limit`            | 25      | Maximum page size is 100.                                        |
| `pagination_token` | null    | Opaque token from the previous response's `nextPaginationToken`. |

## Sweep loop

To read an account's full ledger:

1. Make the first request with the desired `limit` and any filters.
2. If the response includes a non-null `nextPaginationToken`, pass it as `pagination_token` on the next request — without changing `limit` or filters.
3. Stop when `nextPaginationToken` is `null`. That is the only valid stop condition.

```http lines theme={null}
GET /embedded-banking/v1/bank-accounts/{id}/transactions?limit=100
GET /embedded-banking/v1/bank-accounts/{id}/transactions?pagination_token=eyJ...
```

A short page is not a stop signal. The cursor may return fewer items than `limit` even when more pages exist. Drive the loop off `nextPaginationToken` alone.

## Opaque tokens

<Warning>
  Pagination tokens are **opaque**. Do not parse, decode, base64-strip, or otherwise inspect them. Do not construct one yourself. Do not assume any structure. The format may change at any time without notice — only round-trip the value the API returned.
</Warning>

Persisting a token across processes is fine; treating it as data is not. If you need to resume a sweep later, store the token verbatim and pass it back unchanged.
