Skip to main content

Statement invoice refunds

Overview

Statement Invoice Refunds allow your staff to process refunds and corrections on statement invoices — the consolidated billing documents generated from house account activity. Previously, once a statement invoice was paid and closed, there was no way to reverse or correct it within the system. This feature enables same-day resolution of billing disputes directly from the front desk or mobile device.

There are three actions available:

  • Invoice Refund: Refund a closed statement invoice (full or partial) to the original payment method, cash, or the guest's wallet balance.

  • Transaction Refund: Refund a specific payment transaction within a statement invoice, returning funds to the same payment method used for that transaction.

  • Invoice Reopen: Reopen a closed statement invoice to change the payment method used, without modifying any charges on the invoice.

All three actions require a new role permission and can only be performed before the statement's due date.

Required permissions

Before any staff member can process statement invoice refunds, an Organization Admin must enable the new permission.

  1. At the organization level, navigate to Configurations > Security > Security Roles & Permissions.

  2. Select the role you want to grant refund access to (e.g., "Front Desk Manager," "Billing Staff").

  3. Scroll to the Billing permission category.

  4. Locate the "Statement Invoice Refund" permission.

  5. Toggle the switch to ON.

  6. Click Save.

Considerations
  • This permission is OFF by default for all existing roles. You must explicitly enable it.

  • This is a separate permission from the existing "Invoice Refund" permission. Granting one does not grant the other.

  • This single permission covers all three actions: Invoice Refund, Transaction Refund, and Invoice Reopen for statement invoices.

  • Once granted, the staff member can refund up to the full invoice amount — there is no per-transaction approval threshold.

  • The permission only applies to Web POS (Admin) and the Staff Mobile App (ZMA). Refund actions are never available on the Guest Mobile App or Webstore.

Process an invoice refund on Web POS

Use Invoice Refund when you need to refund a fully paid and closed statement invoice — for example, to resolve a billing dispute or correct an overcharge.

Prerequisites
  • You have the "Statement Invoice Refund" permission enabled for your role.

  • The statement invoice status is Closed (fully paid).

  • The invoice belongs to the current statement and the statement's due date has not passed.

  • There is no pending autopay scheduled for the invoice.

To process the invoice refund:

  1. Navigate to the Guest Profile > House Account > Statements.

  2. Locate the current statement and click on the specific closed invoice to open the Invoice Detail View.

  3. Click the "Refund Invoice" button (the primary action on the split button).

  4. In the refund dialog that opens:

    • Refund Amount: The full paid amount is pre-filled. Adjust to a lower amount for a partial refund. The refund amount cannot exceed the total paid amount.

    • Payment Method Breakdown (if the invoice was paid with multiple methods): Allocate the refund amount across payment methods. The refund per method cannot exceed the amount originally paid via that method.

    • Refund To: Select the refund destination:

      • Original Payment Method (default): Returns funds to the card or method used to pay.

      • Cash: Records a cash refund.

      • Wallet Balance: Loads the refund amount to the guest's wallet. Note: This option will create a new entry on the Guest Statement report.

    • Reason (Optional): Enter a reason for the refund for audit trail purposes (up to 500 characters).

  5. Click "Process Refund".

  6. Review the confirmation dialog and click "Confirm Refund".

  7. On success, the invoice status changes to "Refunded" and a Refund Details section appears on the invoice showing the amount, date, destination, reason, and linked counter-entry invoice.

Important

If the Original Payment Method Is Invalid

If the original card is expired or has been removed, the "Original Payment Method" option will be disabled, and a warning message will appear. Select Cash or Wallet Balance as an alternative.

Process a transaction refund on Web POS

Prerequisites
  • You have the "Statement Invoice Refund" permission enabled.

  • The invoice has at least one completed payment transaction.

  • The invoice belongs to the current statement and the due date has not passed.

Use Transaction Refund when you need to reverse a specific payment on a statement invoice. This is the only refund option available for partially paid invoices (where the invoice is still Open but has some completed payments).

  1. Open the statement invoice in the Invoice Detail View.

  2. Click the dropdown arrow on the split button and select "Transaction Refund".

  3. A dialog opens listing all payment transactions on the invoice, showing the date, payment method, amount, and status for each.

  4. Click "Refund" next to the transaction you want to reverse.

    • Important: Process refunds in the same order payments were applied. If you need to refund a later transaction, you must first refund the earlier one(s).

  5. Enter the refund amount (defaults to the full transaction amount; adjust for a partial refund). The amount cannot exceed the original transaction amount.

  6. Click "Process". The refund is returned to the same payment method used for that transaction — there is no destination choice.

  7. The transaction status updates to "Refunded" (or "Partially Refunded"). If all transactions on the invoice are fully refunded, the invoice status automatically changes to "Refunded."

Important

Key Rule: The refund amount per payment method cannot exceed the amount originally paid via that method. This existing system rule applies without exception.

Reopen a statement invoice from Web POS

Prerequisites
  • Same as Invoice Refund: Closed invoice, current statement, before due date, no pending autopay.

Use Invoice Reopen when the payment method recorded on a closed statement invoice is incorrect — for example, if a charge was applied to the wrong card and should have been cash.

  1. Open the statement invoice in the Invoice Detail View.

  2. Click the dropdown arrow on the split button and select "Reopen Invoice".

  3. Confirm the action in the dialog. The invoice status changes to "Open".

  4. Click "Change Payment Method" to select the correct payment method from the available options (saved cards, cash, new card, or wallet balance).

  5. Click "Collect Payment" to re-close the invoice with the corrected payment method.

Important

  • Only the payment method can be changed on a reopened invoice. All statement line items (charges, amounts, descriptions) are locked and cannot be edited.

  • A reopened invoice remains "Open" until you collect payment again — there is no automatic timeout.

Process refunds on the Zenoti Mobile App (ZMA)

All three actions (Invoice Refund, Transaction Refund, and Invoice Reopen) are also available on the Staff Mobile App (ZMA) with the same permission and eligibility requirements.

  1. Open the guest profile in ZMA and navigate to Billing / House Account.

  2. Tap on the current statement, then tap on the specific invoice.

  3. Tap the "Refund" button at the bottom of the screen.

  4. From the menu that slides up, select "Invoice Refund", "Reopen Invoice", or "Transaction Refund".

  5. Follow the same steps as the Web POS flow — the form fields, validation rules, and confirmation steps are identical, adapted for the mobile layout.

Data visibility and impact

What Guests See (Zenoti Mobile App & Webstore)

Guests cannot process refunds from the Guest Mobile App (CMA) or Webstore. However, when a statement invoice has been refunded via Invoice Refund, guests can see the following read-only information on the invoice detail:

  • Refund Amount

  • Refund Date and Time

  • Refund Method (e.g., "Wallet Balance," "Visa •••• 4242," or "Cash")

The invoice status displays as "Refunded."

Note: Transaction Refund details are not displayed on guest-facing channels — only Invoice Refund information is shown.

When Refunds Are Blocked

Refund and reopen actions are automatically blocked in the following scenarios. When blocked, the refund button is disabled, and a tooltip explains why.

Scenario

Result

Statement due date has passed 

All refund/reopen actions blocked 

Autopay is pending or scheduled for the invoice 

All refund/reopen actions blocked 

Invoice has already been refunded 

No refund button shown; refund details displayed instead 

Invoice is Open (not fully paid) 

Only Transaction Refund is available (for the paid portion) 

User does not have the "Statement Invoice Refund" permission 

No refund options are visible 

The due date is inclusive — refunds can be processed on the due date itself but are blocked starting the following day. Your organization's configured timezone is used for this calculation.

Impact on Reports

Statements Report
  • A new invoice status value "Refunded" is available alongside "Open" and "Closed."

  • You can filter the Statements Report by "Refunded" to view all refunded statement invoices.

  • Refunded invoices display with the "Refunded" status and the date the refund was processed.

Guest Statement Report
  • The Guest Statement is affected only when a refund is loaded to the guest's wallet balance. In this case, a credit entry appears on the Guest Statement with the statement name and refund date as reference.

  • Refunds to the original payment method or cash do not create any entry on the Guest Statement, because the money exits the system entirely rather than being added to the guest's internal balance.

  • If multiple refunds are loaded to the wallet from different invoices, each appears as a separate line item with its own metadata.

How Records Are Preserved

When a refund is processed, the original invoice is never modified or deleted. Instead, the system creates a counter-entry invoice — a new invoice with a negative amount that is linked to the original. This approach:

  • Preserves the complete audit trail for every transaction.

  • Keeps the original statement's closing balance unchanged (the counter-entry appears as an adjustment line item).

  • Carries any remaining unpaid balance forward to the next statement as pending dues.

Every refund operation is logged with the staff member's identity, timestamp, refund amount, destination method, and reason (if provided).

Frequently asked questions

  • Can I refund a statement invoice after the due date has passed?

    No. Refunds are completely blocked once the statement due date has passed. There is no override or grace period.

  • What's the difference between Invoice Refund and Transaction Refund?

    Invoice Refund is for fully closed invoices and lets you choose where the money goes (original method, cash, or wallet). Transaction Refund targets a specific payment and always returns money to the same payment method used — it's also the only option available for partially paid invoices.

  • Does this permission affect my existing invoice refund capability?

    No. The new "Statement Invoice Refund" permission is completely independent from the existing "Invoice Refund" permission. They do not affect each other.

  • Why does refunding to wallet affect the Guest Statement but refunding to the original card does not?

    When you load a refund to the wallet, you're adding credit to the guest's internal house account balance — which the Guest Statement tracks. When you refund to an external payment method or cash, the money leaves the system entirely and doesn't create a new balance entry on the house account.

  • Can I refund more than what was paid?

    No. The refund amount cannot exceed the total paid amount on the invoice. For split payments, the refund per payment method cannot exceed the amount originally paid via that method.

  • What happens if I reopen an invoice but don't re-close it?

    The invoice remains in "Open" status indefinitely. There is no automatic timeout. You can collect payment with the corrected method whenever ready, or process a transaction refund on any existing payments.

  • Can guests request refunds from their app or the website?

    No. Refund actions are only available to staff on Web POS and the Staff Mobile App. Guests can only view refund information in read-only mode.