Skip To Main
How-To Guides

QuickBooks Online + Exoserva: Complete Integration Guide

6 min readexoserva
quickbooksintegrationaccountinginvoicing

TL;DR:

  • Connect QuickBooks Online to Exoserva in under 10 minutes using secure OAuth 2.0 — no passwords shared
  • Customers created or updated in Exoserva sync automatically to QuickBooks, eliminating double data entry
  • Invoices created in Exoserva generate matching invoices in QuickBooks, keeping your books current without manual work
  • Payment recordings sync back so your QuickBooks balance reflects reality at all times
  • Sandbox support lets you test the integration before going live with real financial data

Why Connect QuickBooks to Your Field Service Software?

Most contractors run two separate workflows: the field side (jobs, scheduling, invoicing) and the accounting side (books, payroll, taxes). Without integration, someone — usually the office manager or owner — manually enters data into both systems every day. Customers get created twice. Invoices get typed twice. Payments get recorded twice.

The errors compound. A customer's address gets updated in Exoserva but not in QuickBooks. An invoice gets marked paid in the field but not reconciled in the books. By tax time, the discrepancies can take days to untangle.

The Exoserva–QuickBooks Online integration eliminates that gap. Data entered in Exoserva flows into QuickBooks automatically. Your accounting stays current without anyone doing manual imports, CSV exports, or copy-paste sessions.


What the Integration Does

Customer Sync

When you create or update a customer in Exoserva, that customer record is created or updated in QuickBooks Online automatically. This includes:

  • Customer name and contact information
  • Billing address
  • Email and phone

The sync runs in the background. You don't need to trigger it manually. New customers added from a job booking, lead conversion, or manual entry all flow through.

Direction: Exoserva → QuickBooks. Customer records originate in Exoserva and push to QuickBooks, not the other way around. This keeps your field service software the single source of truth for customer data.

Invoice Creation

When an invoice is finalized in Exoserva, a matching invoice is created in QuickBooks Online. The QuickBooks invoice includes:

  • Customer reference (linked to the synced customer record)
  • Line items from the Exoserva invoice
  • Invoice total
  • Due date

This means your QuickBooks aging report and accounts receivable reflect real job invoices, not just manually entered estimates.

Payment Recording

When a payment is recorded against an invoice in Exoserva, that payment syncs to QuickBooks. Your QuickBooks balance stays accurate without requiring someone to log into QuickBooks and manually mark invoices paid.


Setting Up the Integration

Step 1: Connect Your QuickBooks Account

In Exoserva, navigate to Settings → Integrations → QuickBooks Online. Click Connect.

You'll be redirected to the QuickBooks OAuth authorization screen. Log in with your QuickBooks Online credentials and click Authorize. You are not giving Exoserva your QuickBooks password — OAuth 2.0 means you grant access through Intuit's own authorization system, and Exoserva receives a secure access token.

After authorization, you'll be redirected back to Exoserva. The integration status will show as Connected, and your QuickBooks Realm ID (company identifier) will be stored.

Step 2: Test with Sandbox (Recommended)

Before syncing live financial data, use QuickBooks Sandbox mode. Exoserva supports QuickBooks sandbox environments, which are test company accounts that Intuit provides for integration testing.

To test in sandbox:

  1. Create a sandbox company in the Intuit Developer Portal
  2. In Exoserva integration settings, enable Sandbox Mode
  3. Connect using your sandbox company credentials
  4. Create a test customer and invoice in Exoserva
  5. Verify the records appear correctly in your sandbox QuickBooks account

Once you've confirmed the sync works as expected, switch back to production mode and reconnect with your real QuickBooks company.

Step 3: Verify the Realm ID

The Realm ID is QuickBooks's unique identifier for your company. Exoserva stores this during the OAuth flow and uses it to route all API calls to the correct QuickBooks account. You can verify the connected Realm ID in Settings → Integrations → QuickBooks Online.

If you have multiple QuickBooks companies (for example, separate LLCs), make sure you're authorizing the correct one during the OAuth step.


What Doesn't Sync Automatically

Understanding the limits is as important as understanding the capabilities.

QuickBooks → Exoserva changes do not sync. If you edit a customer record directly in QuickBooks, that change will not flow back to Exoserva. Exoserva is the source of truth; QuickBooks receives data from it.

Estimates are separate from invoices. Exoserva estimates do not automatically create QuickBooks invoices — only finalized invoices trigger the sync. This is intentional: you don't want draft estimates cluttering your QuickBooks.

Tax codes and chart of accounts mapping requires initial configuration. The integration maps Exoserva line items to QuickBooks items, but you'll want to review the account mapping in integration settings to ensure revenue lands in the right QuickBooks accounts.

Historical data is not back-synced. Existing invoices and customers before you connected the integration will not automatically appear in QuickBooks. The sync applies to new records created after the connection is established.


Common Issues and Fixes

"Customer not found" error during invoice sync This usually means the customer sync hadn't completed before the invoice was created. Manually trigger a customer sync from the integration settings panel, then retry the invoice sync.

Duplicate customers in QuickBooks If you had pre-existing customers in QuickBooks before connecting the integration, you may see duplicates. The integration creates new QuickBooks customer records from Exoserva data — it does not merge with existing records. Clean up duplicates in QuickBooks by merging them there.

OAuth token expired QuickBooks OAuth tokens expire after 100 days of inactivity. If you see authentication errors, go to Settings → Integrations → QuickBooks Online and click Reconnect to complete a fresh OAuth flow.

Invoice sync fails with "item not mapped" If Exoserva line items can't be matched to QuickBooks items, the invoice sync will fail. Check the item mapping configuration in integration settings and ensure every Exoserva service type has a corresponding QuickBooks item.


FAQ

Does this work with QuickBooks Desktop? The Exoserva integration is built for QuickBooks Online only. QuickBooks Desktop uses a different API architecture and is not supported. If you're still on Desktop and considering a switch, QuickBooks offers migration tools to convert Desktop company files to Online.

Can I connect multiple QuickBooks companies to one Exoserva account? Exoserva stores one QuickBooks Realm ID per tenant. If you operate multiple legal entities with separate QuickBooks accounts, contact support to discuss options for your setup.

What happens if I disconnect the integration? Disconnecting stops future syncs but does not delete data that already synced. Customers and invoices already in QuickBooks remain there. If you reconnect, syncing resumes for new records going forward.


Related Guides


Ready to Connect QuickBooks?

The integration takes less than 10 minutes to set up and starts saving hours of manual data entry every week. Use sandbox mode to test before going live, and you'll have confidence that your books and your field data are always in sync.

Book a demo to see the QuickBooks integration in action →