Billing & Pricing

Invoicing & Payments

One invoice per stay — open it mid-stay, collect deposits, record payments, apply credits, and accept online payments via Stripe or Square.

Invoice Statuses

Status Meaning
Open The stay's running invoice (folio) — created while the pet is still checked in, accruing charges until checkout
Draft Created but not yet sent to the owner
Sent Emailed to the owner; awaiting payment
Paid Fully paid
Overdue Past due date and still unpaid
Void Cancelled/written off

The Stay's Invoice (One Invoice Per Stay)

Every stay gets one invoice with one invoice number. You can open it while the pet is still with you, add to it, take payments on it, and finalize it at checkout — you never need a second invoice for the same stay.

Opening an Invoice Mid-Stay

Sometimes an owner asks for their total — or wants to pay something down — before pickup. On any checked-in reservation, click Open Invoice. This creates the stay's invoice with status Open:

  • It gets its invoice number immediately (unless you've turned on deferred numbering) and lists the stay's charges so far (boarding nights, add-ons, and a preview of any automatic discounts).
  • You can build the bill mid-stay exactly like on a draft: the Add Line Item card for a late charge, Apply Discount, and remove lines — no need to check the pet out first. (Per-line Taxed / Tax-free overrides become clickable once the invoice is a draft.)
  • You can record payments — or email it so the owner can pay online — at any point during the stay.

An Open invoice is a running total, not a final bill: it never flips to Paid mid-stay, even if payments cover the current total, because more charges may still land before pickup. The portal makes this clear too — a shared open invoice is marked In progress, with a note that the final total is settled at pickup. Open invoices appear with an amber Open badge and have their own filter tab on the Invoices list.

The Folio Tracks the Stay

An open invoice keeps itself in sync with the reservation. Add or remove an add-on service, or edit the stay's dates, and the folio's line items and total update immediately — no checkout needed — so the number you quote (or collect) mid-stay is always the true running total. Manually added line items and recorded payments always survive these updates.

Once you've recorded a payment on the folio, its stay charges stop rebuilding automatically, so the total can never drop below money you've already collected. Checkout still recalculates the final bill from the actual stay as usual.

Finalizing at Checkout

When the pet goes home, check out as normal — or click Check Out & Finalize right on the invoice page (Finalize Invoice if the pet is already checked out). Checkout finalizes the existing open invoice instead of creating a new one:

  • Stay charges are rebuilt from the actual stay (real nights, add-ons, discounts) plus anything you adjust on the checkout form — the confirmation page shows the charges and payments already on the invoice.
  • Manually added line items and all payments already made stay on the invoice.
  • The invoice moves from Open to Draft — or straight to Paid if mid-stay payments already cover the final total.

The stay keeps its original invoice number end to end.

Folio Notes & Safeguards

  • Batch checkout: stays with open invoices can be checked out together too — batch checkout reuses the oldest stay's folio as the combined bill (keeping its number, payments, and manually added lines) and folds the sibling folios into it, so a multi-dog family still goes home with exactly one invoice.
  • Manual invoices: creating a manual invoice for a customer who has an in-progress, uninvoiced stay shows a warning — open the stay's invoice instead, so checkout doesn't bill the same stay a second time under a new number.
  • Portal visibility: clients don't see an open invoice until you email it to them. Once shared, it appears in the customer portal marked In progress and can be paid online.
  • Cancellations: cancelling a stay voids an unpaid pre-stay invoice automatically; an open folio is left in place for you to void or resolve by hand (refund, credit, or collect).
  • No-shows: applying a Charge no-show policy raises its own draft fee invoice. If the stay already has an open folio, the fee lands on a separate invoice — resolve the two by hand.

Deferred Invoice Numbering

Some facilities want their invoice numbers to reconcile with money issued, not with tabs opened. If that's you, turn on deferred numbering:

  1. Go to Settings → Payments & Tax (formerly Settings → Online Payments).
  2. In the Invoice Settings card, switch on Defer invoice numbering until checkout and click Save. (Only number invoices at checkout is exactly what it does.)

With the setting on, a mid-stay folio shows Draft in place of an invoice number — you can still add to it, print it, and take payments on it — and it's assigned the next INV-#### the moment it's finalized at checkout. A folio voided before checkout (a cancelled stay, say) never consumes a number, so your numbered invoices match the bills you actually issued.

The setting is off by default, existing invoices keep their numbers, and pre-stay, combined, and manual draft invoices are still numbered when created.

With the setting on, the draft invoices that no-show handling's Charge policy raises also start unnumbered — shown as Draft — and an unnumbered bill takes its number the moment it's actually issued: when you send it, mark it paid, or payments cover it. Waiving or voiding one never consumes a number.

Invoice Numbers

Auto-numbering continues from your highest existing INV- number and keeps its zero-padding width — a facility whose imported history ends at INV-005046 gets INV-005047 next, and INV-9999 rolls naturally to INV-10000. You can also set a number by hand: the invoice's Edit page has an Invoice Number field that works at any status — the number must be unique for your facility, and leaving the field blank keeps the current number. Custom formats (say CUSTOM-001) are fine; they never affect the automatic sequence.

Creating an Invoice

  1. Go to Invoicing → New Invoice.
  2. Select the Pet Owner.
  3. Set the Due Date.
  4. The Tax Rate defaults to your facility's configured rate; adjust if needed.
  5. Click Create Invoice. You are taken to the invoice detail page.

Heads up: If the selected customer has an in-progress stay that hasn't been invoiced yet, Goodstay notes it right after the invoice is created. In that case, use Open Invoice on the stay instead of a standalone manual invoice — otherwise checkout will bill the stay again under a second invoice number.

Adding Line Items

An invoice starts empty. Add line items:

  1. On the invoice detail page, find the Add Line Item card.
  2. Enter a description, quantity, and unit price.
  3. Click Add. The subtotal, tax, and total update automatically.

You can add as many line items as needed (boarding nights, grooming services, medications, etc.).

Add-On Services Bill Automatically

Add-on services attached to a reservation are billed automatically when the stay is invoiced — on every reservation type, not just grooming appointments. Each add-on bills at price × quantity; boarding and daycare stays list them as "Add-on — pet: service" line items, grooming appointments as "Grooming — pet: service". So two massages booked on a five-night board show up on the invoice without any manual entry.

Manual Discount Line Items

To apply a manual discount while building a new invoice:

  1. On the New Invoice page, use the Discounts & Credits quick-add buttons: Multi-pet discount, Loyalty discount, or Manual credit.
  2. The button prefills a line — enter a negative unit price (e.g., −$12.00) to deduct from the total.

(On an existing invoice, add a negative-priced line from the Add Line Item card, or use Apply Discount below.)

Discount line items appear on the invoice with their own line, making the price adjustment transparent to the client.

Applying a Promo Code

Promo codes are entered on the reservation (at creation or edit) — the discount then rides onto the stay's invoice. There is no promo-code field on the invoice itself.

Manual Invoice Discount (% or $)

You can also apply a one-off discount directly on a draft invoice — no promo code required:

  1. On the invoice detail page, find the Apply Discount card.
  2. Use the % / $ toggle to choose between a percentage off or a flat dollar amount.
  3. Enter the value (e.g., 10 for 10% off, or 25 for $25 off).
  4. Click Apply Discount.

Flat dollar discounts are validated to be positive and not greater than the chargeable subtotal so the invoice can never go negative.

Automatic Discounts Stay in Sync

System-generated percentage discounts — multi-pet, extended-stay, and percentage promo codes — recalculate automatically when you add or remove charges on a draft invoice, so a "10% off" line always equals 10% of the current charges (tax recomputes too). Manually added discounts and fixed-dollar promo codes never move (and on a combined invoice the extended-stay line is frozen); once an invoice is sent or paid all discounts are locked.

Selective Taxability

By default, sales tax is applied to the entire invoice subtotal. Some facilities only need to tax certain categories (e.g., retail add-ons but not boarding). To configure:

  1. Go to Settings → Payments & Tax → Tax Settings.
  2. Set your Default tax rate (%) (e.g., 8.5 for 8.5%).
  3. Toggle the Taxable line types: Boarding, Board & Train, Daycare, Addon, Custom, Service.
  4. Click Save.

Board & Train stays bill under their own Board & Train category, so you can tax them independently of regular boarding.

On any draft invoice, each line item now shows a Taxed or Tax-free pill. Click the pill to override the facility default for that specific row (handy for one-off non-taxable items). Overridden rows show a small dot indicator and a ↺ button (Restore facility default) to revert to the facility rule. When part of an invoice is taxable, the totals section displays a Taxable portion row so the math is transparent.

Backward compatibility: Facilities that haven't configured per-category taxability continue to tax the full subtotal, so existing workflows are unaffected.

Client Credits

If a pet owner has a positive credit balance, it is spent at checkout by default — the checkout screen's Apply account credit box starts out filled in with the owner's whole balance (capped at what the bill comes to), and the invoice summary shows the credit coming off the total before you confirm. Lower the amount, or clear the box, to hold some or all of the credit back for another visit. The same box appears on a batch checkout. Applied credit shows as an Account Credit Applied line, reduces the balance the client pays (in person or online), and comes off their credit balance the moment the invoice is created. You can add credits from the pet owner's detail page — see Managing Pet Owners for details.

Sending an Invoice

Click Send Invoice. The owner receives an email with a link to view the invoice — and, when your facility takes online payments, a Pay $X Now button that works without any account or sign-in: it opens a secure public pay page showing the amount due, and one click starts card checkout with your connected processor.

If part of the invoice is already paid — a cash payment at drop-off, say — the email shows Amount Paid and Balance Due under the Total, exactly as the attached PDF does, so the Pay $X Now button's amount matches the balance printed above it.

When the stay has a deposit requested, the email leads with the deposit instead of the total: the subject reads "Deposit of $X requested by Your Facility", the intro explains that the full charges below are the whole stay and anything paid now counts toward it, and the button becomes Pay $X Deposit. The pay page it opens asks for the deposit first and keeps an "or pay the full $Y now" button underneath — so the customer can pay just the deposit straight from the email, no portal sign-in needed.

The pay link is safe to keep around: once the invoice is paid the page says so and stops offering payment (if a Square refund later reopens a balance, the same link starts working again), and a voided invoice's page says the invoice has been cancelled. Re-sending an invoice never invalidates the link already in the customer's inbox. Clients with portal access can also pay from the Customer Portal as before, where a requested deposit is offered first the same way.

Recording a Payment

To record a payment (cash, card, check, etc.):

  1. Open the invoice detail page and find the Record Payment card.
  2. Enter the payment amount and method (optionally a reference number and notes).
  3. Click Record. The payment is dated the moment you record it.

If the payment covers the full balance, the invoice automatically moves to Paid status.

Partial payments are fine — record each portion as it arrives. The invoice shows a Partially paid banner with the amount received and what's still owed, and the Record Payment card stays put until the balance reaches zero. Stays billed ahead and open invoices take payments the same way, so a client can pay a deposit now and the rest at drop-off or pickup.

Choosing Which Payment Methods Appear

The method dropdown is configurable. In Settings → Payments & Tax, the Payment Methods card lets you tick exactly the methods your front desk uses — Cash, Check, Credit Card, Debit Card, Bank Transfer, SkipCash, Stripe (Online), Square (Online), and Other. Everything except SkipCash is on by default. The selection only affects the dropdown staff see when recording (or editing) a payment: online checkout payments through a connected processor are unaffected, and past payments keep their recorded method. You must leave at least one method enabled — clearing them all is refused.

Editing a Payment

Recorded the wrong amount or method? Each manual payment row in the invoice's payment history shows an Edit payment link. Click it to amend the amount, date, method, or notes — the invoice totals and paid status are recalculated automatically. Payments collected through Stripe or Square are read-only and don't show the edit icon.

Refunds (via Square)

There is no refund button inside Goodstay — you issue the refund where the card was charged, in Square (the Square Dashboard, the Register, or the Square app). Goodstay listens for the refund and books it automatically:

  • The payment row stays in the payment history with its refunded amount noted — full and partial refunds both work.
  • The invoice's paid total drops by the refunded amount. If a Paid invoice no longer has its balance covered, it moves back to Sent, and every way to pay reopens at once: the Record Payment card, the emailed Pay $X Now link, the public pay page, and the portal's pay button.
  • Refunding money never changes reported revenue — revenue reports keep counting the original payment — and never touches the customer's account credit.

Refunds made on payments Goodstay never recorded (say, a counter sale rung up directly in Square) are ignored. Stripe refunds are not ingested this way — adjust those invoices by hand.

Mark as Paid (Manual Override)

On a sent or overdue invoice — or a draft already covered by payments — click Mark Paid to immediately set the status to Paid without recording individual payment details.

Voiding an Invoice

Click Void Invoice to cancel an invoice. Voided invoices are retained for record-keeping but are removed from outstanding balances. Voiding closes every way the invoice could still be paid: the emailed pay link and portal page show it as cancelled, and if the invoice had been sent to your Square Register, Goodstay cancels the Square invoice too so it can't be collected in person by mistake.

Re-invoicing after a void: When an invoice is voided, the linked reservation(s) become eligible for invoicing again. You can immediately create a new invoice for the same reservation without any manual cleanup.

Downloading a PDF

Click Download PDF to download a professionally formatted PDF of the invoice.

Emailing an Invoice

Use the Email Invoice button (separate from Send Invoice) to re-send the invoice email at any time.


Bill Ahead — Deposits & Pre-Payment

You can collect a deposit — or full payment — before the stay begins. On any upcoming or in-progress reservation that hasn't been invoiced yet, click Bill Ahead. The page asks What to bill:

  • The whole stay — bill everything projected, so the client can pay in advance.
  • A deposit — set a Deposit amount (prefilled from your deposit percentage — see below — and capped at the stay total). The rest is settled at checkout.

Both modes open the stay's one invoice with the full projected charges; a deposit only changes how much you're asking for now. Click Open Invoice and the folio opens — it stays private until you email it to the client.

Payments land directly on the stay's invoice — there is no separate pre-stay invoice to reconcile later. When you email the invoice, the deposit request leads: the subject says "Deposit of $X requested", the button reads Pay $X Deposit, and the pay page it opens takes the deposit first with the full balance one click away. In the customer portal, the same request leads with a Pay $X Deposit Online button (with an "or pay the full $Y" option below it). Either way, Goodstay marks the reservation deposit collected automatically the moment payments reach the requested amount. If you've set a customer-facing name for the deposit — "Booking fee", say — the email, pay page and portal all use it instead ("Pay $X Booking fee"); staff screens always say Deposit.

At checkout the invoice finalizes as usual: everything already paid counts toward the final bill, so a fully prepaid stay owes $0 at pickup and a partial deposit simply reduces the balance due. Cancelling the reservation voids the invoice if nothing has been paid on it.

Billing Several Upcoming Stays Together

If the client has other upcoming bookings, the Bill Ahead page lists them under Bill these stays on the same invoice — tick any that should ride along, and one bill covers the whole family instead of one per pet. An already-open pre-arrival folio can also absorb more stays from its own page via Bill another stay here. A stay billed on a combined pre-arrival invoice checks out onto that same invoice.

Deposit Settings

In Settings → Policies, the Deposit & Cancellation Policies card has a Require a deposit to hold a booking toggle and a Deposit percentage field — the percentage of the quoted total that Bill Ahead suggests as the deposit amount (25% when nothing is configured).

Beside the percentage sits a Customer-facing name field: how the invoice email, pay page and portal name this charge to your customers (up to 30 characters). Say "Booking fee" if yours is non-refundable; leave it blank to keep "Deposit". The rename is customer-facing only — your staff screens, and this article, keep saying Deposit.

The same card carries your cancellation terms: a Cancellation policy (Flexible refunds in full outside the deadline; Strict never refunds), the Deadline (hours before), and the Late-cancel refund (%).

Legacy pre-stay invoices: Before the one-invoice-per-stay change, this flow was called Bill Deposit / Pre-Pay and created a separate pre-stay invoice — its request email led with a "Deposit of $X requested" subject, and its payments were banked as account credit and netted against the final bill at checkout. Any of those still in flight keep working exactly that way, and remain excluded from revenue reports — revenue is recognized at checkout either way, so prepaid stays are never double-counted.


Online Payments (Stripe or Square)

To accept online payments from clients through the Customer Portal:

  1. Go to Settings → Payments & Tax — the Payment Processing card is your Payment Setup hub.
  2. Choose your preferred processor — Stripe or Square.
  3. Click Connect and complete the onboarding flow for your chosen processor.
  4. Once connected, clients can pay invoices directly in the portal using a credit or debit card.

Collecting on a Square Register

For in-person card payments on Square hardware, the invoice page has a Send to Square Register button. This creates a Square Invoice that appears natively in your Square Invoices list on the Register and in the Square Dashboard. Staff open it there and charge the customer's card in person. Until it's paid, the invoice shows an "In Square — collect under Invoices" ready state in Goodstay.

Important: Facilities that connected Square before this feature was released must disconnect and reconnect Square to grant the new permissions. Otherwise, sending to the Register will fail.

Tips / Gratuity on the Square Register

The Square Register can prompt the customer for a tip using your configured Square tip presets. You must set up tip amounts in your Square settings for the prompt to appear. Tips are collected and deposited by Square directly and are not tracked in Goodstay — they won't appear in Goodstay payment history or reports. Online Square Checkout links do not prompt for tips.

In-Person vs Online Payment Emails

Owners receive a "payment received" email only for online payments. Payments you collect in person on the Square Register do not email the owner. In payment history, in-person payments carry the note "Collected in person via Square" and online ones "Paid online via Square".


Batch Checkout & Combined Invoices

When a pet owner has multiple reservations to check out (e.g., two dogs boarding at the same time), you can process them together in a single combined invoice.

  1. Open the pet owner's detail page.
  2. Click the sky-blue Create Invoice button in the top-right header. It's always available. You can also start from the owner's Invoices page, where the header button reads New Invoice.
  3. Select reservations: Choose which reservations to include. Both checked-in and already-checked-out-but-uninvoiced reservations are available. Stays that ended more than 30 days ago start unselected, folded behind an Older uninvoiced stays toggle — see below.
  4. Review & confirm: The confirmation page shows all selected reservations with pricing, automatic multi-pet discount (if configured), optional add-ons, account credit application, and custom manual line items.
  5. Click Check Out & Invoice (or Generate Invoice if all are already checked out).

Auto-redirect: When checking out a single reservation, if the owner has additional uninvoiced reservations, Goodstay automatically redirects to the batch checkout flow.

Open folios combine too: if the selected stays already have open invoices, batch checkout reuses the oldest folio as the combined invoice — its number, payments, and manual lines carry over, the sibling folios are absorbed and voided, and the invoice lands straight on Paid when mid-stay payments already cover the total. With deferred numbering on, a multi-dog family's checkout issues exactly one invoice number.

Older Uninvoiced Stays & Settling Outside Goodstay

Stays that ended over 30 days ago (in your facility's time zone) collapse into an Older uninvoiced stays section at the bottom of the picker, and they start unselected — so an old backlog never sneaks onto this week's bill. They're still fully billable: expand the section and tick one to include it.

If an old stay was already paid or written off outside Goodstay — cash in the cutover era, a hand-written bill, a write-off — click Mark settled on its row instead. Settling removes the stay from invoicing without creating an invoice (no $0 invoice cluttering your records or your revenue). The same action lives on the reservation detail page as Settle Outside Goodstay, available on any checked-out, uninvoiced stay.

Settling is undoable: the reservation page shows Undo External Settlement with who settled it and when, and the activity log records both directions.

What the Customer Sees on the Invoice

The invoice email and attached PDF list every reservation billed on the invoice — each stay's pet name(s) and dates, earliest check-in first — so a combined invoice never hides a stay. Line items are grouped under service-date headers (boarding and daycare charges under each stay's dates, grooming under the appointment date), with discounts and credits undated at the bottom, so a multi-stay bill reads chronologically. Invoices created before this feature shipped may show a flat, ungrouped list.


Merging Invoices

Two invoices for the same pet owner that should really be one bill — say two dogs boarding in separate kennels, each with their own open folio — can be merged from the Invoices list:

  1. Tick the checkbox on each invoice you want to combine (they must all belong to the same owner).
  2. Click Merge selected above the list — the Merge Selected action refuses a mixed-owner batch.

The earliest invoice becomes the combined bill and keeps its invoice number, payments, and manually added line items; the others move their charges, payments, and credits onto it and are voided. You can merge draft invoices together or open folios together, but never a mix of the two — a folio is still accruing charges, while a draft is a finished bill.

A merged folio covers several stays: it keeps tracking each of them as services and dates change, and it finalizes through batch checkout when the dogs go home — so you can send one mid-stay invoice for the whole family before anyone checks out.

The Invoices list shows 20 invoices per page — merge invoices from a single page of the list.


You can upload a custom logo that appears on all your PDF invoices:

  1. Go to Facility Settings.
  2. Scroll to the Invoice Logo section.
  3. Upload your logo image.
  4. Click Save.

The logo appears above your facility name in the teal header band of every invoice PDF, scaled to fit (roughly 2" × 0.55"). To remove the logo, click Remove logo.

Invoice Policies

In Settings → Policies there's an Invoice Policy Text card — your Invoice Policies — where you can enter policy text (up to 2000 characters). When set, it appears as a Policies section on invoice emails and on the invoice PDF, so your terms travel with every bill you send.