- Detalles de la organización y del ledger.
- Resumen a nivel de cuenta: saldo, moneda y alias.
- Desglose de operaciones: monto original, descuento, monto final, estado, descripción y tipo.
- Resúmenes por cuenta: total de operaciones, valor total y promedio por operación.
Código de la plantilla
Desglose del código
Información de la organización y del ledger
<Organization>{{ midaz_onboarding.organization.legal_name }} - CNPJ: {{ midaz_onboarding.organization.legal_document }}</Organization>
Muestra el nombre legal de la organización y el CNPJ (identificación fiscal brasileña) correspondiente.
{{ midaz_onboarding.organization.legal_name }}: obtiene el nombre de la organización.{{ midaz_onboarding.legal_document }}: obtiene el CNPJ.
<GenerationDate>{% date_time "dd/MM/YYYY HH:mm" %}</GenerationDate>
Esta función aplica la fecha y la hora de la renderización, en el formato dd/MM/YYYY HH:mm.
{%- with ledger = midaz_onboarding.ledger[0] %}
Crea una variable temporal que apunta al primer ledger disponible. Esto mantiene el código más limpio y evita referencias repetitivas.
-: elimina los espacios adicionales en el archivo renderizado.ledger: el nombre de la variable temporal.midaz_onboarding.ledger[0].name: apunta al primer ledger disponible.
Recorrer las cuentas en bucle
{%- for account in midaz_onboarding.account %} … {% endfor %}
Recorre todas las cuentas vinculadas al usuario. Como la mayoría de los usuarios tiene más de una cuenta, esto permite mostrar datos individuales para cada una.
midaz_onboarding.account: la lista completa de cuentas del usuario.{%- for account in midaz_onboarding.account %}: el bucle se ejecuta una vez por cuenta.
{%- with balance = filter(midaz_transaction.balance, "account_id", account.id)[0] %}
Define una variable llamada balance que contiene el saldo de la cuenta actual.
filter(): recorremidaz_transaction.balancepara encontrar el que coincide conaccount.id.[0]: toma la primera coincidencia.balancecontiene el resultado.
<CurrentBalance> {{ balance.available }}</CurrentBalance>
Muestra el saldo disponible de la cuenta (balance.available).
Recorrer en bucle sin {%with...%}
{%- for balance in midaz_transaction.balance %}
Recorre todos los saldos para encontrar el que coincide con la cuenta actual. Esta es una alternativa más explícita a filter().
midaz_transaction.balance: la lista de todos los saldos.{%- balance in midaz_transaction.balance %}: el bucle se ejecuta una vez por saldo.
{% if balance.account_id == account.id %}
Filtra los saldos para mostrar solo los que coinciden con la cuenta actual.
- Si coinciden, el saldo aparece.
Información de la moneda
account.asset_code: inserta dinámicamente el código de la moneda.
Agrupar operaciones
<Operations>...</Operations>
Define la sección que enumera todas las operaciones de una cuenta.
- Mantiene el informe estructurado y fácil de leer.
{%- for operation in midaz_transaction.operation %}
Recorre todas las operaciones de la transacción y muestra las que coinciden con la cuenta actual.
operation: representa la operación actual que forma parte de la transacción actual.midaz_transaction.operation: la lista de todas las operaciones de la transacción.
{%- if operation.account_id == account.id %}
Incluye solo las operaciones relevantes para la cuenta actual.
- Si el
account_idde la operación es igual alaccount.idactual, se ejecuta el resto del bloque.
{%- set original_amount = operation.amount %}
Define el monto original y lo asigna a una variable.
original_amount: el nombre de la variable.
{%- set discount_amount = original_amount * 0.03 %}
Define una variable y calcula un descuento del 3% sobre el monto original.
discount_amount: el nombre de la variable.original_amount * 0.03: aplica un descuento del 3% sobre el monto original.
{%- set final_amount = original_amount - discount_amount %}
Resta el descuento del monto original para obtener el valor final.
final_amount: variable que representa el valor final.original_amount - discount_amount: la operación de resta.
Bloque de operación
<Operation> contiene información detallada sobre la transacción. Estos campos ayudan a los usuarios a auditar y entender lo que ocurrió.
<OperationID>{{ operation.id }}</OperationID>
ID único de la operación.
<Description>{{ operation.description }}</Description>
Descripción breve de la operación.
<Type>{{ operation.type }}</Type>
Tipo de operación (por ejemplo, crédito, débito, ajuste).
<Route>{{ operation.route }}</Route>
Entrada de ruta de operación asociada.
<OriginalAmount>{{ original_amount }}</OriginalAmount>
Monto original antes de cualquier ajuste.
<DiscountAmount>{{ discount_amount }}</DiscountAmount>
Valor del descuento aplicado.
<FinalAmountWithDiscount>{{ final_amount }}</FinalAmountWithDiscount>
Monto final después del descuento.
<Currency>{{ operation.asset_code }}</Currency>
La moneda usada para la operación.
<Status>{{ operation.status }}</Status>
Estado de la operación (por ejemplo, Approved, pending).
Bloque de resumen de cuenta
{% count_by midaz_transaction.operation if account_id == account.id %}
Cuenta el número de operaciones asociadas a tu cuenta.
- La función
count_byrecorremidaz_transaction.operationy suma cuántas operaciones tienen el mismoaccount_idque la cuenta actual.
{% sum_by midaz_transaction.operation by "amount" if account_id == account.id %}
Suma el valor total de todas las operaciones de esta cuenta y muestra el resultado con dos decimales.
sum_byrecorre las transacciones filtradas poraccount_id.- Suma los campos
amount.
{% avg_by midaz_transaction.operation by "amount" if account_id == account.id %}
Calcula el valor promedio de las operaciones de esta cuenta. Es útil para detectar patrones de gasto o valores atípicos.
avg_byaplica el cálculo del promedio a los valores del monto.- Solo considera las operaciones de la cuenta actual.

