How do refunds, fees, receipts and VAT work in Order & Pay?

Refund an order, record a cash refund, check cash-order fees, and read receipts, VAT, loyalty and your Order & Pay sales figures.

Part of How do I set up and run Order & Pay?. This part covers the money side of orders: refunds, the platform fee, cash-order fees, receipts, VAT and loyalty, sales figures, and the follow-up when a refund needs another check.

Refunding a past order

From an order's detail, staff with the refund permission can refund two ways — both behind the same manager PIN (or owner/admin password) as the board's reject button. (An order opened from anywhere else — a guest's profile, a payment or the Activity log — offers the same buttons, with the same checks.) Refund items… ticks the exact item(s) to return — and where the guest ordered more than one of something, how many of them (one of two colas, say — set menus and deals included, each one refunding as a whole bundle at the price the guest paid for it, including any supplements or upgrades): the price the guest paid for them goes back to their card — if the order carried a promotion or a loyalty reward, that's the discounted price they actually paid, never the full menu price; fully refunded items show struck through in the order's detail, part-refunded ones carry a "1 of 2 refunded" note. Refund an amount… returns any part (or all) of the card payment — for a goodwill gesture or a disputed bill — either as a fixed amount (£) or a percentage (%): a percentage is worked out on the order total excluding the tip unless you switch on Include the tip, is rounded down to the penny, and never exceeds what's left of the card payment (if the percentage comes to more, you refund what's left and the dialog says so). Either way the order itself stays delivered; only the money moves, and every refund shows in the order's detail, on the Payments page and in the Activity log (item refunds name what was refunded; percentage refunds show the percentage used). Partial refunds return card money only. Completing the card refund also re-credits any gift-card cover and returns a redeemed loyalty reward, as a rejection does. A cash or card-at-venue order has no card payment to send back, so its detail offers Record a cash refund… instead — see Refunding a cash or card-at-venue order below.

Fees when money comes back. The ResoFlow platform fee — the flat 15p on a table order, or the 50p + 1% on a collection or delivery order — isn't returned when you reject or refund a paid order, in full or in part (the one exception: if a payment ever completes while your ordering is switched off, the automatic refund returns everything — the platform fee included). Stripe does not return its own card-processing fees when a payment is refunded. Those fees are charged by Stripe under your Stripe agreement and are paid to Stripe directly — ResoFlow never receives or holds any part of them.

Refunding a cash or card-at-venue order

Repayment for these orders happens outside ResoFlow. Return the money in cash or through your own card machine, then open the order and choose Record a cash refund… — enter the amount (it defaults to everything still paid) and an optional note, and approve it with a manager's PIN or an owner/admin password, exactly like a card refund. Nothing is charged or moved by ResoFlow. The refund shows in the order's detail, as a Refunds line in the daily sales email and the Orders analytics, and on the Payments page, and the guest is emailed a confirmation worded for cash (or for your card machine). ResoFlow's 50p + 1% platform fee on the order isn't returned — it stays on your monthly cash-order fee statement, just as the fee on a card order stays when you refund it. The order itself stays delivered; only the money record changes. If you try Refund an amount… on a cash order instead, the screen tells you plainly to use Record a cash refund….

Checking cash-order platform fees

Account → Billing → Cash order fees shows fees not yet invoiced, available fee credits, invoice checks in progress and verified unpaid invoices. Refresh loads the recorded statement and its last update time. Invoice status reflects the last recorded check. Invoice history loads in pages; Show more invoices loads the next page. Earlier months with unverified balances have their own history. If a history page cannot be loaded, Retry history keeps the statement totals and earlier pages visible. If the statement is being reconstructed or needs reconciliation, it explains that instead of showing an assumed zero balance.

Recording a cash or card-at-venue refund doesn't change the order's platform fee. A fee credit — for example from editing a cash order to a lower total after its fee was counted — is kept in full, including when the earlier month's invoice was already billed or there are fewer new fees available to offset it. Credits apply to cash-order platform fees; they are not a cash repayment or general account credit. Editing a cash order records its fee adjustment with the order update. These fees are normally invoiced separately on the 2nd of each month. Net fees under £1 roll over.

If an invoice can't be collected. When the card on file declines the monthly invoice — or there's no card, or the bank asks for a check — the invoice stays open: Stripe doesn't try it again by itself. The owner gets one email, Your cash order fees are waiting to be paid, whose button opens Billing, and the top of Cash order fees shows An invoice is waiting for payment: with the amount, the invoice date and Pay now, which opens Stripe's secure page for that invoice in a new tab. Once it's paid, come back to the page and the notice goes.

A finalised unpaid invoice stays visible with View invoice. If Stripe carries a small remainder to its customer balance, the statement names that carried amount separately. A later invoice may include it; ResoFlow keeps the original remainder tracked until its exact application is verified and avoids counting it again as new fees. Earlier balances need verification means historical counters are not yet a confirmed amount due. An invoice being checked is not confirmation of payment; ask support to reconcile it before arranging another payment.

Receipts, VAT and loyalty

Every guest gets an itemised receipt email — each dish with its choices, any tip, promotion or gift-card cover, and the total. If you've entered your VAT number (Settings → Payouts and Stripe), the receipt also breaks down the VAT included, using each dish's VAT rate from the Menu page (new dishes can pick their rate up automatically from a category or venue-wide VAT default — see How do I set allergens, alcohol and VAT on my dishes?), and closes with a "Tax invoice provided on behalf of…" line naming your business. The Registered business name field next to the VAT number (Settings → Payouts and Stripe) is the legal name behind your venue — a limited company name, for example — and it's what that line shows; leave it blank and your venue's trading name is used instead, with your venue address added when it's set. The same line appears on every money receipt at a VAT-registered venue — event-ticket confirmations, paid-in-full booking confirmations, guest pre-order receipts and the daily Order & Pay sales email. Where your venue also runs our loyalty scheme (Pro and above, or the standalone Loyalty product — Order & Pay alone doesn't include it), loyalty members earn on orders automatically when they sign in at the checkout (an emailed code the first time; the device stays signed in for 30 days) — their receipt quietly says what they earned and how far the next reward is. A guest who skips signing in still orders normally but doesn't earn. Anyone who isn't a member can join from the checkout itself — an un-ticked join box, shown to everyone who isn't signed in, the same as on your booking page: a guest who isn't signed in becomes a member when they click the link in the confirmation email we send (and that click earns the order they joined with, as it would for any member), and one who signed in with a code joins at once and earns on that order. Non-members who don't tick it see a one-line invitation to join on their receipt.

Members can also spend a reward at the checkout where you've switched on Let members use rewards when ordering in the loyalty scheme set-up (Settings → Loyalty, on the Rewards step; off by default) and given a reward a Checkout value (£) or linked it to a dish or category — with that toggle on, every live reward needs one or the other, and Settings → Loyalty flags any that lacks it. Three switches under the toggle (Rewards at the table, Rewards on collection orders, Rewards on delivery orders — all on unless you turn one off) say which kinds of order can use a reward. One reward per order: it applies after any promotion and never touches the tip, and any value beyond the order isn't carried over — no change is given, and the checkout tells the guest so before they pay. With the scheme set-up's Rewards can be used on deal prices toggle on (the default) the reward's value can come off set menu & deal money too, so a deal-only order can still use a reward; switch it off and rewards only cover individually priced dishes. A reward that covers the whole order skips the card step entirely. The reward shows as its own line on the guest's receipt, on the Orders screen and in Past orders (with its own Loyalty reward (£) column in the CSV), and your scheme's limits — the daily redemption cap and one-per-member rewards — are enforced exactly as they are on the Scanner. Rejecting the order returns the reward to the member's balance automatically, and the rejection email tells them so. On a per-£-spent scheme the reward's value comes off what the member earns on, exactly as a promotion does — earning follows the food and drink money actually paid.

Guests are also emailed automatically when money comes back: rejecting an order sends a refunded-in-full email, and a manual refund (partial, full, or by item — from Past orders or the Orders screen) sends a refund confirmation showing what came back and what's still paid; an item refund names exactly which items were refunded. Order emails — and order, top-up and tip payment links — come from [email protected] with your venue's name (from your own address once Your domain sends your email); a guest's reply lands in Messages on Pro and Complete, or is passed on to your own email on Free and Plus.

Sales figures

Financial follow-up and order changes

If a refund or order edit needs another check, the order shows Financial update in progress or Financial update needs a check. Open Financial follow-up on Past orders (the Orders screen says how many orders need a check, and its … menu opens it too) to see affected orders across all dates. The list shows the requested amount, confirmed refunds and payment/refund references. Refresh updates the list; Retry saved update is available to staff with refund permission and the usual manager-PIN or password confirmation. It retries the saved amount and items, without changing them.

A refund can span the original card payment and paid amendment top-ups. Each payment contributes only its own remaining refundable amount. Confirmed portions appear in the refund record while an unfinished portion remains in follow-up. Recovery checks run automatically every five minutes, with a wait when another check is already running. A provider processing delay, changed payment balance, or failed gift-card credit stays visible for review. Do not make a separate replacement refund while an update is pending. Order edits and completion pause while the money update is unfinished. Once it is recorded, fulfilment can continue; further financial changes wait until any follow-up work is resolved.

Editing an order respects the venue's stock settings. When tracking is on, added quantities reserve available stock for the order's promised service day. Removed counted quantities return to stock when the edit completes. This applies to swaps too, including a cheaper replacement that needs a refund. There is no stock override in the amendment dialog; correct an inaccurate stock count in the stock tools before trying again. Turning tracking off keeps the existing behaviour without a stock limit.

Venue-initiated rejects and refunds retain the ResoFlow platform fee. A system-failure refund returns the fee. A refund record is a retained financial record: guest erasure removes identifying guest fields and staged guest notes while keeping amounts, stock facts and payment references.

A bank may later report that one refund failed. The successful portions keep their own amounts, and the failed reference remains visible in Financial follow-up. Payment-history totals count only confirmed portions; any tax allocation that cannot be established remains unattributed. A failed bank refund requires a payment review; retrying a saved update does not automatically issue a replacement or mark it paid.

Resolving a card refund that has failed

Financial follow-up on Past orders keeps a failed refund open until its outcome is known (the Orders screen shows how many are waiting and links straight there). The owner can use its resolve button, which names the amount due (for example "Resolve £12.50 repayment"). Other staff need the explicit Resolve failed refunds (record completed repayments) permission; ordinary Admin or Manager access does not include it. A downgraded plan does not remove care for an existing paid order.

Arrange any alternative repayment with the guest outside ResoFlow first. Then record the exact completed bank transfer or cash repayment with its date, unique transaction or receipt reference and reason. Do not enter bank details, card numbers or guest contact details in those fields. Alternatively, link a replacement refund already created in Stripe on the same original payment. This action does not create a Stripe refund or send a bank payment.

Review the details, then confirm with a fresh password or an authorised manager PIN. ResoFlow checks the failed refund, returned-funds evidence, original payment, dispute state and complete refund history again. An uncertain or pending original refund cannot be marked as repaid. A pending replacement stays open until Stripe confirms its outcome. A partial repayment leaves the exact unpaid remainder visible.

The original failed refund remains in the history. Stripe-confirmed refunds, venue-recorded bank repayments and venue-recorded cash repayments are shown separately. Saved order updates and their follow-up checks resume when all required repayment amounts are resolved; retrying does not create another copy of a recorded repayment. If a later provider outcome could duplicate money already repaid, the queue stays open for payment review. This flow does not automatically recover an overpayment or provide a generic “mark paid” override.

Outstanding gift value and linked replacements

If an order refund cannot return all gift value to the original card, Financial follow-up → Review outstanding gift value checks the original spend, linked earlier returns, original expiry and any purchase refund. Staff need Run the Orders screen (acknowledge and deliver orders) and Void or refund gift cards, plus fresh password or manager-PIN confirmation and a reason. It works for care of an existing paid order after a plan downgrade. The amount is calculated by the server; staff cannot increase it or convert it to cash.

A verified residual can be issued on one linked replacement gift card. This creates no new sale or payment. Its original expiry is preserved, including an expiry date that has passed. Use the existing explicit Extend expiry action if the venue decides to honour an expired card; replacement issuance never extends it automatically. Missing original terms, unlinked manual adjustments or unverified purchase refunds stay open for review. Do not issue another ordinary gift card to bypass that review.

The new code is shown once for printing or handover; this action does not send an email. Save it and give it to the guest. If the response or code is lost, open the order’s details and choose Replacement gift-card access. An explicitly confirmed access-code change invalidates the previous code while preserving the existing card, remaining balance and expiry. Retrying an issue or code-change request never silently rotates a code or issues more value. A fully spent or void replacement cannot have its code changed through this flow.

The queue clears only after the gift ledger covers the obligation and independent order follow-ups finish. Card refunds, original-card returns and linked replacement value are shown separately in the order and reports. A replacement records gift value issued; it does not claim the guest has received an email or a cash repayment.

Related: How do I set up and run Order & Pay? · How do I take and change orders at the venue? · How do I connect Stripe? · How do I export my payment income and preview card fees?