Use this file to discover all available pages before exploring further.
Esta página orienta você por um exemplo completo de um relatório Analítico Financeiro em XML. O template detalha a atividade no nível de conta, aplica lógica personalizada (como descontos) e inclui resumos claros para apoiar análises e auditorias.O que este relatório mostra:
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.
<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.
{%- for account in midaz_onboarding.account %} <Account> <AccountID>{{ account.id }}</AccountID> <Alias>{{ account.alias }}</Alias> {%- with balance = filter(midaz_transaction.balance, "account_id", account.id)[0] %} <CurrentBalance> {{ balance.available }}</CurrentBalance> {%- endwith %}
{%- 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(): percorre midaz_transaction.balance para encontrar o que corresponde ao account.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).
{%- for balance in midaz_transaction.balance %} {%- if balance.account_id == account.id %} <CurrentBalance>{{ balance.available }}</CurrentBalance> {%- endif %} {%- endfor %}
{%- 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.
Cada <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).
<AccountSummary> <TotalOperations>{% count_by midaz_transaction.operation if account_id == account.id %}</TotalOperations> <SumOfOperations>{% sum_by midaz_transaction.operation by "amount" if account_id == account.id %}</SumOfOperations> <AverageOfOperations>{% avg_by midaz_transaction.operation by "amount" if account_id == account.id %}</AverageOfOperations> </AccountSummary>
{% 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_by percorre midaz_transaction.operation e soma quantas operações possuem o mesmo account_id da 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_by itera pelas transações filtradas por account_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_by aplica o cálculo de média aos valores de amount.