Invoicing and accounting task records
What this means in HVAC
Invoicing software for an HVAC shop is judged on one chain: the quote becomes a job, the technician adds the capacitor he actually used, and the invoice carries both without the office retyping anything (T-06). Then the money side: taking a payment or sending a payment link (T-10), and getting the invoice and the payment into QuickBooks Online with the right customer and amounts (T-13). Billing software and bookkeeping software are the same products seen from the office and from the accountant.
The part added in the field
Both products carried the field-added part onto the invoice and passed. The difference is what a technician is allowed to do by default. With Jobber’s “field crew” preset the technician saw no prices and could not edit line items; only after the owner switched her to “senior field crew” could she add the part. TestedT-06 ServiceM8’s default staff role could edit billing, complete the job and saw a Send Invoice button we did not use, with totals refreshing immediately. TestedT-06 Decide before the trial which of those you want your apprentices to be able to do: Jobber starts closed and you open it, ServiceM8 starts open and you close it.
Payments
T-10 is the phone task that closes the chain: from the job the technician just finished, raise the invoice and take the payment. Both runs ended as partial for the same reason. Jobber’s “close job and invoice now” produced the invoice from the visit, but with Jobber Payments not set up on the trial the only options were cash, check or “other payment record”, and the invoice itself warned that clients could not pay online; we recorded a cash payment and the office list showed the invoice paid. TestedT-10 ServiceM8’s Add Payment on the phone recorded a card or cash amount by hand, with an optional receipt photo, and moved the job to completed and the invoice to paid; with no gateway active there was no card entry, no tap to pay and no payment link. TestedT-10 Neither trial exposed a test-mode card flow, so what we can say is that both record a payment correctly against the right invoice from the phone, and that card processing is a setup step you will have to complete during your own trial. Jobber’s pricing page lists card payments at 2.9% plus 30 cents, tap to pay at 2.7% plus 30 cents and ACH at 1% on every plan. TestedT-16 One locale note from the ServiceM8 run: the phone showed amounts in euros from the device locale and an Australian invoice template, even though the account region was set to United States. Check your invoice template on a phone before the first customer sees it.
The accounting sync
Both products synced an invoice into our QuickBooks company; Jobber’s run also synced the payment, ServiceM8’s run did not include one. Jobber’s first attempt failed; ServiceM8’s first invoice went through and a second one did not. Jobber’s sync failed until a 0% sales tax code existed in QuickBooks; after that, customer, items, invoice and payment synced in under two minutes. TestedT-13 ServiceM8 holds invoices for approval before sending, asks for an income account per new item, and returned a validation error whose text did not say what was wrong; the invoice that failed carried items whose names already existed in our shared QuickBooks company, which is a lab caveat, not a confirmed cause. TestedT-13
Lab caveat, stated on every result: our QuickBooks company is a Global edition trial in EUR, shared by the products we tested, not a US sandbox. Amounts and customers matched; sales tax mapping to a US company was not verified.
- Housecall Pro · Not tested UnverifiedT-06
- Jobber · pass TestedT-06
- Kickserv · Not tested UnverifiedT-06
- ServiceM8 · pass TestedT-06
- ServiceTitan · Not tested UnverifiedT-06
- Workiz · Not tested UnverifiedT-06
- Housecall Pro · Not tested UnverifiedT-10
- Jobber · partial TestedT-10
- Kickserv · Not tested UnverifiedT-10
- ServiceM8 · partial TestedT-10
- ServiceTitan · Not tested UnverifiedT-10
- Workiz · Not tested UnverifiedT-10
- Housecall Pro · Not tested UnverifiedT-13
- Jobber · pass TestedT-13
- Kickserv · Not tested UnverifiedT-13
- ServiceM8 · pass TestedT-13
- ServiceTitan · Not tested UnverifiedT-13
- Workiz · Not tested UnverifiedT-13
What the tasks require
Rubric: Payments · Integrations
- T-06: Quote → job → invoice; the tech adds a part in the field
The invoice carries the line items plus the added part
- T-10: Take a payment (test mode) or send a payment link
The payment is recorded against the invoice
- T-13: QuickBooks Online sync of an invoice and a payment (sandbox)
Amounts and customer match in QBO
Products and task evidence
Housecall Pro advertises a 14-day free trial, but its terms say the service is offered to users who reside in the US or Canada, and when we signed up on September 28, 2026 the onboarding form did not accept our Spanish phone number. Our lab is in Spain, so we have not run our tasks on it. What this page shows comes from public sources and is marked as documented, not tested.
Housecall Pro: insufficient evidence for these tasks.
Kickserv: insufficient evidence for these tasks.
ServiceTitan: insufficient evidence for these tasks.
Workiz: insufficient evidence for these tasks.
- Price checked
- Not verified
- Last tested
- Last edited
Pinned: Housecall Pro · Jobber · Kickserv. All tasks are shown on desktop; narrow screens start with differences. These selected results are available without JavaScript.
| Task | Housecall Pro | Jobber | Kickserv | ServiceM8 | ServiceTitan | Workiz |
|---|---|---|---|---|---|---|
Quote to invoice | Housecall Pro Not tested UnverifiedT-06 | Jobber Pass TestedT-06 | Kickserv Not tested UnverifiedT-06 | ServiceM8 Pass TestedT-06 | ServiceTitan Not tested UnverifiedT-06 | Workiz Not tested UnverifiedT-06 |
Take a payment | Housecall Pro Not tested UnverifiedT-10 | Jobber Partial TestedT-10 | Kickserv Not tested UnverifiedT-10 | ServiceM8 Partial TestedT-10 | ServiceTitan Not tested UnverifiedT-10 | Workiz Not tested UnverifiedT-10 |
QuickBooks sync | Housecall Pro Not tested UnverifiedT-13 | Jobber Pass TestedT-13 | Kickserv Not tested UnverifiedT-13 | ServiceM8 Pass TestedT-13 | ServiceTitan Not tested UnverifiedT-13 | Workiz Not tested UnverifiedT-13 |
Profile verdicts
Owner-operator
View this operation profileSmall residential shop
View this operation profileMixed service + projects
View this operation profileCommercial-leaning
View this operation profileRecorded limitations
- Your payer is often not the owner of the service location: in our trial Jobber billed the client that owns the property, so a property manager's unit needed a workaround that either duplicates the location or demotes the tenant to a contact (T-03).
- You track individual units by serial number: Jobber had no equipment record in our trial, and history lives on the property, not the unit (T-04).
- Your customer list already has property managers or landlords: the importer takes one row per property and cannot link the payer, so that structure is rebuilt by hand after import (T-01, T-03).
- You expect the app's search to find a job by its number: in our test it returned the customer and the address, not the job (T-09).
- You want the displaced customer told automatically when an emergency bumps their slot: the reschedule notice is a manual send (T-07).
- You need card payments working on day one: in our trial only cash, check and manual payment records were available, because Jobber Payments was not set up on the account (T-10).
- You are counting on the lowest plan: the features we tested put a contractor on Grow, $199 a month for one person at the time of our check (T-16).
- You need per-unit history right away: the register showed our condenser with its serial, but nothing can be recorded against it until a ServiceM8 QR label is scanned on the unit (T-04).
- You expect the payer and site structure out of the box: as the product comes, billing another address is set per job and every unit address is retyped; the Client Sites add-on support described is untested by us (T-03).
- You expect offline work to sync on its own: in our test nothing uploaded after reconnecting until the app was closed and reopened, so a technician who waits for the sync may not see offline work (T-09).
- You bill replacements as percentages: the deposit is a hand-priced line that needs an item code, not a share of the job (T-08).
- Your customer list has several rows per customer: the importer merged same-name rows without warning and kept only the last address (T-01).
- You want equipment history without labels: each unit needs a ServiceM8 QR label scanned on site before any service can be recorded against it (T-04).
- Your office forces emergencies into full slots: in our run the displaced job dropped out of the day view, with no conflict marker on the board (T-07).
- You want card payments without extra setup: with no gateway active, the phone only recorded a card or cash amount by hand (T-10).
- You work from an Android phone: the full app is iOS, and the Android app is a separate "Lite" version we have not tested (T-16).