Invoices are how you bill and get paid. An invoice pulls together unbilled time, the charges and expenses a job racked up, and agreement fees, goes out to your client as a branded PDF, and tracks payment through to collected.

The invoices list#
Finance → Invoices shows every invoice with summary tiles — outstanding, overdue, draft count, and paid this month — and rich filters (company, status, billing period, amounts, dates). Statuses are Draft, Sent, Partial, Overdue, Paid, and Void. Select invoices for bulk duplicate, void, or delete. Save views for how you work.
Creating an invoice#
There are two ways to start one.
From Finance → Invoices, create an invoice for a company, optionally tied to a billing agreement and period (see Which agreement an invoice is on). Set the issue date, payment terms (a named Net-N preset or a custom one), tax rate, and the customer/internal notes (defaulted from your settings). Then add the first line items:
- Manual line — anything, with a description, quantity, and unit price.
- From catalog — a line priced straight off your products and services list.
- Add agreement fee — pick the agreement and add its recurring fee line. A one-time fixed fee that's already on another invoice reads Add agreement fee again…: it asks you to confirm and say why (the reason is kept in the invoice's audit trail), so a fee isn't billed twice by mistake — and still lets you bill one in parts on purpose. Prox and AI assistants ask the same. Duplicate leaves a billed one-time fee off the copy.
- Bill an installment — for an agreement paid in installments, add one installment of it (each is billed once).
Every line you add can be changed before you create the invoice, just as in the editor: its description, quantity and rate (a catalog product starts at its price — change it on the line), whether it's taxable (shown when the invoice has tax), its service date, and where it posts in QuickBooks or Xero. An agreement's fee can be reworded and repriced too — to bill one installment of it, for instance.
Time, expenses and charges are pulled once the invoice exists, from the editor (below) — a time-and-materials agreement has no fee to add here, so create the invoice and pull its time.
Or quick invoice a job — from a ticket or project, which gathers that job's time, charges and expenses for you and raises the same kind of draft.
The editor#
The invoice editor lets you refine everything — header fields and every line: description, service date, quantity, rate, taxable, and where it posts. A line saves when you leave the field. Add more with Manual line, Add from catalog, the agreement's fee or an installment, or Pull work (n) — one menu of what that client has waiting to be billed:
- Time (n) — unbilled billable time the client can be invoiced for (your WIP; see Which time can be invoiced), plus a separate, unticked No charge group of non-billable time when no-charge lines are on.
- Expenses (n) — approved billable reimbursements, at cost plus your pass-through markup.
- Charges (n) — the parts, licences and fees recorded on that client's tickets and projects, and the one-time charges on its live agreements, at the price they were recorded at.
Each opens a picker; the counts show what's waiting. Invoices stay editable even after sending (edits are audited); only Paid and Void invoices are frozen.
Under each line's description sits how Profitability counts its money: Counted as labor (your team's hours are behind it — time, agreement and service lines) or Counted as pass-through (money that moves through you — expense lines, products, and any catalog item marked pass-through, such as ad spend, hardware, licences or hosting resale). Click it to flip a single line; the catalog item's own setting (System → Products & services → Counts in Profitability as) sets the default for every invoice it lands on. Pass-through money is left out of Efficiency and $/hour earned, and out of Return while client expenses are switched off there. It changes nothing about the invoice itself, its tax or where it posts.
You can also start from the time: on Time entries (or a company's Finance tab), tick entries and choose Invoice selected — one draft per client, each under that client's billing rule, with anything that can't be billed yet left behind and explained.
Anything you pull is claimed the moment it lands on a line: it leaves that client's unbilled pool and nobody else can bill it. Remove the line and it goes straight back. If two people pull the same entry at the same moment, one of them gets it and the other is told so — the client is never billed twice for it.
Which time can be invoiced#
One setting decides which logged time can go on an invoice: System → Finance settings → Time and expenses → Invoicing time → Which time can be invoiced.
- Approved time only — time can be invoiced once its timesheet week is approved.
- Any logged time (approval optional) — billable time can be invoiced as soon as it's logged. Timesheets still work alongside for anyone who uses them; billing never approves anything.
New organizations start on Any logged time. Organizations that were using AspirePro before the setting existed kept Approved time only, except those with Timesheet Approvals switched off, which moved to Any logged time (with approvals off nothing can be approved, so nothing could be invoiced). While Timesheet Approvals is off (System → Features), the setting reads Any logged time and is locked.
Whatever the rule, only billable time is charged for, rejected time is never invoiced, and time already on an invoice is never offered again. Time a client's agreement pays for isn't invoiced by the hour either; see below.
Time an agreement covers#
Billable time follows the client's agreement:
- Time and materials, or no agreement: every billable hour is invoiced at its rate.
- Fixed fee: the fee is the price, so time on it is never invoiced by the hour. Invoice the fee (or its installments). A fixed fee that's Expired still covers its time; one that's Completed or Cancelled doesn't, so later time bills by the hour.
- Retainer with included hours: each period's billable hours fill the included hours in the order the work was done (the first 10 hours of the month are included, and so on). Hours past them are overage:
- If the agreement invoices overage, it's offered once the period has ended (not before, because earlier time logged late could still move it). It's priced at the agreement's overage rate when one is set, otherwise at each entry's own rate, and its line says "beyond included hours". An entry that crosses the limit bills only the part past it.
- If the agreement absorbs overage, it's never invoiced.
- A paused month includes no hours, so its billable time is overage.
- If the agreement rolls unused hours over, the hours a period didn't use (up to the agreement's maximum) are added to the next period's included hours.
- Billed separately (a kind of work set that way) is always invoiced by the hour and never uses included hours.
Agreements in a family share hours: an SOW that inherits its master's included hours draws on the same hours. Periods are calendar periods in your organization's time zone. Time already invoiced keeps how it was billed: changing an agreement later never moves it.
Everything that offers time for an invoice follows this: unbilled WIP, Ready to invoice, Quick invoice, Invoice selected, the invoice editor and Prox. Quick invoice says how much of a job's time the agreement covers, and how much is waiting for its period to end.
A client can have its own rule. The Billing preferences card on the company's Finance tab (under Integrations, beside the payment reminders and tax cards) sets Which time can be invoiced to Use organization setting, Approved time only or Any logged time for that client. It needs Manage Finance (or the company-level manage permission), and every change is in the audit trail. While Timesheet Approvals is off, Approved time only isn't offered.
Changing either rule only changes what is offered next — nothing already on an invoice is removed, re-billed or re-approved.
No-charge lines#
Turn on Offer non-billable time as no-charge lines (same settings section, or per client on the Billing preferences card) to let non-billable time go on an invoice at $0, so the client sees the work was done:
- The time pickers — the editor's Pull work → Time, Quick invoice and Prox — list it in its own No charge group, unticked.
- Picking an entry adds a time line reading "{who} — {what} (no charge)", with the hours as the quantity and a $0 rate. It isn't taxable and counts as no revenue anywhere.
- It is claimed like any other time, so it isn't offered again; remove the line (or void the invoice) and it comes back.
- A no-charge line can't be given a price. To charge for that time, remove the line, make the time billable, and pull it again.
- Under Approved time only, only approved non-billable time is offered.
Invoiced time is locked#
Once an entry is on an invoice — a draft included — nobody can edit or delete it, whether or not it has been approved. Trying says which invoice has it. Remove its line from the invoice, or void the invoice, and it unlocks. If time is changed, rejected or deleted after its invoice is voided, that invoice can't be re-opened — you're told which entries changed; issue a new invoice instead. An approver can't reject it either while it's on the invoice (see Timesheets).
Which agreement an invoice is on#
An invoice is on one agreement for the whole invoice, or each line has its own. That decides which agreement the money counts toward on Agreement vs. Reality and agreement profitability, and it lists the invoice on each agreement's Invoices tab.
- One agreement for the whole invoice is the usual case. Pick one of the client's agreements, or No agreement, and every line counts toward it.
- Each line has its own is for an invoice that bills more than one agreement. The invoice itself then has no agreement, and each line names its own.
Some lines are fixed: they bill one agreement's work, so they stay on it. That's an agreement's fee, an installment, and time logged on an agreement (time logged on several agreements is fixed too, and shows as Several agreements). Other lines are picked: a manual line, an item, an expense or a charge takes whatever the invoice says (on an each-line invoice, you pick it line by line).
- Switching asks first. Going to one agreement over another agreement's fee lists those fee lines and moves them only when you say yes. Going to Each line has its own moves nothing.
- Installments and time never move. An installment stays on its agreement, and time stays on the agreement its entries are logged on, so an invoice that carries another agreement's installment or time can't go to one agreement (or to no agreement). Keep it on Each line has its own, remove the installment, or change the time entries' agreement in Finance → Time entries.
- Another agreement's work on a one-agreement invoice is refused. Adding a fee, an installment or time that belongs to a different agreement tells you why and offers to switch the invoice to Each line has its own (and, on an invoice you set to no agreement, to put it on that agreement instead). Nothing is ever relabelled behind your back.
- Invoices from QuickBooks, Xero and Stripe stay on one agreement. They can't go to Each line has its own, because their lines belong to the accounting system.
- Invoices from a schedule are on one agreement, the schedule's. A Quick Invoice is on the job's agreement, or has an agreement per line when the time it bills is filed under several.
How each kind of invoice gets its first agreement:
- Invoices made in AspirePro are on the agreement you chose, or whose fee or installment they bill.
- Invoices brought in from QuickBooks or Xero are put on an agreement automatically, but only when it's clear which one: exactly one of the client's live agreements covers the month the invoice is dated. An invoice from before the agreement began, or one when two agreements overlap, is left off. Draft agreements and paperwork-only ones (NDAs, SLAs) never count. An agreement whose end date has passed but is still being billed keeps taking invoices until a newer one starts. An invoice brought in before its agreement was set up is put on it at the next sync, by the same rule.
- Invoices from Stripe aren't put on an agreement automatically.
- Prepaid blocks: a block billed up front is a candidate only in the month its price (or an installment) is due; a block billed as used, in any month of its term — so a client with a retainer and an as-used block gets those months' invoices attached by hand. A block's price bills once: a second invoice for it is refused until the first is voided, and Duplicate leaves it off. Invoices that bill a block print its Client PO.
You can always change it. Use the invoice's Agreement field. It's in the line items band on an invoice you can still edit, and in Details on one from QuickBooks, Xero or Stripe, or one that's paid or void. On an each-line invoice, a line's own agreement is on the line, for a picked line on an invoice you can still edit. The agreement is AspirePro's own and is never sent to your accounting system. Whatever you choose is kept, including No agreement: a sync never puts an invoice back on an agreement you took it off. Only an archived client's invoices can't be changed. Changing it changes which agreement the money counts toward on Profitability and Agreement vs. Reality.
Sending#
An invoice is made as a draft when you click Create invoice; from the invoice you then send it now, or schedule it to go out later.
Send does one thing: it sends the invoice the way your organization sends invoices. Choose that once, under Who emails your invoices on System → Finance settings → Invoices (the Stripe, QuickBooks and Xero pages show the same setting):
- AspirePro (our PDF and email) — AspirePro's PDF and email, with a Pay now button when Pay now is on. With QuickBooks connected, Also add each invoice to QuickBooks (on by default) adds the invoice to QuickBooks, or updates it there, with the recipients as its email, as it goes.
- QuickBooks — AspirePro adds it to QuickBooks with the recipients as its email, then QuickBooks emails it — QuickBooks' own email, PDF and pay link (set its wording in QuickBooks). The invoice's button reads Email from QuickBooks. If QuickBooks can't email it — or its copy can't be brought up to date first, so it would go out as QuickBooks has it — nothing is sent and you're told why.
- Stripe (with a Stripe payment page) and Xero (added to Xero as an approved invoice) — a Stripe payment page (Send via Stripe), or an approved Xero invoice (Add to Xero; Xero can email it).
If the way chosen stops working because its login expired, invoices go out by AspirePro's email until it's reconnected, then go its way again by themselves. If it's disconnected, they go out by AspirePro's email from then on; choose the way again once it's reconnected. An invoice QuickBooks or Xero works out the tax for is never sent without that tax: while that system isn't connected, sending it stops and says why (see Sales tax). Sending happens in the background: the dialog closes at once, the button says Sending…, and it carries on if you leave or refresh the page. When it's done you're told how it went; if it couldn't go, or went with something to check (no tax where some was expected, QuickBooks' copy not updated), you're told here and in your notifications, and it's in the audit trail; a send that couldn't go is never tried again by itself. While it's going, Send later… and Delete wait too — the ⋯ menu says so. If the invoice mailbox is handed the email and doesn't answer in time, the send is neither a success nor a failure: the invoice stays a draft, nothing is sent again by itself, and you're told to check the mailbox's Sent folder before sending again. The invoice page says so to everyone who opens it ("Its last send may have gone …") until someone settles it: Mark as sent (it went) records it as sent to the people it went to — nothing is emailed again, and payments and reminders treat it as out — or It didn't go makes it an ordinary draft again. Mark as sent is only offered for such a send, needs the Send permission, and is refused if the invoice has changed since (send it again instead); both are on the audit trail. Until it's settled the draft can't be deleted. A send that waited so long to start that the page says "never started — send it again" doesn't go when the worker comes back; it's reported as not sent. Copy to QuickBooks (or Update in QuickBooks) in the invoice's ⋯ menu adds the invoice to QuickBooks, or updates it there, and emails no one. The invoice stays a draft here, marked In QuickBooks, until you send it; sending then brings QuickBooks' copy up to date first.
Send it later — on a draft, the arrow beside Send offers Send now or Send later… (the Send dialog's Send it later box does the same): choose a date and time (in your organization's time zone) and the draft goes out then, exactly as it would now — into QuickBooks, Stripe or Xero first if that's how your invoices go, with any edits made in the meantime. The invoice shows Goes out … (and so does the list) until then; Don't send later takes it off. A scheduled draft can't be deleted until it's taken off the schedule, and while it's actually going the page says Sending now (scheduled)… — it can't be re-scheduled, stopped or deleted for those few seconds. It goes as the person who scheduled it. It goes the way invoices go at that moment, not the way they went when it was scheduled: if QuickBooks has been disconnected since, or Who emails your invoices was changed, it goes the new way (AspirePro emails it, say) and the invoice keeps a note — "Scheduled to go through QuickBooks, but QuickBooks is disconnected, so AspirePro emailed it." — and you're told. A waiting draft says so ahead of time: "This will now go through AspirePro email, not QuickBooks." The exception is a send chosen with no email to the client — Stripe's Just create the payment page or Xero's Just add it to Xero: it's never switched to a way that emails the client. If Stripe (or Xero) is gone, or invoices now go another way, it doesn't go — it stays a draft, says why, and you're told — and the waiting draft says ahead of time that it won't go. If it can't go when the time comes — the client's mailbox refused it, say — it stays a draft, the invoice says why, and you're told; it isn't tried again by itself. Good for installments: bill the first and send it now, bill the next two on their own drafts and schedule them for their due dates.
Who it goes to — the dialog starts with whoever the invoice was sent to last — or, before its first send, the client's Billing contacts, else its point of contact; with neither, To starts empty for you to fill in — and lists the client's contacts with an email — tap one to add or remove it, or type any address. Up to ten. Cc copies anyone else (up to ten): they get AspirePro's email and its payment reminders, and QuickBooks' copy carries them as its Cc, so QuickBooks' own email copies them too. Stripe and Xero email only their own customer or contact, so there's no Cc when invoices go out through them.
Before anything goes out, the due date is set from the payment terms, so the PDF, the email and QuickBooks or Xero carry the same date (Net 0 is due the day it's sent; Stripe can't take a same-day due date, so its copy is due the next day, and you're told so). If QuickBooks or Xero works out the tax, it's worked out first; nothing goes out without it. AspirePro's email goes out through your invoice mailbox if you've connected one, else your organization email (System → Mail settings), else AspirePro's own address with your organization's name on it. Replies go to (Finance settings → Invoices) says where a client's reply to an invoice, a payment reminder or a quote lands — whoever or whatever sent it, a recurring schedule included. Left empty, replies go to the invoice mailbox, your organization email, your business email (System → Organization), or else the person who pressed Send; the Send dialog and the client's invoice page say which. You can preview the email and the PDF before sending.
Recurring invoices and reminders#
- To bill a client the same thing on a schedule, set up a recurring invoice — AspirePro makes each one on its date, as a draft or sent automatically.
- Unpaid invoices can get payment reminders — from AspirePro on the days you choose, or from QuickBooks, Xero or Stripe. An invoice's page lists the reminders it got.
Getting paid#
- Record payment — log a payment with its amount, date, method (cash, check, credit card, ACH, other), reference and memo. The invoice settles to Partial or Paid automatically. A manual payment can't exceed what's still owed, so an invoice never reads as over-paid because of a typo.
- Receive payment — on an invoice that's also in QuickBooks or Xero, the same dialog records the payment there too, with the choices the other system asks for: deposit to (QuickBooks' Undeposited Funds or a bank account; for Xero, the bank account) and QuickBooks' own payment method. The reference goes in as QuickBooks' reference number. It's recorded here straight away; if QuickBooks or Xero can't be reached, it waits on Finance sync and goes as soon as it can. Each payment shows where it stands — In QuickBooks, Sending to QuickBooks, Waiting for QuickBooks, or QuickBooks refused it — see Finance → Sync (the same for Xero). An invoice that came from QuickBooks always sends its payment there — QuickBooks owns that invoice's balance — so you can mark a QuickBooks invoice paid without logging in to QuickBooks. So does an invoice whose QuickBooks copy carries a pay link: until the payment is in QuickBooks too, QuickBooks Payments keeps asking the client for the full amount.
- When Stripe is collecting the invoice — it was sent through Stripe, or a client has a Pay now page open for it — recording a payment here passes it on: the payment page is closed, and Stripe's copy is marked paid outside Stripe (paid in full, so Stripe's reminders stop) or credited down to the new balance (paid in part, so Stripe's page asks for what's still due). The dialog says which will happen. A payment QuickBooks or Xero reports does the same. If Stripe can't be reached it's retried from Finance sync; if Stripe refuses, it's a decision there.
- Marked paid in Stripe — if someone marks the Stripe copy paid outside Stripe in Stripe itself (a check arrived, say), that's recorded here as a payment (method Other), so the invoice stops being owed. When AspirePro made the mark itself, for money already recorded here, nothing more is recorded.
- Paid more than owed — if a payment provider takes money after the invoice was already settled (a client finishes a Stripe page in the minutes before it could be closed, say), the money is recorded as it happened — never capped — and the invoice shows a notice: refund the extra where it was taken, and the notice clears when the refund comes back from there. The same item is on Finance sync until then.
- Remove payment — deleted the wrong amount into the wrong invoice? Remove the payment with a reason and the invoice recalculates: Paid falls back to Partial, Partial back to Sent or Overdue. Only payments somebody recorded by hand can be removed — anything Stripe, QuickBooks or Xero recorded stays as that system reported it. A payment AspirePro added to QuickBooks or Xero is deleted there first; if they refuse (a closed period, say), nothing changes here and you're told why. A payment someone entered in QuickBooks themselves is never deleted from it. If Stripe is collecting the invoice, its copy is brought back up to the new balance. A copy that was marked paid outside Stripe for the payment can't be un-paid in Stripe: you're told, the invoice is listed on Finance sync until it's paid, and Pay now (through Stripe) opens a new Stripe payment page for the balance. Every removal is on the audit trail with who did it and why.
- Void — cancel an invoice with a reason; everything it billed — time, charges and expenses alike — is released back to the unbilled pool so it can be billed correctly later. Deleting a draft does the same. If the invoice also lives in Stripe, QuickBooks or Xero, it's cancelled there too, and its work is held until they confirm — see Finance sync. An invoice with money on it can't be voided.
- Payments from outside — Stripe payments and refunds, and QuickBooks payments (including edits, moves and deletions), come back on their own — right away, or within 15 minutes while the invoice is unpaid. Xero payments come back within 15 minutes while it's unpaid (overnight otherwise), new ones and deletions. See how soon payments show up. A refund still in progress at Stripe shows as pending and doesn't reopen the invoice until it goes through.
- Duplicate — spin up a fresh draft from an existing invoice.
The public payment page#
Every invoice has a branded public page at its own secure link, where the client can view the invoice and download the PDF without signing in — a clean, professional way to share a bill. With Pay now on, it also takes payment online.
On the company#
A company's Finance tab pulls it all together for that client: Agreement vs. Reality coverage, work in progress — unbilled time, unbilled expenses and unbilled charges, each with its own figure and list — their agreements and invoices, and their invoices brought in from QuickBooks, Xero or Stripe. Its time list is Time for this client: the Time entries list fixed to the client, opening on what is ready to invoice, with every other stage a click away. For a client that bills approved time only, billable time that is logged but not approved yet is listed under work in progress with its value, so an empty time pool never hides work that is waiting on a timesheet. The Billing preferences card sets which of the client's time can be invoiced (see above).
Account managers can be given that tab without giving them the whole ledger: the company Finance permissions let someone open their client's agreements, invoices, PDFs and payments from the company record — and, with the manage grain, author them — while the module-wide lists, reports, and Finance landing page stay behind full Finance access.
Deleting a company outright is refused once it has issued financial paper — an invoice or an agreement is a record you have to be able to produce later. Archive the company instead; its history stays, labeled.
An invoice whose client was archived still opens — read-only, with the client shown as archived. It can't be edited, sent or paid online, but payments can still be recorded against it. Restore the client to work on it again.
Because invoices draw straight from logged time and agreements, billing is largely assembling what the platform already knows — pull the WIP, add the agreement line, send. See QuickBooks or Xero to copy it all to your accounting system.