Refund Class Fees Online Without Losing Track of Seats
To refund class fees online, issue the refund from the same system that took the payment, so the money goes back to the family's card or bank account and the record stays on the co-op's books. In MyCoop, an admin issues a full or partial refund right from MyCoop, and it comes back out of the co-op's own Stripe account. Two details catch co-ops off guard. Stripe keeps its processing fee, so a full refund still costs the co-op that fee. And a refund doesn't remove the child from the class. Dropping the seat is a separate step that an admin takes.
Why the refund and the seat are two different jobs
Most directors picture a refund as one action: the family withdraws, the money goes back, done. In practice it's two.
One is about money. The other is about the class list. No wonder refunds feel messy when the money sits in a payment app and the class list sits in a spreadsheet. And if your software treats them as the same thing, you lose control of one of them. Refund a family and their child vanishes from a class they still meant to attend? Or drop a child and the money goes back before the board agreed it should?
MyCoop keeps them apart on purpose. An admin issues the refund, and an admin drops the seat, as two separate actions. When a confirmed seat is dropped, the first family on the waitlist moves in automatically and gets an email telling them their child got in. So the order you do things in matters, and it's worth deciding who on your team does each step before enrollment opens.
Here's what each role can do:
| Who | What they can do |
|---|---|
| Admins | Issue a full refund, or a partial one up to whatever hasn't already been refunded |
| Admins | Drop a child's seat, which moves the next waitlisted family in |
| Families | Cancel an unpaid pending spot or an unpaid waitlist spot themselves |
| Families | Can't drop a paid seat (including a paid waitlist spot); an admin does that |
That last row surprises people. A family who has paid can't quietly remove their own child and leave the co-op wondering where the money should go. They have to ask, and someone on your side makes the call.
The processing fee doesn't come back
When a family pays online, Stripe charges a processing fee. When you refund that payment, Stripe keeps the fee. A full refund returns every dollar the family paid, and the co-op absorbs the fee on top.
On one refund, it's a small amount. Imagine a term with a dozen withdrawals, though, and it becomes a line the treasurer will want to explain to the board.
You have three honest options:
- Absorb it. Refund in full and treat the fee as a cost of running classes.
- Keep a set amount. Issue a partial refund that holds back a fixed sum to cover the fee.
- Tie it to timing. Full refunds before a set date, partial after.
Our view: refund in full before the first class meets, and absorb the fee. A family that withdraws early has usually done the co-op a favor, because their seat can go to someone on the waitlist. Charging them for leaving early sends the wrong message. After classes start, a partial refund is fair, since a teacher has planned and bought materials for that child.
Whatever you pick, write it down. Families take a refund policy much better when they read it before they pay than when they hear it after.
A refund policy you can actually run
A written policy is only useful if it answers the questions families ask. Ours would cover five things:
- Deadlines. The date full refunds end, and the date partial refunds end.
- Materials fees. Whether they're refundable once supplies are bought. Many co-ops say no after a certain date.
- Waitlisted families. When unplaced families get their money back if a seat never opens.
- Who decides. Name the treasurer (or whoever issues refunds) and a backup.
- How to ask. An email address or a person, not "message the board."
The waitlist point needs its own note. For a paid class with online payments set up, MyCoop charges the class fee when a family joins the waitlist. That way a promoted family is enrolled and paid the moment a seat opens. The trade-off is that families who never get a seat need a refund, and admins get an email whenever a paid family lands on a waitlist so nobody slips through. Pick a date, such as the waitlist cutoff, and refund those families together.
If you're still working out fees, refunds and discounts from scratch, Collect Homeschool Co-op Fees Online Without Venmo walks through the decisions to make before you turn on online payments.
Step by step: a family withdraws mid-term
Say a family emails in week three. Their child is leaving the art class, and they've asked for their money back. Here's how that plays out.
First, check the policy. Week three falls after your full-refund date, so they get a partial refund.
Second, issue the refund. An admin issues a partial refund from MyCoop. It comes out of the co-op's own Stripe account and goes back to the card or bank account the family paid with. (Refunds aren't instant, since the family's bank decides when it shows up, so tell them to expect a short wait.)
Third, drop the seat. An admin drops the child from the class. The refund didn't do this, so skip this step and the child stays on the class list.
Fourth, let the waitlist do its job. If anyone is waiting, the first family moves in automatically and gets an email. Nobody has to work out who was next.
Notice the order. If you drop the seat first and forget the refund, the family is out the money. If you refund first and forget the drop, the teacher's list still shows a child who isn't coming, and the waitlisted family never gets the seat. Neither is a disaster, but both cost an awkward conversation.
Cash and check payments
Some families still pay at the table. An admin can mark that enrollment as paid so the roster shows who's settled up. Refunds issued in MyCoop go back through Stripe, so they only cover online payments. A family who paid by cash or check gets their refund outside MyCoop, the same way you took their money. Keep a note of it alongside the CSV revenue report so the treasurer's numbers match.
What MyCoop won't do for you
A fair limitation: families can't drop a paid seat themselves, so withdrawals land on a person. For a large co-op, that's real work during the first weeks of a term. We think it's the right trade, because it puts a human between a family's request and the co-op's money, but it does mean naming someone to handle it.
It also won't write your policy. The software issues the refund you choose. Your board still has to choose it.
If you're comparing tools, the "drop a child who has paid" test in Class Registration Software With Payments: 6 Tests is a good way to see how each one handles refunds in a demo. MyCoop is $49 a month on Starter or $99 on Growth, with every feature on every plan; full details are on the pricing page. Card and bank processing still has a cost, so budget for it alongside the subscription.
Frequently asked questions
Can a co-op refund class fees online in MyCoop?
Yes. Admins issue refunds from MyCoop, either the full amount or a partial refund up to whatever hasn't already been refunded. The money comes back out of the co-op's own Stripe account and returns to the card or bank account the family paid with. Stripe keeps its processing fee, so a full refund still costs the co-op that fee.
Does refunding a family remove their child from the class?
No. A refund and a drop are separate steps in MyCoop. After issuing the refund, an admin drops the child's seat. When a confirmed seat is dropped, the first family on the waitlist moves into the class automatically and gets an email. If you only refund, the child stays on the class list, so agree in advance who handles each step.
Can families cancel their own class enrollment?
Partly. A family can cancel an unpaid pending spot or an unpaid waitlist spot themselves. Once they've paid, including a paid waitlist spot, they can't drop the seat on their own. They contact the co-op, and an admin drops the seat and issues any refund under your written policy. That keeps a person in charge of every decision involving money.
Does Stripe return its processing fee when a co-op issues a refund?
No. Stripe keeps its processing fee when a payment is refunded, so the co-op absorbs that cost on a full refund. Some co-ops accept it as a cost of running classes. Others issue a partial refund that holds back a set amount, or refund in full only before a certain date. Put whichever rule you choose in writing before enrollment opens.
Run your co-op on MyCoop
Enrollment, volunteer hours, payments and family communication in one place.
Start your free trial