Overview
PSA connects to QuickBooks Online (QBO) via a secure OAuth2 connection. Once connected, invoices, payments, and refunds sync automatically so your accountant sees everything in QBO without double-entry. This is an optional integration — PSA invoicing and payments work without it.
Finance → Payment Sync (/psa/admin/integrations). Connect QuickBooks Online (or Xero) and run invoice/payment sync here. These connections are owned by Bridge. You can also reach this page from Settings → Integrations & Migration → Integrations (same URL). Note: Finance → Billing Integration (/psa/finance/billing/settings) holds PSA's own billing settings. It does not set up the QuickBooks sync, so don't label it "QuickBooks."
Connecting QuickBooks Online
- Go to Finance → Payment Sync.
- Click Connect to QuickBooks.
- You are redirected to the Intuit sign-in page. Sign in with your QuickBooks credentials.
- Authorize PSA to access your QuickBooks company file.
- You are returned to PSA. The connection status confirms the integration is active and shows your QuickBooks company name.
What Syncs
| PSA Data | QBO Destination | Direction |
|---|---|---|
| Invoices | QBO Invoices | PSA → QBO (on billing run or manual sync) |
| Payments (card + manual) | QBO Payments | PSA → QBO (on payment recorded) |
| Refunds | QBO Credit Memos / Payments | PSA → QBO |
| Clients (companies) | QBO Customers | PSA → QBO (first time an invoice is pushed for a company) |
QBO customers are created automatically the first time an invoice is pushed for a PSA company. A mapping is stored so future invoices link to the same QBO customer.
Syncing Existing Data
After connecting, new invoices and payments sync automatically. To push existing data:
- Go to Finance → Payment Sync.
- Click Sync Invoices to push all unsynced invoices.
- Click Sync Payments to push all unsynced payments.
These are one-way pushes from PSA to QBO and are safe to run more than once — PSA checks existing mappings before creating new QBO records.
Exporting Without a QBO Connection
If you are not using the live OAuth connection, you can export invoice and payment data as CSV or JSON:
- Go to Finance → Payment Sync.
- Click Export Invoices or Export Payments.
- Choose the date range and download the file for manual import into QBO or another accounting system.
Disconnecting
- Go to Finance → Payment Sync.
- Click Disconnect.
Disconnecting stops future syncs. Existing QBO records and PSA records are not deleted. You can reconnect at any time to resume live sync.
Sync Errors
Common causes and fixes:
| Error | Fix |
|---|---|
| Expired OAuth token | Go to Settings > Integrations > QBO and click Reconnect. |
| Customer not found in QBO | This resolves automatically on the next invoice push — PSA creates the QBO customer then. |
| Missing required field | Check the invoice for a blank company name or zero-value line items. Correct the invoice in PSA and re-sync. |
| QBO company file is read-only | Your QBO subscription or file permissions may be restricting write access. Check in QBO. |
| Duplicate customer in QBO | Two PSA companies mapped to the same QBO customer name. Merge the PSA companies or manually adjust the customer mapping. |
Frequently Asked Questions
Does QBO sync back to PSA, or is it one-way?
The live sync is one-way: PSA pushes to QBO. Changes made directly in QBO are not reflected back in PSA.
Will reconnecting QBO create duplicate records?
No. PSA stores a mapping between each PSA record and its QBO counterpart, and checks the mapping before creating anything new in QBO.