Skip to main content
CashSettlement registra a prestação de contas de dinheiro recebido em vendas que confirmam pagamento em espécie. Ele agrupa pagamentos CASH por cooperativa, período e recorte operacional opcional, sem persistir valores calculáveis como valor esperado ou diferença.

Campos

CampoTipoDescrição
cashSettlementIdUUIDIdentificador único
cooperativeIdUUIDCooperativa beneficiária dos pagamentos conciliados
transportOperatorIdUUID?Permissionário usado como recorte do fechamento, quando aplicável
periodStartDateTimeInício do período conciliado
periodEndDateTimeFim do período conciliado
declaredAmountIntValor em centavos declarado
receivedAmountInt?Valor em centavos recebido ou conferido pela operação
statusCashSettlementStatusStatus da prestação de contas
submittedByUUID?Usuário que enviou a prestação de contas
submittedAtDateTime?Data de envio
reviewedByUUID?Usuário que aprovou ou rejeitou a prestação de contas
reviewedAtDateTime?Data da revisão
createdByUUID?Usuário que criou o registro, quando aplicável
createdAtDateTimeData de criação
updatedByUUID?Usuário que fez a última atualização, quando aplicável
updatedAtDateTimeData da última atualização

Relacionamentos

  • Relaciona-se com Cooperative por cooperativeId.
  • Relaciona-se com TransportOperator por transportOperatorId, quando o fechamento é recortado por permissionário.
  • Relaciona-se com múltiplos Payment por Payment.cashSettlementId.
  • A prestação de contas não persiste driverId; o usuário responsável entra por auditoria (submittedBy, createdBy, reviewedBy).

Regras de Negócio

  • A prestação de contas agrupa pagamentos com method = CASH e status = PAID.
  • O pagamento em dinheiro fica confirmado para o Customer no momento em que o dinheiro é aceito; a prestação de contas é um processo financeiro posterior.
  • declaredAmount é informado pelo responsável pelo fechamento ou pela operação.
  • receivedAmount é preenchido quando a operação confere ou recebe o dinheiro.
  • O valor esperado é derivado dos Payments vinculados ao fechamento e não deve ser persistido.
  • A diferença entre valor esperado, declarado e recebido é derivada em consulta e não deve ser persistida.
  • Payments vinculados ao fechamento devem pertencer à mesma cooperativa e janela operacional do settlement.
  • Quando transportOperatorId for preenchido, todos os pagamentos vinculados devem pertencer ao mesmo permissionário no contexto do Ticket/Trip.
  • Aprovar ou rejeitar a prestação de contas não altera silenciosamente o status dos Payments nem dos Tickets já emitidos.
  • Uma prestação rejeitada exige correção, novo fechamento ou tratativa operacional auditável.

Enums

CashSettlementStatus

ValorDescrição
OPENFechamento em preparação
SUBMITTEDPrestação enviada para conferência
APPROVEDPrestação aprovada pela operação
REJECTEDPrestação rejeitada por divergência ou inconsistência
CANCELEDFechamento cancelado antes da aprovação

Example

{
  "cashSettlementId": "01981264-9aa0-7d18-a4a4-3b9a9a3a1c13",
  "cooperativeId": "0197a800-24e6-76a2-90ed-ff0f6fba7b0c",
  "transportOperatorId": "01980d30-6a3c-7a42-9182-17ad6324d3aa",
  "periodStart": "2026-07-08T08:00:00.000Z",
  "periodEnd": "2026-07-08T18:00:00.000Z",
  "declaredAmount": 18600,
  "receivedAmount": 18600,
  "status": "APPROVED",
  "submittedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "submittedAt": "2026-07-08T18:20:00.000Z",
  "reviewedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "reviewedAt": "2026-07-08T18:45:00.000Z",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-08T18:20:00.000Z",
  "updatedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "updatedAt": "2026-07-08T18:45:00.000Z"
}