Connect your New Expensify workspace to QuickBooks Online for seamless expense management and automatic syncing of categories, classes, customers, and tax codes.
Setup
Connect to QuickBooks Online
Navigate to Workspace Settings > Accounting and select QuickBooks Online
Authenticate
You’ll be redirected to QuickBooks to authorize the connection
Configure Import Settings
Choose what data to import from QuickBooks (accounts, classes, customers, locations, taxes)
Configure Export Settings
Set up export preferences for out-of-pocket expenses, invoices, and company cards
QuickBooks Online doesn’t support Expensify Taxes. When you connect to QBO, taxes are automatically disabled in your workspace.
Connection Flow
The connection process is handled by the ConnectToQuickbooksOnlineFlow component:
// Source: src/components/ConnectToQuickbooksOnlineFlow/index.tsx
function ConnectToQuickbooksOnlineFlow ({ policyID } : ConnectToQuickbooksOnlineFlowProps ) {
const { environmentURL } = useEnvironment ();
useEffect (() => {
// Since QBO doesn't support Taxes, we should disable them from the LHN when connecting to QBO
PolicyAction . enablePolicyTaxes ( policyID , false );
Link . openLink ( getQuickbooksOnlineSetupLink ( policyID ), environmentURL );
}, []);
return null ;
}
Import Settings
Configure what data to import from QuickBooks Online:
Chart of Accounts
Import your QuickBooks chart of accounts as expense categories in Expensify.
// Source: src/pages/workspace/accounting/qbo/import/QuickbooksImportPage.tsx
const sections : QBOSectionType [] = [
{
description: translate ( 'workspace.accounting.accounts' ),
action : () => Navigation . navigate ( ROUTES . POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS . getRoute ( policyID )),
title: translate ( 'workspace.accounting.importAsCategory' ),
subscribedSettings: [ CONST . QUICKBOOKS_CONFIG . ENABLE_NEW_CATEGORIES ],
},
// ...
];
Classes
Import QuickBooks classes as:
Tags : For expense-level categorization
Report Fields : For report-level categorization
Not Imported : Skip classes
Customers
Import QuickBooks customers as:
Tags : For expense-level assignment
Report Fields : For report-level assignment
Not Imported : Skip customers
Locations
Import QuickBooks locations (if multi-location is enabled) as:
Tags : For expense-level tracking
Report Fields : For report-level tracking
Not Imported : Skip locations
If you have the line items restriction for locations, they must be imported as Report Fields, not Tags.
Taxes
For non-US QuickBooks accounts, you can import tax rates:
// Source: src/pages/workspace/accounting/qbo/import/QuickbooksImportPage.tsx
if ( policy ?. connections ?. quickbooksOnline ?. data ?. country !== CONST . COUNTRY . US ) {
sections . push ({
description: translate ( 'workspace.accounting.taxes' ),
action : () => Navigation . navigate ( ROUTES . POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_TAXES . getRoute ( policyID )),
title: translate ( syncTax ? 'workspace.accounting.imported' : 'workspace.accounting.notImported' ),
subscribedSettings: [ CONST . QUICKBOOKS_CONFIG . SYNC_TAX ],
});
}
Export Settings
Configure how expenses are exported to QuickBooks Online:
Preferred Exporter
Choose which workspace admin’s credentials are used for exporting:
// Source: src/pages/workspace/accounting/qbo/export/QuickbooksExportConfigurationPage.tsx
{
description : translate ( 'workspace.accounting.preferredExporter' ),
onPress : () => Navigation . navigate ( ROUTES . POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_PREFERRED_EXPORTER . getRoute ( policyID )),
title : qboConfig ?. export ?. exporter ?? policyOwner ,
subscribedSettings : [ CONST . QUICKBOOKS_CONFIG . EXPORT ],
}
Export Date
Choose which date to use when exporting expenses:
Date Created : When the expense was created
Date Exported : When the expense is exported
Date Submitted : When the report was submitted
Out-of-Pocket Expenses
Export reimbursable expenses as:
Check : For reimbursement tracking
Journal Entry : For accounting entries
Vendor Bill : For accounts payable
Invoices
Select which QuickBooks account to use for invoice receivables:
// Source: src/pages/workspace/accounting/qbo/export/QuickbooksExportConfigurationPage.tsx
{
description : translate ( 'workspace.qbo.exportInvoices' ),
onPress : () => Navigation . navigate ( ROUTES . POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_INVOICE_ACCOUNT_SELECT . getRoute ( policyID )),
title : qboConfig ?. receivableAccount ?. name ,
subscribedSettings : [ CONST . QUICKBOOKS_CONFIG . RECEIVABLE_ACCOUNT ],
}
Travel Invoicing
For workspaces with travel invoicing enabled, configure the payable account:
// Source: src/pages/workspace/accounting/qbo/export/QuickbooksExportConfigurationPage.tsx
... ( isTravelInvoicingEnabled
? [
{
description: translate ( 'workspace.qbo.travelInvoicing' ),
onPress : () => Navigation . navigate ( ROUTES . POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_TRAVEL_INVOICING_CONFIGURATION . getRoute ( policyID )),
title: travelPayableAccount ?. name ,
subscribedSettings: [ CONST . QUICKBOOKS_CONFIG . TRAVEL_INVOICING_VENDOR , CONST . QUICKBOOKS_CONFIG . TRAVEL_INVOICING_PAYABLE_ACCOUNT ],
},
]
: [])
Company Card Expenses
Export company card expenses as:
Credit Card : Match to specific cards
Debit Card : For debit transactions
Vendor Bill : For non-reimbursable bills
Expensify Card
Expensify Card expenses are automatically exported as credit card transactions.
Advanced Settings
Enable automatic syncing to keep data up-to-date between Expensify and QuickBooks:
Sync frequency (daily, weekly, monthly)
Sync preferences (categories, classes, customers, etc.)
Choose between Cash or Accrual accounting method for exports
Select the default QuickBooks account for invoice exports
Troubleshooting
Common Issues:
Connection expired : Re-authenticate with QuickBooks
Missing accounts : Ensure accounts are active in QuickBooks
Export errors : Check that the preferred exporter has admin access
Best Practices
Regular Syncing : Enable auto-sync for real-time data updates
Consistent Mapping : Use the same export settings across similar workspaces
Review Before Export : Check expense reports before exporting to QuickBooks
Test First : Use a test QuickBooks company file when setting up
Support
For QuickBooks Online integration support, contact Expensify Concierge or visit the QuickBooks integration help center.