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

# Operations

> Entenda Operations como as menores unidades de atividade do ledger no Midaz: lançamentos únicos de débito ou crédito em uma Account, agrupados em Transactions balanceadas.

Uma operação é a menor unidade de uma transação. Toda transação contém duas ou mais operações (*Figura 1*). Cada operação registra uma mudança no saldo de uma conta:

* Uma **operação de débito** registra o valor que sai de uma conta (a origem).
* Uma **operação de crédito** registra o valor que entra em uma conta (o destino).

O efeito no saldo armazenado depende do `direction` do saldo. Uma conta normal (o caso comum) diminui em um débito e aumenta em um crédito.

Uma transação contém operações que devem somar zero do ponto de vista do ledger. Por exemplo, um pagamento P2P com tarifa inclui:

* um **débito de \$100** da conta do remetente.
* um **crédito de \$98** para a conta do destinatário.
* um **crédito de \$2** para a conta de tarifas da plataforma.

O Midaz garante que uma transação esteja balanceada antes de fazer o commit.

As operações também carregam metadados como carimbos de data/hora e referências à transação a que pertencem. Você cria uma transação pela API JSON do Midaz. Para cada transação, você especifica um conjunto de operações. Cada operação tem um valor, um ativo e uma conta de origem ou destino.

## Principais características

***

* Cada operação pertence a uma transação e faz referência a uma conta e um ativo específicos.
* As operações incluem metadados como valor, direção (débito/crédito), tipo, carimbos de data/hora, referências e mais.
* O Midaz cria as operações quando você inicia uma transação e as preenche com os dados que você fornece.
* O Midaz valida todas as operações em relação às regras configuradas antes de fazer o commit no ledger.

<Note>
  Toda operação tem um **`direction`** (`debit` ou `credit`) e um **`type`**. O `direction` é a espinha dorsal de partidas dobradas descrita acima. O `type` classifica o movimento. Além dos padrões `CREDIT` e `DEBIT`, o `type` marca movimentos especiais:

  * `ON_HOLD` e `RELEASE`: reservas de fundos em duas fases.
  * `OVERDRAFT`: operações complementares geradas pelo sistema no saldo interno de overdraft.
  * `BLOCK` e `UNBLOCK`: o rótulo aplicado a toda operação de uma transação criada pelos [endpoints dedicados de bloqueio e desbloqueio](/pt/products/midaz/transactions#blocking-and-unblocking-funds). O rótulo altera apenas o `type` da operação, nunca sua direção ou valor.

  O `direction` sempre mantém seu significado de débito ou crédito, independentemente do `type`.
</Note>

## Operation Routes

***

Com as Accounting Routes, cada operação se conecta a uma lógica de validação estruturada. Essa lógica está em [Operation Routes](/pt/products/midaz/transaction-routing-entities).

### O que é uma Operation Route?

Uma **Operation Route** é uma regra de validação. Ela define quais tipos de conta ou contas específicas um componente de transação pode usar. Ela também define a direção contábil (origem ou destino) e uma anotação descritiva.

É uma camada de validação entre a entrada da transação e a estrutura do ledger. Cada operação que você envia deve atender aos requisitos de conta e às regras de negócio.

<Note>
  Transações contêm várias operações. As Operation Routes validam cada operação em relação às regras de validação configuradas.
</Note>

### Relação entre Operation e Operation Route

Quando você envia uma transação ao Midaz, ela contém várias **Operations**. Com **Account Types e Accounting Routes habilitados**, o Midaz valida cada operação em relação às regras nas Operation Routes. Isso garante que:

* A conta especificada corresponda ao tipo de conta esperado ou ao requisito de conta específica.
* A direção da operação (débito/crédito) esteja alinhada com a definição da rota.

<Danger>
  Se as operações que você envia não corresponderem aos requisitos configurados na Operation Route, o Midaz falha na validação e rejeita a transação.
</Danger>

## Gerenciando Operations

***

O Midaz gera operações automaticamente como parte do fluxo de uma transação. Você não pode criar uma operação diretamente. Você pode consultar uma operação quando precisar.

* [Listar Operations por Account](/pt/reference/products/midaz/v2/get-all-operations-by-account): veja todas as Operations vinculadas a uma Account específica.
* [Recuperar uma Operation por Account](/pt/reference/products/midaz/v2/get-operation-by-account): obtenha detalhes de uma Operation específica para essa Account.
