# Reports API

## Sessions, rounds, and reports

| Call | Send | Get back |
|---|---|---|
| `close_session` | `session_id`, `reason` (player request, self-exclusion, limit, operator request, suspicion, timeout) | the closed session |
| `sessions` | `player_ref`, `page` | sessions |
| `rounds` | `session_id` or `player_ref`, `start_time`, `end_time`, `page` | rounds with `total_bet`, `total_win`, `status` (`SETTLED`, `REFUNDED`, `VOIDED`, `FAILED`, `REFUND_FAILED`, see §4.6), `placed_at`, `settled_at` |
| `export_rounds` | same filters plus `currency` | the same rounds streamed as NDJSON lines `{"result": …}`, for bulk reconciliation |
| `aggregates` | `date` (`YYYY-MM-DD`), `currency` | `total_rounds`, `total_bet_amount`, `total_win_amount`, `total_refund_amount`, `net_ggr`, `total_fee` |

Use `aggregates` for the daily settlement check and `export_rounds` when a number doesn't match.

## Reference

- **POST** `/v2/aggregator/close_session` — [closeSession: parameters, errors, code samples, try it](/docs/aggregation/reference/aggregator/#tag/aggregator/POST/v2/aggregator/close_session)
- **POST** `/v2/aggregator/sessions` — [listSessions: parameters, errors, code samples, try it](/docs/aggregation/reference/aggregator/#tag/aggregator/POST/v2/aggregator/sessions)
- **POST** `/v2/aggregator/rounds` — [listRounds: parameters, errors, code samples, try it](/docs/aggregation/reference/aggregator/#tag/aggregator/POST/v2/aggregator/rounds)
- **POST** `/v2/aggregator/export_rounds` — [exportRounds: parameters, errors, code samples, try it](/docs/aggregation/reference/aggregator/#tag/aggregator/POST/v2/aggregator/export_rounds)
- **POST** `/v2/aggregator/aggregates` — [getAggregates: parameters, errors, code samples, try it](/docs/aggregation/reference/aggregator/#tag/aggregator/POST/v2/aggregator/aggregates)
