- Detalhes da Organização e do Ledger.
- Visão geral no nível de conta: saldo, moeda e alias.
- Detalhamento de operações: valor original, desconto, valor final, status, descrição e tipo.
- Resumos por conta: total de operações, valor total e média por operação.
Código do template
Detalhamento do código
Informações da Organização e do Ledger
<Organization>{{ midaz_onboarding.organization.legal_name }} - CNPJ: {{ midaz_onboarding.organization.legal_document }}</Organization>
Exibe o nome legal da organização e o CNPJ correspondente (Cadastro Nacional da Pessoa Jurídica).
{{ midaz_onboarding.organization.legal_name }}: recupera o nome da organização.{{ midaz_onboarding.legal_document }}: recupera o CNPJ.
<GenerationDate>{% date_time "dd/MM/YYYY HH:mm" %}</GenerationDate>
Esta função aplica a data e hora em que o template é renderizado, usando o formato dd/MM/YYYY HH:mm.
{%- with ledger = midaz_onboarding.ledger[0] %}
Cria uma variável temporária apontando para o primeiro ledger disponível. Isso mantém o código mais limpo e evita referências repetitivas.
-: remove espaços extras no arquivo renderizado.ledger: o nome da variável temporária.midaz_onboarding.ledger[0].name: aponta para o primeiro ledger disponível.
Iterando pelas contas
{%- for account in midaz_onboarding.account %} … {% endfor %}
Itera por todas as contas vinculadas ao usuário. Como a maioria dos usuários possui mais de uma conta, isso permite exibir dados individuais para cada uma.
midaz_onboarding.account: a lista completa de contas do usuário.{%- for account in midaz_onboarding.account %}: o loop executa uma vez por conta.
{%- with balance = filter(midaz_transaction.balance, "account_id", account.id)[0] %}
Define uma variável chamada balance que contém o saldo da conta atual.
filter(): percorremidaz_transaction.balancepara encontrar o que corresponde aoaccount.id.[0]: obtém a primeira correspondência.- O resultado é armazenado em
balance.
<CurrentBalance> {{ balance.available }}</CurrentBalance>
Exibe o saldo disponível da conta (balance.available).
Iterando sem {%with...%}
{%- for balance in midaz_transaction.balance %}
Itera por todos os saldos para encontrar aquele que corresponde à conta atual. Esta é uma alternativa mais explícita ao filter().
midaz_transaction.balance: a lista de todos os saldos.{%- balance in midaz_transaction.balance %}: o loop executa uma vez por saldo.
{% if balance.account_id == account.id %}
Filtra os saldos para exibir apenas aqueles que correspondem à conta sendo processada.
- Se corresponderem, o saldo é exibido.
Informações de moeda
account.asset_code: injeta dinamicamente o código da moeda.
Agrupando operações
<Operations>...</Operations>
Define a seção onde todas as operações de uma conta são listadas.
- Mantém o relatório estruturado e fácil de analisar.
{%- for operation in midaz_transaction.operation %}
Itera por todas as operações na transação e exibe as operações que correspondem à conta atual.
operation: representa a operação atual que faz parte da transação corrente.midaz_transaction.operation: a lista de todas as operações na transação.
{%- if operation.account_id == account.id %}
Garante que apenas as operações relevantes para a conta atual sejam incluídas.
- Se o
account_idda operação for igual aoaccount.idatual, o restante do bloco será executado.
{%- set original_amount = operation.amount %}
Define o valor original e o atribui a uma variável.
original_amount: o nome da variável.
{%- set discount_amount = original_amount * 0.03 %}
Define uma variável e calcula um desconto de 3% sobre o valor original.
discount_amount: o nome da variável.original_amount * 0.03: aplica um desconto de 3% sobre o valor original.
{%- set final_amount = original_amount - discount_amount %}
Subtrai o desconto do valor original para obter o valor final.
final_amount: variável que representa o valor final.original_amount - discount_amount: a operação de subtração.
Bloco de operação
<Operation> contém informações detalhadas sobre a transação. Esses campos ajudam os usuários a auditar e compreender o que aconteceu.
<OperationID>{{ operation.id }}</OperationID>
ID único da operação.
<Description>{{ operation.description }}</Description>
Descrição curta da operação.
<Type>{{ operation.type }}</Type>
Tipo da operação (ex.: crédito, débito, ajuste).
<Route>{{ operation.route }}</Route>
Entrada de rota de operação associada.
<OriginalAmount>{{ original_amount }}</OriginalAmount>
Valor original antes de quaisquer ajustes.
<DiscountAmount>{{ discount_amount }}</DiscountAmount>
Valor do desconto aplicado.
<FinalAmountWithDiscount>{{ final_amount }}</FinalAmountWithDiscount>
Valor final após o desconto.
<Currency>{{ operation.asset_code }}</Currency>
A moeda utilizada na operação.
<Status>{{ operation.status }}</Status>
Status da operação (ex.: Aprovado, pendente).
Bloco de resumo da conta
{% count_by midaz_transaction.operation if account_id == account.id %}
Conta o número de operações associadas à sua conta e auxilia na compreensão do volume de transações no período do relatório.
- A função
count_bypercorremidaz_transaction.operatione soma quantas operações possuem o mesmoaccount_idda conta atual.
{% sum_by midaz_transaction.operation by "amount" if account_id == account.id %}
Soma o valor total de todas as operações desta conta e exibe o resultado com duas casas decimais.
sum_byitera pelas transações filtradas poraccount_id.- Soma os campos
amount.
{% avg_by midaz_transaction.operation by "amount" if account_id == account.id %}
Calcula o valor médio das operações desta conta. Útil para identificar padrões de gastos ou valores atípicos.
avg_byaplica o cálculo de média aos valores de amount.- Considera apenas as operações da conta atual.

