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

# Template formats

> Design Reporter templates for HTML, XML, CSV, PDF, or TXT outputs, with practical examples to start building reports that fit your use case.

Reporter supports multiple output formats: HTML, XML, CSV, PDF, and plain text.

The examples show how to structure your `.tpl` files for each format. They follow the formatting rules and parse correctly during generation.

<Danger>
  The file content **must** follow the output format you need (HTML, XML, CSV or TXT), but make sure to save it with a `.tpl` extension. For PDF output, author the template as HTML. Reporter converts it during generation.
</Danger>

## Available examples

***

<div className="space-y-6 w-full sm:max-w-4xl">
  <Columns cols={3}>
    <Card title="HTML template" icon="code" href="/en/products/reporter/reporter-html-template">
      Analytical financial report with account-level transaction analysis.
    </Card>

    <Card title="XML template" icon="file-code" href="/en/products/reporter/reporter-xml-template">
      Analytical financial report in XML with custom logic and summaries.
    </Card>

    <Card title="TXT template" icon="file-lines" href="/en/products/reporter/reporter-txt-template">
      Transaction receipt template in plain text format.
    </Card>
  </Columns>
</div>

Each page includes the full template code, field-by-field explanations, and sample outputs that you can generate through Reporter.

## Tip for rendering a transaction receipt

***

To generate a transaction receipt using Reporter, you can send a request like this to the [Create a Report](/en/reference/products/reporter/create-report) endpoint:

<CodeGroup>
  ```json JSON theme={null}
  {
    "templateId": "0196f99c-4d3e-73bc-b5d3-2a5bb1efbee4",
    "filters": {
      "midaz_transaction": {
        "transaction": {
          "id": {
            "eq": ["0196d983-a2c2-7d5a-a5b7-029fe0dcb710"]
          }
        }
      }
    }
  }
  ```
</CodeGroup>

### What does this filter do?

The `filters` field lets you limit the data used when rendering the template. In this case, you're telling the system to use **only** the transaction with the ID `0196d983-a2c2-7d5a-a5b7-029fe0dcb710`.

The receipt includes that transaction and the operations linked to it.

### What happens next?

After you send the request:

* The API returns a `reportId`.
* You can use this ID to check the status of the report.
* When it's ready, the report will be available for download.

### Why it matters

Reporter generates each receipt in isolation, using the filters and templates you define.
