When a payment lands in the wrong place β a duplicate card transaction, an overpayment, a course of treatment the client returned, an invoice the practice has decided to forgive β the money has to be unwound somewhere. Lupa gives you three distinct tools to do that cleanly: a refund sends money back to the client, a credit note reduces a balance without moving money, and a write-off clears a debt the practice has decided not to chase.
π‘ In short: Refund the payment when money has to go back to the client. Issue a credit note when an invoice needs to come down but no money moves. Issue a write-off when an unpaid debt is being forgiven and won't be recovered.
Why this matters
β οΈ Pick the right tool, don't just zero a balance. A refund moves real money. A credit note is a paper-trail adjustment that stays on the client's account. A write-off accepts a loss. Mixing these up β for example using a credit note to "refund" a card payment β leaves your bank reconciliation, your debtor list, and your VAT records all telling different stories. The right choice is rarely a matter of preference.
Benefit | What it does for the practice |
Clean books | Each tool maps to a specific accounting concept β refunds reduce cash, credit notes adjust receivables, write-offs reduce debtors. Your end-of-month figures stay accurate without manual cleanup |
Stock comes back when it should | Issuing a credit note against an invoice line for a stock-controlled product creates a reverse stock movement automatically β the unit goes back to its location, ready to dispense again |
A complete audit trail | Every refund, credit note, and write-off has its own reference, status, reason, and history. Auditors, partners, and the next staff member to read the file see exactly what happened and why |
Card refunds without leaving Lupa | For payments taken on a paired DOJO or Lupa Pay terminal, the refund instruction goes back to the card processor automatically β no separate trip to the terminal portal |
Permission-aware | Refunds, write-offs, and each type of credit note (invoice, goodwill) are gated by separate permissions, so reception staff can take payments while only managers can write off debts |
Which one do I use?
Scenario | Use | Why |
Client paid twice for the same invoice | Refund | Money needs to go back to them. Reason: Overpayment |
Card was charged in error before the appointment was confirmed | Refund | The transaction shouldn't have happened. Reason: Sold in Error |
Client returned an unopened box of medication | Credit Note (invoice) | Reduces the invoice line and restocks the product, ready to dispense to someone else |
Goodwill gesture for a complaint β Β£25 off their next visit | Credit Note (goodwill) | Sits on the account as available credit, applied to a future invoice. No specific invoice to attach it to |
Client has owed Β£80 for 18 months and won't respond | Write-off | The debt is real but unrecoverable. Removes the outstanding balance and records a bad-debt entry |
Client wants to "cancel" a payment you took 5 minutes ago | Refund | Payments can't be edited or deleted once created. Refund reverses the transaction cleanly |
You issued an invoice with the wrong client / wrong items | Credit Note (invoice) + new invoice | Reverses the original invoice in full, then re-bill correctly. Don't try to edit a completed invoice |
The client's Transactions tab β net balance, credits and debts at a glance, with refunds, credit notes and write-offs all triggered from here
π All three actions live on the client's Transactions tab. Refunds and write-offs are also available from individual rows via the β― kebab menu, and credit notes can be issued directly from the invoice page.
How to issue a refund
A refund reverses money the client has already paid β fully or partially. It's tied to a specific payment record, and for card refunds Lupa instructs the original card processor (DOJO, Lupa Pay) to send the money back to the client's card.
Step 1: Open the Add Refund dialog
There are two natural starting points:
Where you are | What to click |
Client profile β Transactions tab | Tick the payment (or credit note) you're refunding, then click Add Refund at the top of the table. Use this when you're refunding a single payment in isolation |
On a payment row directly | Click the β― kebab on the payment row β Refund Payment (or Refund Credit Note for a credit note). Faster when you already know the row you want |
The Add Refund option only shows up when the selected item has an available balance to refund β a fully-allocated payment (already used to clear an invoice) can't be refunded directly. If the option is greyed out, the tooltip will tell you why. To refund a invoice, you must first remove the allocation to that invoice and leave the payment as floating credit on the account. You will then be able to tick it and the "add refund" button will appear.
Step 2: Pick the reason and the source payment
The Add Refund dialog with Date, Reason and Select Payment populated, the Items to Refund table showing the Β£150 payment to refund in full, and a short note explaining why The dialog opens with these fields:
Field | What it does |
Date | Defaults to today. Backdating into a financially locked period is blocked β see the related article on cashups and financial locking |
Reason | Pick from Sold in Error, Goods Not Collected by Client, Goods Not Received by Client, Overpayment, or Unknown. The reason flows through to the refund's audit trail and PDF receipt |
Select Payment | Lists every completed payment for this client, newest first, with the amount still available to refund. Pick the one the client originally used |
Items to Refund | Editable amounts per item. Lower the Amount to Refund for a partial refund; leave at full for a complete reversal. The Total Refund at the bottom recalculates as you change each line |
Notes | Optional internal note. Useful for context the next person reading the file will need ("processed in person; client took receipt") |
Step 3: Choose how the money goes back
By default the refund uses the same method as the original payment, shown in the Override default refund payment method label. Toggle it on if you need to send the money back a different way β for example, the original payment was on a card terminal that's no longer paired, and you'd rather hand cash back at reception.
Refund method | How it works |
Cash, Cheque, Bank Transfer, Other | Lupa records the refund instantly. You handle the actual money movement separately (handing over cash, posting a cheque, sending the bank transfer) |
DOJO or Lupa Pay terminal | Lupa sends the refund instruction to the terminal, the device processes it, and the result comes back to the dialog. Don't close the dialog while it's processing |
Lupa Pay online | Refund flows back through the original online transaction. Partial refunds aren't supported β the refund must equal the full payment amount |
Stripe (legacy) | Lupa records the refund, but you must complete the actual transfer in the Stripe portal. The dialog shows a notice reminding you of this |
π Don't close the dialog while a card refund is processing. The terminal or online provider may still be working β closing early can leave the refund in an inconsistent state. Wait for the Refund completed confirmation before navigating away.
Step 4: Create the refund
Click Create Refund. For manual methods this finishes immediately with a Refund created successfully. For card methods, the dialog shows Processing refundβ¦ with the message "This may take 1β2 minutes" β Lupa is talking to the card processor and waiting for the result.
The refund opens in its own detail page once complete. At the top, a coloured status indicator shows the refund's current state β green for completed, amber for pending, red for cancelled. The page also has Cancel Refund, Download PDF and Send Email buttons for the receipt.
Payment confirmation emails can also be sent β or reviewed β directly from the payment row on an invoice. Next to each completed payment you'll see a mail icon:
If no confirmation has been sent yet, clicking it opens the email editor pre-loaded with the payment details and a Payment Confirmation subject, ready to send to the client.
If a confirmation has already been sent, clicking the same icon opens the Email Details pop-up showing the sent message.
β οΈ A completed refund is final. Manual refunds (cash, bank transfer, cheque) can be cancelled from the refund detail page if the refund hasn't been allocated yet β that voids the record. This applies even if the original payment has since been voided. Card refunds initiated through DOJO, Lupa Pay or Stripe can't be cancelled in Lupa once the processor confirms them; the money has already started moving.
How to issue a credit note
A credit note reduces a balance without moving any money. It comes in two flavours you can create manually, plus one that Lupa generates automatically:
Type | When to use it |
Invoice | Linked to a specific completed invoice. Use when the client returns a product, you cancel a service after invoicing, or a line was charged in error. Issuing an invoice credit note for a stock-controlled product also reverses the stock movement automatically β the unit goes back to its location |
Goodwill | A discretionary credit not tied to any specific invoice. Use for complaint resolution, loyalty gestures, or partial-discount adjustments after the fact. Sits on the client's account and applies to future invoices |
Early payment | Generated automatically by Lupa when an early-payment discount is applied across multiple invoices. You won't create these manually β they appear on the client's account and their PDF groups line items under each source invoice number (Invoice #) so you can see exactly which charges were adjusted |
Step 1: Open the Create Credit Note dialog
Credit note type | Where to start |
Invoice credit note | Open the invoice you're crediting. Click the βΎ chevron next to the Add Payment button β Issue Credit Note. Or, on the Transactions tab, click the β― kebab on the invoice row β Issue Credit Note |
Goodwill credit note | From the client's Transactions tab, choose Issue Credit Note in the table action menu. Pick Goodwill credit as the type |
Step 2: Pick the reason and add notes
The Create Credit Note dialog β Reason set to Dissatisfied Client, with a short note describing what was returned and why. Create Credit Note finalises it The reason list adapts to the credit note type:
Type | Reasons available |
Invoice | Dissatisfied Client, Goods Damaged, Goods Not Collected by Client, Goods Not Required by Client, Medication Not Suitable, Sold in Error |
Goodwill | Dissatisfied Client, Store Incentive Scheme, Sold in Error |
The Notes field is optional but worth using β credit notes are easy to forget the context for once a few months pass.
Step 3: Set the amount and issue
For an invoice credit note, you set the credit amount per line item β partial credit one product, full credit another. The dialog calculates the total automatically as you type. For a goodwill credit note, you set a single total amount. Click Create Credit Note to save it as a draft, then Issue to commit it. On issue:
The client's account balance updates to reflect the new credit
For an invoice credit note, Lupa allocates as much of the credit as it can to the original invoice automatically
For stock-controlled product lines, a reverse Stock Movement is created β the units come back to their original location and become dispensable again
The credit note transitions from Draft to Issued, gets a transaction reference, and locks for further editing (only the notes can still be changed)
β οΈ Issued credit notes can be voided, not edited. If you issued a credit note in error, void it (status dropdown β Void) and start a new one. Voiding undoes the balance change but leaves the audit record visible. Like refunds, voiding inside a financially locked period is blocked β see the related article on cashups.
How to issue a write-off
A write-off says "we're not collecting this debt." It's used for genuinely uncollectable balances β a client who's moved away with no contact details, a small balance that costs more to chase than it's worth, an invoice abandoned after multiple reminders. Write-offs only apply to completed invoices with an outstanding balance (debts).
Step 1: Open the Create Write-off dialog
Where you are | What to click |
Client profile β Transactions tab (one debt at a time) | Click the β― kebab on the unpaid invoice row β Issue Write-off. The option is disabled with a tooltip if the row has no negative balance |
Client profile β Transactions tab (multiple debts) | Tick every unpaid invoice you want to write off, click the β― options dropdown next to the action buttons β Issue Write-off. The dialog walks you through them one by one |
Step 2: Review the debt and acknowledge any warnings
The Create Write-off dialog β items list on the left, full invoice context on the right showing Invoice Number, Invoice Date, Due Date, Original Invoice Amount and Amount Paid, with the Write-off amount highlighted and a Notes field at the bottom The left column lists every item you're writing off with its due amount; the right column drills into the currently-selected one. The 0 of 1 items written off counter at the bottom tracks progress when you're writing off several at once. If any of the debts are less than six months old, the dialog shows an amber alert: Writing off recent debt β Some debt being written off is only X months old. Please double-check whether this debt should be written off. This isn't a hard block, but it's a deliberate prompt to pause β recent debt is more often a billing error or follow-up needed than a true bad-debt write-off. Read the warning, confirm you really want to proceed, and continue.
Step 3: Add notes and issue
Each write-off needs a short note explaining the rationale. Practices typically use this to record the recovery steps tried β "two reminders sent, one phone call, no response" β so the audit trail has a story attached. Click Create Write-off. The result page lists the line-by-line breakdown, including the VAT split (Net, VAT and Total amounts). For multiple debts, the dialog moves to the next item once the current one succeeds, with a green tick on the completed item and a Next item button to continue.
β οΈ Write-offs are atomic but not reversible by editing. Once issued, the invoice's outstanding balance is zero and the debt is recorded as bad. If you issued a write-off in error you can void it (status dropdown β Void) β the balance returns and the original debt re-appears. You can't simply edit a write-off after the fact.
Tips for clean reversals
β What practices that run Lupa well do every day:
Always pick a real reason. "Unknown" exists for migrated data β for new transactions, the specific reason becomes the audit trail. Future-you will thank present-you
Refund to the original method when you can. It keeps the bank reconciliation simple and avoids a card payment in the books with cash going out the same day
For returned products, use an invoice credit note β not a goodwill one. The invoice credit note triggers the stock restock; goodwill doesn't, so your inventory drifts
Write off in batches at month-end, not ad-hoc. Practices that run a monthly debtor review tend to have cleaner debtor reports than those that write off whenever the topic comes up
Add a note when you write off. "Two reminders sent, no response β agreed with practice manager" beats a blank field every time
Don't refund a payment that's already been allocated to an invoice. Edit the allocation off the invoice first (transactions tab β kebab β Edit Allocations), then refund the payment. Otherwise the invoice flips back to outstanding without you noticing
Troubleshooting
Problem | What to do |
Add Refund is greyed out on a payment row | The payment has no available balance to refund β it's fully allocated to invoices, or already refunded. Edit allocations off an invoice first, or pick a different payment. The tooltip will say "No balance to refund" or similar |
Issue Credit Note is missing on the invoice page | The invoice is still in Draft state, or the linked appointment hasn't been completed. Credit notes are only available on Completed invoices β finalise the invoice first, then come back |
Issue Write-off is disabled in the kebab menu | The row isn't a debt β outstanding balance is zero or positive. You can't write off something that isn't owed. If it's a refund or credit note in error, void it instead from the detail page |
The card refund is stuck on Processing refundβ¦ | Don't close the dialog. The processor can take 1β2 minutes. If it never completes, the refund will move to Cancelled automatically and you can retry. Check the terminal screen if you're using DOJO or Lupa Pay |
The amber Writing off recent debt warning appears | This is a soft prompt β the debt is less than six months old. Check whether it's truly bad debt or just an in-progress collection, then continue if appropriate |
The error Cannot create write-off: All items must have a negative balance appears | One of the selected rows isn't a debt. Untick it and try again β the dialog requires every selected item to have an outstanding balance |
The action is disabled with a tooltip mentioning a financial lock | The transaction date falls inside a closed cashup or month-end period. Pick today's date instead, or speak to whoever owns financial locking for the practice. See the related cashups article |
The button is disabled and the tooltip says You are not permitted⦠| Refunds, write-offs, and each credit note type are gated by separate permissions. Ask an administrator to grant the relevant permission via Roles and permissions |
Frequently asked questions
What's the difference between a credit note and a refund? A refund moves money out of the practice and back to the client β cash, card, bank transfer. A credit note doesn't move any money; it just reduces an invoice or adds available credit to the client's account. If the client says "I want my money back" you need a refund. If they say "can you take this off my bill" or "use it for my next visit" you need a credit note.
Can I refund part of a payment, or does it have to be the full amount? Most refund methods support partial refunds β leave the Amount to Refund lower than the original. The exception is Lupa Pay online: partial refunds aren't supported by the underlying provider, so the refund must equal the full original payment amount. The dialog will show a notice if this applies.
Will issuing a credit note on a returned product put the stock back? Yes β but only if it's an invoice credit note linked to that product line, and the product is stock-controlled. Lupa creates a reverse Invoice Sale Reversal stock movement automatically when the credit note is issued, restocking the units to their original location. Goodwill credit notes don't restock anything because they're not tied to specific items.
Can I undo a write-off if I sent it in error? Yes β open the write-off detail page and change the status from Issued to Void in the status dropdown. The original debt comes back to the client's account exactly as it was, and the write-off record stays visible in the audit trail as voided. You'll need the Void Write-offs permission to do this.
Why can't I edit the items on an issued credit note? Once a credit note is issued, the line items, amounts, and allocations are locked β only the notes field stays editable. This protects the financial record from drift after it's been counted in reports or shared with the client. To make a substantive change, void the credit note and issue a new one.
The client paid by card and now wants the money back as cash. Can I do that? Yes, but be deliberate. In the refund dialog, toggle Override default refund payment method and choose Cash. Lupa records the refund as cash; you hand the money over from the till. Be aware that your bank reconciliation will show a card payment with no matching card refund β record the rationale in the Notes field so the next person reviewing the books understands why.
Do refunds and credit notes show up on the client's statement? Yes. The client's statement (generated from the Transactions tab) includes every payment, refund, credit note, and write-off as a separate line, with its own transaction reference and date. Both the running balance and the period totals reflect them.
Who needs which permission to do these? Refunds require Refunds permission. Invoice credit notes and goodwill credit notes each have their own permission so you can grant them separately. Write-offs require Write Offs permission. Voiding any of these requires the matching Void permission. See the Roles and permissions article for how these are configured.
Related articles




