What the QuickBooks integration does
Pool Founder connects to QuickBooks Online for a 2-way sync: customers and items import from QuickBooks, and invoices, payments, refunds, quotes, and voids sync automatically. Once connected, billing runs in Pool Founder and the books stay current in QuickBooks without re-keying anything.
Connect QuickBooks

- 1Open the QuickBooks page in the sidebar and click Settings — the not-yet-connected state shows a Connect QuickBooks button (connect buttons also appear on the Customers page, the Invoices page, and in the guided get-started flow).
- 2Approve the one-click OAuth sign-in with Intuit; you're returned to the QuickBooks page with a "QuickBooks connected successfully!" banner.
- 3Then pull your data over with the customer import and items import (both described below), and tune what syncs on the Settings page.
There is no self-serve disconnect. To switch QuickBooks accounts, reach out to support — disconnecting an account with synced data can cause duplicate or orphaned records.
What syncs, automatically
- Customers — import from QuickBooks, and edits in Pool Founder push to the matching QuickBooks customer.
- Invoices — pushed to QuickBooks as they're created and updated.
- Payments — Stripe, manual, and autopay payments are recorded against the matching QuickBooks invoice.
- Refunds and voids — sync too, so a refunded or voided invoice doesn't leave a phantom balance in the books.
- Quotes — pushed as QuickBooks Estimates; when the customer accepts, the Estimate converts to an Invoice so the proposal-to-paid trail is complete.
- Chemicals and parts — created as QuickBooks items the first time they appear on an invoice, optionally as Inventory items with stock tracking.
In the typical workflow, billing runs automatically per each job's billing mode, customers pay by autopay or the emailed payment link, and payments flow through to QuickBooks on their own — see Create and manage invoices and Accept online payments.
Voiding a recorded manual payment (a mis-keyed check, cash, or Zelle payment) also deletes the matching Payment in QuickBooks automatically, so the two systems stay in agreement. See Record and void manual payments.
Sync settings: the seven sections
The QuickBooks Settings page is organized into seven sections — Sync, Billing & payments, Customers, Products & inventory, Account mapping, Stripe fees, and Import customers — with a connection card showing your QuickBooks company ID and connect date.
Sync — the master switch
The QuickBooks sync toggle is the master switch: turn it off and nothing is pushed to QuickBooks — useful while cleaning up data in QuickBooks so Pool Founder doesn't overwrite anything. The status below it reads "Syncing in real time" or "Paused", and a "What's flowing right now" summary shows On/Off chips for Invoices, Payments, Refunds, Quotes (Estimates), Customer changes, Chemicals, Parts, and Inventory tracking. While paused, the other sections show a "Sync is paused" banner and their toggles are disabled — your choices are saved but take effect only when sync resumes.
Billing & payments
- Invoices — push invoices to QuickBooks as they're created or updated. This is the foundation: payments and refunds attach to these QuickBooks invoices.
- Payments — record customer payments (Stripe, manual, or autopay) against the matching QuickBooks invoice. Requires invoice sync to be on.
- Refunds — create a refund receipt in QuickBooks against the original payment when you issue a refund. Also requires invoice sync.
- Quotes (Estimates) — push quotes as QuickBooks Estimates and convert them to Invoices when accepted.
Customers
- Sync customer changes — push new customers and edits to the matching QuickBooks customer. Turn this off if you prefer to manage customer details directly in QuickBooks.
- Auto-create customers when invoicing — when you invoice a Pool Founder customer who doesn't exist in QuickBooks yet, create them automatically. If off, invoices for unmatched customers fail to sync until you push the customer manually.
Products & inventory
- Chemicals — each chemical you charge for becomes a QuickBooks item the first time it appears on an invoice; name and price updates stay in sync.
- Parts — same for parts (filters, pumps, etc.).
- Track inventory — sync chemicals and parts as Inventory items in QuickBooks (with stock quantities) instead of Non-inventory items. Inventory items hit your balance sheet when received and move into Cost of Goods Sold when sold; leave off to track them as expenses at the time of sale.
Account mapping
Three dropdowns control which QuickBooks accounts entries post to — each defaults to Auto-detect, which uses the standard QuickBooks default:
- Income account — where revenue from invoiced services and products is recorded (commonly "Service Income" or "Sales of Product Income").
- Expense / COGS account — where the cost of items you buy and use on jobs is recorded (commonly "Cost of Goods Sold" or "Job Materials").
- Inventory asset account — where on-hand inventory value sits on your balance sheet (commonly "Inventory Asset"). Only shown when Track inventory is on.
Stripe fees: three strategies
When a customer pays by card, Stripe takes its processing fee before the money reaches your bank. The Stripe fees section decides how that shows up in QuickBooks:
- Ignore fees (record gross) — QuickBooks records the full invoice amount as income; you record Stripe fees separately (most teams pull a Stripe payout report into QuickBooks monthly). Recommended if you already reconcile Stripe payouts in QuickBooks.
- Add fee as a line item — adds a negative "Stripe Processing Fee" line to the QuickBooks invoice so income and fees both show on the same record. Easiest to read per invoice.
- Record net only — QuickBooks records only what hit your bank after fees. Cleanest reconciliation, but you lose visibility into gross revenue and fees inside QuickBooks.
The sync dashboard
The QuickBooks page (sidebar, under Billing) is the sync-activity dashboard: a Connected badge, then three tiles — Synced, Pending, and Failed — counting your invoices by sync status.
- Recent Failures lists the latest failed invoices with the exact error message, and a Retry Failed (N) button re-pushes them all — a banner then reports how many synced and how many still fail.
- The sync log below shows every event flowing between the systems — time, direction, record type, action, summary, and status — filterable with the All, PF → QB (outbound), QB → PF (inbound), and Failed tabs.
- Each customer's page also has a QuickBooks section showing that customer's link to QuickBooks.
Import customers: a staged review, not a blind dump
The customer import (Settings → Import customers → Open customer import, also offered in the guided get-started flow) stages everything for review before anything is created:
- 1Click Fetch Customers — every active QuickBooks customer is pulled into a review list.
- 2Review with the search box and the All / New / Existing / Missing Info filter tabs. New customers aren't in Pool Founder yet; Existing ones matched by QuickBooks ID or email; Missing Info rows lack both a usable email and phone, so they can't be selected (either one is enough to import).
- 3Pick rows individually, or use "Select all N new" to grab every new customer in one click.
- 4Leave "Add billing address as a service address (when the customer has no service locations yet)" checked to seed each customer's first service location from their QuickBooks billing address.
- 5Click Import and watch the progress — the completion screen breaks the run into Imported / Updated / Skipped with an expandable list of any issues.
- Nothing is duplicated: existing customers are updated in place, and only get a service location from the billing address if they had none.
- The import creates customers and service locations — not jobs. Schedule service afterwards with Add Service in Bulk.
Import items as chemicals and parts
The items importer (Settings → Import customers → Open items import, also reachable from the Chemicals and Parts pages) pulls QuickBooks Inventory and Non-inventory items into Pool Founder:
- Each row is guessed as a Chemical or Part from its name — flip any row's choice, or mark it Skip. Bulk buttons: All as chemicals, All as parts, Skip all.
- Chemical rows get a unit picker (Gallon, Pound, Ounce, Liter, Each, Tablet, Bag, Bucket, Bottle, or a custom unit), guessed from the name.
- Rows show the QuickBooks price, cost, stock, and item type. Items are matched by name — an existing Pool Founder chemical or part with the same name gets linked instead of duplicated.
- Items already linked to a Pool Founder chemical or part are hidden; when everything is linked you see "All caught up". New items added in QuickBooks appear here later.
Other integrations
Besides QuickBooks Online, Pool Founder integrates with Stripe for payment processing and offers an API for leads (see API keys and the Leads API). There are no other integrations today. If you need one, contact support at support@poolfounder.com and we'll log the request.
Frequently asked questions
Is the sync one-way or two-way?
Two-way: customers and items import from QuickBooks into Pool Founder, and invoices, payments, refunds, quotes, and voids created in Pool Founder sync to QuickBooks automatically.
Can I pause the sync without disconnecting?
Yes — the "QuickBooks sync" master switch on the Settings page stops everything from pushing to QuickBooks until you turn it back on. Your per-type choices are saved and resume with it.
How do Stripe processing fees show up in QuickBooks?
You choose one of three strategies in Settings → Stripe fees: record the gross invoice amount and reconcile fees separately (recommended), add the fee as a negative line item on each QuickBooks invoice, or record only the net amount that hit your bank.
What happens in QuickBooks when I void a manual payment?
The matching QuickBooks Payment is deleted automatically, so the void in Pool Founder doesn't leave a stray payment in the books.
Does importing from QuickBooks create jobs?
No — imports create customers and service locations only. Set up service afterwards with Add Service in Bulk, which applies a job template to many pools at once.
How do I disconnect QuickBooks?
There is no self-serve disconnect — contact support at support@poolfounder.com. Disconnecting an account with synced data can cause duplicate or orphaned records, so support handles it carefully.