QuickBooks Connector FAQs¶
These FAQs cover the most common setup and synchronization questions for the QuickBooks Connector. For a full feature list, see QuickBooks Connector Features.
Getting Started¶
What do I need before installing?
A QuickBooks Online company, an app in the Intuit Developer Portal for your Client ID and Client Secret, the intuit-oauth Python library on the Odoo server, and an Odoo URL reachable over HTTPS. See Generate QuickBooks Credentials.
Where does the Redirect URI come from?
Odoo generates it from your web.base.url as https://<your-odoo-domain>/qbo/callback
and shows it read-only on the connection form. Copy it into your Intuit app’s Redirect URIs
before authorizing.
Can I test before going live?
Yes. Use the Sandbox environment with your Intuit Development keys and a Sandbox company. Switch the connection to Production when you are ready — note that switching resets it to Draft and requires re-authorizing with the Production keys.
Can I connect more than one QuickBooks company?
Only one connection per Odoo company. In a multi-company database, create one connection per company, each bound to its own QuickBooks realm.
Which Odoo apps does it need?
Accounting/Invoicing, Sales, and Inventory’s product module — the connector depends on
account, sale and product.
Connection¶
What is the Realm ID?
Your QuickBooks Company ID. It is filled in automatically when you authorize, and shown in the Connection Status panel.
Do I have to re-authorize regularly?
No, as long as the connection is used. The access token refreshes automatically every hour, and each refresh extends the refresh token. A connection unused for more than about 100 days will need re-authorizing.
The connector says my connection expired — what now?
Click Authorize again on the connection and complete the Intuit consent flow. This happens when the refresh token expires, or when the app’s access is revoked from the QuickBooks side.
Authorization fails or redirects to an error page.
The Redirect URI registered in your Intuit app must match Odoo’s exactly, including the
scheme and the /qbo/callback path, and must be registered under the same
Development/Production tab as the keys you are using.
Exporting¶
Which documents are exported automatically?
Posted customer invoices, customer credit notes, vendor bills, vendor refunds, customer payments and bill payments — subject to the Auto-export on Confirm toggles on the connection.
Why did my invoice stay in Draft after clicking Confirm?
Because the QuickBooks export failed and the post was rolled back deliberately, so the two systems cannot disagree. The error names the cause, and has the detail. Fix it and confirm again, or turn off auto-export for that document type.
Will exporting create duplicates in QuickBooks?
No. The connector queries QuickBooks for the same document number first and links to an existing record instead of creating a second one.
A product line was skipped — why?
The product has no SKU (Internal Reference). QuickBooks matching relies on it. Set the SKU and export again.
Can I export documents posted before I installed the connector?
Yes — use with Direction set to Export and a date range covering them.
What happens if I reset an exported document to draft?
The matching QuickBooks record is deleted and the link is cleared. If QuickBooks refuses the deletion, the reset is blocked and the document stays posted. See Reset to Draft and Delete from QuickBooks.
Importing¶
Are imported documents posted automatically?
No. Invoices, bills, credit notes and refunds arrive as drafts so you can review them. Imported payments are posted and reconciled, because they exist only to settle a document.
Where do imported documents go first?
Into the Items Import Queue at . Process rows there, manually or on schedule. See Process the Items Import Queue.
Can I import a single document?
Yes. In the sync wizard, set Scope to Specific Order and enter the QuickBooks document number.
A payment failed to import.
Payments can only be imported once the invoice or bill they settle exists in Odoo. Import that document first, then re-process the queue row.
Will importing create duplicate customers or products?
The connector matches on the QuickBooks ID first, then on name plus email or address for partners, and on an unambiguous name for products. Where several Odoo products share a name, it creates a new one rather than guessing — review and merge those manually.
Taxes¶
How is US sales tax handled?
Through QuickBooks Automated Sales Tax. Exported lines are marked taxable or non-taxable, and QuickBooks applies the jurisdiction rates. Use Quick Calc Taxes to see the same breakdown in Odoo before exporting. See Calculate Sales Tax with Quick Calc Taxes.
I am not in the US — what do I configure?
Set the QuickBooks Tax Code on each Odoo tax, and turn on Send GlobalTaxCalculation (non-US realms) on the connection’s Automation tab. See Map Odoo Taxes to QuickBooks Tax Codes.
Why is my exported document showing no tax in QuickBooks?
Its Odoo taxes have no QuickBooks tax code, so the lines were sent as non-taxable. A warning under the Tax Fallback (Export) operation names the taxes involved.
Why can’t I see the GlobalTaxCalculation setting?
It is hidden for US companies — QuickBooks rejects the field under Automated Sales Tax.
Automation¶
Do I have to enable the scheduled actions?
No. The connector works live out of the box. Enable the crons on the Automation tab when your volume is high enough that immediate syncing becomes slow. See Automate and Schedule QuickBooks Syncs.
Does the connector use webhooks?
No. Synchronization is poll-based, through the scheduled actions, the sync wizard, and the auto-export on confirmation.
Can I sync only invoices and ignore everything else?
Yes. Enable the relevant cron and untick the other document types on the Automation tab — the checkboxes gate every path, including the wizard and the auto-export.
Troubleshooting¶
Sync fails or returns API errors — what should I check?
The connection is Confirmed, not Draft, and shows a valid Realm ID.
The environment (Sandbox / Production) matches the keys and the company you intend to use.
, filtered on Errors, for the exact QuickBooks message.
The Chart of Accounts has been synced and the default income, expense and payment journal are set.
Nothing happens when a document is confirmed.
Check that the connection is Confirmed, that the matching Auto-export on Confirm toggle is on, and — if Enable Export Cron is on — that the document type is ticked in the Automation tab.
Who can use the connector?
The QuickBooks menus, credentials and mapping fields require the Billing Administrator access right. Other users can read the records but not configure the connection.
Dependencies¶
What does the module require?
Odoo’s account, product and sale modules, plus the intuit-oauth Python
library. It communicates with the official Intuit QuickBooks Online v3 REST API using
OAuth 2.0 with the Accounting scope.