ResytechResytech Docs
Payments & Billing

Issue a Refund

Refund a Stripe card payment or record a manual refund for cash, check, and other offline payments.

Resytech supports two refund paths: Stripe refunds that reverse a card charge through the Stripe API, and manual refunds that record an offline return of funds. Both types create a negative payment entry and update the booking balance.

Prerequisites

  • An existing booking with at least one recorded payment.
  • For Stripe refunds: the original card payment must have a status of succeeded.
  • Appropriate user permissions.

Before You Refund: Is the Money Coming Back?

On an active booking, the refund dialog shows a Balance Handling checkbox labeled Write off the refunded amount - goodwill refund. Decide this before you start, because it controls what the booking owes afterward.

Ask yourself one question: is the customer going to pay this money back to you?

  • Yes, they will pay another way (wrong card, switching to cash, paying by invoice): leave the box unchecked. The refunded amount comes back as a balance due so you can collect it again.
  • No, you are giving it up (comp, apology, price correction): check the box. The booking total drops to match and the balance stays at $0.00.

"Goodwill" only means this money is not coming back to us. It is not about the reason for the refund. If you intend to re-collect the amount, it is not a goodwill refund even if you are refunding to make a customer happy.

SituationWrite off?
Wrong card used, re-charging the right oneNo
Card payment being redone as cashNo
Refunding now, invoicing the same amountNo
Payment applied to the wrong bookingNo
Comping a rained-out tripYes
Refunding part of a trip after a complaintYes
Correcting an overcharge for goodYes

Two cases where it makes no difference: the checkbox is hidden on canceled bookings (they always settle through the cancellation write-off), and if the booking already owed the customer money, the refund settles that debt first and only the excess is written off.

Not sure? Take the default. You can convert it either way afterward from Manage Line Items: remove the Courtesy Refund Write-Off row to bring the amount due back, or add a Write-Off line item to forgive a balance you left due. Both land on the same result as choosing the other option at refund time.

Stripe Card Refunds

Full Refund

A full refund returns the entire remaining refundable amount on a card payment.

  1. Open the booking from Dashboard > Bookings.
  2. Navigate to the payment history section.
  3. Find the card payment you want to refund and click Refund.
  4. Select Full Refund.
  5. Set Balance Handling: leave Write off the refunded amount unchecked if the customer will pay again, or check it for a goodwill refund. See Before You Refund.
  6. Optionally check Refund Application Fee if you want Resytech's platform fee returned as well.
  7. Review the refund summary showing the refund amount, application fee refund, and operator charge refund. The summary restates your balance handling choice, either Refunded amount will be written off or Balance will remain due, so check it before confirming.
  8. Click Confirm Refund.

The refund is processed through Stripe immediately. The customer typically sees the refund on their statement within 1--7 business days, depending on their bank.

Partial Refund

A partial refund returns only part of the payment.

  1. Open the booking and find the payment.
  2. Click Refund.
  3. Select Partial Refund.
  4. Choose the amount type:
Amount TypeHow It Works
DollarEnter an exact dollar amount to refund (e.g., $50.00)
PercentEnter a percentage of the remaining refundable amount (e.g., 50%)
  1. Enter the amount or percentage.
  2. Set Balance Handling as described in Before You Refund.
  3. Review the refund summary.
  4. Click Confirm Refund.

Refund Preview

Before confirming, the system shows a preview with these details:

FieldDescription
Refundable AmountThe maximum that can still be refunded on this payment
Refund AmountThe amount that will be returned to the customer
Application Fee RefundThe portion of the platform fee being returned (proportional to the refund)
Operator Charge RefundThe amount returned from the operator's share
Remaining Charge BalanceWhat will remain on the charge after this refund

Multiple Partial Refunds

You can issue multiple partial refunds against the same card payment until the full amount has been refunded. The system tracks the cumulative refunded amount and prevents you from exceeding the original charge.

For example, on a $100 payment:

  • First partial refund: $30 (remaining refundable: $70)
  • Second partial refund: $40 (remaining refundable: $30)
  • Third partial refund: $30 (payment is now fully refunded)

Refund Application Fee

When Refund Application Fee is checked, the Resytech platform fee is also refunded proportionally. The calculation is:

App Fee Refund = (Original App Fee) x (Refund Amount / Original Captured Amount)

If you choose not to refund the application fee, the full refund amount comes from the operator's portion of the charge.

Manual Refunds

Manual refunds are for payments that were recorded manually (cash, check, electronic, etc.). No money moves through Stripe -- you are recording that funds were returned to the customer.

Process a Manual Refund

  1. Open the booking and find the manual payment.
  2. Click Refund.
  3. Fill in the refund details:
FieldRequiredDescription
Refund TypeYesFull (entire remaining amount) or Partial
Amount TypeFor partialDollar (exact amount) or Percent (percentage of remaining refundable)
AmountFor partialThe dollar amount or percentage to refund
Refund MethodYesHow the refund is being returned: cash, check, electronic, etc.
Refund Reference IDNoA reference number (check number, transaction ID). Auto-generated if blank, e.g., REF-20260402-A1B2C3D4.
ReasonYesWhy the refund is being issued
NotesNoAdditional notes for internal records
Balance HandlingYesWhether to write the refunded amount off as goodwill. Same choice as a card refund, see Before You Refund. Not shown on canceled bookings.
  1. Click Confirm Refund.

Protection Against Over-Refunding

The system automatically prevents refunding more than the original payment amount. Before processing, it:

  1. Calculates the sum of all existing refunds and chargebacks linked to the original payment. A lost payment dispute already clawed the money back, so a charged-back payment is not refundable again.
  2. Subtracts that from the original payment amount to get the remaining refundable amount.
  3. Rejects the refund if the requested amount exceeds the remaining refundable amount.

If a payment of $200 has already been refunded $150, the maximum additional refund is $50. The same math applies if the $150 was pulled back by a chargeback instead of a refund.

Cancellation Refunds

When canceling a booking that has payments, Resytech can process refunds as part of the cancellation flow. The system supports two refund methods during cancellation:

MethodDescription
stripeRefunds the card charge through Stripe. Requires the PaymentIntent ID.
manualRecords a manual refund. The system automatically finds the best original payment(s) to refund against.

For manual cancellation refunds, the system intelligently splits the refund across multiple payments if a single payment cannot cover the full refund amount. Payments with larger remaining balances are refunded first.

How Refunds Affect the Balance

The balance is always recomputed from the booking's totals and payments:

Balance = (Grand Total - Tips) - (Gift Cards Applied + Payments Net of Refunds)

What that means in practice depends on the booking's status:

On an active booking, a refund from the Payments tab leaves the obligation in place by default: the grand total stays put and the refunded amount comes back as amount-due, which you can collect again with a card on file, a manual payment, or an invoice — the wrong-card scenario, where you refund one payment and collect the same amount another way. For example:

  • Fully paid $300 booking, balance $0.00
  • Refund of $100.00 from the Payments tab
  • Grand total still $300.00, balance now $100.00 — ready to be re-collected

For a goodwill refund (see Before You Refund), check Write off the refunded amount under Balance Handling. The refunded booking portion is written off the price via a Courtesy Refund Write-Off line item, so the grand total drops to match and the balance stays settled. Same example: a $300 booking with a $100 written-off refund becomes a $200 total at a $0.00 balance.

When writing off, if the booking already owed the customer money (a negative balance after a price or equipment reduction), the refund settles that debt first and only any amount beyond it is written off. Refunding exactly what was owed produces no write-off at all: the balance simply returns to $0.00 at the unchanged grand total. Refunds processed by the cancel and reschedule flows do not write anything off, because those flows reconcile the obligation themselves.

On a canceled booking, the cancellation write-off absorbs the refund instead. Canceling a booking writes off the un-retained obligation via a Cancellation Write-Off line item, so the booking reads as settled at the retained amount. Refunding a payment after cancellation tops that write-off up and drops the grand total accordingly — the booking stays settled at a $0 balance rather than showing the refunded amount as owed. This includes refunds issued directly in the Stripe dashboard, which are synced back by webhook and move the balance exactly like in-app refunds.

Refund Statuses in Stripe

After a Stripe refund is processed, the status in Stripe may be:

StatusMeaning
succeededRefund completed successfully
pendingRefund is being processed (rare for card refunds)
failedRefund could not be processed (e.g., charge too old, insufficient balance in Stripe account)

If a refund fails, Resytech does not create the refund record or update the balance. The error message from Stripe is displayed so you can take corrective action.

Tips and Pitfalls

  • A balance appearing after a refund is usually not a bug. By default the refunded amount stays owed so you can collect it another way. If the customer was never going to pay it again, the refund should have been written off, and you can fix it by adding a Write-Off line item from Manage Line Items.
  • "Goodwill" means you are not getting the money back, nothing more. A refund you plan to re-collect is not goodwill, however friendly the reason.
  • Stripe refunds can take 1--7 business days to appear on the customer's statement. Let the customer know when to expect it.
  • You cannot refund a refund. The system blocks attempts to refund a payment record that is already a refund entry.
  • Stripe charges older than 180 days may not be refundable. In this case, issue a manual refund and handle the return of funds outside of Stripe.
  • Refunding a card payment does not reverse Stripe processing fees. Stripe keeps its per-transaction fee even if you refund the payment. This is a Stripe policy, not a Resytech limitation.
  • Partial refunds by percentage are calculated against the remaining refundable amount, not the original payment amount. If you already refunded half and then request a 50% partial refund, you get 50% of the remaining half.

What to Do Next

On this page