Software and accounting guide
Jobber: service jobs, invoices, job costs and QuickBooks
Jobber is software for home and commercial service businesses to manage customer work, scheduling, quotes, invoices and payments.
By Sam Yang · Updated
How Jobber supports the workflow
Who this guide is for: Owners and office teams running service visits, with field staff recording work and finance teams checking the resulting invoices and costs.
Everyday uses
- Keep customer jobs and scheduled visits organized.
- Prepare quotes and invoices and follow payment progress.
- Review job costs using the supported inputs and the relevant job period.
How it connects to accounting: A completed visit and an invoice are different stages. The accounting review follows the job’s actual linked invoice, its status and any QuickBooks record. Labor costs also need the right hours and cost basis, not just a completed visit.
How to connect it and get the records you need
A built-in connection transfers the records its vendor supports. An API lets software read or exchange specific records directly. Browser automation may use the screens and reports your role can access when a direct connection leaves a gap. Its coverage and reliability need checking for the specific workflow. Start with the options available in your account, then check what actually reaches your books.
Documented API and QuickBooks connection
Use Jobber’s documented GraphQL API or the configured QuickBooks integration. GraphQL is the query format used by this API. Check whether the business uses the new or legacy integration and its actual trigger settings.
Product reports and exports
Collect the report or export that answers the job, invoice, payment or cost question. Retain the selected job period and cost inputs.
Browser assistance
Follow one job to its linked invoices and accounting destination, or inspect a cost that may have been entered twice. Do not assume one visit creates one invoice.
Start here: Pick one completed job and check which invoice records are linked to it before treating completion as invoiced revenue.
Integration options and their limits
An API gives software direct access to supported records. Native reports are the files and reports available inside the product. Browser automation collects through the screens you can access. Choose the route that supplies the missing records, then check that it covers the accounts and dates you need. Reports may contain filters or omit rows. Browser work depends on permitted account access and can fail when screens change. Check record IDs, counts and dates whichever route you use.
Supported API or integration
- What it supplies
- Jobber documents a GraphQL API, which lets software request selected fields, with OAuth access permissions, API versions and a list of available fields. The saved finance collector requests job links, line items and payment references, and checks jobCosting access separately.
- What to check first
- Verify the permitted fields, every results page for related records, and how much history is available. Access to customer payments does not prove that bank deposits are included.
Choose it when: Use authorized API reads when the needed linked records and history are available. Count the results pages and keep a record of what was collected and when.
Reports exported from the product
- What it supplies
- The official help center distinguishes One-Off Jobs, Recurring Jobs, Visits, Timesheets and Invoice/Payment reports.
- What to check first
- Check whether the downloaded report contains the needed cost and money columns, and whether it includes all requested dates. Its title alone does not answer those questions.
Choose it when: Use the complete report that answers the question, especially when an authorized API request cannot return a needed field.
Permitted browser collection
- What it supplies
- Read-only job detail can show the selected costing inputs, window and an external work-order reference.
- What to check first
- A list of visits does not establish paid crew hours. A hidden profit bar may reflect the user’s permissions.
Choose it when: Inspect a specific job to explain a cost difference or unmatched accounting reference. Do not collect every screen by default.
What to automate and what an accountant should review
Good work for automation
- Find purchases that appear in more than one cost entry and collect the original records for review.
- Keep confirmed job-reference matches, check every result page was collected and list blocked fields.
Keep a person on these decisions
- Decide whether the entries are one purchase counted twice or two genuine purchases of the same amount.
- Choose which labor costs belong in job margin and approve any settings changes.
Lessons from accounting and operations
Known problems and what to check
Check Jobber job costs and linked invoices
For job profit, check whether the same material purchase appears both as an item cost and an expense under the chosen QuickBooks integration. For collections, follow invoices and customer payments; the job dashboard does not prove money reached the bank.
Evidence basis: Official job-costing and QBO integration documentation, with job costing rechecked October 7, 2026. These sources do not establish a dated native collection walkthrough or hands-on implementation outcome.
Use a supported API or integration where it covers the required records and history. Check the actual account permissions and complete set of records before supplementing a gap.
Materials appear as both an item cost and an expense
Use one representative purchase to test whether the job-cost total includes both. Do not delete either record merely to make the total agree.
A recurring job margin is compared with a full-month or lifetime ledger view
The official job-costing guide describes whole-job costing for one-off work and a trailing 30-day window for recurring work. Check that definition before treating the difference as a missing cost or incorrect sync.
Start with an API, connection or built-in report that your account offers and you have confirmed. An authorized browser session may collect records those routes leave out; test its coverage for the workflow. Still check the totals against the books and confirm that all relevant costs are included.
Pitfalls and when to pause
A Visit roster is not crew hours. Access to payment records is not payout reconciliation. A successful request does not mean the retained original records are complete.
How a plausible answer can go wrong
A connected account and a plausible job margin can coexist with an extra material cost or omitted payroll burden. Test a specific cost path rather than assuming that a successful sync covered it.
Pause if you cannot confirm the account, permission, reporting dates or completeness of the records. Return the missing evidence for review. Do not fill the gap with an invented record, a balancing entry or an assumed zero.
When the result does not make sense
Materials appear as both line-item cost and expense
Check: Check whether both entries point to the same purchase. Compare the total with the cost of counting that purchase once.
Resolve the question: Show the owner how the possible duplicate affects cost. Keep both original records until the owner approves how that purchase should be recorded.
Recurring-job margin differs from the books for that month
Check: Check the start and end of the rolling 30 days, whether the job is recurring, and the dates used by the books.
Resolve the question: Compare the same dates, or list the amounts that fall outside each report’s dates, before calling the difference a sync error.
Few jobs match accounting despite familiar customer names
Check: Check customer work-order numbers, custom fields and job titles. Confirm which types of work were actually billed through Jobber.
Resolve the question: Keep confirmed job matches and list possible matches that need review. Do not assign a customer’s total to one job.
Collect the records and check nothing is missing
- Job and visit records
- Retain separate job and visit identifiers, the actual labor source and the profitability window. Scheduled visits do not establish paid crew hours.
- Item cost, expense and connector
- Confirm NEW versus legacy QuickBooks integration and the direction of later cost changes in the current account.
- Invoice, payment and payout
- Keep customer payment evidence distinct from bank settlement; a payment record does not prove the payout cleared.
Use reports from the product for a documented gap; retain all pages and original record IDs. Verify collection completion and retained record freshness and distinguish job, visit, invoice and payment records.
Checks before using the records
- Confirm the actual integration edition and eligible objects.
- Collect all pages and original record IDs for the chosen records included in the report.
- Keep jobs, visits, invoices, payments and payroll evidence distinct.
Fictional collection example
A fictional Visit list covers every scheduled appointment. No verified duration or payroll cost is attached. Return visit coverage as established and labor cost as unavailable. Do not multiply scheduled visits into an asserted crew-payroll total.
Invented teaching scenario, not a customer result or a reproduced vendor defect.
Capture the setup with the evidence
- Company, legal entity or account, report name, period, cash or accrual accounting basis, currency and timezone.
- Selected filters, status, page count, original record identifiers, record counts and totals used to check completeness.
- Collection time, source route and authorized role. Record browser and automation versions when using a browser.
- Original files and exceptions. Keep credentials, customer identifiers and financial artifacts private.
A browser version helps reproduce an interface issue. It does not validate the financial conclusion.
Practical workflows
Practical checks you can follow
Are the same materials being counted twice in this job’s cost?
A material purchase can appear as an item cost and as an expense. Trace both entries to the receipt or supplier bill before deciding whether they are duplicates. Also compare the same dates: one-off jobs and recurring jobs use different costing windows. To compare Jobber with your books, match the actual job reference and confirm which labor costs are included. A blocked field or short export is a collection problem to investigate, not proof that the work did not happen.
Check a material purchase for duplicate cost entries
- Choose one material purchase and keep its receipt or supplier-bill number, amount and job. Record whether the account uses the NEW or legacy QuickBooks integration.
- Read the job’s line-item unit cost, quantity and linked expense entry. The official costing guide warns against recording the same cost in multiple inputs.
- Compare the purchase with the expense or bill in the books. The same amount and supplier suggest a possible match, but confirm the receipt or bill link before deciding that two entries represent one purchase.
- Read the selected job’s costing window. One-off jobs use the job duration; recurring jobs use the last 30 days including today, so compare the accounting extract on the same window.
- Show where the purchase is included in job cost and how counting it twice would affect margin. Do not delete expenses or change item costs while gathering the records.
Bring to the review: A record of where the purchase appears, which dates the job-cost view covers and how a possible duplicate affects its margin.
Then decide: Have the owner choose how the purchase should be recorded and check the integration settings. After an approved correction, compare the job view with the original purchase again.
Match Jobber jobs with the accounting records
- Collect job, visit, invoice and payment IDs using authorized API reads that cover every results page, or complete reports from the product. Keep the job and its visits separate.
- Look for the accounting or customer work-order reference in custom fields, work-order fields, invoices and job titles before deciding the systems cannot match jobs.
- Compare each system’s ID format using jobs whose matches you already know. A Jobber jobNumber is not automatically the customer work-order number. Keep the original ID, including leading zeros, and store any normalized comparison value separately.
- Group unmatched records by date and type of work. Keep work billed outside Jobber on a separate list instead of counting it as a failed integration.
- Check which fields the account can access and whether all related records were returned. The saved collector checks jobCosting access separately. A successful request for jobs does not prove it returned every cost, invoice or payment attached to those jobs.
Bring to the review: A matching table showing original job references, any changes made for comparison, confirmed matches, uncertain matches and work billed outside Jobber.
Then decide: Calculate a job’s profit only after its records are matched. Ask the owner to resolve access problems and a reviewer to resolve uncertain matches.
Worked example
One material purchase represented twice
All records and amounts below are fictional teaching inputs. CSV files are spreadsheet-compatible text files. This example demonstrates the calculation, not a customer outcome or a reproduced software defect.
The teaching scenario intentionally identifies the two $600 rows as representations of one purchase. Summing every cost gives $1,700 and $300 contribution. Counting the purchase once gives $1,100 and $900 contribution. These are direct-cost teaching contributions, not proof of net profit or a recommended deletion.
What the CSV columns mean
- entry_id: Fictional retained source row
- kind: The job-cost input category
- amount: Fictional USD
- economic_once: Whether the row belongs in a once-counted teaching total
- All represented costs
- 1700 USD
- What naive addition produces
- Once-counted costs
- 1100 USD
- Economic purchase plus labor and other expense
- Naive contribution
- 300 USD
- Price less all represented costs
- Once-counted contribution
- 900 USD
- Price less costs counted once
Inspect jobber-cost-trace.csv
entry_id,kind,amount,economic_once JB-DEMO-A,item_material,600,yes JB-DEMO-B,expense_same_purchase,600,no JB-DEMO-C,labor,400,yes JB-DEMO-D,other_expense,100,yesDownload this CSV
Next decision: Prove the shared purchase identity in real evidence, then approve the cost-entry convention. Include payroll burden and overhead before making broader profit claims.
Run the example locally
Save the CSV files, expected-results.json and reproduce.mjs in one folder. With Node.js installed, run the command below. It calculates the checks from the CSV bytes and rejects a changed input or expected result.
node reproduce.mjs expected-results.json
No software login, customer records or API key is required.
AI prompt for collecting records without changing them
Replace the bracketed scope before use. This prompt collects evidence; it does not permit edits, approvals or accounting execution. Requesting an emailed report is a separate account action and requires explicit authorization.
Collect read-only evidence for Jobber to answer [financial question]. Confirm [company], [account/entity], [period], [basis], [currency] and [allowed reports]. Use native reports for a documented gap; retain all pages and stable source IDs. Verify collection completion and retained record freshness and distinguish job, visit, invoice and payment populations. Retain original files, complete record IDs, counts, filters, collection timestamp and exceptions. A Visit roster is not crew hours. Payment object availability is not payout reconciliation. A successful request is not a complete retained source population. Stop if the source or scope is uncertain. Do not post, match, reconnect, delete or change settings. Return the evidence for financial review; do not claim the books are correct. Do not approve, submit payroll, pay, transfer, refund, send messages, invite users or accept terms. Stop at any login, MFA or credential prompt and hand back to the account owner. Store files only in [approved private location]. Do not paste customer artifacts into public tools. Use only preauthorized collection actions. Request an emailed report only when its delivery is explicitly authorized; otherwise ask the account owner to supply the file.
Next decision
What can you decide from these records?
Can the bookkeeper explain where one material purchase is included in the job and in the books, with actual labor costs shown separately? Use that check to decide what settings need attention before replacing the software.
Compare the same records, accounts and reporting dates. List costs or payments you cannot yet verify before using the result for pricing, cash planning or month-end review.
Read the next finance check →References behind these workflows
Each product reference supports only the features and limits described beside that source. Level's checks and fictional calculations are separate from what the vendor documents.
Read the product and workflow references with their scopes and review datesExplore the financial diagnostic examplesSources and scope
Base product-reference scopes were reviewed . No end-to-end dated native UI walkthrough is published for this software. Individual source rechecks are dated with their citations. Operator decision guidance was reviewed 2026-10-09. The references below support their stated product scope, not every observed interface detail. It is not a vendor capability certification, a measured customer result or an independently reconciled account. Verify current features and what your plan includes in the account you use.
- Jobber QuickBooks connection guide
Product reference: Documented QBO integration edition and settings.
Product reference: Account configuration for the NEW integration, distinct from legacy behavior. Reviewed .
Workflow reference: Account configuration for the NEW integration, distinct from legacy behavior. Reviewed .
- Jobber job-costing definitions and double counting
Product reference: Official costing inputs, one-off versus recurring windows, and duplicate item-cost/expense risk; not proof of complete ledger or payroll coverage. Reviewed .
Product reference: Official inputs, duplicate-cost risk and job-type windows, updated September 17, 2026. Reviewed .
Workflow reference: Official inputs, duplicate-cost risk and job-type windows, updated September 17, 2026. Reviewed .
- Jobber product overview
Product reference: Home and commercial service scheduling, quotes, invoicing and payments; no one-visit/one-invoice or universal integration claim. Reviewed .
- Jobber API documentation
Product reference: GraphQL authentication, scopes, versions and schema exploration. Test access in your own account before planning the connection. Reviewed .
Workflow reference: GraphQL authentication, scopes, versions and schema exploration. Test access in your own account before planning the connection. Reviewed .