# Refunds and reschedules

> Refund a booking in full or in part, refund without cancelling, give account credit instead, charge a no-show, or refund a membership payment.

Refunds on online payments go back to the customer's card through Stripe; you can [give account credit](#give-account-credit-instead-of-a-refund) instead, and [offline payments](#offline-and-walk-in-refunds) are refunded by you. What customers can do themselves is set by your [cancellation and reschedule policy](/docs/cancellation-policy).

<Screenshot
  shot="admin-cancel-refund-dialog"
  mat="peach"
  alt="The cancel-booking dialog showing an editable refund amount field"
  caption="The cancel dialog on the booking details panel, with an editable refund amount."
/>

## How refunds are recorded

Every booking keeps two figures: **Amount paid**, the gross amount captured, which never goes down, and **Refund amount**, the running total refunded. Your takings in [reports](/docs/reports) and [CSV exports](/docs/csv-exports) are the difference. Refunds you issue in your Stripe dashboard are picked up and added automatically.

## Cancel and refund a booking

<Steps>
  <Step>Open the booking from the [bookings page](/go/admin/home) or the session calendar.</Step>
  <Step>Choose **Edit booking → Cancel booking** and check the **Refund amount**. It's prefilled with the full outstanding amount - lower it for a partial refund, or set it to 0.</Step>
  <Step>Confirm. Session refunds the card and emails the customer.</Step>
</Steps>

The refund is capped at what's still owed. Cancelling also restores any [voucher or bundle credit](/docs/vouchers) and [included session](/docs/membership) used on the booking, whatever cash refund you choose.

<Callout variant="tip">
For a no-show or a non-refundable late cancellation, cancel with a £0 refund: the space is freed and the customer notified, and you keep the payment.
</Callout>

## Refund without cancelling the booking

Use this when only the money is wrong - a forgotten [discount code](/docs/vouchers), a corrected price, or a goodwill gesture.

<Steps>
  <Step>Open the booking and choose **Edit booking → Refund**.</Step>
  <Step>Set the amount (it prefills with everything still refundable) and confirm. The money goes back to their card.</Step>
</Steps>

The booking and any credits it used stay as they are. The customer isn't emailed, so let them know yourself (Stripe sends its own receipt if you have those switched on). **Refund** isn't offered on a cancelled booking; to refund one later, use your Stripe dashboard.

<Callout variant="warning">
If the *booking* is wrong - the wrong price, or they meant to book a [private hire](/docs/private-sessions) - cancel and rebook instead.
</Callout>

## Give account credit instead of a refund

Instead of a card refund, you can give **account credit** - a `CR-` code the customer redeems against a future booking. Customers' own cancellations follow **What they get back** in your [cancellation policy](/docs/cancellation-policy); when you cancel, you choose per booking.

<Steps>
  <Step>In the cancel dialog, set the method to **Account credit** and check the amount (it prefills from your policy's percentage of the net paid).</Step>
  <Step>Confirm. Session emails the `CR-` code to the customer.</Step>
</Steps>

No card refund is recorded, and the code appears under [Offers → Discounts](/go/admin/shop/discounts).

## Refund some of the spaces

<Steps>
  <Step>Open the booking and select **Edit booking → Edit quantity**.</Step>
  <Step>Lower the number of spaces, adjust the refund if needed (it prefills with the removed spaces' share), and confirm.</Step>
</Steps>

The matching share of any voucher or bundle credit is restored too; if it was paid entirely that way, the sessions go back instead of cash. A booking with more than one ticket type can't have its quantity edited: cancel it with the refund you want, and rebook. A [private hire](/docs/private-sessions) is priced as one unit, so cancel and refund it instead.

## Offline and walk-in refunds

For a booking paid [offline](/docs/add-a-booking#record-an-offline-payment-or-apply-a-voucher) (card machine, cash or bank transfer), Session records the refund when you cancel or reduce spaces, and you return the money yourself.

## Refund a membership payment

<Steps>
  <Step>Open the customer from the [Customers](/docs/customers-directory) page and find their membership.</Step>
  <Step>Select **Refund a payment**, pick the charge, set the amount (it prefills with the full refundable balance) and confirm.</Step>
</Steps>

Tick **Also cancel this membership** to stop future payments too; a refund alone never cancels one.

<Callout variant="warning">
This only refunds charges taken **through Session**. If a member's **old** booking system is still billing them, refund and cancel it there.
</Callout>

## Common questions

1. **Can staff issue refunds?** Yes. Staff can cancel a booking and set the refund amount, including partial and £0 refunds. See [admins and staff roles](/docs/team).

2. **Can I apply a discount code after someone has booked?** No, so refund what it would have taken off with **Edit booking → Refund**. Don't ask them to rebook with a one-use code they've already used - checkout will refuse it.

3. **How do I move a booking instead of refunding it?** Use **Edit booking → Move booking** - no money changes hands. See [managing bookings](/docs/manage-bookings-admins#move-a-booking-to-another-date).

4. **Do I get Stripe's fee back when I refund?** No. Stripe keeps its processing fee. Account credit avoids that, as no money goes back to the card.
