ResytechResytech Docs
Payments & Billing

Refunds & Disputes

Process refunds and manage chargebacks.

Processing Refunds

  1. Open the booking with the payment to refund
  2. Click Refund on the payment transaction
  3. Choose full or partial refund
  4. Review the refund preview showing the amount to be returned
  5. Confirm the refund

Refunds are processed through Stripe back to the customer's original payment method. Processing time depends on the customer's bank (typically 1--7 business days).

Refund Types

TypeDescription
FullRefunds the entire remaining refundable amount on the transaction
PartialRefunds a specific amount, leaving the rest of the payment intact

Partial Refund Amount Types

When issuing a partial refund, you can specify the amount in two ways:

Amount TypeDescription
DollarA fixed dollar amount to refund (e.g., $25.00)
PercentA percentage of the remaining refundable amount (e.g., 50%)

Refund Methods

Resytech supports two refund methods depending on how the original payment was made:

MethodWhen UsedDescription
StripeOriginal payment was a card transactionRefund is processed through Stripe back to the original card. Requires the PaymentIntent ID.
ManualOriginal payment was cash, check, or other non-card methodRefund is recorded in the system. The actual return of funds is handled outside Resytech.

Stripe Refund Details

For Stripe refunds, the system validates the following before processing:

  • The payment intent status must be succeeded
  • The charge must not already be fully refunded
  • The refund amount cannot exceed the remaining refundable balance (captured minus already refunded)

For a hold that was captured for less than it was authorized (for example a $500 deposit hold captured for $50), the released remainder is not a refund. The refundable balance is the captured amount minus real refunds, so the $50 stays refundable and the $450 release never appears as a refund on the booking.

The refund preview shows a breakdown:

FieldDescription
Refundable AmountMaximum amount that can still be refunded on this transaction
Intent AmountThe original charge amount
Collected AmountThe amount that was actually captured
Application Fee AmountThe platform fee that was collected
Operator Charge AmountThe amount that went to your Stripe account (collected minus application fee)

You can optionally choose to refund application fees along with the payment. If enabled, the platform fee is refunded proportionally to the refund amount.

Manual Refund Details

Manual refunds support the following fields:

FieldRequiredDescription
Refund MethodNoHow the refund was returned (e.g., "cash", "check")
Reference IDNoExternal reference (check number, etc.). Auto-generated if not provided.
ReasonNoReason for the refund
NotesNoAdditional notes for internal tracking

Manual refund reference IDs are auto-generated in the format REF-{YYYYMMDD}-{RANDOM} if not provided.

Every refund automatically recalculates the booking balance. Refunding money out of Stripe (or recording a manual refund) is only half the story: Resytech also has to know what the refund means for what the customer still owes. That is the Balance Handling choice, described next.

Balance Handling: Goodwill or Re-Collect

The refund dialog on an active booking shows one checkbox under Balance Handling:

Write off the refunded amount - goodwill refund

It answers a single question, and it is the part of the refund flow operators most often get stuck on:

Is the customer going to pay this money back to you?

Yes, they still owe it (they will pay another way): leave the box unchecked. This is the default.

No, you are giving it up: check the box. That is what "goodwill" means here.

"Goodwill" is not about how nice you are being or why the refund happened. It only means: this money is not coming back to us. A refund you plan to re-collect is not goodwill, no matter how apologetic the reason.

Unchecked (default)Checked (goodwill)
Use whenThe money is still owed and will be paid another wayYou are not collecting this money again
Grand totalUnchangedDrops by the refunded amount
Balance after refundThe refunded amount comes back as amount dueStays settled at $0.00
What you do nextCollect again: card on file, manual payment, or invoiceNothing, the booking is done

Behind the scenes, checking the box adds a Courtesy Refund Write-Off line item that reduces the price by the refunded amount. That is why the total drops instead of the balance going up.

Which One for Your Situation

SituationWrite off?
Customer paid with the wrong card and will re-payNo. Refund, then charge the right card.
Card payment needs to be redone as cash at the deskNo. Refund the card, then record the cash payment.
Payment was applied to the wrong bookingNo. Refund here, collect on the correct booking.
You are refunding now and invoicing the same amountNo. The invoice needs a balance to bill against.
Rained out, comping part of the tripYes. The customer will not pay it again.
Service complaint, refunding a portion as an apologyYes.
Overcharged, correcting the price down for goodYes.
Customer was double-charged and you returned one paymentEither. See below, the result is the same.

Two Cases Where the Checkbox Does Not Matter

The booking already owed the customer money. If the balance was already negative (a price or equipment reduction after the customer paid, for example), the refund settles that debt first and only the amount beyond it is written off. Refunding exactly what was owed writes off nothing at all: the balance simply returns to $0.00 at the unchanged grand total. Checking the box in that case does not double-credit anything.

The booking is canceled. The checkbox is hidden entirely. Canceled bookings reconcile through the Cancellation Write-Off instead, which always keeps them settled, so a refund after cancellation never puts a balance back on the booking. Incident and damage charge refunds also never touch the booking balance.

Changing Your Mind Afterward

Nothing is locked in. Both directions can be corrected from Manage Line Items on an active booking:

  • Picked write-off, but the customer should re-pay after all? Remove the Courtesy Refund Write-Off row. The amount comes back as due.
  • Left the balance due, but it turned out to be goodwill? Add a Write-Off line item for the amount owed. Enter it as a positive number. It reduces the amount due without changing what was sold, and never enters the fee or tax base.

Either correction lands on exactly the same result as picking the other option at refund time, so when you genuinely are not sure, take the default and fix it later.

Activity Voucher Purchase Refunds

Money paid for Activity Vouchers is collected on the voucher order, not on a booking, so it is refunded from the order. An Administrator opens the promotion under Resources > Activity Vouchers, opens the order and uses Refund vouchers to refund selected unused vouchers to the original card. Each voucher refunds exactly its original allocation (price plus taxes, and customer fees if you choose to return them). Used, reserved and restricted vouchers cannot be refunded until they are released.

Cancelling a voucher booking restores or forfeits its vouchers according to the promotion's policy; it never refunds the purchase. Payments the customer made on the booking itself (extra rentals, add-ons, tips) use the normal booking refund flow on this page. See Manage Voucher Orders.

Refunds Made in the Stripe Dashboard

Refunds issued directly in the Stripe Dashboard (outside Resytech) are picked up by webhook and recorded on the booking, and they now update the booking balance exactly like an in-app refund. Previously these were record-only; if you relied on Stripe-side refunds being invisible to booking balances, expect the balance to move.

Cancellation Refunds

When a booking is canceled, refunds can be processed automatically based on the cancellation policy. The system supports processing multiple refund requests in a single cancellation, splitting across both Stripe and manual refunds as needed. If a single payment does not have enough refundable balance, the system automatically splits the refund across multiple payments.

Cancellation Write-Off

When a booking is canceled, Resytech adds a Cancellation Write-Off line item that reduces the booking's grand total to the retained amount — whatever you kept after refunds (for example, a cancellation fee). This is why a canceled booking's total drops: a fully refunded $300 booking shows a −$300 write-off and a $0 total; refunding $255 and keeping a $45 fee shows a −$255 write-off and a $45 total. (Previously labeled Cancellation Credit — same behavior. Despite the old name, this was never spendable customer credit: it is an accounting adjustment that writes the no-longer-owed amount off the booking's price.)

The result is that canceled bookings always settle to a $0 balance (or negative if a refund is still owed) — including deposit bookings, where the uncollected remainder is written off rather than left showing as debt. If you refund a canceled booking later (from the Payments tab or the Stripe Dashboard), the write-off tops up automatically so the booking stays settled.

Cancellation Fee

To charge a fee the customer still owes (a late-cancel or no-show fee that wasn't collected up front), enter a Cancellation Fee in the cancel dialog — or add a Cancellation Fee line item to the already-canceled booking. The fee is the one part of a canceled booking's total that is not forgiven:

  • The canceled booking carries a positive balance of fee − collected as a real receivable, and it appears in AR aging until paid.
  • Money already collected counts toward the fee first. A $100 deposit against a $250 fee leaves $150 owed — the preview in both dialogs shows exactly the balance that will be persisted.
  • There is no cap — the fee can exceed what was collected and even exceed the original booking total (e.g., a punitive no-show fee).
  • Collect the fee by charging the card on file, recording a manual payment, or sending an invoice — invoice pay links work on canceled bookings that carry a fee. Paying a fee invoice never un-cancels the booking: the "confirm on pay" option doesn't apply to canceled bookings, so the payment settles the fee and the booking stays canceled.
  • To waive a fee later, remove the Cancellation Fee line item; the balance reconciles back down automatically.
  • If the booking already carries a cancellation fee, adding another one asks for confirmation first — so a fee that looked like it failed can't be double-charged by accident. Confirming adds a genuinely separate second fee (e.g., damage on top of a no-show fee).
  • If the booking turns out to have been canceled by someone else while your cancel dialog was open, your fee is not applied silently — the dialog asks whether to still charge it to the already-canceled booking.
  • If the booking is reinstated (un-canceled), the fee is removed along with the credit — the customer owes the original booking total again.

If the booking has Trip Protection within its claim window, the cancel dialog suggests a $0 fee — covered customers aren't usually charged. The suggestion is only a suggestion; you control the final amount.

Invoices and cancellation

Canceling a booking closes its open invoices — an open invoice is a payment request for the trip, and the cancel ends the trip, so old emailed pay links stop working. Reinstating the booking reopens the invoices that cancel closed, and the original links work again (unless a fee invoice was issued in the meantime — then the older invoice stays closed and can be reissued if still owed). When you add a cancellation fee to a booking that still had an old open invoice from before the cancel, that stale invoice is closed too: send a fresh invoice for the fee amount instead of relying on the old link.

Refunding the Tip Portion

If the booking includes a tip, the refund dialog shows a separate Tip Refund picker with three options. The booking refund and tip refund are processed as one transaction (the customer sees a single credit), and only the booking-portion of the refund affects the booking balance — the tip portion is a giveback to the customer that does not increase booking debt.

OptionBehavior
FullRefund all remaining un-refunded tip on this booking.
Pro-rataRefund tip in proportion to the refund amount versus the original charge. A 50% refund returns 50% of the original tip, capped at the remaining un-refunded tip.
NoneRefund only the booking portion. The gratuity stays owed to staff.

When the dialog first opens, Resytech picks a smart default for you based on the current transaction refund type — Full when the transaction refund is set to Full, Pro-rata when it's Partial. Once you make any selection (including toggling the transaction type), your choice is respected and the default does not re-fire.

The Tip Refund picker only appears when the booking has un-refunded tip dollars left. Multiple partial refunds can be issued over time — Resytech tracks the running total and prevents over-refunding the tip.

Partial Refunds

For partial refunds, enter the specific amount to refund. This is useful for:

  • Removing a single line item from a multi-item booking
  • Applying a discount after the fact
  • Goodwill refunds (check Write off the refunded amount, see Balance Handling)
  • Cancellation policies that refund a percentage of the total

A single payment can be partially refunded multiple times until the full amount has been returned. The system tracks existing refunds for each payment and prevents over-refunding.

Chargeback & Dispute Management

When a customer files a chargeback with their bank:

  1. Resytech alerts you in the dashboard and marks the transaction as disputed
  2. Evidence is automatically gathered from multiple sources
  3. You can review and supplement the evidence
  4. The dispute response is submitted to Stripe

Automatic Evidence Collection

Resytech automatically compiles a comprehensive evidence document that includes:

Evidence CategoryDetails Collected
Customer InformationName, email, IP address, phone number
Booking DetailsConfirmation code, activity, date/time, location, status
Payment VerificationCVC check result, address verification, postal code check, 3D Secure status
Risk AssessmentStripe risk score (0--99), risk level, network status, outcome type
Waiver EvidenceSigned waivers with timestamps, signer IP addresses, and waiver names
Service DeliveryWhether service was delivered, delivery confirmation date
Billing AddressFull billing address from the payment method
Access Activity LogBooking creation time, IP address, booking source, browser fingerprint, user agent

Evidence Submission

The evidence is compiled into a PDF document and uploaded to Stripe as dispute evidence. The submission includes:

  • Service documentation -- The compiled evidence PDF
  • Receipt -- Attached as proof of the transaction
  • Customer communication -- Included if waiver submissions exist
  • Product description -- Activity name, date, time, location, and confirmation code
  • Uncategorized text -- Risk assessment details, security verification results, and waiver evidence

You can choose to submit immediately to the bank or stage for review before submission. Evidence files are retained for 60 days.

Resytech helps you respond to disputes quickly with pre-compiled evidence, improving your chances of winning the case.

On this page