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

# Regras contábeis

> Saiba como as Rotas Contábeis decidem quais Contas participam de uma transação e como os lançamentos de débito e crédito são registrados para cada tipo de transação no Midaz.

A seção **Contábil** é onde você define regras opcionais para transações. A barra lateral mostra a seção **Contábil** apenas quando o Ledger atual tem **Validar Rotas** ativado.

Você faz isso por meio de **Rotas Contábeis**. Uma Rota Contábil é uma regra reutilizável para um tipo de transação, como uma *transferência via Pix*, uma *compra no cartão* ou uma *cobrança de tarifa*. Cada rota responde a três perguntas:

* Quais contas podem atuar no lado de origem?
* Quais contas podem atuar no lado de destino?
* Quais lançamentos de débito e crédito a rota registra quando a transação é executada?

**Exemplo.** Uma rota `Pix transfer` pode exigir uma conta `customer` no lado de origem e uma conta `merchant` no lado de destino. A rota então define lançamentos diretos de débito e crédito entre elas. Quando você habilita a validação de rota, uma transação Pix que referencia a rota valida as contas e aplica as regras configuradas.

As Rotas Contábeis oferecem validação de rota opcional. O Midaz as impõe apenas quando você habilita a configuração de Ledger `accounting.validateRoutes` (padrão `false`). Quando habilitada, as transações devem referenciar rotas válidas e as operações devem corresponder às regras configuradas. As rotas ficam mais fáceis de modelar quando você já sabe quais contas representam clientes, tesouraria, tarifas, liquidação, receita e despesas.

## Como as peças se encaixam

***

![Como contas, tipos de conta e rotas contábeis se encaixam para que uma solicitação de transação seja validada e registrada como lançamentos de débito e crédito](https://mintcdn.com/lerian-49cb71fc/vdBt8wfgjsNRO1rf/images/pt/d2/accounting-route-flow.svg?fit=max\&auto=format\&n=vdBt8wfgjsNRO1rf\&q=85\&s=2ab73668d59382938bda1ac74b22b3fc)

| Peça | O que ela controla | Exemplo |
| - | - | - |
| Rota Contábil | A rota no nível da transação que agrupa as regras de operação. | `Pix transfer route` |
| Rota de Operação | O lado da conta e a regra de validação. | `Source must be customer`, `Destination must be merchant` |
| Regra de validação | Como o Midaz decide se uma conta pode ser usada. | Tipo de Conta `customer` ou alias `@treasury_main` |
| Cenário contábil | Quais lançamentos de débito e crédito são registrados ao longo do ciclo de vida da transação. | Direct, Duas Etapas, Estorno, Overdraft, Block/Unblock |

## Escolhendo o tipo de operação

***

> [accordion] Use Origem quando a regra se aplica apenas ao lado de envio
>
> Use **Origem** para contas onde o valor se origina.
>
> Exemplo: uma conta de cliente pode enviar fundos em um fluxo de pagamento.

> [accordion] Use Destino quando a regra se aplica apenas ao lado de recebimento
>
> Use **Destino** para contas onde o valor chega.
>
> Exemplo: uma conta de estabelecimento pode receber fundos em um fluxo de pagamento.

> [accordion] Use Bidirecional quando a mesma regra se aplica aos dois lados
>
> Use **Bidirecional** quando a mesma classe de conta pode enviar e receber.
>
> Exemplo: contas correntes podem transferir valor para outras contas correntes.

> [!NOTE]
>
> Uma rota deve incluir uma rota de operação de Origem obrigatória e uma de Destino obrigatória, ou pelo menos uma rota de operação Bidirecional obrigatória. As demais rotas de operação podem ser opcionais: uma transação pode deixá-las sem uso.

## Escolhendo a regra de validação

***

| Tipo de validação | Use quando | Exemplo |
| - | - | - |
| Tipo de Conta | Qualquer conta de uma classe deve ser válida. | Qualquer conta `customer` pode enviar. |
| Alias | Apenas uma conta exata deve ser válida. | Apenas `@treasury_main` pode enviar. |

Cada Rota de Operação no Console precisa de uma regra de conta: Tipos de Conta registrados ou um `@Alias`. O Midaz impõe a regra quando você habilita a validação de rota. Use a validação por Tipo de Conta para fluxos escaláveis. Use a validação por alias para contas operacionais fixas, como contas de tesouraria, tarifa, liquidação ou suspense.

## Padrões comuns de rota

***

### Cliente para estabelecimento

Use rotas de Origem e Destino separadas quando cada lado tiver um papel diferente.

| Rota de operação | Validação |
| - | - |
| Origem | Tipo de Conta `customer` |
| Destino | Tipo de Conta `merchant` |

### Transferência ponto a ponto

Use uma rota Bidirecional quando o mesmo tipo de conta puder ser origem e destino.

| Rota de operação | Validação |
| - | - |
| Bidirecional | Tipo de Conta `customer` |

### Coleta de tarifas

Use uma rota de Destino com validação por alias quando as tarifas deverem sempre chegar a uma única conta operacional.

| Rota de operação | Validação |
| - | - |
| Origem | Tipo de Conta `customer` |
| Destino | Alias `@fee_revenue` |

## Cenários contábeis

***

| Cenário | Use quando | O que o usuário configura |
| - | - | - |
| Transação Direta | A movimentação é executada em uma única etapa. | Lançamentos de débito e crédito para registro imediato. |
| Transação em Duas Etapas | A movimentação tem fases de hold, commit e cancel. | Lançamentos para reserva, confirmação e cancelamento. |
| Estorno | Uma transação concluída pode precisar ser estornada. | Lançamentos de débito e crédito para o evento de estorno. |
| Overdraft | Um débito pode exceder os fundos disponíveis da conta, recorrendo a uma linha de overdraft. | Lançamentos de débito e crédito para o uso do overdraft e a quitação posterior. |
| Block/Unblock | Fundos precisam ser retidos e depois liberados no saldo da conta. Disponível para todos os tipos de rota (o rótulo da aba é "Block"). | Lançamentos para os eventos de bloqueio (hold) e desbloqueio (release). |

> [!WARNING]
>
> Não habilite a validação de rota nas configurações do Ledger antes que as rotas necessárias existam. Se você a habilitar sem rotas correspondentes, as transações falham na validação.

## Páginas disponíveis

***

> [card] [Configurando a contabilidade no Console](https://docs.lerian.studio/pt/products/midaz/console/accounting-setup-in-console.md)
>
> Um guia passo a passo, focado no Console, para construir o seu modelo contábil, do plano de contas a um pagamento Pix funcional. Nenhuma chamada de API é necessária.

> [card] [Gerenciar Rotas Contábeis](https://docs.lerian.studio/pt/products/midaz/console/managing-accounting-routes)
>
> Configure rotas contábeis com regras de operação e cenários contábeis em um único assistente.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.