Invoices, Payments and Refunds
Work the Billing hub — invoice buckets, payment statuses, refund rules, the penalty-fee review queue and deposit tracking.
The Billing hub (Operations → Billing) pulls your facility's money into three tabs: Invoices, Payments and Fees. Managers and above can see it; only Admins can issue refunds.
The Payments tab
Every payment your facility takes lands here. Use the filter row — "Show me [status] for [period]" — plus the search box (customer, pet or payment reference) to narrow the list.
Status pills:
- Pending — awaiting capture or settlement
- Processing — in flight with the provider
- Paid — captured successfully
- Failed — the charge didn't go through
- Refunded — fully returned to the customer
- Refund pending — a refund is committed but not yet confirmed by the provider
- Refund failed — the refund attempt failed; the original charge still stands
- Reversed — a counter payment that was recorded by mistake and reversed; it stays on the list for the record but never counts as money
Three summary cards sit above the list — Payments collected (net cash: payments received minus refunds, including penalty fees), Completed Payments and Pending Payments. Click a card to filter the list; click again to clear. The cards honour whatever period and search you have active.
Each row shows the date, the pet (with its location, linking through to the booking), how the payment was taken, the amount and the status. The method reads Cash, EFTPOS, Bank transfer or Other for counter payments and Stripe or Square for card payments; any bank reference or receipt number staff typed sits under it, and the search box finds it. A partly refunded payment shows how much has been refunded under the amount. Payments against a consolidated invoice (no booking attached) show the invoice number instead.
At the bottom of the tab you'll find Recent Credit Notes and Recent Overpayments panels — the latest handful for each, with the customer, amount and date.
The Invoices tab
Invoices are triaged into buckets, each with an exact count on the pill:
- Overdue — owing and past its due date; chase these first
- Awaiting payment — owing but not yet overdue (sent or part-paid)
- Paid, Draft and Void — by status
- All invoices — everything, newest first
The period filter can run on issue date or due date — switch the basis in the date dropdown when you're reconciling what's due in a window rather than what was raised in it. Search works across invoice number, customer name and pet name.
Three cards summarise the money: Outstanding (the unpaid balance across every owing invoice — a live figure that ignores the period filter), Overdue (the slice of outstanding that's past due — decided by the due date itself, not a status flag) and Collected (cash applied to paid invoices within the selected period). Overdue and awaiting sort oldest-due first so the most urgent invoices sit on top.
Voiding an invoice
Void an invoice that was raised in error or needs to be issued again — for example, before you reschedule a booking to dates that change its price. Select Void on the booking's invoice card. Admins can void invoices by default.
- Only an invoice with no money collected can be voided: a draft, sent or overdue invoice with nothing paid. A paid or part-paid invoice, or one with a payment or refund still in progress, can't be voided — refund the payment or issue a credit note instead.
- The same goes for the bookings on it: if any of them has been paid for (online, at the counter or by deposit) or has a payment, refund or checkout still open, the invoice can't be voided.
- The voided invoice stays under Void on the Invoices tab exactly as it was issued, with the same lines and total, for your records.
- Every booking on the voided invoice is released from it. Each one counts as uninvoiced again and can go on a new invoice: select Generate Invoice on the booking's invoice card, or combine it with other bookings on a consolidated invoice.
Who voided the invoice, when, and which bookings it released are kept in the audit log.
Recording counter money
Cash, your own EFTPOS terminal, bank transfers and anything else taken outside Stripe or Square are recorded by staff and land in the payment ledger as counter payments. Three places record them:
- Mark Paid on a booking's invoice card settles the whole outstanding balance.
- Record part payment on the same card records an amount towards the balance.
- Record offline payment on the Deposit card records the booking's deposit. A counter deposit credits the booking's invoice, so a later Mark Paid only collects the remainder. If the invoice's remaining balance is already smaller than the deposit, the deposit is refused — record a part payment for the balance instead.
Every one of them asks how the money was taken — cash, EFTPOS, bank transfer or other — and there is no way to record counter money without a method. The record also keeps who recorded it, which location took it and the date it was received.
On Mark Paid and Record offline payment the date defaults to today in the facility's timezone; a bank transfer that arrived earlier can be back-dated up to 31 days, never into the future. Bank transfers and "other" can also carry a reference there (the bank reference or receipt number). Record part payment asks for the amount and the method only — it is recorded as received today, with no reference. To back-date a bank transfer or keep its reference, use Mark Paid for the full balance.
Two guards stop a card sale being counted twice at the counter: a counter record is refused while a card-terminal checkout is still in progress for the booking (you can override it with a reason if the terminal has failed), and refused when a card payment already covers the amount.
Managers and above can record counter money by default; an owner can grant it to front-desk staff for a location through a custom role.
Correcting counter money
Counter payments are never edited or deleted. There are two ways to correct one, and they mean different things — pick the one that matches what actually happened. Both live on the payment's row in the Payments tab, and only Admins see them by default.
Reverse — the payment was recorded by mistake
Use Reverse when no money changed hands: the payment was keyed twice, recorded against the wrong invoice, or recorded as paid when it wasn't.
- Find the payment on the Payments tab and select Reverse.
- Give a reason (at least five characters) — it is kept with the payment.
- Confirm.
The payment stays on the list marked Reversed (hover the badge to see the reason), and who reversed it and when are kept with the payment. It stops counting as money everywhere: totals, the day's takings and Xero. The invoice balance opens up again — a fully paid invoice goes back to part-paid, or to sent (overdue if it is past its due date) when nothing else has been paid — and the booking's paid and deposit flags follow. The customer is not emailed.
A payment can't be reversed when:
- money has already been handed back on it — record a counter refund for the rest instead;
- it has already been posted to Xero — record a counter refund instead, so your books show the money going back out;
- it went through Stripe or Square — card payments are refunded through the provider.
Record counter refund — you handed money back
Use Record counter refund when you actually gave money back at the desk — cash out of the drawer, a refund on your own EFTPOS terminal, or a bank transfer back to the customer.
- Find the payment on the Payments tab and select Record counter refund.
- Enter the amount you handed back. It can be part of the payment; it can't be more than is still held on it.
- Choose how the money went back — this can differ from how it came in (for example, paid by cash and refunded to their card on your EFTPOS terminal).
- Give a reason. Both the method and the reason are required, and you are recorded as the person who issued the refund.
- Confirm.
This records the refund; it does not move any money itself, so hand the money over first. The refund shows under the payment ("$20.00 refunded"), a refund of the whole amount marks the payment Refunded, and the invoice balance and the customer's credit note update. The customer gets the usual refund email. If your Xero connection maps a clearing account per counter method, the refund is booked to the account for the method the money went back by. Pressing the button twice, or retrying after a dropped connection, never records the refund twice — the form can't be closed while a refund is being recorded, and if the refund had already gone through it tells you so instead of recording it again.
Taking a reschedule difference in person
For a move to a dearer time, managers and above who manage both locations can take just the difference from the booking page. The original booking stays in place until the payment and the new time are confirmed.
Before a payment link has been created, use Take the reschedule difference in person. For Stripe, select a card reader at the new time's location and choose Charge on reader. Wagday charges the displayed difference, including GST. Sending the charge to the reader does not mean the booking has moved. Wait for capture and the booking confirmation. If setup is uncertain, retry the same reader charge; do not collect another payment.
For cash or an EFTPOS payment taken outside Wagday, choose Payment already received, then Record in-person payment. Confirm only money you have actually received. Wagday records the difference and moves the booking together. If the new time no longer passes its checks, neither is recorded. Return the money or agree another time with the customer before trying again.
A payment link or reader charge already created for this move must be resolved before changing how you take payment. Do not use the ordinary booking payment controls to record the difference. Square Terminal settlement is supported, but starting a Square reader charge for a reschedule from this page is still to come.
Cash and external EFTPOS recordings also respect the location's settle-up day lock. Reopen a closed business day before recording money into it.
Credit when moving to a lower price
A cheaper reschedule credits the reduction against the invoice. Any refundable money goes back to the original payment method by default. Managers can record the customer's explicit request to keep that money as account credit from the Reschedule dialog or when approving a change request. The choice is never selected automatically.
When account credit is selected, the move and credit note are saved together, with who recorded the customer's request, when and how much was retained. No refund is sent for that credit. This choice is for a new move only; it cannot stop an existing refund. See Approving a change of time.
Refunds
Only Admins can refund a payment.
To refund a booking payment:
- Open the booking and select Initiate Refund.
- Enter the amount — the full payment or a partial amount — and optionally a reason.
- Confirm. The money goes back through the original provider (Stripe or Square).
The rules that apply:
- The Initiate Refund button refunds online card payments through Stripe or Square. Cash, EFTPOS, bank transfer and other counter payments have no card to refund — record the money you hand back with Record counter refund on the Payments tab (see Correcting counter money).
- Partial refunds are supported on booking payments. A partial refund leaves the payment marked Paid; a full refund flips it to Refunded.
- Payments on consolidated invoices are refunded from the Payments tab and are full amount only — partial refunds aren't supported there.
- Watch the Refund pending and Refund failed statuses: pending means the refund is in flight, failed means the attempt didn't complete and the charge still stands — retry it or reconcile manually.
Card payments that arrive after a booking is cancelled
If a customer pays for a booking that has already been cancelled — for example they tap their card on a Square Terminal just after staff cancelled the booking, or they finish an online Square payment link from an old email — Wagday records the payment and then refunds it automatically, one refund per card payment. The refund goes back through Square, and the booking's invoice is left exactly as it was, because that money never counted towards it. You'll see the payment on the booking marked Refunded (or Refund pending while Square processes it). If the refund can't be issued straight away, Wagday keeps retrying it and flags it to Wagday support if it stays stuck.
Cancelling a booking also asks Square to cancel a Terminal charge that's still waiting on the reader, so the customer can't pay it by mistake. If the customer taps their card before the cancellation reaches the reader, Square completes the payment first, and Wagday refunds it automatically as described above.
Payments for a reschedule that can't go ahead
When a customer pays the difference for a reschedule that then can't go ahead (for example they paid a different amount, or paid after the move expired), the payment is kept apart from the booking and you refund it yourself. To have Wagday refund these payments automatically instead, back to the way the customer paid, turn on Settings → Policies → Refunds for reschedule payments. Only admins and owners can change it. Payments taken in person and payments in another currency always stay with you to refund. For now, only online card payments through Stripe are refunded automatically; Square payments also stay with you until automatic Square refunds are available.
These payments show on the booking under Reschedule payments, with where each refund stands and why it wasn't applied or refunded automatically. A manager who manages both the booking's location and the new time's location can choose Refund this payment: Wagday checks the payment with Stripe first, then refunds it to the card it came from, without changing the booking or its invoice. If Stripe already has a refund Wagday sent earlier for that payment, Wagday records it instead of sending another, and once the payment is fully refunded it no longer holds up the booking. While the move is still on hold, a manager can instead choose Apply move anyway for a payment of exactly the price difference: Wagday re-checks the new time, and if it still fits, the booking moves and the payment pays for it. If a refund was sent but Stripe never answered, a manager can choose Resolve as not refunded once a day has passed, after checking the payment in Stripe, so it can be refunded again.
Recording a refund after a cheaper reschedule
The booking's Reschedule refunds panel shows money owed back after a move to a cheaper booking. Managers and above with permission to manage the move's locations can record money already returned, when the recording action is available.
For now, money owed back on a Square payment is refunded by hand. When Wagday has the Square account that took the payment on record, the panel names it; otherwise, refund it through the Square account that took it. Refund it in Square first, then record it below.
- For a Stripe or Square payment, choose Record existing refund and enter the provider's refund ID. Use the refund from the original payment account shown in the form. Wagday checks the refund's payment, account and status. This does not send a new refund. A card payment must be refunded through its provider; cash or bank transfers cannot be recorded against it.
- For a counter payment, hand the money back first, then choose Record counter refund. Enter the amount, how it went back, the date and time in your own timezone, and a reason. The amount cannot exceed what remains to refund. This records money already returned and does not move money itself.
A provider refund that is still processing stays pending. It is not counted as money returned until the provider confirms it. Choose Check refund status beside the pending refund to check again. A failed or cancelled provider refund contributes nothing towards the amount owed. If a refund covered several payments and is still pending, wait until it confirms before recording it.
If recording fails or the connection drops, check the booking before trying again. Reopening the same unconfirmed counter form keeps its refund reference and entered details, so retrying it does not record the same money twice. While recording is in progress, wait for the result before closing the form.
The Fees tab (penalty review)
The Fees tab lists your no-show and late-cancellation fees with the pills Pending, Processing, Completed, Failed and Waived, plus all-time cards for Total Charged, Total Waived and Outstanding (Failed).
When your policy charges automatically, the fee is charged straight away to the card the customer authorised for fees. When it doesn't, or the customer hasn't authorised a card, the fee lands here as Pending for a human decision. From a fee's row menu you can:
- Issue charge — charge the customer's authorised card now
- Waive fee — write it off; a reason is required and logged for audit
- Retry charge — for a failed fee (the customer's card may need updating)
Each fee's detail view shows the rule that produced it — for example, "No-show fee — 100% of $80.00" — so staff can see exactly why the amount is what it is. The Configure policy button jumps to Settings → Policies, where the fee percentages and notice period live. See No-show and late cancellation charges for the policy side.
Payment Policy defaults
A new facility defaults to Full Payment Required once a payment provider (Stripe or Square) is connected — full payment is required before a booking is confirmed. Until you connect a provider, your facility stays on No Payment Required and Settings → Policies prompts you to connect one. Connecting a provider later applies the default to new bookings only — it never changes bookings already made, and it never touches an existing facility's saved Payment Policy. You can choose Deposit Required or No Payment Required instead at any time in Settings → Policies → Payment Policy, whether or not a provider is connected.
Deposits
Deposits are configured per service and tracked per booking:
- Catalog → Services — edit a service and set a deposit: either a percentage of the booking price or a fixed amount.
- Settings → Policies → Payment Policy — choose whether bookings need a deposit, full payment, or no payment before they're confirmed.
- Settings → Policies → Deposit Refund Policy — decide what happens to a captured deposit on cancellation: forfeit it, always refund it, or refund it only when cancelled inside the notice window. Note that only Stripe-paid deposits can be auto-refunded.
On the booking itself, the Deposit card shows a Paid/Unpaid badge, the amount, when it was paid and who recorded it. For an unpaid deposit you can Collect deposit online (opens the provider's hosted checkout to take the card then and there) or Record offline payment (cash, EFTPOS, bank transfer or other at the counter — you choose the method, and it lands in the payment ledger and credits the invoice). An unpaid deposit counts as money owing and can block check-in unless a manager defers it.
For the big picture, Reports → Deposits lists deposit amounts and payment status across bookings in a selected range.
Related
Getting Paid: Stripe or Square
Connect one payment provider so online and in-person payments settle straight to your facility's own bank account.
Settling Up the Day
Check one location's business day — what was taken and how, every payment and refund, and the exceptions to look at before the day is closed.