Send invoices, track what you're owed, and issue receipts when you get paid — without leaving the CRM. Your customers are already here, so there's no second app and no list to keep in sync.
Set yourself up once
Settings → Invoicing holds everything that appears on every invoice you send: your business name and address, your tax id, your logo, and — the one people forget — how to pay you.
Payment instructions get their own block on the document. Bank details, a payment link, whatever your customers actually need. An invoice without them tells someone what they owe and not how to send it, which reliably produces a reply asking for your account number instead of a payment.
The same screen sets your numbering (prefix, digits, and where the sequence is now) and the defaults new invoices start from — currency, payment terms, and your standard note and terms text.
Nothing here is required. An invoice with all of it blank still works; it just says less.
There's no separate "customers" list
Invoices are raised against the contacts and companies you already have. Open a contact and give them a billing profile — their currency, payment terms, billing address and tax id — and every invoice you raise for them picks those up automatically.
That's the whole point of the profile. If one client pays in Barbadian dollars on 14-day terms and another pays in Canadian dollars on 30, you set it once and stop thinking about it.
A contact with no billing profile still works fine. You just pick the currency and due date yourself each time.
Items, priced in each currency you bill in
If you sell the same thing repeatedly, save it as an item — a service, a session, a product.
The useful part is that one item can hold a different price in each currency:
Standard therapy session
BBD 200.00 · USD 100.00 · CAD 150.00
Those aren't conversions of each other. They're the prices you actually charge in each market, and they stay the round numbers you chose. Other invoicing tools make you create a separate item per currency — three services in three currencies becomes nine items, and three places to forget a price change.
Bill in a currency you haven't priced and Groundbase converts from the item's base price, so nothing blocks you.
Drafts and issuing
A new invoice is a draft. Drafts have no number, can be edited freely, and can be deleted without leaving a trace.
Issuing is the moment it becomes real. Groundbase gives it its number, locks the contents, and freezes the exchange rate. After that the invoice can't be edited — only voided.
That sounds strict, and it's deliberate. An issued invoice is a statement of an amount someone owes. If it quietly recalculated because an exchange rate moved, the amount owed would change after the fact.
Invoice numbers have no gaps. Numbers are handed out at issue rather than at creation, so drafts you abandon don't leave holes in the sequence. If you void an issued invoice it keeps its number — a missing number in a run of invoices is exactly what an auditor looks for.
Sending it
Issuing and sending are separate on purpose. Issuing is bookkeeping; sending is a message to a customer. Plenty of invoices are handed over in person, and a failed email should never leave an invoice half-issued — issuing burns a number, and that is not fixable afterwards.
So an issued invoice sits there until you press Send invoice, and you can send it again later without anything changing.
It goes from your own email address, never from Groundbase, for the same reason receipts do. It goes to the billing email on the customer's profile if they have one, otherwise to the address on their contact record.
Lines, discounts and charges
Each line takes a quantity, a price, an optional discount and an optional tax rate. A discount comes off before tax, which is the correct order — taxing first would charge tax on money nobody paid.
Below the subtotal you can add charges: shipping, a rush fee, a call-out, or a negative amount for a deposit already received. Each one can be marked taxable, because whether shipping is taxed depends on where you are.
Every line is rounded on its own and then added up, so the column your customer reads always sums to the total they're asked to pay.
Currency on the document
An invoice shows one currency — your customer's. They see BBD and nothing else.
Groundbase stores the exchange rate on the invoice so your own totals can be reported in your base currency, but that conversion is for your books. It never appears on anything your customer receives.
Taking card payments (Stripe Connect)
Recording payments by hand is the default, but you can also let customers pay the invoice by card from the page you send them.
Connect once. Settings → Invoicing → Connect Stripe. You'll be sent to Stripe to authorise the connection and returned to Groundbase. If you don't already have a Stripe account you can create one during that step.
The money goes to you, not through us. Groundbase uses Stripe Connect with direct charges: your customer pays your Stripe account, and Groundbase never holds or routes the funds. We take no fee and no percentage — Stripe's own processing rates are the only cost, and they bill you directly, exactly like Twilio and Resend. There is no payout to wait for from us because the money was never ours.
What your customer sees. Once connected, the hosted invoice page you share gains a Pay button. Clicking it opens Stripe Checkout with the invoice amount and currency filled in. They don't need a Groundbase account, and nothing about the page changes if you later disconnect — it simply stops offering the button.
The payment records itself. When Stripe confirms the charge, Groundbase writes the payment against the invoice, moves it to paid (or part paid), and sends the receipt from your own email address like any other payment. You don't record it manually, and refreshing the success page won't record it twice.
Disconnecting is one button in the same place. Existing invoices stay exactly as they are — paid ones keep their payment history — and new ones stop offering card payment.
Getting paid, and receipts
When money arrives, record it against the invoice. Partial payments are normal — the invoice moves to part paid and shows what's left.
A receipt goes to your customer automatically. It states what was paid, when, by what method, which invoice it was applied to, and the balance still outstanding — plus every earlier payment, so someone paying in instalments sees the running total rather than three documents that each look like the only payment they made.
Receipts are numbered on their own sequence, and they send from your email address, not from Groundbase. Connect either an email account (SMTP) or Resend under Settings → Email integration. If you have neither connected, Groundbase won't send the receipt at all rather than send it from an address your customer doesn't recognise — an email about money from an unfamiliar domain is exactly what spam filters and cautious people distrust.
Recorded a payment by mistake? Reverse it. The entry stays visible in the ledger marked reversed, and the balance recalculates. Payment history is what you reconcile against your bank statement, so it should never silently change.
Overpaid? Groundbase records it and tells you, rather than refusing the entry. Money arriving is a fact regardless of what the invoice expected.
Knowing who owes you
The Invoices screen opens on the question you actually have: what's outstanding, and what's late.
Outstanding is shown per currency rather than merged into one figure. A single converted number across three currencies is a number that exists nowhere — it changes with the exchange rate, while every invoice keeps the rate it was issued at.
Lateness is shown in days, because "47 days late" is read at a glance where a due date has to be worked out.
On your phone
The mobile app carries the part of invoicing that happens away from a desk: what's outstanding, who's late, and recording a payment the moment it lands. Building, issuing and voiding stay on desktop and web — a line-item editor belongs on a screen with room for it.
Doing it by chat
Every part of invoicing is available through the MCP server, so you can raise an invoice, issue it, or record a payment by asking Claude. See AI integrations for setup.
Two things worth knowing when you do: issuing is one-way, and recording a payment emails your customer a receipt. Both are worth confirming before you ask for them.