Features

Invoices

Invoices let you bill clients for completed work with itemized line items and built-in payment links. Invoices can be created manually or auto-generated when a quote is accepted.

Searching and filtering

The Search box matches invoice number, title, client, and company by default. To search one field specifically, prefix the query with the field name and a colon, e.g. status: paid or total: 250. As you type, a dropdown suggests matching field names, and once a field is chosen it suggests the real values seen for that field so you don't have to guess spelling. Combine multiple fields with &, e.g. status: outstanding & client: smith. To leave things out instead, see Excluding results below.

FieldAliases
Invoice #invoice, invoice #, invoice number
Titletitle
Clientclient, customer, name
Companycompany
Statusstatus
Totaltotal, amount (exact number)
Ticket #ticket, ticket #, ticket number
Quote #quote, quote #, quote number
Due Datedue, due date
Date Createdcreated, date created, date
Paid Datepaid, paid date, date paid

Field names are case-insensitive. Total is matched as an exact number, not text — total: 250 finds invoices whose total is exactly 250, not ones merely containing "250". If the text before a colon isn't a recognized field, it's searched as plain text instead of returning no results. Searching for text that itself contains an &, like Smith & Sons or AT&T, still works: & only joins clauses when it has a space on each side and at least one side is a field or an exclusion.

Excluding results ("does not contain")

Sometimes it's easier to say what you don't want to see. Both the search box and the dropdown filters can leave rows out instead of narrowing to them.

In the search box

Put a - or ! in front of a word to hide every row that contains it. To exclude on a single field, use != instead of the colon. These three all mean the same thing:

Join several with & (a space on each side) and a row has to pass every one of them. Exclusions, field searches, and plain words can all be mixed. The suggestions dropdown keeps working too: type status != and it lists the real values in use.

Type thisTo see
-smithEvery invoice that doesn't mention "smith" in its number, title, client, or company.
status != paidEverything not yet paid, including drafts.
status != paid & status != draftInvoices that have gone out and aren't paid yet.
total != 0Hides $0 invoices.
status != paid & smithSmith's invoices that aren't paid yet.
๐Ÿ’ก Exclusions match partial text, the same way a normal search does. -smith also hides anything containing smithson. Use a field and more of the word to be precise, e.g. client != john smith.
โš ๏ธ On number fields (Total), a - in front of the value means a negative number, not "exclude". Use ! or != there, e.g. total != 0.

In the dropdown filters

The All Statuses dropdown is a checklist: tick as many values as you want. With Is (the small button on its left) you see every invoice matching any ticked value. Click it and it turns red and reads Not: the list now shows every invoice except the ticked values. You can click it before or after ticking. Click it again to go back to Is.

For example, tick Paid and Draft, then click Is so it reads Not, to see every invoice that is neither paid nor a draft.

Your ticked values and the Not setting are remembered along with your other filters. It switches back to Is when you click Clear inside the dropdown or Clear ร—. A dashboard link that opens this page with a status always starts on Is.

Quotes vs Invoices

Both documents share a similar line-item structure but serve different purposes in the job workflow:

QuoteInvoice
PurposeEstimate sent for approval before work beginsBill sent after work is done
Client actionAccept or decline (with optional e-signature)Pay
PaymentOptional deposit on acceptanceFull balance via payment links
Status flowDraft โ†’ Sent โ†’ Accepted / DeclinedDraft โ†’ Sent โ†’ Paid
Typical orderStep 1Step 2 (can auto-create from accepted quote)

When a client accepts a quote, Servelo can automatically create a draft invoice pre-filled with the same line items. Any deposit paid on the quote is deducted from the invoice total. You review and send the invoice when the job is complete.

Summary cards

Above the invoice list, four cards summarize the currently filtered set: Outstanding (all non-draft, unpaid invoices), Overdue (still unpaid 14 or more days past their due date), Paid, and Total (a count, not a dollar amount). All four respect whatever filters and search you have applied, so filtering to one client scopes the totals to that client.

Creating an invoice

There are three ways to create an invoice:

Creating an invoice for a ticket moves that ticket's status to Awaiting Payment automatically (unless it's already Closed or Cancelled) โ€” see Ticket statuses. Marking the invoice paid then moves the ticket to Closed.

Line items

An invoice is built from individual line items. You can type them in, or pick saved services and parts from the Price book โ–พ menu in the quick-add row (see Price book). Each item has:

Line items can be reordered by dragging. The invoice total updates in real time as you edit. If the invoice is linked to a ticket, you can also pull in any of that ticket's unbilled reimbursed expenses as line items โ€” see Reimbursed expenses.

Hours

An invoice has its own Hours field, separate from the line items, kept in sync with the linked ticket's Hours Worked field in both directions:

Hours is informational only - it isn't a line item and doesn't affect the invoice total. If you want billed labor hours to actually appear on the invoice the client sees, add a Labor line item (the 1hr Labor / 2hr Labor quick-add buttons prefill one for you).

AI line item suggestions

Click AI Suggest to automatically generate line items based on the ticket description and any attached photos. When a ticket is linked, the AI analyzes the full service context. When no ticket is linked, you can describe the work manually and the AI will suggest relevant items.

Suggested items appear in a panel where you can select which ones to add. Each suggestion includes a description, quantity, and price.

Sending an invoice

  1. Build the invoice and review line items and total
  2. Add any notes to appear at the bottom of the invoice
  3. Click Send Invoice. The client receives an email with the full invoice contents and payment links
  4. The email includes Pay Now buttons for any payment methods you have configured (Venmo, PayPal, Square)

Invoices always display Due Now to the client rather than a calendar date - the intent is full payment on receipt, not a net-30-style grace period. A due date still exists behind the scenes (it defaults to the day the invoice is created, and is filled in with today's date at send time if it was left empty, which covers invoices created by the AI Job Planner or converted from a quote, and drives the automatic reminders below and the Overdue status), but it's an internal scheduling detail, not something shown to the client.

Before sending, you can check Send me a copy in the send dialog. When checked, a copy of the invoice email (including the PDF attachment) is sent to your account's email address at the same time the client receives theirs. A confirmation toast confirms whether the copy was delivered.

If the invoice is linked to a ticket, its notes are copied onto that ticket as an internal (staff-only) note the first time you send it, so you don't have to write the same context twice. This only happens on the first send from draft; resending an already-sent invoice does not add a duplicate note.

โš ๏ธ Payment buttons won't appear on invoices until you configure your payment methods. Go to Invoices > Settings > Payment Links and add at least one handle. See Setting up payment methods below.

Setting up payment methods

Before your invoices can include payment buttons, you need to configure at least one payment handle. This is a one-time setup in Invoices > Settings > Payment Links (admin only).

Servelo supports three payment methods:

MethodWhat to enterHow to find it
Venmo Your @username (e.g. @yourbusiness) Open the Venmo app, tap your profile icon. Your @username appears below your name.
PayPal Your full paypal.me URL (e.g. paypal.me/yourbusiness) Visit paypal.com/paypalme to create or find your link.
Square A "buyer enters amount" Square payment link (e.g. https://square.link/u/...) In Square Dashboard, go to Payments > Payment Links, create a new link with Buyer sets the amount, and copy the URL.

Once saved, Servelo automatically builds prefilled payment links using the exact invoice amount and attaches them to every invoice email and automatic reminder. Customers see a Pay Now button for each configured method.

๐Ÿ’ก You don't need to configure all three. Add only the methods you accept. If none are configured, invoices are sent without payment buttons.

Invoice statuses

StatusMeaning
DraftCreated but not yet sent. Only visible to your team.
SentEmailed to the client, awaiting payment.
OverdueA Sent invoice still unpaid 14 days past its due date. Invoices are due on receipt, and the customer's copy only ever says Due Now; the 14 days is an internal window for your own list, never shown to the customer. Shown automatically, not something you set by hand.
PaidMarked paid either manually by your team, or automatically when a Square payment completes.
Not PaidSet manually to close out an invoice you don't expect to collect, without marking it Paid. Stops further automatic payment reminder emails. Its ticket moves to Not Paid too (unless the ticket is already paid or cancelled), and switching the invoice back to Sent puts the ticket back to Awaiting Payment. See Ticket statuses.
VoidCancelled. No longer collectible.

Client viewed indicator

When a client opens their invoice in the customer portal, Servelo records the timestamp automatically. Two places surface this:

A browser push notification is also sent to your team the first time a client opens each invoice โ€” useful for knowing when to follow up on payment.

Servelo supports two distinct ways to accept card payments via Square. Understanding the difference is important for how you handle each job.

Generic Square link vs. invoice-specific link

Generic link (Settings)Invoice-specific link
Where it comes fromYou create it manually in Square Dashboard and paste it into Servelo under Invoices > Settings > Payment LinksServelo creates it for you by clicking Generate Card Link inside an invoice
Amount shown to customerNone. Customer enters whatever amount they wantPreset to the exact invoice total. Customer cannot change it
TipsCustomer can pay any amount, including a tipAmount is fixed. No tip possible via this link
Auto-marks invoice paidNo. Servelo can't match an untracked payment to an invoice. You receive a push notification but must mark the invoice paid manuallyYes. Invoice is automatically marked paid the moment Square confirms payment
Appears in invoice emailsYes, as a fallback "Pay by Card" button if no invoice-specific link existsYes, replaces the generic button once generated
Best forWalk-in or ad-hoc payments where you want flexibility, or when a tip is expectedAny invoice where you want the exact amount enforced and zero manual follow-up

How to generate an invoice-specific link

  1. Open an invoice in Servelo
  2. In the right sidebar, under Payment Options, click Generate Card Link
  3. Servelo creates a Square Order for the invoice total and returns a checkout URL
  4. The link is saved on the invoice. A Pay by Card button now appears in the sidebar for you to copy or preview
  5. If you send (or re-send) the invoice after generating the link, the email will include this preset-amount checkout button instead of the generic one
๐Ÿ’ก You can generate the link before or after sending the invoice. If you generate it first, the email will automatically include it. If the invoice was already sent, re-send it after generating to give the customer the updated link, or copy the link from the sidebar and share it directly.

Regenerating a link

If the invoice total changes after generating a link, click the โ†บ button next to the existing link to regenerate it. A new Square Order is created for the updated total and the old link becomes inactive.

Tips and invoice-specific links

Invoice-specific links lock the amount to the invoice total. If you want to give a customer the option to tip, share the generic Square link (from Settings) instead and manually mark the invoice paid afterward. If you receive a payment via the generic link, Servelo sends you a push notification with the payment amount so you can find the right invoice and mark it paid.

Automatic mark-paid (Square)

When a customer pays via an invoice-specific Square link (see Square payment link), Servelo marks the invoice paid automatically with no manual step needed.

How it works:

If payment arrives via the generic Square link (no order ID), Servelo cannot automatically match it to an invoice. Your team gets a push notification and (if a support email is configured) an email at the time it happens, and the payment is also saved to the Unmatched Payments queue described below so it isn't lost if you miss those.

Requirements: Square must be connected under Settings > Integrations. Venmo and PayPal payments always require manual mark-paid since those providers do not send signed payment webhooks.

Unmatched Payments

Whenever a Square payment can't be auto-matched to an invoice, it's saved to a review queue. When there's anything to review, a banner appears at the top of the Invoices list (admins only) showing the count and total amount, with a Review button. For each payment, search for the invoice it belongs to by invoice number or client name and click Mark Invoice Paid โ€” this marks that invoice paid exactly as if you'd used the invoice's own Mark Paid action, then removes it from the queue. If a payment wasn't actually a business payment (e.g. a personal transaction on the same Square account), click Ignore instead.

Automatic payment reminders

Servelo can automatically email clients reminders about unpaid invoices. Reminders stop as soon as the invoice is marked paid.

Configure which reminders to send under Settings > Invoices > Automatic Reminders. Available triggers, each sent once per invoice:

โš ๏ธ The six triggers above only fire if the invoice has a due date set. Invoices without a due date will never trigger them. Since a new invoice's due date now defaults to the day it's created (see Sending an invoice), the "before due date" triggers only fire if someone manually pushes the due date out - by default an invoice is due (and eligible for the "on due date" reminder) the same day it's sent, and becomes eligible for the after-due-date reminders 3/7/14 days after that. Reminders before day 14 say the invoice is still awaiting payment; from day 14 on they call it overdue, matching when it's marked Overdue on your list.

A separate Every week until paid toggle sends a repeating reminder every 7 days, starting a week after the invoice was sent โ€” it does not require or depend on a due date, and keeps repeating indefinitely (not just once) until the invoice is paid. It can be enabled alongside the triggers above; a client could receive both an overdue reminder and a weekly reminder in the same week if both apply.

Invoice PDF

Every invoice has a Download PDF option that generates a branded PDF with your company name, logo, contact details, billed-to information, all line items, and totals. The PDF is generated on demand.

โ„น๏ธ The Document Color setting (Settings > Organization) customizes the header and table colors in the invoice editor, but not yet on the downloaded invoice PDF or invoice emails, which still use the default navy. It already applies fully to quotes; see Quote PDF.

Email content

When you send an invoice, the email body includes the full invoice contents inline, no need for the client to click through to a PDF just to see the total. The email shows:

Quote to invoice

When a client accepts a quote, Servelo automatically creates a draft invoice pre-populated with the same line items, title, and notes. The invoice is linked to the same ticket and client. Your team receives an email notification with a link to review and send the invoice.

This eliminates manual re-entry, the quote acceptance flow creates a complete, ready-to-send invoice in one step.

Receipts for invoices paid in person

If a customer pays you on the spot and asks for a receipt afterward, create the invoice as usual, click Mark as Paid, and send it. Once an invoice is Paid, the same button becomes Send Receipt and the customer gets a receipt instead of an invoice:

To save a step, tick Then email a receipt to the customer in the Mark as Paid dialog. As soon as the payment is recorded, the send dialog opens with the customer's email filled in. A paid invoice's Download PDF is also a receipt.

The date a receipt was emailed shows under Email History on the invoice and in the Last Emailed column on the list.

List columns and Last Emailed

Click โŠž Columns above the Invoices list to show or hide columns: Client, Total, Ticket, Quote, Due Date, Last Emailed, and Created. #, Title, and Status are always shown. Your choice is remembered in your browser. The picker is available on desktop only. Drag any column header left or right to put the columns in the order you want; open โŠž Columns and click โ†บ Reset column order to go back to the default. Both the order and the visible columns are remembered in your browser.

Last Emailed shows the most recent time the client was emailed about the invoice, whether that was the original send, an automatic reminder, or a receipt, with a small label under the date saying which. Click the header to sort by it. Invoices that were never sent show a dash.

Exporting invoices

Click Export on the Invoices list page to download all visible invoices as a CSV. The export includes invoice number, title, client, status, amount, due date, and sent date. Filter by status or date before exporting to get a specific period.

Who can do what

ActionAdminTechnicianViewer
Create invoiceYesYesNo
Edit invoiceYesYesNo
Send invoiceYesYesNo
Mark as paidYesYesNo
Download PDFYesYesYes
Void invoiceYesNoNo
View invoicesYesYesYes

The InvoiceBuilder shows a related-links bar at the top when the invoice is linked to a ticket or originated from a quote. Click any link to jump directly to that record. On the Invoices list page, the Linked Ticket and Quote columns are also clickable for quick navigation.

Recurring invoice plans

Recurring plans automatically generate and optionally send invoices on a repeating schedule. Manage plans under Invoices > Recurring (admin only).

Each plan defines:

You can pause a plan (toggle Active off), edit it at any time, or trigger the next invoice immediately with Run now.

Invoice settings

Invoice-specific settings are under Invoices > Settings (admin only):