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

# Reglas contables

> Configura Rutas Contables desde la Console para decidir qué Cuentas pueden participar en cada tipo de Transacción y cómo se asientan las entradas.

La sección **Accounting** es donde defines reglas opcionales para las transacciones.

Esto se hace mediante **Rutas Contables**. Una Ruta Contable es una regla reutilizable para un tipo concreto de transacción, como un *Pix transfer*, un *card purchase* o un *fee charge*. Cada route responde a tres preguntas:

* ¿Qué Cuentas pueden actuar en el lado origen?
* ¿Qué Cuentas pueden actuar en el lado destino?
* ¿Qué entradas de débito y crédito registra la route cuando se ejecuta la transacción?

**Ejemplo.** Una route `Pix transfer` puede exigir una Cuenta `customer` en el lado origen y una Cuenta `merchant` en el lado destino. Luego la route define entradas directas de débito y crédito entre ambas. Cuando la validación de rutas está habilitada, una transacción Pix que referencia la route valida las Cuentas y aplica las reglas configuradas.

Las Rutas Contables proporcionan validación opcional de rutas. Midaz solo la aplica cuando la configuración del Ledger `accounting.validateRoutes` está habilitada (valor predeterminado: `false`). Cuando está habilitada, las Transacciones deben referenciar rutas válidas y las Operaciones deben cumplir las reglas configuradas. Las rutas son más fáciles de modelar cuando ya sabes qué Cuentas representan a los clientes, treasury, fees, settlement, revenues y expenses.

## Cómo encajan las piezas

***

<Frame>
  <img src="https://mintcdn.com/lerian-49cb71fc/SEOef3JqTInYAAau/images/es/d2/accounting-route-flow.svg?fit=max&auto=format&n=SEOef3JqTInYAAau&q=85&s=2fdff96d5831ae94d79419fd41b703f6" alt="Cómo encajan las cuentas, los tipos de cuenta y las rutas contables para que una solicitud de transacción se valide y se registre como asientos de débito y crédito" width="1943" height="345" data-path="images/es/d2/accounting-route-flow.svg" />
</Frame>

| Pieza               | Qué controla                                                                              | Ejemplo                                                     |
| ------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| Accounting Route    | La route a nivel de transacción que agrupa las operation rules.                           | `Pix transfer route`                                        |
| Operation Route     | El lado de la Cuenta y la regla de validación.                                            | `Source debe ser customer`, `Destination debe ser merchant` |
| Validation rule     | Cómo Midaz decide si una Cuenta puede usarse.                                             | Tipo de Cuenta `customer` o alias `@treasury_main`          |
| Accounting scenario | Qué entradas de débito y crédito se registran durante el ciclo de vida de la transacción. | Direct, Two-Step, Reversal, Overdraft, Block/Unblock        |

## Elegir el tipo de operación

***

<AccordionGroup>
  <Accordion title="Usa Source cuando la regla aplica solo al lado emisor">
    Usa **Source** para Cuentas donde se origina el valor.

    Ejemplo: una Cuenta de cliente puede enviar fondos en un flujo de pago.
  </Accordion>

  <Accordion title="Usa Destination cuando la regla aplica solo al lado receptor">
    Usa **Destination** para Cuentas donde llega el valor.

    Ejemplo: una Cuenta de merchant puede recibir fondos en un flujo de pago.
  </Accordion>

  <Accordion title="Usa Bidirectional cuando la misma regla aplica a ambos lados">
    Usa **Bidirectional** cuando la misma clase de Cuenta puede enviar y recibir.

    Ejemplo: las Cuentas checking pueden transferir valor a otras Cuentas checking.
  </Accordion>
</AccordionGroup>

<Note>
  Una route debe incluir una operation route Source y una Destination, o al menos una operation route Bidirectional.
</Note>

## Elegir la regla de validación

***

| Tipo de validación | Cuándo usarla                                  | Ejemplo                                   |
| ------------------ | ---------------------------------------------- | ----------------------------------------- |
| Account Type       | Cualquier Cuenta de una clase debe ser válida. | Cualquier Cuenta `customer` puede enviar. |
| Alias              | Solo una Cuenta exacta debe ser válida.        | Solo `@treasury_main` puede enviar.       |

Una operation route puede incluir opcionalmente una regla de cuenta: Tipos de Cuenta registrados o un `@Alias`. Midaz aplica una regla presente cuando la validación de rutas está habilitada. Usa validación por Tipo de Cuenta para flujos escalables. Usa validación por alias para Cuentas operativas fijas, como treasury, fee, settlement o suspense.

## Patrones comunes de route

***

### Customer to merchant

Usa routes Source y Destination separadas cuando cada lado tiene un rol distinto.

| Operation route | Validación                |
| --------------- | ------------------------- |
| Source          | Tipo de Cuenta `customer` |
| Destination     | Tipo de Cuenta `merchant` |

### Peer-to-peer transfer

Usa una route Bidirectional cuando el mismo Tipo de Cuenta puede ser tanto origen como destino.

| Operation route | Validación                |
| --------------- | ------------------------- |
| Bidirectional   | Tipo de Cuenta `customer` |

### Fee collection

Usa una route Destination con validación por alias cuando las fees deban llegar siempre a una misma Cuenta operativa.

| Operation route | Validación                |
| --------------- | ------------------------- |
| Source          | Tipo de Cuenta `customer` |
| Destination     | Alias `@fee_revenue`      |

## Accounting scenarios

***

| Scenario             | Cuándo usarlo                                                                                                                              | Qué configura el usuario                                                         |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| Direct Transaction   | El movimiento se ejecuta en un solo paso.                                                                                                  | Entradas de débito y crédito para asiento inmediato.                             |
| Two-Step Transaction | El movimiento tiene fases de hold, commit y cancel.                                                                                        | Entradas para reserva, confirmación y cancelación.                               |
| Reversal             | Una transacción completada puede necesitar ser revertida.                                                                                  | Entradas de débito y crédito para el evento de reversa.                          |
| Overdraft            | Un débito puede exceder los fondos disponibles de la Cuenta, usando una línea de sobregiro.                                                | Entradas de débito y crédito para el uso del sobregiro y su posterior reembolso. |
| Block/Unblock        | Necesitas retener y luego liberar fondos en el saldo de la Cuenta. Disponible para todos los tipos de route (la pestaña se llama "Block"). | Entradas para los eventos de bloqueo (retención) y desbloqueo (liberación).      |

<Warning>
  No habilites la validación de routes en la configuración del Ledger hasta que existan las routes necesarias. Si la habilitas sin routes coincidentes, las transacciones fallan la validación.
</Warning>

## Páginas disponibles

***

<Card title="Configurar la contabilidad en la Console" icon="list-check" href="/es/midaz/console/accounting-setup-in-console">
  Una guía paso a paso, centrada en la Console, para construir tu modelo contable — desde el plan de cuentas hasta un pago Pix funcionando, sin llamadas a la API.
</Card>

<Card title="Gestionar Accounting Routes" icon="route" href="/es/midaz/console/managing-accounting-routes">
  Configura accounting routes con operation rules y accounting scenarios desde un asistente unificado.
</Card>
