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

# Configurar la contabilidad en la Console

> Guía práctica en la Console para construir tu modelo contable en Midaz, del plan de cuentas a un pago Pix funcional sin escribir llamadas a la API.

Esta guía te muestra cómo configurar la contabilidad en el Módulo Midaz de la Lerian Console. Usas solo las pantallas y formularios de la Console — sin código. Es la versión Console del [Recorrido de Contabilidad](/es/midaz/accounting-walkthrough) orientado a desarrolladores. Llegas al mismo resultado, pero a través de **lo que clicas y configuras**, no de lo que envías a una API.

Está dirigida a product managers, equipos de implementación y desarrolladores que prefieren modelar su contabilidad en la UI. Mantenemos los términos técnicos donde importan. Siempre explicamos qué significan cuando los ves en pantalla.

<Note>
  Aquí no verás ningún JSON ni llamadas a la API. Haces todo lo de abajo mediante formularios de la Console. Para automatizar la misma configuración más adelante, sigue la referencia técnica que cada sección enlaza.
</Note>

## Qué estás construyendo

***

La contabilidad en Midaz usa la **partida doble**. No llevas la contabilidad a mano — la Console y el ledger la aplican por ti. Ten en cuenta una sola regla:

> Toda transacción mueve valor **desde** un lugar **hacia** otro. Un lado da (débito), un lado recibe (crédito), y los dos siempre cuadran.

Modelas tus Cuentas y tus routes una vez. A partir de ahí, el ledger balancea cada transacción automáticamente y la mantiene auditable.

La configuración sigue un orden lógico. Cada capa se apoya en la anterior:

<Steps>
  <Step title="Planifica tu plan de cuentas">
    Decide qué balances necesita tu producto (fondos de clientes, fees, settlement, treasury, revenues).
  </Step>

  <Step title="Crea los Tipos de Cuenta">
    Define las categorías que clasifican tus Cuentas.
  </Step>

  <Step title="Crea las Cuentas">
    Abre los contenedores de balance reales, cada uno con un campo **Tipo** obligatorio y un Asset. Cuando **Validate Account Type** está habilitado, el Tipo de cada Cuenta no externa debe coincidir con un Tipo de Cuenta registrado.
  </Step>

  <Step title="Crea las Rutas Contables">
    Define las reglas para qué Cuentas pueden participar en cada transacción y cómo el ledger asienta las entradas.
  </Step>
</Steps>

<Tip>
  Trabaja de arriba abajo. Las rutas son mucho más fáciles de construir una vez que ya sabes qué Cuentas representan a los clientes, treasury, fees y settlement.
</Tip>

## Paso 1 — Planifica tu plan de cuentas

***

En la contabilidad tradicional, un **Chart of Accounts (CoA)** es la lista maestra de cada categoría de cuenta que usa tu negocio: activos, pasivos, ingresos y gastos. También define cómo clasificas cada movimiento contra esas categorías.

En Midaz **no hay una única pantalla de "Plan de Cuentas" para rellenar**. En cambio, tu CoA emerge de los bloques que creas en la Console: Assets, Tipos de Cuenta y Cuentas. Lo planificas de antemano, sobre todo como un ejercicio de papel (o pizarra).

Antes de abrir la Console, lista los balances que necesita tu producto. Para un producto de pagos típico podría ser:

| Balance que necesitas | Qué representa                            |
| --------------------- | ----------------------------------------- |
| Fondos de clientes    | Dinero que mantienen tus usuarios finales |
| Settlement            | Fondos esperando a compensar              |
| Fee revenue           | Fees que cobras                           |
| Fee expense           | Fees que pagas a proveedores              |
| Treasury              | Tus propios fondos operativos internos    |

Esta lista es tu plano. Los siguientes pasos convierten cada línea en algo concreto en la Console.

<Note>
  Antes de que pueda existir cualquier Cuenta, necesita un **Asset** — la unidad de valor que mantiene (por ejemplo `BRL`). Si aún no has creado tus assets, empieza por [Crear un Asset](/es/midaz/console/creating-an-asset).
</Note>

## Paso 2 — Crea tus Tipos de Cuenta

***

Los **Account Types** son las categorías que clasifican tus Cuentas. Piénsalos como etiquetas como `customer`, `treasury` o `fee` que agrupan Cuentas por su rol. Más adelante, las Rutas Contables usan estas etiquetas para decidir qué Cuentas puede usar una transacción.

En la Console creas un Tipo de Cuenta por categoría de tu plano — no uno por cada cliente individual.

<Card title="Crear un Tipo de Cuenta" icon="plus" horizontal href="/es/midaz/console/creating-an-account-type">
  Abre el formulario Nuevo Tipo de Cuenta y define una categoría con un nombre claro y un key value estable.
</Card>

Una configuración de pagos típica usa estos Tipos de Cuenta:

| Tipo de Cuenta | Úsalo para                      |
| -------------- | ------------------------------- |
| `customer`     | Balances líquidos de clientes   |
| `settlement`   | Fondos a la espera de compensar |
| `fee`          | Fees cobradas como revenue      |
| `treasury`     | Operaciones internas            |
| `expense`      | Fees pagadas a proveedores      |

<Warning>
  El **Key Value** de un Tipo de Cuenta (por ejemplo `customer`) es de lo que dependen las routes y las Cuentas. Mantenlo corto, en minúsculas y estable — cambiarlo más tarde implica recrear las Cuentas y routes que dependen de él.
</Warning>

<Note>
  El menú de Tipos de Cuenta aparece solo después de que habilitas **Validate Account Type** en la configuración de tu Ledger. Para activarlo, consulta [Gestionar Ledgers](/es/midaz/console/managing-ledgers-via-console#ledger-settings).
</Note>

## Paso 3 — Crea tus Cuentas

***

Las **Accounts** son los contenedores de balance — las cosas que mantienen valor y entre las que se mueve el dinero. Cada Cuenta tiene un campo **Tipo** obligatorio y un Asset (su moneda). Cuando **Validate Account Type** está habilitado, el Tipo de una Cuenta no externa debe coincidir con un Tipo de Cuenta registrado (las Cuentas externas omiten esta comprobación). Un **alias** legible la identifica (por ejemplo `customer_123_brl`).

Por cada línea de tu plano, crea una Cuenta en la Console.

<Card title="Crear una Cuenta" icon="plus" horizontal href="/es/midaz/console/creating-an-account">
  Abre el formulario Nueva Cuenta, elige su Tipo y Asset, y dale un alias claro.
</Card>

Al rellenar el formulario, algunas decisiones son permanentes y conviene acertarlas a la primera:

| Campo             | Por qué importa                                                                                           |
| ----------------- | --------------------------------------------------------------------------------------------------------- |
| **Account Alias** | El nombre que routes y transacciones usan para encontrar la Cuenta. No se puede cambiar tras la creación. |
| **Type**          | El Tipo de Cuenta que la clasifica. No se puede cambiar tras la creación.                                 |
| **Asset**         | La moneda o unidad que mantiene. No se puede cambiar tras la creación.                                    |

<Warning>
  La Console **bloquea Alias, Tipo y Asset cuando guardas la Cuenta**. Para cambiar alguno, crea una Cuenta nueva. Verifica dos veces antes de guardar.
</Warning>

### Entender qué muestra realmente un balance

Cuando abres una Cuenta en la Console, su balance no es un único número. Midaz divide cada balance en dos **buckets**. Siempre sabes qué puedes gastar y qué retiene el ledger. En lenguaje sencillo:

| Bucket        | Qué significa cuando miras una Cuenta                                                                                                                                                           |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Available** | Dinero libre para gastar o enviar **ahora mismo**. Es el número que sube y baja con los pagos normales.                                                                                         |
| **On hold**   | Dinero que una operación pendiente ha **reservado** pero aún no finalizado. Sigue perteneciendo a la Cuenta. El ledger lo aparta, y no puedes gastarlo hasta que el hold se confirme o cancele. |

Ambos montos aparecen como valores decimales exactos (por ejemplo, `12.50`). No hay ningún factor de escala que aplicar al leerlos.

<Note>
  **On hold** viabiliza los pagos en dos pasos. Cuando autorizas un pago pero aún no lo capturas, el monto pasa de **Available** a **On hold**. Confirmar el pago lo libera al destino. Cancelarlo lo devuelve a Available. Ves cada uno de estos movimientos en la Cuenta en cada etapa.
</Note>

## Paso 4 — Crea tus Rutas Contables

***

Con **Validate Routes** habilitado, cada transacción debe especificar una Ruta Contable válida en el ledger. Una route es una regla reutilizable para un tipo de transacción, como un *Pix transfer* o un *fee charge*. Responde a tres preguntas:

* ¿Qué Cuentas pueden enviar en el lado **source**?
* ¿Qué Cuentas pueden recibir en el lado **destination**?
* ¿Qué **entradas** de débito y crédito debe asentar el ledger cuando se ejecuta?

La Console las construye mediante un asistente guiado de 3 pasos, así que no tienes que armar nada a mano.

<Card title="Gestionar Rutas Contables" icon="route" horizontal href="/es/midaz/console/managing-accounting-routes">
  Mira cómo funciona la página de Rutas Contables y qué hace cada parte del asistente.
</Card>

<Card title="Crear una Ruta Contable" icon="plus" horizontal href="/es/midaz/console/creating-an-accounting-route">
  Recorre el asistente de 3 pasos para definir una route, sus operation rules y sus entradas.
</Card>

Para decidir cómo dar forma a una route, consulta [Reglas contables](/es/midaz/console/mc-accounting) — explica las opciones en términos sencillos. Lo esencial:

<AccordionGroup>
  <Accordion title="¿Source, Destination o Bidirectional?">
    Cada regla dentro de una route aplica a un lado de la transacción:

    * **Source** — el lado emisor (de donde viene el valor).
    * **Destination** — el lado receptor (donde llega el valor).
    * **Bidirectional** — la misma regla aplica a ambos lados, para casos donde un tipo de Cuenta puede tanto enviar como recibir.

    Una route válida necesita al menos un Source **y** un Destination, o una única regla Bidirectional.
  </Accordion>

  <Accordion title="¿Cómo se debe validar una Cuenta?">
    Cada regla revisa las Cuentas de una de dos formas:

    * **Account Type** — la regla acepta cualquier Cuenta de una categoría dada (por ejemplo, cualquier Cuenta `customer` puede enviar). Úsalo para flujos flexibles y escalables.
    * **@Alias** — la regla acepta solo una Cuenta exacta (por ejemplo, solo `@fee_revenue` puede recibir). Úsalo para Cuentas operativas fijas como treasury, fees o settlement.
  </Accordion>

  <Accordion title="¿Qué accounting scenario?">
    Los scenarios deciden cómo se registran las entradas de débito y crédito:

    * **Direct** — un movimiento en un paso, asentado de inmediato.
    * **Two-Step** — un flujo de hold y luego commit. Usa entradas separadas para reservar, confirmar y cancelar fondos, e impulsa el bucket **On hold**.
    * **Reversal** — entradas que el ledger registra para deshacer una transacción completada.
    * **Overdraft** — entradas que el ledger registra cuando un débito excede los fondos disponibles de la cuenta y recurre a una línea de sobregiro.
    * **Block** — entradas que el ledger registra cuando se bloquean o desbloquean fondos en una cuenta.
  </Accordion>
</AccordionGroup>

<Warning>
  Activa **Validate Routes** en la configuración del Ledger **solo después** de que las routes que necesitas ya existan. Si la validación está activa pero falta una route coincidente, esas transacciones fallarán.
</Warning>

## Poniéndolo todo junto — un pago Pix simple

***

Ejecutemos el flujo completo en la Console para un **Pix cash-out** básico: un cliente envía BRL desde su wallet a una cuenta de liquidación. Asume que tu asset `BRL` ya existe.

<Steps>
  <Step title="Crea los Tipos de Cuenta">
    Desde la página **Account Types**, crea:

    * `customer` — para balances de usuarios finales.
    * `settlement` — para fondos que salen hacia el mundo exterior.

    Consulta [Crear un Tipo de Cuenta](/es/midaz/console/creating-an-account-type).
  </Step>

  <Step title="Crea las Cuentas">
    Desde la página **Accounts**, crea:

    * `@customer_123_brl` — Tipo `customer`, Asset `BRL`. La wallet del cliente.
    * `@external_brl` — Tipo `settlement`, Asset `BRL`. Donde se asientan los fondos al salir del ledger.

    Consulta [Crear una Cuenta](/es/midaz/console/creating-an-account).

    <Note>
      `@external_brl` es una Cuenta de liquidación normal, propiedad del ledger. Este ejemplo la usa para que la route pueda validar el Tipo de Cuenta `settlement`. No es la Cuenta externa canónica `@external/BRL`, que Midaz crea automáticamente junto con el Asset `BRL`; el prefijo de alias `@external/` está reservado, así que no puedes crear esa Cuenta tú mismo. Para el dinero que realmente entra o sale de Midaz, usa `@external/BRL`. Consulta [Errores comunes que debes evitar](/es/midaz/common-mistakes-to-avoid).
    </Note>
  </Step>

  <Step title="Crea la Ruta Contable">
    Desde la página **Rutas Contables**, inicia el asistente y construye una route `Pix cash-out`:

    * Una operation rule **Source** validando el Tipo de Cuenta `customer` (la wallet envía).
    * Una operation rule **Destination** validando el Tipo de Cuenta `settlement` (la cuenta de liquidación recibe).
    * Un accounting scenario **Direct**, con una entrada de débito en el source y una de crédito en el destination.

    Consulta [Crear una Ruta Contable](/es/midaz/console/creating-an-accounting-route).
  </Step>

  <Step title="Ejecuta una transacción">
    Crea una transacción que mueva, por ejemplo, `100.00 BRL` de `@customer_123_brl` a `@external_brl` usando tu route `Pix cash-out`. Consulta [Crear una Transacción](/es/midaz/console/creating-a-transaction).
  </Step>

  <Step title="Revisa el resultado">
    Abre cada Cuenta y mira el balance:

    * `@customer_123_brl` — **Available** baja `100.00`.
    * `@external_brl` — **Available** sube `100.00`.

    Ambos movimientos comparten la misma transacción, dándote un rastro de auditoría limpio y balanceado.
  </Step>
</Steps>

<Tip>
  ¿Necesitas un flujo de autorizar y luego capturar en lugar de uno instantáneo? Usa un scenario **Two-Step** en la route. Verás el monto moverse a **On hold** al reservarlo, y salir de ahí cuando confirmes o canceles.
</Tip>

## Qué hacer después

***

Ahora tienes un modelo contable funcionando, construido enteramente en la Console. Para ir más profundo, usa estas referencias técnicas. Cubren cómo automatizar la configuración, entender las entidades y convertir la actividad del ledger en reportes:

<Card title="Recorrido de Contabilidad (desarrollador)" icon="code" href="/es/midaz/accounting-walkthrough">
  La versión de desarrollador de extremo a extremo de esta guía, incluyendo el modelo de datos y el detalle de partida doble.
</Card>

<Card title="Visión general de Contabilidad" icon="book" href="/es/midaz/accounting-in-midaz">
  Cómo se relacionan entre sí los primitivos contables centrales.
</Card>

<Card title="Entidades de Transaction Routing" icon="route" href="/es/midaz/transaction-routing-entities">
  El modelo técnico detrás de las Rutas Contables, operation routes y entradas.
</Card>

<Card title="Balances" icon="scale-balanced" href="/es/midaz/balances">
  El modelo de balance completo detrás de available y on-hold.
</Card>
