# Daily transactions

Source: https://docs.settlemint.com/docs/console/reporting/daily-transactions
Download a report of chain movements, corporate actions, and venue trades for one organisation business day or a range of up to 31 days.

Daily transactions exports the movements of an organisation business day on the selected network as one file: chain movements, corporate actions and venue trades. Select another network and generate the report again for its movements. You choose one day or an inclusive range of dates, the time zone that sets where each day starts and ends, and the file format. The platform builds the report on request from the indexed chain, up to the last block before the end of the range, or up to the latest indexed block while the range has not ended. The file downloads to your device.

The screen keeps no earlier reports, so generate the report again when you need the file.

![Daily transactions page with the What the report includes note and the Generate a transaction report form with Start date, End date, Business-day time zone, File format and the Download report button](https://docs.settlemint.com/docs/screenshots/console-reporting-daily-transactions.light.en.webp)

[Screenshot] The "Daily transactions" page as a reporting officer sees it.

Under the title, a note headed "What the report includes" lists the columns of the report. The "Generate a transaction report" form below it holds "Start date", "End date", "Business-day time zone" and "File format", and the "Download report" button.

## Before you start [#before-you-start]

- **An indexed chain.** The report reads the chain through the end of the range. When the chain is not indexed that far, the platform refuses the request and the Console shows an error. Try again once indexing has caught up.

## Steps [#steps]

### Choose the dates [#choose-the-dates]

Enter the **Start date** and the "End date". Both fields default to the current date in your browser's time zone. Both dates are part of the range, so a single day has the same date in both fields. The Console says "Choose a start date and an end date." when a date is empty, "The end date must not be before the start date." when the end is before the start, and "Enter an inclusive date range of up to 31 days." when the range is longer than 31 days.

### Choose the time zone [#choose-the-time-zone]

In **Business-day time zone**, pick the time zone. Each day runs from local midnight to the next local midnight, so a day with a daylight-saving change lasts 23 or 25 hours. The report always uses the time zone you pick, whatever display time zone your organisation sets on [General](https://docs.settlemint.com/docs/console/organisation-settings/general). A request sent without a time zone, for example from the API, uses that display time zone, and UTC when the organisation has none.

### Choose the file format [#choose-the-file-format]

In **File format**, choose "CSV" for a portable file or "XLSX" to keep spreadsheet formatting.

### Select Download report [#select-download-report]

Select **Download report**. The button reads "Preparing report…" while the platform builds the file. The file is saved as `daily-transactions-<start>-<end>.csv` or `.xlsx`, with your start and end dates in the name. If the platform cannot produce the report, the screen shows "Something went wrong here". When the range holds more rows than one report carries, the screen shows "The date range holds too many rows for one report" and no file is saved.

## What the report includes [#what-the-report-includes]

Each row is one movement, grouped under its business day. The columns are kind, network, status, participant, client, wallet, asset, symbol, quantity, transaction hash and reference, so the file carries client and wallet identifiers.

- `participantId` and `clientId` name the participant that holds the wallet and that participant's identity reference. For a venue trade, the wallet is the buyer's. Both stay empty when no participant of your organisation holds the wallet, for example an escrow or settlement contract.
- `asset` is the token address and `symbol` its symbol. On a corporate-action payment (`ca-payment`), they name the asset the holder was paid in, such as the cash token of a coupon, not the instrument.
- `quantity` is in token units, with the token's decimals applied: 40 EUROC reads `40`, not `40000000000000000000`. It keeps every decimal the token has, without rounding, and stays the on-chain integer when the platform has not indexed the token's decimals.

A report holds at most 1,000,000 rows. When the range holds more, the platform refuses the request with the `reporting.daily-transactions.ROW_LIMIT_EXCEEDED` error, so you never receive a file that stops partway through the range. Request a shorter range and download the report in several parts.

## You should see [#you-should-see]

- Open the file and check that the days you asked for are present, that each row has a kind, a network and a status, and that the quantities and the transaction hashes match the activity you expect.
- Generating the report is a sensitive read, a read the platform records on its own, so [Audit trail](https://docs.settlemint.com/docs/console/reporting/audit-trail) holds an entry for it.
- The entry names the range, the time zone, the format and the number of rows.

## Troubleshooting [#troubleshooting]

| What you see | What it means and what to do |
| --- | --- |
| "Enter an inclusive date range of up to 31 days." | The range is longer than 31 days. Download the range in two parts. |
| "The end date must not be before the start date." | The end date is before the start date. Correct the dates. |
| "The date range holds too many rows for one report" | The range holds more than 1,000,000 rows, so the platform produced no file. Request a shorter range and download the report in several parts. |
| **Something went wrong here** under the form | The platform refused or could not build the report, for example because the chain index has not reached the end of the range. Try again later, or choose an earlier end date. |
| **Select an organisation to see reporting** | Daily transactions needs an active organisation. Select one before you open **Reporting**. |

## API routes [#api-routes]

The form uses one route of the [Platform API](https://docs.settlemint.com/docs/api-reference/v2): `POST /api/v2/reporting/daily-transactions` takes `start`, `end`, an optional `timeZone` and the `format`, and returns the file. It answers 422 `reporting.daily-transactions.ROW_LIMIT_EXCEEDED` when the range holds more rows than one report carries.
