> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devmob.app.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Cash Settlements

> Prestação de contas de dinheiro recebido em vendas

Cash Settlement é o processo financeiro posterior às vendas em dinheiro. O cliente recebe o Ticket quando o dinheiro é confirmado, enquanto a operação confere depois quanto foi declarado e recebido.

## Fluxo

```mermaid theme={null}
sequenceDiagram
    actor S as Canal de venda
    participant Sales
    participant P as Payment
    participant C as CashSettlement
    actor OPS as Operação

    S->>Sales: Confirma dinheiro no Checkout QR
    Sales->>P: Cria Payment CASH PAID
    P-->>S: Ticket emitido

    S->>C: Declara valor do período
    C->>P: Vincula pagamentos elegíveis
    OPS->>C: Confere valor recebido

    alt Sem divergência
        OPS->>C: APPROVED
    else Com divergência
        OPS->>C: REJECTED
    end
```

## Status

```mermaid theme={null}
stateDiagram-v2
    [*] --> OPEN
    OPEN --> SUBMITTED : responsável envia
    OPEN --> CANCELED : cancelamento
    SUBMITTED --> APPROVED : operação aprova
    SUBMITTED --> REJECTED : operação rejeita
    REJECTED --> CANCELED : encerramento administrativo
    APPROVED --> [*]
    CANCELED --> [*]
```

## Regras

* Somente Payments com `method = CASH` e `status = PAID` entram no fechamento.
* O fechamento deve respeitar cooperativa e período.
* Quando houver recorte por permissionário, `transportOperatorId` deve bater com o contexto operacional do Ticket.
* O Payment do cliente continua `PAID` mesmo se a prestação de contas for rejeitada.
* Aprovação ou rejeição da prestação de contas não recalcula tickets, orders ou crédito.
* Correções exigem novo fechamento, ajuste operacional auditável ou tratativa externa.
* O valor esperado e a diferença de caixa são derivados dos Payments vinculados, `declaredAmount` e `receivedAmount`.

## Consultas derivadas

| Consulta            | Fonte                                                            |
| ------------------- | ---------------------------------------------------------------- |
| Valor esperado      | Soma de `Payment.amount` dos pagamentos vinculados ao settlement |
| Valor declarado     | `CashSettlement.declaredAmount`                                  |
| Valor recebido      | `CashSettlement.receivedAmount`                                  |
| Diferença declarada | Valor declarado menos valor esperado                             |
| Diferença recebida  | Valor recebido menos valor esperado                              |

Veja a modelagem em [CashSettlement](/data-modelling/billing/cash-settlement).
