Core Concepts
Invoicing
Generate invoices from unbilled work, send them, track opens, and get paid
An invoice bills one client for work you've already recorded: billable time, completed payment milestones and approved expenses (never deliverables, which aren't billed). You generate a draft, check it, send it, and record payments against it until it's paid (or let online payments do that). For money taken up front, bill a deposit; to give money back as credit, issue a credit note.
Who can do what: in the app, anyone in the organization can generate invoices and edit drafts. Sending an invoice (Email to client or Mark as sent), recording payments and marking it paid, applying credit, voiding it, deleting a draft, pushing to QuickBooks, and setting up billing cycles and retainers are for owners and admins; members don't see those buttons. Over an API key or the MCP server, generating, emailing and changing an invoice's status are for owner and admin keys only.
Who sees which invoices: owners and admins see every invoice. Members don't see an invoice that has a line on a confidential project they aren't on, because its lines and total would show that project's work. For them it's left out of Invoices, the dashboard, and the client's page, and its page and PDF read as not found.
How to generate an invoice
- Go to Invoices and click New invoice (or click it on a client's invoices card, which picks the client for you).
- Pick the client. Consultainer lists everything for that client that's ready
to bill:
- Billable time not on an invoice yet. If timesheet approval is on, only approved time is listed and a note says how many hours are still waiting.
- Completed milestones not on an invoice yet.
- Approved expenses not on an invoice yet.
- Tick what to include. Everything starts ticked.
- Check the details:
- Issue date — today by default.
- Payment terms and Due date — start from the default terms and move together. Pick Custom to type a due date yourself.
- PO number (optional), Tax rate (%) (starts at Default tax rate from Settings → General) and Notes (shown on the invoice).
- Click Generate invoice. You land on the new Draft.
If the client has nothing logged to bill, Consultainer opens Set amount instead.
How items become lines:
- Time is grouped by project, person and rate: one line per group, for example Website redesign — Ana Ruiz, 12.5 × $150. The rate is the person's rate on the project, or the entry's rate override, plus any overhead.
- Each milestone becomes one line: Project — Milestone: name.
- Each expense becomes one line: Project — Expense: description.
Everything you include is marked as billed, so it can't be invoiced twice. Invoices are in your organization's Default currency.
How to bill a set amount
For money that isn't logged work, such as a set fee, a monthly retainer or a deposit (Initial deposit — $500):
- Go to Invoices, click New invoice and pick the client.
- Click Set amount at the top. It's already open if the client has no logged work to bill.
- For each line, type a Description (what the client sees, e.g. Initial deposit) and an Amount. Click Add a line for more.
- Owners and admins can tick This is a deposit. A deposit is untaxed, and once paid its money becomes the client's credit, which you apply to the invoices for the work. Leave it off for a fee that's settled by its own payment.
- Optionally pick a Project, then set the dates, terms, PO number, Tax rate and Notes (shown on the invoice, a good place for anything else you want to say).
- Click Create draft invoice. You land on the draft; send it like any other.
Nothing is marked billed, so this never uses up logged time. A draft's lines can still be edited before you send it.
Invoice numbers
Numbers are your Invoice number prefix (Settings → General, INV by
default), a dash, and a four-digit counter: INV-0001, INV-0002, and so on.
Numbers are never reused, so deleting a draft leaves a gap.
How to edit a draft
While an invoice is a Draft you can change everything:
- Line items — edit a line's description, quantity or rate and click Save on that line; click the bin icon to remove it (time, milestones and expenses on it go back to unbilled). Editing a line doesn't change the time entries behind it.
- Add a line — fill in the empty row at the bottom (description, qty, rate) and click Add. Use this for a flat fee, a discount (negative rate) or anything else that isn't tracked as time, milestones or expenses.
- Details — Issue date, Due date, Payment terms, PO number, Tax rate (%) and Notes, then click Save details. Changing the terms here doesn't move the due date; set both.
Click Download PDF to see exactly what the client will get.
To throw a draft away, an owner or admin clicks Delete. Its time, milestones and expenses become unbilled again.
Once an invoice is sent, it can't be edited.
Status changes
An invoice only moves forward:
- Draft → Sent (it needs at least one line: Add at least one line item before sending.),
- Sent → Paid, once payments and applied credit cover the whole total (see Getting paid). Deleting a payment recorded by mistake moves it back to Sent.
- Draft or Sent → Void (in the app, Void is on sent invoices; throw away a draft with Delete instead), as long as no payment or credit is recorded on it. Voiding puts the invoice's work back to unbilled; see How to void an invoice.
Nothing goes back to Draft, and a paid invoice can't be voided. Trying anyway says, for example, Only sent invoices can be marked paid. or Paid invoices can't be voided.
A sent invoice with part of it paid stays Sent, and shows as Partly paid · $X due (the balance still owed) on the invoice, the invoices list, the client and project pages, the client's share pages and the client invoice page.
How to send an invoice
You have three options, all for owners and admins. All of them change a draft to Sent, which locks it, sends the invoice sent alert, and files the PDF if filing is set up.
Email it from Consultainer (owners and admins)
This needs email set up on your instance (Settings → Integrations).
- On the invoice, click Email to client (Email again on an invoice that's already sent).
- Under To, untick anyone who shouldn't get it, and add anyone else (comma-separated, up to 20 in total). The defaults are the client's contacts with Send invoices to this person ticked, else its billing email, else its main email.
- Optional: add a Message.
- Optional: tick Attach the PDF to send the file as well as the link, for clients whose accounts team wants it. It starts ticked if the client has Attach the PDF to invoice emails on, which also attaches it to overdue reminders and automatic sends.
- If the invoice has hourly time, Include the timesheet says whether it carries its timesheet. Changing it here changes it for this invoice.
- Click Send invoice.
The email has the invoice number, total, due date and a link to the client invoice page, plus the PDF if you attached it. Opening an attached PDF isn't tracked; opening the link is. Replies go to your email address. It shows under Activity as Ana Ruiz emailed it to … (with your name).
If email isn't set up, the dialog says so; use Copy client link instead.
Send the link yourself
- Click Mark as sent on the draft.
- Click Copy client link and paste the link into your own email or message.
Opens through that link are tracked the same way.
Mark as sent without sending anything
Click Mark as sent if you delivered the invoice some other way (for example from QuickBooks).
How to schedule an invoice
Have a draft emailed on a date you pick, for example on the 1st of the month. Owners and admins only; it needs email set up on your instance (Settings → Integrations) and an email address for the client.
Open the draft
Go to Invoices and open the draft you want to send later.
Pick when
Click Schedule send, then pick the Date and Time (your time zone). It defaults to tomorrow at 9:00. The dialog shows who it goes to: the same people Email to client starts with.
Schedule it
Click Schedule. The invoice shows Scheduled to send … under its title, and Invoices shows Sends … next to its status. It also shows on the calendar.
To change the time, click Reschedule. To stop it, click Cancel schedule on the invoice. Sending it yourself before then (Email to client or Mark as sent) also means the schedule never fires, because only drafts are sent.
What happens when it's sent
The hourly job emails it within the hour after the time you picked, exactly like Email to client, with no message. Replies go to whoever scheduled it. It's marked sent, owners and admins get An invoice is sent, and Activity shows Emailed automatically to ….
Its Issue date becomes the day it's sent, and the Due date moves by the same number of days, so the payment terms still hold. For example, a Net 30 draft dated October 20 and scheduled for November 1 goes out dated November 1, due December 1. Without this, a draft written well before it's sent would arrive with part of its terms already used up.
Check it worked
The invoice shows Sent, and Activity has Emailed automatically to …. Until then it shows Scheduled to send ….
Troubleshooting
If it can't be sent, nothing changes silently: the invoice stays a Draft with its original dates and schedule, owners and admins get A scheduled invoice couldn't be sent (Slack and email by default), and the invoice says Scheduled to send …, but it wasn't sent: followed by the reason. It isn't retried on its own; fix the cause, then Reschedule it or send it now.
| Reason shown | What to do |
|---|---|
| Email isn't set up on this instance (Settings → Integrations). | Set up email, then reschedule. |
| … has no invoice contact, billing email or email address. | Add an email on the client (or tick Send invoices to this person on a contact), then reschedule. |
| The email couldn't be delivered. | Check your email settings, then reschedule or click Email to client. |
When scheduling, Pick a time in the future. means the time you picked has passed, and Only draft invoices can be scheduled. means it was sent or voided already.
The client invoice page
Every sent invoice has a private page at https://<your-instance>/i/<token>,
which is what Email to client and Copy client link give the client. No
login is needed. It shows:
-
Your logo (or name), the invoice number, total, issue date and status. Once part of it is paid, the big figure is the amount still due, with the total and what's been paid underneath.
-
Due date, and how many days overdue it is if it's late. A paid invoice says Paid — thank you; a void one says This invoice was voided.
-
Download PDF, and the PDF itself on the page.
-
Pay now, if online payments are set up and the invoice is unpaid. It charges the balance still due, not the original total. While a bank payment the client made is clearing, the page says A bank payment for this invoice is processing instead, and after paying the client sees a confirmation at the top of the page.
-
How to pay: your payment methods for this client.
-
Time detail, when the client has it on (see below).
Drafts have no client page. The link keeps working after the invoice is paid or voided.
Timesheets on invoices
For a client who wants to see exactly when the billed hours were worked, add a timesheet to the invoice. Either:
- For one invoice: on the invoice, tick Include the timesheet (under the totals), or tick it in the Email to client dialog. Anyone can change it on a draft; on a sent invoice, owners and admins.
- For every invoice for a client: edit the client and tick Include a timesheet on invoices (under Time). One invoice can still turn it off.
The option shows only on invoices with hourly time. An invoice with a timesheet gets:
- A second page in the PDF: every time entry on the invoice, in order, with its date, start and end times (or — if it has none), hours and what was done (task and description; the project too when there are several, the person when more than one person's time is on it). Entries with evidence the client can see say how many attachments they have.
- A Time detail table on the client invoice page, with links that open the evidence marked Client can see it. Evidence that isn't marked is never shown.
The client setting applies to every invoice that hasn't been changed on its own, including ones already sent, because the PDF and page are made when they're opened. Turn it off and the detail and evidence links disappear from them. To make sure every entry has times, also tick Require start and end times.
Tracking opens
Consultainer records three kinds of client activity and lists them under Activity on the invoice, with a count (Opened 3 times by the client):
- Client opened the email — the email's tracking image loaded.
- Client viewed the invoice — the client invoice page was opened in a browser.
- Client opened the PDF — the PDF was opened or downloaded, from the invoice page or from a client link.
The first open sends an invoice opened alert (A client opens an invoice under Settings → Alerts). Later opens alert again only if a day has passed since the last alert.
Things to know:
- Your own team's views don't count. If you're signed in to Consultainer in the browser you open the link in, nothing is recorded. Open it in a private window to test it as a client would, and that view will count.
- Email opens are best-effort. Some mail apps block the tracking image (no open recorded), and some privacy features load it for everyone (an open recorded even if no one read it).
- Link scanners that fetch the page without running it don't count as views.
Getting paid
An invoice's balance due is its total minus the payments recorded on it and any client credit applied to it. It stays Sent until the balance reaches zero, then becomes Paid. The Summary card on the invoice shows Total, Paid, Credit applied and Balance due, and the PDF shows the same rows ending in Amount due.
Recording payments, marking paid and deleting payments are for owners and admins (in the app, over the API and over MCP).
How to record a payment
Use this for part of the balance, or for a payment that arrived on another day.
Open the invoice
On a sent invoice, click Record payment.
Fill in the payment
Amount starts at the balance due; change it for a part payment. Set Received on (today by default) and, optionally, Method (Wire, ACH, Check…), Reference (a check number, say) and a Note.
Save
Click Record payment.
Check it worked: the payment is listed in the Payments card on the invoice with the date, method and who recorded it. If it covered the rest of the balance the invoice is Paid and you get the invoice paid alert; otherwise it shows Partly paid · $X due and you get the part payment received alert (A part payment is received under Settings → Alerts).
You can't record more than is due: That's more than the $600.00 still due on this invoice. (Online payments are the exception: if a client pays through Stripe or Mercury while you were recording a payment by hand, the extra is kept as client credit.)
How to mark an invoice paid
Mark as paid is a shortcut that records one payment for the whole balance due, dated today.
- On a sent invoice, click Mark as paid. The dialog says how much it will record.
- Optional: enter the Payment method (for example Wire, ACH, Check).
- Click Mark as paid.
This sends the invoice paid alert and, if filing is set up, updates the filed PDF. Invoices paid online through Stripe or Mercury get their payment recorded automatically once it has gone through (a bank payment through Stripe takes a few business days); see Payments.
How to delete a payment recorded by mistake
- In the invoice's Payments card, click the bin icon next to the payment.
- Confirm.
The payment is removed, the balance goes back up, and a paid invoice returns to Sent. The deletion is in the audit log (deleted payment), along with who recorded it in the first place. Deleting a Stripe, Mercury or QuickBooks payment here doesn't refund or cancel anything there.
A payment on a deposit invoice can't be deleted once its credit has been spent: Credit from this payment has already been applied to other invoices. Remove that credit from them first.
Payments before this version
Invoices that were already Paid when you upgraded got one payment for their full total, dated when they were marked paid.
Overdue invoices
A sent invoice is overdue the day after its due date. Once a day, Consultainer sends one invoice overdue alert per newly overdue invoice (An invoice becomes overdue under Settings → Alerts). Overdue invoices show the days overdue in the app and on the client page.
Overdue reminders
Consultainer can email clients reminders about overdue invoices. It's off until you turn it on, and needs email set up on your instance.
- Go to Settings → Payments → Overdue reminders (owners and admins).
- In Days overdue, list when to send a reminder, for example
3, 7, 14(up to 10 whole numbers from 1 to 365). Leave it empty to turn reminders off. - Click Save.
How reminders work:
- They're checked once a day. Each reminder goes to the same people as Email to client would by default, with the subject Reminder: invoice INV-0042 from Your Org is overdue and a link to the invoice page.
- Each threshold is sent once per invoice. If an invoice is already past several thresholds when you turn reminders on, only the latest one goes out, so clients don't get a backlog.
- They stop when the invoice is paid or voided. A reminder for a partly paid invoice asks for the balance due.
- Each one shows under Activity as Reminder (7 days overdue) sent to ….
To stop reminders for one client, open the client, click Edit, untick Email overdue reminders, and save.
How to void an invoice
Owners and admins can void a sent invoice, as long as nothing has been paid or credited on it. Once a payment or credit is recorded, Void isn't offered and the Payments card says why: This invoice has payments or credit recorded, so it can't be voided. Delete them first if they were a mistake, or issue a credit note for the rest of the balance. To write off the rest of a partly paid invoice, issue a credit note for it and apply it.
- On the sent invoice, click Void.
- Read the confirmation and click OK. Voiding can't be undone.
What happens:
- The invoice is marked Void. It stays in your list (and its client page says it was voided) but stops counting as invoiced or outstanding.
- Its time entries, completed milestones and approved expenses go back to unbilled. They show up on New invoice again, so you can bill them on a corrected invoice, and a billing cycle picks them up on its next run.
- The voided invoice keeps its lines and total as a record of what was sent.
- If filing is set up, the filed PDF is replaced with the void version.
Voiding doesn't create a replacement invoice. Retainers aren't re-run either: a voided retainer invoice isn't generated again, so if you still want to bill that period, create the invoice by hand.
If the invoice is still a draft, Delete it instead (that also releases its work).
Billing cycles
A billing cycle invoices a client on a schedule for everything unbilled, so you don't have to remember to. Owners and admins set it up on the client page.
How to set up a billing cycle
- Open the client and find the Billing cycle card.
- Click Set up billing cycle.
- Pick a Frequency: Weekly, Every 2 weeks, Twice a month (1st & 15th), Monthly, Quarterly or Yearly.
- Set the First invoice date.
- Check the Payment terms (they start from the client's default).
- Optional: tick Send automatically (emails the invoice to the client) instead of leaving a draft to review (see Sending automatically).
- Click Start billing cycle.
What each run does:
- It invoices all of the client's billable time, completed milestones and approved expenses dated before the run date, on one invoice, with the note Services through the day before. Time waiting for timesheet approval waits for the next run.
- It uses the cycle's payment terms and your default tax rate.
- If there's nothing to bill, it creates nothing and Last run says Nothing unbilled — no invoice created.
- Without Send automatically, the invoice is left as a draft and owners and admins get the A recurring invoice or billing cycle needs review alert to review and send it. With it, the invoice is emailed to the client and marked sent (see Sending automatically).
- If the server was down over several run dates, the next run bills once, up to the latest date, then carries on.
- If a run fails, owners and admins are notified and the work rolls into the next run.
Use Edit to change the cycle, the pause button to pause or resume it, and the bin icon to stop it. Invoices already generated aren't affected.
Retainers
A retainer bills a fixed amount on a schedule (a monthly retainer, say), whatever time is logged. Owners and admins set them up on the client page; a client can have several.
How to set up a retainer
- Open the client and find the Retainers card.
- Click New retainer.
- Enter a Description (it becomes the invoice line, for example Monthly retainer) and the Amount.
- Pick a Frequency.
- Optional: enter Retainer hours if the amount covers a block of hours. The client's invoices card then shows hours billed against hours logged.
- Set the First invoice date and Due (days after issue) (30 by default).
- Optional: tick Send automatically (emails the invoice to the client) instead of leaving a draft to review (see Sending automatically). The retainer then shows Sends automatically instead of Drafts for review.
- Click Create schedule.
Each run creates an invoice with one line for the amount and no tax. A draft raises the A recurring invoice or billing cycle needs review alert; with Send automatically, the invoice is emailed to the client and marked sent. Use the pause and bin buttons on the retainer to pause, resume or delete it; invoices already generated aren't affected.
Sending automatically
Billing cycles and retainers with Send automatically ticked email each invoice to the client as soon as it's generated, the same way Email to client does:
- It goes to the client's contacts with Send invoices to this person ticked, else its billing email, else its main email (the same people the Email to client dialog starts with), with no message.
- Replies go to the organization's owner.
- The invoice is marked sent, owners and admins get the An invoice is sent alert, and the PDF is filed if filing is set up.
- It shows under Activity as Emailed automatically to …, opens are tracked, and overdue reminders go out as for any emailed invoice.
If it can't be emailed — email isn't set up on your instance, the client has no email address, or delivery failed — the invoice is still marked sent, and owners and admins get the A recurring invoice or billing cycle needs review alert saying why, for example …marked sent, but it wasn't emailed: Acme has no invoice contact, billing email or email address. Fix the cause, then send it yourself with Email again or Copy client link.
When scheduled invoicing runs
Billing cycles, retainers, overdue alerts and overdue reminders all run in one
daily job, driven by the scheduler service in docker-compose.yml. It runs
about a minute after the scheduler starts and then every 24 hours, so the
time of day depends on when the stack was last started. A run date means
"the first daily run on or after that date". If the scheduler isn't running
(or CRON_SECRET doesn't match), nothing scheduled happens; see
Self-hosting.
PDFs, filing and QuickBooks
- Download PDF on any invoice opens its PDF.
- If filing is set up, each invoice's PDF is saved to your Drive, Dropbox or OneDrive folder (under the client's name, in Invoices) when it's sent, and replaced with the paid (or void) version when that changes, and the invoice shows Filed to …. See Documents & files.
- If QuickBooks is connected, you can push an invoice to QuickBooks and sync its status back. See QuickBooks.
Over MCP
list_invoices (with amountPaid, creditApplied and balanceDue),
generate_invoice, email_invoice, schedule_invoice_send, get_invoice_activity,
mark_invoice_sent, mark_invoice_paid (records a payment for the whole
balance), record_invoice_payment, list_invoice_payments and
void_invoice. Generating, emailing, scheduling, recording payments and the
three status tools need an owner or admin key. See the MCP server.