# Introduction

## Prerequisites

- **Authentication scopes** — `reports:read`, `transactions:read`
For more information, refer to [Authentication scopes](/products/byol/concepts/api_concepts/authentication/authentication_oauth#list-of-authentication-scopes).


Before implementing user reports, ensure you have:

- **Webhook handler ready** — Set up a webhook endpoint to listen for report generation events.
  - Subscribe to [`REPORT.CREATED`](/products/byol/guides/reports/reports_webhooks) events.
For more information, refer to [Implementing webhooks](/products/byol/getting_started/implementing_webhooks).


## How does user report generation work?

The report generation process is invoked by specific, pre-defined trigger events that typically result from other business processes or interactions with other endpoints of the Investment API. For example, when one of your users places an order, the corresponding order execution and resulting transaction is a trigger event that initiates the creation of a buy order report.

**Example**

When one of your users places an order, the corresponding order execution and the resulting transaction is a trigger event that triggers the creation of a buy order report. The full list of reports provided can be found below.

## Customisation of user reports

### Logo

For the visual individualisation of the user reports, Upvest allows customisation. For example, you can add your company logo to the report documents in this way.

If clients require this, please contact Upvest directly for the further procedure.

**Example user report**

### Language settings

We can generate reports into any of the following languages:

- English
- German
- Spanish
- French
- Dutch (work with your account manager to determine availability)


Work with your account manager to setup reports in your desired language.

In the future, you will be able to set the language for each individual end user in the user data.
The PDF reports are created in the selected language accordingly. However, the JSON schemas always remain the same, so the customer has the option of creating their own customised PDF reports.

## Output format for report data

The reporting function provides access to data in the following formats:

- PDF
- JSON


Our PDF reports conform to the [PDF/A (ISO 19005) archival format](https://pdfa.org/resource/iso-19005-pdfa/). This format helps ensure faithful visual reproduction and blocks dynamic content, such as JavaScript, as well as external references.

Please note that the JSON format is currently only available for ex-ante reports.

To select the output format, simply set the accept-header to the desired format:

- `application/pdf`
- `application/json`