Skip to main content
Cash Settlement é a prestação de contas individual de uma venda em dinheiro feita pelo app do motorista. O sistema declara e envia a prestação automaticamente quando confirma a CheckoutSession; a cooperativa apenas confirma ou rejeita o registro pendente.

Fluxo

Status

Regras

  • Cada CheckoutSession confirmada com paymentMethod = CASH gera exatamente um CashSettlement.
  • Não existem ações manuais para criar, declarar ou enviar a prestação.
  • O CashSettlement nasce PENDING, com declaredAmount, submittedBy e submittedAt preenchidos automaticamente.
  • O Payment nasce PAID para permitir a emissão imediata do Ticket, mas permanece com cashSettlementId = null enquanto a prestação não for confirmada.
  • A confirmação pela OPS altera o CashSettlement para CONFIRMED e vincula o Payment na mesma transação.
  • O vínculo entre CashSettlement e Payment é 1:1. Payment.cashSettlementId deve ser único.
  • A rejeição mantém o Payment sem vínculo e não recalcula Payment, Order, Ticket ou crédito.
  • OPS enxerga apenas registros da própria cooperativa. Driver enxerga apenas registros associados ao seu driverId.

Registros pendentes

Uma prestação pendente já existe e já foi enviada. Ela ainda não foi confirmada pela cooperativa e, por isso, não possui Payment vinculado. O endpoint de listagem aceita status = PENDING para retornar o que ainda falta ser confirmado entre a cooperativa e o motorista. Veja a modelagem em CashSettlement.