If you store funds for a specific service that you provide, it's fine. If it's for many services or services provided by others, it's legally problematic.

What if you inverted the trust equation by giving the money to the service provider immediately, rather than holding any of the up front payment?

We don't hold upfront funds. When a customer pays, we initiate Stripe transfers to the merchant as soon as the funds are available.

Paying the merchant before the customer's card payment settles would mean advancing funds, which would start to resemble lending/guarantee rather than payments, raising regulatory issues. It would also concentrate risk at the platform: defaults from one merchant’s customers could jeopardize the platform for all merchants.

I was thinking more in an upfront payment model, where the customer pre-funds their account with the merchant. If you immediately sent those funds to the merchant, then would you avoid functioning as an e-money institution?

Of course, this would then mean that the customer is trusting merchant not to run off with their money.

That's an interesting idea. This may avoid the e-money issues, but:

  - The customer has to pay upfront, which lowers conversion rates.
  - No shared balance across multiple merchants, resulting in higher total payment processing fees.
  - As you already noted, trust shifts to each merchant to honor unused balances.

Ah neat, thanks for the clarification.