> ## 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 TXT

> Crie um template de recibo de transação em texto simples com o Reporter, em um arquivo .tpl simples que é renderizado como um comprovante de pagamento TXT para impressão.

Esta página mostra como criar um template de recibo de transação com o **Reporter** no formato `.txt`.

## Código do template

***

<CodeGroup>
  ```text Text expandable theme={null}
  ##########################################
  #            PROOF OF PAYMENT            #
  ##########################################

  Generation Date: {% date_time "dd/MM/YYYY HH:mm" %}
  Ledger Name: {{ midaz_onboarding.ledger.0.name }}

  {%- for transaction in midaz_transaction.transaction %}
  -----------------------------------------
  Transaction ID: {{ transaction.id }}
  Transaction Date: {{ transaction.created_at }}
  Total Amount: {{ transaction.amount }}
  Transaction Status: {{transaction.status}}
  ------------------------------------------

  Source Accounts:
  {%- for operation in filter(midaz_transaction.operation, "transaction_id", transaction.id) %} 
  {%- if operation.type == "DEBIT" %} 
  - Alias: {{operation.account_alias }} 
  - Debit Amount: {{ operation.amount }} 
  {%- endif %}
  {%- endfor %}

  Target Accounts:
  {%- for operation in filter(midaz_transaction.operation, "transaction_id", transaction.id) %} 
  {%- if operation.type == "CREDIT" %} 
  - Alias: {{operation.account_alias }} 
  - Credit Value: {{operation.amount }} 
  {%- endif %}
  {%- endfor %}

  {%- endfor %}
  ------------------------------------------
  Automatically generated document.
  ```
</CodeGroup>

## Detalhamento do código

***

\*\* `Generation Date: {% date_time "dd/MM/YYYY HH:mm" %}`\*\*

Renderiza a **data e hora atuais** durante o processamento do template.

* Usa o formato `dd/MM/YYYY HH:mm` (por exemplo, `26/05/2025 11:45`).

\*\* `Ledger Name: {{ midaz_onboarding.ledger.0.name }}`\*\*

Exibe o **nome do ledger** associado a este relatório.

* `midaz_onboarding.ledger` é uma lista, e `[0]` seleciona o **primeiro ledger**.
* `.name` busca a propriedade name, como `"Corporate Ledger"`.

\*\* `{% for transaction in midaz_transaction.transaction %}`\*\*

Esse loop itera sobre **cada transação** na lista `midaz_transaction.transaction`. Para cada transação, o código abaixo roda uma vez para exibir as informações dela.

### Bloco de cabeçalho da transação

Cada transação imprime os seguintes detalhes:

<CodeGroup>
  ```txt Text theme={null}
  -----------------------------------------
  Transaction ID: {{ transaction.id }}
  Transaction Date: {{ transaction.created_at }}
  Total Amount: {{ transaction.amount }}
  Transaction Status: {{ transaction.status }}
  ------------------------------------------
  ```
</CodeGroup>

* `transaction.id`: ID único da transação.
* `transaction.created_at`: timestamp de criação da transação.
* `transaction.amount`: o valor bruto da transação.
* `transaction.status`: status atual, como `COMPLETED`, `PENDING` ou `FAILED`.

### Seção de contas de origem

<CodeGroup>
  ```txt Text theme={null}
  Source Accounts:
  {% for operation in filter(midaz_transaction.operation, "transaction_id", transaction.id) %}
    {% if operation.type == "DEBIT" %}
      - Alias: {{ operation.account_alias }}
      - Debit Amount: {{ operation.amount }}
    {% endif %}
  {% endfor %}
  ```
</CodeGroup>

* Filtra a lista de operações para incluir apenas as operações vinculadas à **transação atual**.
* Filtra ainda mais para mostrar apenas operações com `type == "DEBIT"` (fundos saindo de uma conta).
* Para cada débito correspondente:
  * Exibe o **alias da conta**.
  * Exibe o **valor do débito**.

### Seção de contas de destino

<CodeGroup>
  ```txt Text theme={null}
  Target Accounts:
  {% for operation in filter(midaz_transaction.operation, "transaction_id", transaction.id) %}
    {% if operation.type == "CREDIT" %}
      - Alias: {{ operation.account_alias }}
      - Credit Value: {{ operation.amount }}
    {% endif %}
  {% endfor %}
  ```
</CodeGroup>

* Mesma lógica do bloco de débito, mas filtra por `type == "CREDIT"` (fundos recebidos).
* Para cada crédito correspondente:
  * Exibe o **alias da conta**.
  * Exibe o **valor do crédito**.

### Texto de rodapé

<CodeGroup>
  ```text Text theme={null}
  ------------------------------------------
  Automatically generated document.
  ```
</CodeGroup>

* Rodapé de texto simples que marca o fim do relatório.
* Indica a geração automática do arquivo, geralmente para fins de rastreabilidade.

## Saída do template

***

<CodeGroup>
  ```text Text expandable theme={null}
  ##########################################
  #            PROOF OF PAYMENT            #
  ##########################################

  Generation Date: 23/05/2025 14:08
  Ledger Name: Rice, Rowe and O'Hara

  -----------------------------------------
  Transaction ID: 75906707-8c31-479c-b354-aa805c4cefbc
  Transaction Date: 2025-05-22T14:15:22.123Z
  Total Amount: 5000.00
  Transaction Status: ACTIVE
  ------------------------------------------

  Source Accounts:
  - Alias: @external|USD 
  - Debit Amount: 1500.00

  Target Accounts:
  - Alias: @wallet_12345 
  - Credit Value: 1500.00

  ------------------------------------------
  Automatically generated document.
  ```
</CodeGroup>
