Refunds and payment problems on a booking
In this article
- How to refund a guest payment
- If the Refund button is missing or grayed out
- If the refund does not go straight through
- Automatic refunds when a guest cancels in time
- No payment is being requested from your guests
- Bookings that disappear before the guest has paid
- When the booking and the payment do not agree
Once you take deposits, prepayments or no-show fees, you will now and then need to give money back or work out why a payment did not happen. This article covers refunding a guest from the booking, and the payment problems restaurants run into most often.
How to refund a guest payment
You refund a guest from the booking itself, not from Stripe. A few payments have to be refunded from your Stripe dashboard instead, and the exceptions are listed further down.
- Open the booking from the List or Schedule view.
- Scroll down to the payment details. If the payment can be refunded, you will see a Refund button with the amount that is still refundable on it.
- Click it. The Refund customer? dialog shows what the guest paid and what has already been refunded.
- The Refund amount field is filled in with the full remaining balance. Leave it as it is for a full refund, or type a smaller amount for a partial refund.
- Click Refund customer.
Partial refunds are supported. If you refund part of the payment, the booking is marked as partially refunded and you can refund the rest later, up to the amount the guest actually paid.
If the Refund button is missing or grayed out
- The payment has to be settled. The button only appears when the payment status is settled or partially refunded and there is still a balance left to give back. An authorized card that was never charged has nothing to refund.
- You need booking access and the Refund right. Resos checks both together before it will refund. Granting Refund on its own is not enough: the button shows up, but the refund is rejected with a message saying the user does not have the right to refund payments. A manager grants both under user management.
- The booking is too old. The button is disabled once the booking date is more than 30 days in the past. Refund those from your Stripe dashboard instead.
- The payment was taken by a Stripe account you have disconnected. Payments received through an old Stripe account can only be refunded from that account’s own Stripe dashboard.
If the refund does not go straight through
- “The refund is pending.” This is most often caused by a negative Stripe account balance. Add funds to your Stripe account and it will complete.
- “The refund outcome is unknown.” Keep the dialog open and retry the same amount. Retrying the same amount in the same dialog is safe, because Resos recognizes it as the same request instead of a second refund. That only holds for the first 24 hours, so if you come back to it a day later, check the payment in Stripe first.
- “Stripe did not accept the refund.” Check the payment in your Stripe dashboard before trying again.
Refunding does not give you back the transaction fees on the original payment. See transaction fees explained for what is and is not returned.
How long the money takes to reach the guest is set by Stripe and the guest’s bank, not by Resos. Stripe’s own guidance is the source for that.
Automatic refunds when a guest cancels in time
Each opening hour with a payment on it can have a Cancellation policy: how much notice a guest has to give to cancel free of charge. A guest who cancels with at least that much notice has the prepayment refunded automatically, and a note is added to the booking for both you and the guest. A guest who cancels later than that is not refunded automatically, and a note says so.
That covers prepayments and deposits. A no-show fee works the other way around: there is nothing to refund, and a guest who cancels with less notice than the policy asks for is charged the fee automatically instead.
Three things to keep in mind:
- A prepayment set to Non-refundable is never refunded automatically. You can still refund it by hand from the booking whenever you decide to.
- If the opening hour’s cancellation policy is set to None, nothing is refunded automatically whatever the notice.
- The automatic refund only runs while the booking date is within the last 8 days. A cancellation on an older booking needs a manual refund, and Resos says so on the booking: for safety reasons old bookings are not refunded automatically.
- The automatic refund can fail. Resos retries a few times and then gives up, leaving a note on the booking asking you to refund the payment manually from the booking. Watch for that note rather than assuming the money went back.
No payment is being requested from your guests
Deposits, prepayments and cancellation policies are set per opening hour, not once for the whole restaurant. The most common cause of “we used to collect deposits and now we do not” is that the payment was set up on a special opening hour (a single date such as a holiday menu) and never on the standard opening hours.
To check, go to Menu → Settings & add-ons → General → Opening hours, open each opening hour you actually take bookings in, and look at its Payment tab. Turn the payment on for every opening hour that should require one.
Also worth checking: the Online payment add-on has to be active and your Stripe account connected, or no payment can be requested at all. See how to set up your Stripe account.
Bookings that disappear before the guest has paid
When a booking made through your booking page needs a prepayment or a card on file, the guest gets a limited window to finish the payment. The tables for that booking are blocked while the window runs. If the guest does not complete it in time, the booking is removed automatically (the booking status becomes Deleted), the payment is marked expired, and a note is added to the booking. You see it in your notifications as the booking having been deleted because the payment was not made in time. A booking you add yourself in the dashboard has no such window, so it waits for the guest instead of disappearing.
The guest is not emailed or texted about the deadline. They do see a countdown on their booking page while the window is open, and a note on the booking afterwards telling them to book again.
You control how long that window is:
- Go to Menu → Settings & add-ons → Payment → Online payment.
- Scroll past the Stripe connection to the settings below it.
- Set Payment completion time. It defaults to 10 minutes, and can be set anywhere from 10 minutes to 48 hours.
- Click Save.
If guests regularly run out of time, a longer window is the fix. Keep in mind that tables stay blocked for the whole window, so a very long one holds tables for bookings that may never be paid.
When the booking and the payment do not agree
A payment that lands right around the moment the completion window closes can leave Resos and Stripe out of step. It shows up in two ways: a booking marked as gone for a missed payment that still carries a settled payment, or a payment Stripe has charged that Resos shows as expired. Either way the two systems disagree, and neither label on its own tells you what happened to the guest’s money.
Stripe is the record of whether the guest was charged. Work from that:
- Look the payment up in your Stripe dashboard and see whether the guest was actually charged.
- If they were charged and you can still seat them, create the booking again and treat the payment as taken.
- If they were charged and you cannot honor the booking, refund them. While the payment shows as settled, the Refund option is still on the booking. If Resos shows the payment as expired, the Refund button is not there at all, so refund that one from your Stripe dashboard instead.
- Get in touch with us either way, so we can line the booking back up from our side.
Still stuck on a payment or a refund? Write to us at hi@resos.com with the booking date and the guest name and we will take a look with you.