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

# As regras que governam a movimentação

> As rotas de transação reutilizáveis que mantêm cada tipo de movimentação de dinheiro registrado corretamente, e por que uma tarifa é apenas mais algumas operações na mesma jornada.

Você já sabe como o dinheiro se movimenta e como isso é registrado. Mas quem decide as *regras*? Quando um pagamento acontece, algo deve verificar que os tipos certos de conta participam. Também deve registrar as partes certas da mesma forma todas as vezes. E quando aparece uma tarifa, de onde ela vem?

Pense em um formulário de papel criado para um tipo de solicitação. Alguém o projetou uma vez: as caixas que ele tem, a linha para quem pode assinar, a regra de como é arquivado. Depois disso, qualquer funcionário apenas preenche os detalhes, e cada solicitação desse tipo sai idêntica, sem necessidade de adivinhar. Essa é a ideia por trás de uma rota: definir a regra uma vez, e ela é aplicada da mesma forma todas as vezes.

## Uma rota é uma regra reutilizável para um tipo de movimentação

***

Uma **rota** é uma regra reutilizável para um *tipo* de movimentação. Ela responde três perguntas, uma vez, para que você não precise responder de novo a cada transação:

* **Quem pode ser a origem?** Quais contas podem enviar.
* **Quem pode ser o destino?** Quais contas podem receber.
* **Quais partes pertencem ao registro?** Quais débitos e créditos a movimentação deve gerar.

Defina a regra uma vez. Quando um Ledger tem a validação de rota habilitada, ele verifica as transações desse tipo em relação à rota. Uma rota de "pagamento de cliente" especifica que uma conta de cliente envia, uma conta de comerciante recebe, e exatamente quais operações escrever.

Quando um Ledger tem a validação de rota habilitada, ele verifica o registro de cada movimentação desse tipo em relação à regra. Também verifica se as contas participantes são válidas para ela. Sem essa configuração, uma rota continua sendo uma definição reutilizável, mas não aplica essas verificações.

<Note>
  Uma rota é como um **template de formulário** para um tipo de transação. Ela define os participantes e o lançamento pretendidos. Quando um Ledger tem a validação de rota habilitada, ele verifica as movimentações em relação à rota. Uma tarifa é apenas mais uma linha nesse formulário.
</Note>

## Tarifas são apenas mais operações

***

Tarifas parecem misteriosas, mas não são mágica. Uma transação é composta por **operações**, cada uma um único débito ou crédito. Uma tarifa é *mais operações* na mesma transação, enviando valor para uma conta de tarifa ou de receita.

Veja o exemplo um-para-muitos de antes. Um cliente paga **R\$103**:

* **R\$100** chega ao **comerciante**.
* **R\$3** chega a uma **conta de tarifa**.

Essa é uma transação com três operações. A saída de R\$103 do cliente equilibra exatamente com a chegada de R\$100 + R\$3. Nenhum valor aparece e nenhum valor desaparece. A tarifa é dinheiro real que se move para uma conta real, registrado como qualquer outra parte.

```mermaid mermaid theme={null}
flowchart LR
  C["Cliente<br/>– R$103"] --> R{{"Rota<br/>(regra + partes)"}}
  R -->|"+ R$100"| M["Comerciante"]
  R -->|"+ R$3"| F["Conta de tarifa"]
  classDef bal fill:#fff8e1,stroke:#f4b400,color:#333;
  class M,F bal;
```

Como a tarifa faz parte da mesma transação, ela também é tudo ou nada. Ou o pagamento e a tarifa acontecem os dois, ou nenhum acontece.

## Quando recorrer a rotas e tarifas

***

Você não precisa de uma rota para uma movimentação isolada. Você recorre a uma quando um *tipo* de movimentação se repete e deve ser registrado da mesma forma todas as vezes: pagamentos, transferências, liquidações. E você adiciona uma **tarifa** sempre que uma movimentação também deve enviar uma parte do valor para uma conta de receita ou de custo. Você define isso deliberadamente com antecedência, como parte do plano de ledger que vem a seguir.

## Próximos passos

***

<Note>
  **Veja isso no Lerian**

  Veja essas ideias na prática: [entidades de rotas contábeis](/pt/products/midaz/transaction-routing-entities) e o [Fees Engine](/pt/products/midaz/fees/fees-engine-overview).
</Note>
