Refunds, and who pays the fees
Last updated September 13, 2026
A refund made from LakeOps returns the matching share of the LakeOps fee, a refund made in your own Stripe dashboard returns none of it, and Stripe keeps its processing fee either way. From LakeOps you choose the amount, add a reason, and decide whether the customer gets a refund email in your company’s name.
Money goes back to a customer for all sorts of reasons: a double payment, a section that got damaged, a price settled on the phone. Where you press the button decides what happens to the fees, so it is worth knowing before you do.
Refunding from LakeOps
Open Payments, find the payment and press Refund. The refund form asks four things:
- Amount to refund starts at what is left on the payment — the full amount, less
anything already refunded. Type a smaller amount to give back only part of it. Digits and a decimal
point only (
125.50, not$125.50or1,250), and never more than is left. - Reason is optional, for your records and the activity feed. The customer does not see it. The one word you cannot use is chargeback, which LakeOps keeps for disputes Stripe reports.
- Email the customer about this refund is ticked for a card or bank payment and unticked for a check or cash you recorded by hand — see what your customer is told.
- Which of the two buttons you press, after a confirmation naming the customer. The difference is what the customer owes afterwards:
| Button | Use it when | Afterwards |
|---|---|---|
| Refund | You are giving the money back for good: goodwill, a damaged section, a price settled on the phone, a customer who paid twice. | Never asked for again. It can cancel an overpayment, but it never turns into a debt. |
| Refund and bill again | The money still has to be collected another way: a bounced check, or a card refunded so the customer can pay by bank instead. | Back on what they owe — unless the job was overpaid, when it only reduces the credit. Owed money is picked up by statements, reminders and late fees if you use them, and has a pay button when you take payments through LakeOps. |
- A card or bank payment goes back through Stripe, to the card or account the customer paid with, from the Stripe account that took it — even if you have since turned LakeOps Payments off.
- A check or cash you recorded by hand is a record that you gave the money back yourself. No card is touched.
Refunding needs the same permission as recording a payment. If something is wrong with what you typed — an amount above what is left, or one that is not a plain number — the form comes back with a sentence saying so and nothing is refunded.
Who pays which fee
| LakeOps fee | Stripe’s processing fee | |
|---|---|---|
| Refund from LakeOps | The matching share comes back to you with the refund | Stripe keeps it |
| Refund from your Stripe dashboard | None of it comes back | Stripe keeps it |
| Lost chargeback | None of it comes back | Stripe keeps it, and adds its dispute fee |
“The matching share” is in proportion to the refund. A $1,068.75 payment that carried a $10.00 fee, refunded in full from LakeOps, gives you back the $10.00; refunding half of it gives back about $5.00.
Refund from LakeOps whenever you can. Stripe only returns our fee when the refund asks for it, and a refund made in your Stripe dashboard does not ask. We would rather not keep a fee on money you gave back, and refunding from LakeOps is how you make sure we don’t.
What LakeOps records
Either way, the refund appears under the payment it came off, on the job, on the customer’s payment history and on the customer’s own page. A refund made in Stripe arrives by itself once Stripe reports it; there is nothing to type in twice. The fee totals on the revenue report are net of whatever refunds gave back.
Only a refund to bill again is owed again. A refund you gave back never adds to what the customer owes: it brings no pay button, reminder or late fee of its own, and the customer’s page counts it as paid, so the total, paid and balance lines still add up. It does not forgive anything else — a job that was only partly paid before the refund still owes that remainder, exactly as before. If a job ends up overpaid, the page shows a Credit, never a negative balance. A refund made in your Stripe dashboard, and a lost chargeback, count as money to bill again, because LakeOps cannot tell what you meant — refund from LakeOps when you are giving money back.
What your customer is told
One email per refund, in your company’s name: how much was refunded, for which job, the payment it came off, and how it comes back — to the card or bank account they paid with (most banks show it within five to ten business days), or from you directly for a check or cash. It links to the job page once the job is finished, and deliberately shows no balance. See every email a customer can get.
Whether it sends is the Email the customer about this refund box on the refund form. It starts ticked for a card or bank payment, where money really goes back to them. It starts unticked for a check or cash you recorded by hand, because that refund is usually you correcting your own entry — a $500 check that was really $50 — and “your $450 refund is on its way” to somebody owed nothing is worse than silence. Tick it when you are handing a check or cash back. A refund you make in your Stripe dashboard sends the email as if the box were ticked, because there is no form to ask. Either way, nothing is sent to an address that has bounced or complained.
A lost chargeback is recorded the same way on your books, but the customer is not sent a refund email — the bank took that money back, and you did not refund it.
Receipts stay as they were
A receipt is frozen the day the money moved, and a refund does not rewrite it. The refund is its own record beside it. See finding a receipt and sending it again.
Still stuck? Ask us — or go back to the help center.