Refunds and Disputes
When something goes wrong with a card order, you can refund the customer directly from the order in TypeMenu without opening Stripe. This article covers full and partial refunds, how they change statuses, what the customer receives, where refunds appear in your ledger and reports, and what to do when a customer disputes a payment.
Plan requirement
Refunds are part of online ordering on the Operate plan. Issuing a refund requires the edit orders permission.
What can be refunded
In-app refunds work for card payments taken through Stripe. The Refund button appears in the Payment section of an order whenever it has a Stripe payment with the status Paid or Partially Refunded.
Other payment methods are not refunded through TypeMenu:
- Cash: hand the money back in person; there is nothing to reverse electronically.
- Square: orders paid through your Square integration are refunded in Square.
- Test Card: no real money moved, so there is nothing to refund.
Issuing a refund
- Open the order from the Orders page.
- In the Payment section, click Refund.
- In the Refund order dialog, either leave Amount blank to refund the full remaining amount, or enter a partial amount.
- Optionally add a Reason (optional), for example “Item out of stock”. This is stored against the refund and sent to Stripe; it is not shown to the customer.
- Click Refund. The button shows Processing… while Stripe confirms, then you see “Refund processed successfully.”
The dialog explains what happens: “Refund this order to the customer. The amount is returned to their card and recovered from your payout.”
Partial and repeated refunds
You can refund any amount up to what the customer paid, and you can do it more than once. Each partial refund reduces the remaining balance, and the button stays available until the order is fully refunded. TypeMenu blocks anything over the balance with “The refund amount exceeds the remaining refundable balance.” and, once nothing is left, “This order has already been fully refunded.”
How statuses change
| Refund | Payment status | Order status |
|---|---|---|
| Full (in one go or as the last partial) | Refunded | Refunded |
| Partial, on an order that has already finished (Completed, Cancelled, Archived) | Partially Refunded | Partially Refunded |
| Partial, on an order still being fulfilled | Partially Refunded | Unchanged |
A partial refund never interrupts an active order. If you refund one missing item from an order that is still being prepared, the kitchen keeps working and the order progresses as normal; only the payment shows Partially Refunded.
Refunded and Partially Refunded are final order statuses: the order cannot be progressed any further. A full refund is therefore the end of an order’s life. If you only need to return part of the money on an order that is still live, refund the partial amount and let the order complete normally.
What the customer receives
Every refund, full or partial, sends the customer an email headed Refund issued (subject “Refund Issued - #[order number]”). It states whether the refund was full or partial, the amount, and “Please allow 3-5 business days for it to appear on your statement,” with your contact details and a link to the order.
This email uses the same switch as the order confirmation email in Settings → Notifications. Turn that off and refund emails stop too. See Notifications.
Fees and timing
- Stripe’s processing fee is not returned. The customer gets back the full amount you refund, but the fee Stripe charged on the original payment stays with Stripe. On a full refund you are slightly out of pocket by that fee. See Payment Methods.
- The refund is recovered from your Stripe balance and therefore your next payout.
- How long it takes to reach the customer’s card is set by Stripe and the card issuer, according to Stripe’s timelines. The customer email says 3-5 business days.
Where refunds show up
- Order page: the payment row shows Refunded or Partially Refunded, with a View payment in Stripe link.
- Payment Ledger: the status column shows Refunded or Partially Refunded, and you can filter by those statuses.
- Orders report: the Revenue Breakdown has a Refunds line that subtracts the actual amounts refunded, so partial refunds reduce revenue by what you returned, not the whole order. See Reports.
Cancelling versus refunding
Cancel Order (on the order page) marks the order Cancelled and emails the customer. The dialog warns: “This action cannot be undone. The order will be marked as cancelled and the customer will be notified.” Orders that are Completed, Collected, Delivered, Cancelled or Abandoned cannot be cancelled.
Cancelling a card-paid order refunds it automatically. When the order has a Stripe payment with a balance left, TypeMenu refunds the full remaining amount as part of the cancellation. The order stays Cancelled, the payment becomes Refunded, and the customer receives the cancellation email followed by the refund email. You do not need to click Refund as a second step.
If the automatic refund fails (for example Stripe is unavailable), the order is still cancelled and the panel shows a warning. The payment stays Paid, the cancellation email tells the customer a refund is being processed, and the Refund button remains on the order so you can issue it once Stripe responds.
If the order was not paid by card (for example cash still to be collected), there is nothing to refund and the cancellation email carries no refund message.
Worked examples
Missing side dish. A £24.50 order is being prepared when you notice a £3.50 side is out of stock. Refund £3.50 with the reason “Item out of stock”. The payment becomes Partially Refunded, the order stays Preparing, and the customer gets a partial refund email for £3.50. The Orders report shows -£3.50 under Refunds.
Two complaints on one order. After a £40.00 order is Completed, you refund £12.00 for a cold main; the order becomes Partially Refunded. A missing drink later costs another £2.50, leaving £25.50 refundable. Refund that too and the order becomes Refunded.
Kitchen cannot fulfil. A £31.00 card order arrives after a power cut. Click Cancel Order. The order ends Cancelled with the payment Refunded, and the customer gets the cancellation email followed by the refund email for £31.00.
Disputes and chargebacks
A dispute (chargeback) is when a customer asks their bank to reverse a payment. Disputes are raised and resolved between you and the customer through Stripe, not through TypeMenu.
When Stripe tells TypeMenu a dispute has been opened on one of your payments:
- The payment’s status changes to Disputed, which you can see in the Payment Ledger.
- When the dispute closes, the status returns to Paid if you win, or becomes Failed if you lose and the funds go back to the customer.
To respond, log in to your Stripe Dashboard, open the disputed payment and submit evidence before the deadline Stripe shows there. If you do not respond in time, the dispute is resolved in the customer’s favour. Lost disputes are not included in the Refunds line of the Orders report.
FAQ
Can I refund a cash order in TypeMenu?
No. The Refund button only appears for Stripe card payments. Return the cash in person.
Can I refund more than the customer paid, or add a goodwill credit?
No. Refunds are capped at the remaining balance of the original payment, and there is no store credit feature.
Does the customer see the refund reason?
No. The reason is kept on the payment record and in Stripe for your own reference.
Can I undo a refund?
No. Once Stripe has accepted the refund it cannot be reversed in TypeMenu. Take care with the amount before confirming.
Does TypeMenu email me when a dispute is opened?
Not at present. Check your Stripe Dashboard for new disputes and their deadlines. TypeMenu records the Disputed status on the payment.
Can I add a reason when cancelling an order?
No. The Cancel Order dialog has no reason field. If you need to explain the cancellation, contact the customer directly.
Related
- Payment Methods — Stripe setup, processing fees and the Payment Ledger
- Orders — order statuses and the Cancel Order flow
- Notifications — customer email settings
- Reports — the Orders report and Revenue Breakdown