MoveMentors is a marketplace, but unlike many marketplaces we do not hold money on behalf of hosts. Every payment flows directly from the student to the host. This article explains how and why.
The principle: direct routing
When a student pays for a class:
- For card payments via Stripe: the money lands directly in the host's Stripe Connect account. We are not in the money path.
- For manual methods (bank, PayPal, etc): the student sends the money directly to the host using the host's account details. We never touch the funds.
The platform's role is to facilitate booking, capture the payment details, and record the transaction. We do not hold escrow, we do not collect funds and disburse them, we do not take a per-booking commission.
Why direct routing
Three reasons:
1. Trust
Hosts can disconnect from us at any time and we cannot touch their money. The relationship is transactional, not custodial.
2. Speed
Card payments via Stripe are captured and (after Stripe's standard rolling delay) paid out to the host's bank in days, not weeks. Manual methods are even faster (whatever the underlying payment rail's speed).
3. Simplicity
We do not need money-transmitter licenses, escrow accounts, or banking infrastructure. The host's existing relationship with Stripe (or their bank, or PayPal) handles all of that.
The tradeoffs
Direct routing means:
- We cannot enforce refunds. If a host refuses to refund a manual-method payment, we can encourage and document but cannot pull money back. For Stripe payments we have refund API access on the host's connected account.
- Hosts are responsible for taxes. Stripe issues 1099-K for US hosts above thresholds. For non-US and manual methods, hosts handle tax reporting themselves.
- Chargebacks land on the host, not us. A student chargeback on a Stripe payment is debited from the host's account.
In exchange, hosts get: lower fees (no platform commission), faster funds, and ownership of the customer relationship.
How we make money
We charge hosts a monthly subscription for paid tiers (Pro and Premium). The free tier exists indefinitely; we cover the platform costs of free-tier hosts via paid-tier revenue.
We do NOT take per-booking fees. The price the student pays is the price the host receives (minus Stripe processing fees for card payments).
Method-by-method overview
| Method | Money flow | Speed | Refund automation |
|---|---|---|---|
| Card (Stripe) | Card → Stripe → Host's bank | Captured instant; payout 2-7 days | Automatic |
| Bank transfer | Student bank → Host bank | 1-5 days | Manual (host) |
| PayPal | Student PayPal → Host PayPal | Minutes | Manual (host) |
| Venmo/CashApp/Zelle | Student app → Host app/bank | Minutes | Manual (host) |
| Cash | Student → Host hand-to-hand | Day-of | n/a |
| Crypto | Student wallet → Host wallet | Minutes-hours | Manual (host) |
See Stripe Connect explained and Manual payment methods for the specifics.
The booking + payment lifecycle
A typical Stripe booking:
- Student picks class, clicks "Book now".
- Stripe Checkout session is created via our API call to Stripe.
- Student is redirected to Stripe's hosted Checkout page.
- Student enters card; Stripe authorises.
- Stripe redirects student back to MoveMentors.
- Stripe webhook notifies us the charge captured.
- We mark the booking
CONFIRMEDand email both parties. - Funds sit in the host's Stripe balance.
- Stripe pays out to the host's bank on their schedule.
A typical manual booking:
- Student picks class, picks manual method, clicks "Book now".
- Booking is created in
PENDINGstatus. - We email the student with the host's payment instructions.
- Student initiates payment off-platform.
- Host receives the payment in their account.
- Host opens the booking on MoveMentors, clicks "Mark paid".
- Booking moves to
CONFIRMED. Both parties get an email.
The difference: Stripe is automatic and instant; manual methods require a host's "Mark paid" click after they confirm receipt.
What lives in our database
We store:
- The booking record: who, what, when, status, party size, etc.
- For Stripe: the Stripe charge ID and the Stripe Checkout session ID (no card numbers, ever).
- For manual: the chosen method, the amount, the paid-at timestamp, who marked it paid.
- The host's payment configuration: which methods, the public-facing handles (encrypted).
We do NOT store:
- Card numbers (PAN, CVC, expiry). Stripe handles all of that.
- Bank account contents or balances.
- Crypto wallet contents.
Refunds: who can issue them
| Scenario | Who can refund |
|---|---|
| Stripe-paid, within policy window | Host or admin |
| Stripe-paid, outside policy window | Host (discretionary) or admin |
| Manual-paid | Host (we cannot reach their funds) |
| Admin-issued refund (dispute resolved) | Admin (via Stripe API on host's account) |
For Stripe payments, admins can issue refunds without the host's involvement (e.g. when a dispute is resolved in the student's favour). For manual payments, admins can only ask the host to refund; we cannot force it.
Currency handling
Hosts pick their currency at onboarding. Prices show in that currency to all students globally; we do NOT auto-convert in display.
When a student pays by card with a different home currency, their card issuer handles the foreign exchange. They typically see the converted amount on their statement.
For manual methods, the student is responsible for converting if they need to (sending the equivalent in the host's currency to a bank account, for example).
Stripe Connect: direct vs destination charges
We use Direct Charges: the charge happens on the host's Stripe account directly, not on ours. This means:
- The host's name is what the student sees on their bank statement.
- The host's Stripe account is the legal entity that issued the charge.
- Stripe fees come out of the host's funds before payout.
- Chargebacks debit the host's balance.
- Refunds happen on the host's account.
The alternative ("destination charges") would have the charge on the MoveMentors account with a transfer to the host. We rejected that because it forces us to hold funds even briefly, which complicates regulatory compliance.
What this means for hosts
Set up Stripe Connect once. After that:
- Bookings happen.
- Money lands in your Stripe balance.
- Stripe pays out to your bank automatically.
- You report your earnings on your taxes (1099-K from Stripe for US accounts above the threshold).
For manual methods, you set up the handles once and confirm payment on each booking. Slightly more work; zero processing fees.
What this means for students
You see clear payment options at booking time. Card payments are processed instantly via Stripe; manual payments go directly to the host via their account details.
You always have a record: the booking page, the confirmation email, and (for Stripe) the Stripe receipt.
For refunds: Stripe-paid refunds are automatic to your card. Manual refunds depend on the host actively sending the money back.
Next steps
- Stripe Connect explained: the card-payment infrastructure.
- Manual payment methods: the alternatives.
- Refunds: how refunds work for each method.