A refund returns some or all of a booking's payment to the student. How that happens depends on the payment method.
Refund timeline by method
| Method | Initiator | Time to land |
|---|---|---|
| Stripe (card) | Host or admin | 5-10 business days |
| Bank transfer | Host | 1-5 business days after host sends |
| PayPal | Host | Minutes after host initiates |
| Venmo / Cash App | Host | Minutes after host initiates |
| Zelle | Host | Minutes (host sends new transfer back) |
| Cash | n/a (no payment yet) or Host | Day-of (in-person) |
| Crypto | Host | Minutes-hours after host initiates |
Stripe refunds
For card payments processed through Stripe Connect, refunds are nearly automated.
Who can initiate
- The host: via the booking detail page in their dashboard. Click "Cancel and refund" or "Refund only".
- Admin support: via the same API path, used during dispute resolutions.
Mechanics
When the host clicks refund, we call Stripe's refunds API on the host's connected account with the original charge ID. Stripe processes the refund, debiting the host's Stripe balance and queuing the credit to the student's card.
For partial refunds, the host enters an amount (capped at the original charge amount).
Fees
Stripe does NOT return processing fees on refunds. The host loses the original 2.9% + 30¢ (or whatever the fee was). So:
- Student paid $30, Stripe took $1.17 in fees, host received $28.83.
- Host refunds $30 to student.
- Stripe takes $30 from host's balance, returns $30 to student.
- Host is out the original $1.17 plus the $30 refund.
This is the cost of doing card business; it is built into Stripe's economics.
Speed
Stripe initiates the refund instantly. The actual credit on the student's card depends on the issuing bank. Typical:
- US: 5-10 business days.
- EU: 5-10 business days.
- International: up to 14 business days.
Some banks process Stripe refunds faster (Capital One often shows them next day; Chase often takes the full 5-10 days).
Failed refunds
Occasionally Stripe cannot complete a refund (the issuing bank refuses, the card was closed, etc). In these cases:
- The host receives a notification.
- The funds remain in the host's balance.
- The host has to refund the student via another method (bank transfer, PayPal, etc) and update the booking manually.
This is rare (less than 1% of refunds) but does happen.
Bank transfer refunds
For students who paid via bank transfer:
- Host receives the student's bank account details (the same one the student paid from, or a different one if the student requests).
- Host initiates a transfer from their bank to the student's bank.
- Host marks the booking as refunded in the MoveMentors dashboard once the transfer is initiated.
Speed
Same as initial transfers: 1-2 business days domestic, 3-5 international.
Logistics
If the student paid from one account and wants the refund to a different account, that is fine. Just send to wherever the student wants. Most students prefer the same account for simplicity.
Currency
If the original payment crossed currencies (student in USD, host in EUR), the refund crosses again. The student may receive a slightly different USD amount than they sent because of FX rates moving. Most students accept this; hosts can compensate by adding a small amount if they want to be generous.
PayPal refunds
The most automated of the manual methods.
Mechanics
Host opens PayPal, finds the original transaction, clicks "Issue a refund". PayPal credits the student's PayPal account or the original funding source (their card, their bank).
Speed
Minutes for the funds to appear in the student's PayPal balance; 3-5 business days if the funds return to a card.
Fees
For Goods and Services payments: PayPal refunds the host's fee proportionally on full refunds. On partial refunds the fee handling varies.
For Friends and Family: no fees on either side; refund is straightforward.
Venmo, Cash App, Zelle refunds
Venmo / Cash App
Host opens the app, taps the original transaction, picks "Refund". The money returns to the student's Venmo / Cash App balance.
Zelle
Zelle has no refund button. The host has to manually send a new Zelle payment back to the student.
The student provides their Zelle handle (their bank-linked phone or email). The host sends the refund amount. Done.
Make sure the handle is right. Zelle is irreversible; sending to a typoed handle is just gone.
Cash refunds
If a cash booking was cancelled before the day of class: no money has moved, so no refund is needed. The booking just moves to CANCELLED.
If a cash booking was paid (e.g. for a workshop that the student pre-paid in cash at a previous class) and now needs refunding: the host pays the student back in cash, or via whatever method they agree.
This is rare; most cash payments happen on the day.
Crypto refunds
The host opens their crypto wallet and sends the equivalent amount back to the student's wallet address.
Volatility handling
Two policies, and the host should state which they follow:
- "Same crypto amount": host sends back the exact tokens received. Volatility means the dollar value may differ.
- "Same dollar amount at refund time": host calculates the current crypto equivalent of the original dollar value and sends that. Volatility absorbed by host.
The first is more common for casual settings; the second for higher-value bookings where the host wants the student to feel whole.
Network fees
The host pays gas to send the refund. The host can either absorb the fee or send slightly less (less common; usually absorbs).
Partial refunds
For Stripe: supported natively. Host enters the partial amount.
For manual methods: just send back the partial amount.
Common partial-refund scenarios:
- A 4-seat booking where 1 seat dropped: refund 25% of the total.
- A class that the student attended only the first half of (rare; usually the policy is "you showed up, no refund"): negotiate with the host.
- An add-on that was not delivered (the studio ran out of rental mats): refund the add-on cost only.
Refunds and the booking record
A fully refunded booking moves to CANCELLED status. The financials dashboard subtracts the refund from the host's earnings.
A partially refunded booking stays as is on the host's dashboard with a "refund issued: $X" indicator.
The student's record at /my-bookings reflects the refund status.
Common questions
Can a host refund a booking outside the cancellation policy window? Yes. The host can refund whenever they want. The policy is the minimum the student is entitled to; refunds are at host's discretion above that.
Can a student demand a refund outside the policy? They can ask. The host can decline. If the request is reasonable and the host declines unreasonably, the student can dispute (see disputing a booking). For genuinely unreasonable cases (the class never happened, etc), admin will typically uphold the dispute.
Can a refund happen automatically (without host action)? For Stripe payments inside the policy window: yes. The student clicks "Cancel" on their booking, we call Stripe's refund API automatically. The host does not need to do anything.
For manual payments: no automatic refund. The host has to actively send the money back.
What if the host disappears and never refunds? For Stripe: admin can issue the refund without the host's involvement.
For manual: the platform cannot force the host to send money. Email support; we will reach out to the host. If they remain unresponsive, the recourse is small claims court or a chargeback through the original payment method. We will provide a written summary of the booking and the host's payment instructions to help the student.
Next steps
- Disputes and chargebacks: when a refund is contested.
- Cancelling and refunds (students): the student-side flow.
- Cancellation policy (mentors): how policy windows work.