new settlement flow

This commit is contained in:
Stephan D
2026-01-20 22:29:30 +01:00
parent ae6c617136
commit e0d7320fad
42 changed files with 428 additions and 73 deletions

View File

@@ -15,6 +15,8 @@ const (
providerSettlementMetaQuoteRef = "quote_ref"
providerSettlementMetaTargetChatID = "target_chat_id"
providerSettlementMetaOutgoingLeg = "outgoing_leg"
providerSettlementMetaSourceAmount = "source_amount"
providerSettlementMetaSourceCurrency = "source_currency"
)
func (p *paymentExecutor) buildProviderSettlementTransferRequest(payment *model.Payment, step *model.PaymentStep, amount *paymenttypes.Money, quote *orchestratorv1.PaymentQuote, idx int) (rail.TransferRequest, error) {
@@ -46,6 +48,15 @@ func (p *paymentExecutor) buildProviderSettlementTransferRequest(payment *model.
if strings.TrimSpace(metadata[providerSettlementMetaOutgoingLeg]) == "" {
metadata[providerSettlementMetaOutgoingLeg] = strings.ToLower(strings.TrimSpace(string(step.Rail)))
}
sourceAmount := resolveDebitAmount(payment, quote, payment.Intent.Amount)
if sourceAmount != nil {
if strings.TrimSpace(metadata[providerSettlementMetaSourceAmount]) == "" {
metadata[providerSettlementMetaSourceAmount] = strings.TrimSpace(sourceAmount.Amount)
}
if strings.TrimSpace(metadata[providerSettlementMetaSourceCurrency]) == "" {
metadata[providerSettlementMetaSourceCurrency] = strings.TrimSpace(sourceAmount.Currency)
}
}
sourceWalletRef := ""
if payment.Intent.Source.ManagedWallet != nil {