Invoicing Start to Finish
Understanding how different parts of the system need to be set up for easy invoicing.
When invoicing is blocked
If a site visit's Client Deliverables status is DELIVERABLES MISSING, DELIVERABLES INCOMPLETE, or DELIVERABLES UPDATED, that visit can't be invoiced. Invoice Site Visit and Create Invoice are both greyed out and say why.
One invoice covers every site visit on a ticket, so a single flagged visit holds the whole ticket. To clear it, open the visit and set Client Deliverables to DELIVERABLES COMPLETE or DELIVERABLES COMPLETE - LATE.
DELIVERABLES UPDATED blocks on purpose. That status means the technician uploaded something after the visit was flagged — not that the right thing arrived. A person still has to look and decide. If an upload cleared the block by itself, any file at all would release the payment and open the invoice.
It does not stop you viewing an invoice you've already sent. The block is about what you bill next.
When your client hasn't approved the hours
If you shared a site visit with your client using Share tech times for approval, the Tickets to Bill list tells you where they stand, right on the ticket row:
Awaiting client hours approval: the hours were sent to your client and they haven't answered yet. Hold the invoice until they approve.
Client disputed hours: your client questioned the technician's hours. Don't bill it yet.
These badges don't lock anything. They're there so nobody invoices hours your client hasn't agreed to.
Settling a dispute. Open the site visit. The Time Tracking card shows what the technician reported, what your client says, and their note. You have three choices:
Accept customer's times: replaces the on-site and off-site times with your client's. Only available when they gave replacement times.
Keep reported times: keeps the technician's times.
Re-submit for approval: sends the hours back to your client to approve again. Check with the technician first, and correct the times with the pencil icon if needed. Your client gets an email with a new link showing the current times, plus your optional message.
Accept and Keep close the dispute and release the technician's payout hold. Re-submit keeps the payout on hold and puts the ticket back to Awaiting client hours approval until your client answers. If they approve, the hold lifts on its own. If they never answer, you can still close it with Accept or Keep.
Tenant Invoicing — How It All Works Together
Getting a clean, accurate invoice out the door depends on a chain of information that starts the moment you set up a client. Here's a walkthrough of every piece and why it matters.
Process flow: To invoice a ticket, a ticket must be created. To create a ticket, a client record must exist.
Step 1 — Set Up Client Rates
A client's saved rates live in the Client Rates card on the client's Billing tab — click Add Rate to create one. You can also save a rate straight from the new ticket form (Step 2).
Each rate record captures:
Rate Type — How the client/ticket pay is calculated (e.g., Hourly, Flat Rate, Blended, Per Device)
Rate Limit — any cap or qualifier (e.g., 8 hrs, first 4 hrs). For a Per Device rate this is replaced by the Number of Devices — the total is always the per-device price × the device count
Rate Amount — the dollar amount for labor (for Per Device, the price per device)
Travel Pay — a separate dollar amount for travel if applicable
Primary Rate — marks this as the client's standard rate. It doesn't fill anything in by itself; you still pick it with Load Saved Rate on each site visit
These rate records are the source of truth for what you charge this client. If you have multiple rate tiers for the same client (say, a standard rate and an after-hours rate), add one record per tier.
Step 2 — Create a Ticket and Assign Rates
On the new ticket form, each site visit has its own Client Pay card — what the client is paying you for that visit. Pick one of the client's saved rates with Load Saved Rate, which fills in the rate type, amount, limit and travel pay together, or type the rate in yourself. You can change any of it for that visit.
The rate is recorded on the site visit, not the ticket. Each site visit can have a different rate, and if the client's standard rates change later, the site visit keeps what was agreed when it was created. (The rate can still be adjusted on the site visit before invoicing if needed.)
If the rate you need isn't saved yet, fill it in on the visit and click Save as client rate to add it to the client without leaving the form.
Step 3 — Technician's Update Site Visits
For every site visit, a technician checks in and checks out, which updates a Site Visit. The site visit captures:
Time in / time out
Repair type and result
Repair notes
Parts, Supplies, and Expenses incurred — item code, description, quantity and what each one cost
For each part or expense the technician records the Item Code, Description, Qty and what it cost them (Cost (each)). They never see or set what you charge the client for it — that's the Unit Price, which your office fills in.
Step 4 — Review the Site Visit
After a job is complete, someone who can see client rates and part prices (the Owner, an Admin, a Project Manager or an Accounting user) opens the parent ticket record which will show all related site visits to ensure the ticket is not billed until each site visit is fully complete. They will see:
Client Rates — the rates attached to the job, on the site visit's Financials tab. These can be edited there if an adjustment is needed before invoicing.
Parts and expenses — on the site visit's Main tab, the list the tech recorded, with each item's Cost. Click Edit Parts/Expenses and fill in the Unit Price: what you charge the client for each one.
This is where the site visit becomes invoice-ready.
Step 5 — Generate the Invoice
Who can invoice. Creating, editing and sending invoices takes the Manage Invoices permission. By default that's the Owner, Admins and Accounting users. Project Managers and Staff can view invoices that already exist but can't create or send one. The Owner can change this in User Management → Role Permissions.
Open the ticket and choose Ticket Actions → Create Invoice. (From a finished site visit, Invoice Site Visit opens the same invoice for the whole ticket.) The system automatically pre-fills the invoice line items using:
The Client Rates attached to the site visit record— one line per site visit, with the rate amount and travel pay populated from the rate records
The Expenses recorded on site visits — one line per part, with the description and quantity the tech entered, and the Unit Price you filled in
How the labor line's quantity is filled depends on the rate type: Hourly and Blended visits bill the on-site hours, Flat visits bill a quantity of 1 at the flat amount, and Per Device visits bill the device count as the quantity at the per-device price — so a $25-per-device visit covering 50 devices comes out as a line reading 50 × $25.00 = $1,250.00, regardless of hours on site.
This means you should almost never have to type line items manually. If something is missing or wrong in the prefill, it traces back to one of the steps above. There is an "Add Labor" and "Add Expense" button to manually add any missing items.
Step 6 — Send the Invoice
Once the invoice line items look correct, you can:
Save Draft — keep the invoice to finish later. Nothing is sent. The site visit's button changes to Finish Invoice so you can pick up where you left off.
Email Invoice to Client — delivers a PDF invoice to the client's invoicing contact and automatically moves the ticket to Closed with a billing status of Billing Complete
If you have added a contact to your client record and assigned it a department of 'Invoicing' the email of that contact will automatically load as the default email to send the invoice. You may also add an email manually before sending the invoice.
Sending marks the ticket as fully billed — you don't need to manually update the ticket status. The ticket and site visit records are marked read-only once an invoice has been sent, to prevent edits after the invoice is finalized.
On a Tech Marketplace ticket, Email Invoice to Client isn't offered — only Save Draft. When you've billed your client, use Ticket Actions → Mark Billed to close it out.
Step 7 — Confirm the Invoice Actually Arrived
Sending an invoice and the customer receiving it are two different events. Open the ticket's Activity tab and the Invoice Delivery card at the top answers the second one, per invoice, with the recipient address it went to.
You'll see one of these:
Delivered — their mail server accepted it. This is the strongest confirmation there is, and it still has two limits worth knowing: the message can be filtered to a junk folder after being accepted, and it does not mean anyone opened it.
Sent — no confirmation yet — handed to our mail provider, still waiting to hear back. Confirmation normally follows within a minute. If it never does, the receiving server never answered.
Bounced — their mail server refused it, most often a wrong or closed address. The card shows the receiving server's own explanation, which is what separates a typo in the address from a full mailbox. Fix the address and send again.
Not sent — our mail provider never attempted it, because that address has hard-failed before or asked not to be emailed.
Delayed, retrying — their server asked us to try later. This usually clears on its own.
Marked as spam — the recipient reported it as spam. We stop emailing that address afterwards.
Blocked — address suppressed — the address is on the do-not-send list after an earlier hard failure, so nothing went out. Confirm the address with them another way.
Failed to send — we couldn't hand it to our mail provider at all, so nothing reached them. Send it again.
Why there is no "opened" count. Open tracking is deliberately switched off. Apple Mail Privacy Protection pre-loads images and records opens nobody performed, while people who block images register no open even when they read every word. A number that is wrong in both directions is worse than no number when you are deciding whether to chase an unpaid invoice.
Below the card, the Ticket Activity timeline records the send itself — who invoiced, when, and to which address — alongside everything else that happened on the ticket.
Where to Find the Invoice Afterwards
Two places, both one click:
The ticket header carries a Client Invoiced badge with the invoice number next to Active/Closed. Click it to open the invoice PDF from wherever you are on the ticket. If a ticket has more than one invoice it reads Client Invoiced (2) and opens the viewer on the first, with arrows to page through them.
The Files tab keeps the invoice in its own Invoice card at the top, separate from the work orders and other paperwork in Ticket Files below, with View and Download.
The badge only appears once an invoice document exists, so it is never a link to nothing.
Quick Setup Checklist (per client)
At least one Rate record on the client (Rate Type, Rate Amount)
Travel Pay set on the rate if you charge for travel separately
A client contact record with a department value of "INVOICING" and an email address
Quick Checklist (per job)
A client rate filled in on every site visit (Client Pay card, or the visit's Financials tab)
Tech has checked in and out and the site visit is complete
Tech or staff users have sent all deliverables to the client
A Unit Price entered on every part on the site visit
Invoice reviewed and sent
Delivery confirmed on the ticket's Activity tab — Delivered, or a bounce chased down and re-sent