> ## 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 que deciden qué Cuentas pueden participar en cada tipo de transacción y cómo se asientan las entradas.

La sección **Accounting** es donde defines las reglas que toda transacción debe cumplir antes de impactar el ledger.

Esto se hace mediante **Rutas Contables**. Una Ruta Contable es una regla con nombre y reutilizable para un tipo concreto de transacción (por ejemplo, *Pix transfer*, *card purchase* o *fee charge*) que responde a tres preguntas operativas:

* ¿Qué Cuentas están permitidas en el lado origen?
* ¿Qué Cuentas están permitidas en el lado destino?
* ¿Qué entradas de débito y crédito deben asentarse cuando se ejecuta la transacción?

**Ejemplo.** Una route `Pix transfer` puede exigir que la fuente sea una Cuenta de tipo `customer` y el destino una Cuenta de tipo `merchant`, y luego asentar una entrada directa de débito y crédito entre ambas. Cuando alguien crea una transacción Pix en Midaz, es la route la que valida las Cuentas y registra las entradas.

Configura las Rutas Contables después de tener listas las Cuentas principales y los Tipos de Cuenta — 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/IAmgYz7oT9xT0Mun/images/es/console/accounting-route-flow.jpg?fit=max&auto=format&n=IAmgYz7oT9xT0Mun&q=85&s=84a586f970c76408eb064e3c3e391f9c" alt="" width="1536" height="316" data-path="images/es/console/accounting-route-flow.jpg" />
</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                       |

## 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 tener al menos una operation route Source y una Destination, o 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.       |
| Sin validación     | No quieres validación de Cuenta en este nivel de route a propósito. | Poco común; úsalo con cuidado.            |

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

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

## Páginas disponibles

***

<Card title="Configurar la contabilidad en la Console" icon="list-check" href="/es/lerian-console/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/lerian-console/midaz-console/managing-accounting-routes">
  Configura accounting routes con operation rules y accounting scenarios desde un asistente unificado.
</Card>
