Export Plumbing Field-Service Data for QuickBooks or Xero

Search for plumbing accounting software and the results blur together: an accounting vendor with a plumbing landing page, a field-service tool that hints at an integration without saying what actually moves. Here is the plain version. Opsler runs the plumbing side of the business — calls, estimates, jobs, invoices — and turns the invoice data into a QuickBooks-formatted or Xero-formatted CSV file that a person downloads and imports. No account gets linked to either product. The mechanism is the same one behind Opsler’s accounting CSV export feature; this page applies it to a plumbing shop specifically.

Pro is $25 per seat per month, no seat minimum, with a 14-day trial and no card. See what else is on each plan.

Plumbing Operations Software vs Full Accounting Software

A lot of plumbing bookkeeping software confusion comes from one word doing two jobs. Opsler is the system of record for the work — the leak call, the drain clear, the water heater swap. Your accounting software is the system of record for the money once it has already happened. Neither one should be trying to do the other’s job.

Opsler runs this

  • Calls, estimates, work orders and invoices for drain work, water heaters, leaks and fixture jobs
  • Direct part and labor cost captured per job
  • QuickBooks-formatted CSV export (Pro)
  • Xero-formatted CSV export (Pro)
  • Free customer-list CSV on every plan, Budding included

Your accountant keeps this

  • The general ledger, chart of accounts and trial balance
  • Bank feeds and bank reconciliation
  • Payroll runs and payroll tax
  • Sales tax filing and remittance
  • Corrections made in the books — they stay in the books, not in Opsler

See the full plumbing operations workflow, from the first call to a paid, exported invoice.

Follow Plumbing Revenue from Estimate to Job to Invoice

Plumbing job costing only works if the export is built from a real record instead of a Friday-afternoon reconstruction. Take a fifty-gallon water heater replacement:

1

Estimate approved

The customer reviews the water heater replacement estimate, verifies with a one-time code sent to their email, then signs. The approved line becomes the job.

2

Job performed

The plumber starts the job, pulls the tank and fittings from the assigned truck's stock, completes the swap and marks the job done.

3

Draft invoice

The job's parts and labor carry straight into a draft invoice — nobody retypes it that evening from a paper ticket.

4

Approved and paid

If office approval is turned on for that job, it sits in the approval queue first; otherwise it sends directly. The customer pays through their portal.

The estimate and the job stay in plumbing estimating and invoicing with office approval. This page picks up once the invoice is ready to leave Opsler.

Capture Labor, Parts and Job Profitability in Opsler

Plumbing job profitability comes from two real inputs, not an estimate of them. Parts consumed on the job deduct from the truck or van they were assigned to, valued at the cost price on your parts catalog — never the price billed to the customer. A technician’s hours on the job are valued at the hourly cost rate on their record, a number your team never sees on an invoice.

Invoice total − direct part cost − direct labor cost = gross job profit

Example: a main-line drain clear

Invoice total $340. A cleanout fitting and couplings cost $18 at catalog price, deducted from the truck. The technician logs 1.5 hours at a $28 hourly cost rate — $42 in direct labor. Gross job profit: $340 − $18 − $42 = $280.

Parts cost

Deducted at cost price from the assigned truck, van or warehouse location — the price you pay a supplier, not the price on the invoice.

Labor cost

Comes from the technician's work timer, a Pro feature. On the free Budding plan the timer doesn't run, so gross job profit reflects parts cost only.

Not included

Overhead, drive time between calls, vehicle and fuel cost, and permit fees are not modelled. This is a direct gross margin, not a fully burdened job cost.

There’s no per-job profit screen on the job record itself yet — the aggregate version, Gross Field Profit for the period, lives on the revenue dashboard. See how the numbers are built on per-job profitability.

Which Records Are Included in Each Accounting CSV Export?

Three formats, and today all three sit behind the same Pro-only gate on the export screen. Each pulls the same underlying invoices and payments; the difference is the column names, the date format and, for Xero, the account codes.

ExportContentsPlan
QuickBooks CSVInvoice lines and a payments file, in QuickBooks Online's import shapePro
Xero CSVInvoice lines and a bank-transaction file, with your account codes appliedPro
Generic CSVThe same invoice and payment data in a plain, human-readable layoutPro
Customer CSVName, phone, email, address, alternate phone, notes — your contact list, not the ledgerAll plans

QuickBooks CSV columns

InvoiceNoThe Opsler invoice number, repeated on every line.
CustomerCustomer name as it reads on the job.
CustomerEmailWritten empty today — see the note below the table.
InvoiceDateMM/DD/YYYY.
DueDateMM/DD/YYYY, falling back to the invoice date if no term is set.
Item(Description)The line text — a water heater, a drain clear, a part.
Item(Qty)Quantity on that line.
Item(Rate)Unit price before tax.
Item(Amount)Line total before tax.
TaxAmountTax on that one line, not the whole invoice.
TotalInvoice grand total, repeated on every row.
StatusPaid, Partially Paid, Void, or Unpaid for anything still open.
PaidDateMM/DD/YYYY, or blank until something is paid.

Xero CSV columns

*ContactNameCustomer name. Xero treats this field as mandatory.
EmailAddressWritten empty today — see the note below the table.
*InvoiceNumberXero will refuse a number it already holds.
*InvoiceDateYYYY-MM-DD.
*DueDateYYYY-MM-DD.
DescriptionThe line text.
*QuantityQuantity on that line.
*UnitAmountUnit price, entered tax exclusive.
*AccountCodeYour Sales Account Code, set once in Opsler. Defaults to 200.
TaxTypeYour tax name from Opsler settings, or NONE.
TaxAmountTax on that line.
TotalInvoice grand total, repeated on every row.

One column ships blank on every export today: CustomerEmail on the QuickBooks file and EmailAddress on the Xero file are always empty, whichever plumbing customer the invoice belongs to. QuickBooks and Xero will match the customer by name instead — keep the customer name spelled the same way in both systems.

Generate and Review the CSV Before Import

A plumbing accounting CSV export is quick once the Xero account codes are set. The screen sits under Reports, then Accounting Export.

Choose the format

QuickBooks, Xero or Generic CSV.

Set the Xero account codes, once

A Sales Account Code and a Bank Account Code from your Xero chart of accounts — commonly 200 and 090. Opsler asks the first time you export to Xero and remembers them after.

Pick the date range

This Month, Last Month, This Quarter, This Year, or a custom range, matched against the invoice date.

Choose what and which status

Invoices, payments, or both. Then All Statuses, Paid Only, or Unpaid Only.

Opsler counts how many invoices and payments match your filter and what they total before the download button unlocks, so an empty range never produces a blank file by accident. Here is a redacted line from each branded format, both drawn from the same water heater invoice:

Sample: quickbooks-export-…-invoices.csv

InvoiceNo,Customer,CustomerEmail,InvoiceDate,DueDate,Item(Description),Item(Qty),Item(Rate),Item(Amount),TaxAmount,Total,Status,PaidDate
INV-2210,Fairview Row Homes,,08/03/2026,08/17/2026,Water Heater Replacement (50-gal),1,1180.00,1180.00,97.35,1277.35,Paid,08/03/2026

Sample: xero-export-…-invoices.csv

*ContactName,EmailAddress,*InvoiceNumber,*InvoiceDate,*DueDate,Description,*Quantity,*UnitAmount,*AccountCode,TaxType,TaxAmount,Total
Fairview Row Homes,,INV-2210,2026-08-03,2026-08-17,Water Heater Replacement (50-gal),1,1180.00,200,TX Sales Tax 8.25%,97.35,1277.35

One habit worth keeping from the first export onward: open the file in a spreadsheet and check the totals against the preview count before you import anything. Questions about a specific export? Talk to support.

Import Manually into QuickBooks or Xero

Both imports run inside the accounting product, not inside Opsler. Paths current as of 2 August 2026 — Intuit and Xero move their own screens without telling anyone.

QuickBooks import

  1. Settings, then Import Data, then Invoices
  2. Browse to the downloaded CSV
  3. Map the columns to QuickBooks Online’s invoice fields
  4. Map your tax codes to QuickBooks’ own
  5. Review the summary, then Start import
  6. Spot-check a couple of invoices against Opsler

QuickBooks Online is the target — Desktop and Enterprise use different tooling, and Opsler does not build a file for either.

Xero import

  1. Open Invoices from the Sales menu, then select Import
  2. Browse to the downloaded CSV
  3. Choose Tax Exclusive — Opsler writes the unit amount before tax
  4. Select Import, then open the drafts Xero creates
  5. Review and approve each draft — nothing posts until you do
  6. Bring the payments file in separately as bank transactions

Xero holds every imported invoice as a draft first. That review gate is Xero’s own design, and it catches a bad import before it reaches your ledger.

Reconcile, Correct and Re-export

A plumbing bookkeeping workflow that survives more than one month needs a repeatable routine, because Opsler keeps no record of what you’ve already sent to the books.

Correct at the source

Fix a wrong price or a missing line in Opsler, then re-export that range. Editing only inside QuickBooks or Xero leaves the operational record and the ledger telling two different stories.

Void in both places

A voided Opsler invoice exports with a Void status, but an invoice already posted to your ledger has to be voided there too — neither system tells the other.

Keep ranges from overlapping

This is the whole duplicate-prevention plan. Xero declines an invoice number it already has, and QuickBooks Online shows a summary before it commits, which is where you'd catch a repeated week.

Reconcile against the bank, not against Opsler’s revenue dashboard alone — that total adds every non-voided invoice dated in the period, including ones still unpaid, so filtering the export to Paid Only before comparing gets you closer to what actually cleared.

Run a Weekly Plumbing Bookkeeping Handoff

A plumbing shop runs a high count of small invoices — a fixture swap here, an emergency callout there — so plumbing bookkeeping works better as a fixed weekly habit than a scramble at month end.

Clear the invoice approval queue so the week's jobs are finalised
Confirm payments taken in the field are recorded against their invoices
Export the week's invoices and payments in your accounting format
Import the CSV yourself, or send it to your bookkeeper or accountant
Compare the week's total against what landed in the books
Log the exported date range so next week starts where this one ended

The invoice side of this handoff is built in automated invoicing with office approval. This is not accounting advice — it’s the routine that keeps the export clean going into it.

Accounting Limitations and FAQs

A fit if

  • You want plumbing job revenue and tax lines in your books without retyping every invoice
  • You’d rather review a batch before it posts than trust a live connector
  • Your bookkeeper can work from a weekly or monthly file

Not a fit if

  • You need a live, two-way connection between Opsler and your ledger
  • You expect Opsler to run payroll or file sales tax for you
  • You need automatic duplicate detection rather than disciplined date ranges
No direct, automatic, real-time or two-way sync with QuickBooks or Xero
No authentication with either product — Opsler never holds your accounting login
No general ledger, chart of accounts or bank reconciliation
No payroll, payroll tax, or sales tax filing and remittance
No duplicate prevention, conflict handling or retry log on export
CustomerEmail and EmailAddress ship empty on every export today

The plumbing accounting software FAQ below covers what usually comes up once the columns above are clear.

No. Opsler generates a QuickBooks-formatted or Xero-formatted CSV file that a person downloads, checks and imports through QuickBooks Online's or Xero's own import screen. There is no live connection, no login shared with either product, and nothing automatic or two-way — a correction made afterward in the accounting software does not come back to Opsler, and nothing moves on a schedule while you're not looking.

QuickBooks, Xero and Generic CSV are all Pro plan features today — the record preview that unlocks the download button requires Pro regardless of which format you pick. A separate customer-list export (name, phone, email, address, alternate phone, notes) is on every plan, including free Budding, but that's your contact list, not invoice or payment data.

No. Opsler records the tax amount on each invoice line and the technician's logged hours, and hands both to your books in the export. Payroll, payroll tax, sales tax filing and remittance, and the general ledger itself stay with your accounting software or your accountant — Opsler is not built to replace any of them.

Keep your export date ranges from overlapping — that's the entire mechanism, since the file itself carries no memory of what you've already pulled. Xero will decline an invoice number it already holds, and QuickBooks Online shows an import summary before anything commits, so a second run of the same week gets caught before it lands. Logging the range you just exported takes ten seconds and saves an afternoon.

Only with their own login. The account owner and anyone with the Office Staff role — itself a Pro role — can reach the export screen; a field agent's default permissions cover jobs and customers, not reports. Plenty of plumbing shops have someone in the office run the export and email the CSV over, which needs no extra seat. If the bookkeeper wants to log in and pull it directly, that's a Pro seat at $25 a month.

Run the export on your own invoices

Pull a week, open the file, hand it to whoever does your books. If the columns don’t fit their workflow, you’ll find that out in a trial, not in year two.

Pro is $25 per seat per month, no seat minimum, with a 14-day trial and no card.

View as plain text

Ready to Run Your Business Without the Chaos?

Scheduling, dispatch, estimates, invoicing, customer portal, and a free branded website — start completely free, upgrade to Pro when you scale.

Free forever on the Budding plan. No credit card required.

Explore all 42 features·See full pricing