Campos
Relacionamentos
- Relaciona-se com Order (1:1 via
orderIdúnico). - Pode ser referenciado 1:1 por CompanyCreditPurchase.
- Relaciona-se com Organization.
- Relaciona-se com Cooperative.
- Relaciona-se opcionalmente 1:1 com CashSettlement por
cashSettlementIdúnico. - Relaciona-se com múltiplos Receivable.
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. organizationIdecooperativeIdidentificam 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+externalProviderIdevita duplicidade de transações externas. - Os campos
cardepixarmazenam metadados específicos do método de pagamento em formato JSON. channeldiferencia pagamentos criados no canal digital (ONLINE), presenciais (POS) ou pelo app do motorista (DRIVER_APP).- Quando
channel = POSemethod = CASH, o pagamento pode nascer já confirmado. - Quando
channel = POSemethodusa gateway (PIX,CREDIT_CARD,DEBIT_CARD), a confirmação continua seguindo o ciclo do provedor. - Quando
channel = DRIVER_APPemethod = CASH, o pagamento nascePAIDquando o recebimento do dinheiro é confirmado. - O CashSettlement é criado e enviado automaticamente quando uma CheckoutSession
CASHé confirmada. cashSettlementIdficanullenquanto o CashSettlement estáPENDINGouREJECTED.- A confirmação pela OPS preenche
cashSettlementIde altera o CashSettlement paraCONFIRMEDna 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. statustem defaultPENDING.
Enums
PaymentMethod
PaymentChannel
PaymentStatus
O status reflete o ciclo de vida da cobrança no provedor de pagamento. DefaultPENDING.