Skip to main content

Campos

Relacionamentos

Regras de Negócio

  • Payment representa uma cobrança de Order ou de CompanyCreditPurchase.
  • Relação 1:1 opcional com Order — cada pedido possui no máximo um pagamento.
  • Relação 1:1 com CompanyCreditPurchase — cada compra corporativa possui exatamente um Payment no fluxo novo.
  • Orders com paidAmount = 0, quitados integralmente por crédito corporativo, podem não gerar Payment.
  • organizationId e cooperativeId identificam a cooperativa beneficiária do pagamento.
  • Para CompanyCreditPurchase, a Company pagadora permanece na compra e a Cooperative beneficiária permanece no Payment.
  • O par externalProvider + externalProviderId evita duplicidade de transações externas.
  • Os campos card e pix armazenam metadados específicos do método de pagamento em formato JSON.
  • channel diferencia pagamentos criados no canal digital (ONLINE), presenciais (POS) ou pelo app do motorista (DRIVER_APP).
  • Quando channel = POS e method = CASH, o pagamento pode nascer já confirmado.
  • Quando channel = POS e method usa gateway (PIX, CREDIT_CARD, DEBIT_CARD), a confirmação continua seguindo o ciclo do provedor.
  • Quando channel = DRIVER_APP e method = CASH, o pagamento nasce PAID quando o recebimento do dinheiro é confirmado.
  • O CashSettlement é criado e enviado automaticamente quando uma CheckoutSession CASH é confirmada.
  • cashSettlementId fica null enquanto o CashSettlement está PENDING ou REJECTED.
  • A confirmação pela OPS preenche cashSettlementId e altera o CashSettlement para CONFIRMED na mesma transação.
  • Cada Payment pode reconciliar no máximo um CashSettlement, e cada CashSettlement confirmado referencia exatamente um Payment.
  • Crédito corporativo não é PaymentMethod; o uso é capturado em CreditLedgerEntry. O Payment só representa a parcela externa ou em dinheiro do Order.
  • O valor (amount) é armazenado em centavos.
  • status tem default PENDING.

Enums

PaymentMethod

PaymentChannel

PaymentStatus

O status reflete o ciclo de vida da cobrança no provedor de pagamento. Default PENDING.

Example