Refund all or part of a completed invoice payment while keeping the invoice balance, client history, deposit balance, and connected accounting records accurate.
Before you begin
The invoice must be issued and have a completed payment with money still available to refund.
A refund belongs to one specific payment. If an invoice has several payments, choose the payment that originally received the money.
You can issue a full or partial refund, but the amount cannot exceed that payment's remaining refundable amount.
A Stripe refund moves real money. A refund of a manual or offline payment records the accounting change but does not send money to the client.
Issue the refund
Open Money → Invoices and select the invoice.
In Payments & refunds, open the actions menu for the completed payment.
Select Issue refund.
Enter the amount and effective date.
Choose Requested by customer, Duplicate payment, Fraudulent payment, or Other, then add an optional memo.
Review the notice in the dialog. Select Issue Stripe refund for a Stripe payment or Record refund for another payment type.
Refunds stay beside the original payment so the invoice retains a complete transaction history.
Understand what changes in Moxie
The original payment remains in the history. Moxie adds a separate negative refund row with its amount, date, reason, memo, provider, and status.
The invoice shows the gross payments, refunded total, and recalculated amount due.
A partial refund can return the invoice to an outstanding state. When all collected money has been refunded, the invoice can move to Refunded and its payment reminders stop.
If the invoice collected a deposit, a successful refund also reduces the client's available deposit balance by the applicable deposit amount.
You can refund the same payment more than once until its remaining refundable amount reaches zero.
How connected Stripe refunds work
For a payment collected through connected Stripe, Moxie submits the refund against the original charge or PaymentIntent and returns the money to the original payment method. The refund can appear as Requested or Pending while Stripe processes it. Moxie refreshes the invoice as Stripe reports the final result.
Once Stripe has created the refund, it cannot be canceled or reversed from Moxie. A Cancel refund request action is available only during the short requested state before Stripe creates the refund. If a refund is initiated directly in Stripe, Moxie uses Stripe's event to reconcile it back to the matching invoice and payment.
How manual and offline refunds work
Refunding a check, cash, bank-transfer, or other manually recorded payment updates Moxie immediately, but it does not move money. Return the funds through the appropriate bank or payment method yourself. If the refund was entered incorrectly, its actions menu can delete it; Moxie recalculates the invoice and removes the connected accounting refund.
How QuickBooks and Xero stay synchronized
When the original invoice is connected to accounting, Moxie exports a refund only after the refund succeeds:
QuickBooks Online: Moxie creates a customer Refund Receipt in the invoice currency. The refund date, memo, tax portion, exchange rate, and configured deposit account are carried over when applicable.
Xero: Moxie creates an authorized accounts-receivable credit note and records its cash refund through the configured clearing account. The refund date, currency, reference, tax portion, and sales account are carried over when applicable.
Pending and failed Stripe refunds are not exported. If a tax rate is not mapped or the accounting service rejects the transaction, the Moxie refund remains recorded and the workspace owner receives an integration error notification. Correct the integration setup before reconciling the accounting record.
Troubleshooting
Issue refund is missing: confirm that the invoice is issued, the selected payment completed successfully, and that payment still has a refundable balance.
The Stripe refund is still pending: review the refund in Stripe and refresh the invoice. Do not submit the same refund again while its outcome is uncertain.
The refund failed: open the refund row for Stripe's failure detail, correct the underlying Stripe issue, and confirm the payment's remaining refundable amount before trying again.
The accounting badge is missing: confirm the invoice was already synchronized and review Connect bank and accounting data for account and tax mappings.
Related articles
Continue exploring Money

