QuickBooks Online and Adobe Commerce integration
QuickBooks Online manages accounting and financial records for small-to-mid-market businesses. Adobe Commerce powers e-commerce order and customer data. When the two are connected, customer records and sales orders flow from Adobe Commerce into QuickBooks Online, ensuring your accounting system reflects your storefront's customer base and revenue. ml-connector bridges the different authentication and data-transport models so no manual re-entry is needed.
What moves between them
Orders, invoices, and customer records flow from Adobe Commerce into QuickBooks Online. When a customer places an order in Adobe Commerce, ml-connector creates or updates a matching Customer record in QuickBooks with billing and shipping details, then creates an Invoice for the order total allocated to a QB Class or Department for revenue reporting. Invoice amounts are read from Commerce invoices. Commerce Creditmemos (refunds) trigger QB CreditMemo creation for return handling. Data flows one way (Adobe to QB) so QuickBooks remains the system of record for accounting adjustments.
How ml-connector handles it
ml-connector stores both OAuth credential sets encrypted and refreshes each on a 50-minute schedule before expiry, avoiding token timeout failures. On the Adobe side it subscribes to synchronous webhooks (order.place, invoice.create, creditmemo.create) or polls the REST API if webhooks are unavailable; on the QB side it writes Customers and Invoices via the v3 REST API, including SyncToken in updates for concurrency control. Customer mapping uses email as the natural key (unique per store) and deduplicates on name for B2C storefronts; Orders create Invoices mapped to QB Account and Class per your configuration. Adobe's GL account abstraction means ml-connector applies your own GL mapping (e.g., 'Adobe Order' -> '4100 Sales - Web') at the QB side. Webhook payloads from Adobe contain only order ID and invoice ID, so ml-connector fetches the full object before writing, and it retries transient failures with exponential backoff. QB's refresh token rotation every 24-26 hours forces a re-auth if the old token is revoked, so ml-connector tracks rotation and re-requests consent if needed.
A real-world example
A mid-market retail company runs Adobe Commerce PaaS for a B2C storefront and QuickBooks Online for accounting and tax reporting. Before integration, the finance team downloaded order reports from Commerce daily and manually entered customers and invoice amounts into QB, a process that took 2-3 hours and introduced data-entry errors during reconciliation. With Adobe Commerce and QuickBooks Online connected, each order automatically creates a customer record and invoice in QB within minutes, allocated to the correct revenue class for multi-channel reporting. The accounting team now focuses on true adjustments and reconciliation rather than data re-entry, and QB's customer list matches the storefront exactly.
What you can do
- Sync customer records from Adobe Commerce into QuickBooks Online, creating or updating QB Customer entities with address and contact details.
- Create QB Invoices from Adobe Commerce orders, mapped to QB Account and Class for revenue tracking and GL posting.
- Bridge OAuth 2.0 authorization-code flow (QuickBooks) with OAuth 1.0a or OAuth 2.0 credentials (Adobe Commerce depending on deployment model).
- Handle Adobe webhooks or REST polling, refresh both token types before expiry, and retry on transient failures without data loss.
- Maintain a complete audit trail of every customer and order sync, with replay capability if a downstream QB write fails.
Questions
- Does data flow both directions between Adobe Commerce and QuickBooks Online?
- No. Customers and orders flow from Adobe Commerce into QuickBooks Online only. QuickBooks remains the system of record for accounting adjustments, refunds, and GL entries. ml-connector does not write Commerce data back to Adobe, so the storefront is never modified by accounting changes.
- How does ml-connector handle the different OAuth schemes (Adobe 1.0a vs OAuth 2.0 and QuickBooks 2.0)?
- ml-connector accepts both OAuth 1.0a credentials (PaaS: consumer_key, consumer_secret, access tokens) and OAuth 2.0 client credentials (SaaS: client_id, client_secret) for Adobe Commerce, and stores all secrets encrypted. It refreshes QuickBooks access tokens on a 50-minute schedule before 1-hour expiry, and tracks QB's rotating refresh tokens to detect re-auth if the old token is revoked.
- Does Adobe Commerce expose GL accounts, and how does revenue get posted to the correct QB account?
- Adobe Commerce does not expose GL accounts as an API resource. ml-connector applies your own GL mapping rules at the QB side--for example, mapping Commerce order total to your '4100 Sales - Web' account and allocating by Class per region or channel. This keeps accounting logic in QB and avoids duplication.
Related integrations
More QuickBooks Online integrations
Other systems that connect to Adobe Commerce
Connect QuickBooks Online and Adobe Commerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started