How do closed-loop payments work?
The merchant records which methods and accounts each customer paid from and sends refunds and payouts back to them. For refunds, the rails mostly enforce it: Stripe’s documentation says refunds can only be sent back to the original payment method used in a charge, not to another card or bank account. For payouts and stored balances it is a design choice backed by anti-money laundering guidance. The European Banking Authority’s guidelines treat e-money funded from an account in the customer’s own name as lower risk and funding from unidentified third parties as higher risk, and for investment funds they list, as an enhanced measure, requiring redemption payments to go through the initial account or an account in the customer’s own name.
Why do closed-loop payments matter?
They stop the checkout from becoming a fraud or laundering tool and make payouts provably go to the person who paid. As an illustrative example: a marketplace lets customers have cancelled orders refunded to any bank account they name. A fraudster buys 5,000 euros of goods with stolen cards, cancels the orders and asks for 4,800 euros to be sent to a third party’s account; the cardholders later charge back the original payments. A closed loop would have returned the money to the same cards, where the chargebacks would net it out.
What makes closed loops hard?
Not every payment method can receive money, cards expire and are replaced, and customers pay with more than one method. Stripe notes that refunds to expired or cancelled cards are usually credited to the replacement card by the issuer, and that refunds to closed bank accounts can be returned. Each case needs a written fallback, and every exception needs a record.
Where does Omno use it?
Omno Pay-Out uses the same eligibility rules as Pay-In, by country, method, customer group and customer verification level, so the hosted checkout offers only the payout methods and providers allowed for that customer, and every payout reports its final status by webhook with the routing decision logged.