ml-connector
QuickBooks DesktopCleo

QuickBooks Desktop and Cleo integration

QuickBooks Desktop runs accounting at mid-sized organizations. Cleo Integration Cloud orchestrates B2B supply chain data. Connecting them lets suppliers send EDI invoices through Cleo directly into QuickBooks without manual re-entry. Purchase orders and shipment receipts flow the same way, keeping your AP records in sync with your trading partners and your orders aligned with what actually arrived.

How QuickBooks Desktop works

QuickBooks Desktop is a Windows-based accounting product that stores vendors, bills, purchase orders, invoices, customers, accounts, items, and journal entries. It does not expose a public REST API. Instead, integration runs through QBWC (QuickBooks Web Connector), a Windows agent that polls your SOAP endpoint on a configurable interval (typically every 5 to 15 minutes). Your SOAP service receives the poll request, returns QBXML instructions, and QBWC executes them inside the QuickBooks process running on the local machine. Authentication is a session-token handshake: QBWC provides credentials via SOAP, your service returns a GUID session ticket, and all subsequent operations in that session use the ticket. QuickBooks enforces an EditSequence version counter on every record; updates must include the current sequence or the edit is rejected, preventing concurrent overwrites. There are no webhooks; data flows only by polling.

How Cleo works

Cleo Integration Cloud exposes folders, files, connections, actions, and audit events through a REST API with a base URL per cloud tenant. Outbound webhooks are not available via programmatic API; push notifications require manual CIC Studio configuration by a tenant admin. Authentication uses OAuth2 password grant: exchange username and password for a Bearer token that remains valid for subsequent API calls. Cleo is EDI and file transfer middleware, not an ERP; it stores EDI transactions such as 810 invoices and 850 purchase orders as files or API payloads rather than as native REST entities. Access is governed by user account permissions within CIC. On-premise deployments (Harmony or VLTrader) use the same REST API with custom host and port.

What moves between them

Suppliers send EDI 810 invoices, 850 purchase orders, and 856 shipment notices into Cleo. ml-connector polls Cleo on a schedule you control, retrieves those EDI files, parses the transaction data, and posts the corresponding QuickBooks records: Bills for invoices, PurchaseOrders for orders, and inventory receipts for shipments. The flow is inbound from Cleo to QuickBooks only. Cleo remains the trading partner hub; QuickBooks remains the accounting source. QuickBooks Bill records created by the sync include the supplier number, invoice amount, line items by account and amount, and a reference back to the original EDI message.

How ml-connector handles it

ml-connector stores Cleo credentials encrypted and uses OAuth2 Bearer tokens to poll Cleo REST endpoints for new EDI files on your schedule. On the QuickBooks side, it maintains a QBWC session connection and acquires the current EditSequence for each Vendor and PurchaseOrder before creating or updating records, so that concurrent changes in QuickBooks do not cause version conflicts. When translating EDI 810 invoices into Bills, ml-connector maps supplier name and number, line amounts to the GL accounts and classes configured per supplier, and sets the due date based on terms from the 810. The QBWC agent runs on your Windows machine on the interval you configure; ml-connector is stateless and polls both Cleo and the QBWC session endpoint independently. QBWC requests have an approximate 60-second timeout, so large EDI files are broken into batches of line items. Every EDI record carries a full audit trail showing which QuickBooks transaction was created, when, and with what amounts.

A real-world example

A mid-sized distributor receives hundreds of invoices each week from 30 suppliers through an EDI network. Before the integration, the AP team downloaded invoice files from their trading partner portal or email and re-entered them into QuickBooks by hand, a process that took hours each week and created data-entry errors. Now, suppliers send 810 invoices directly into Cleo; ml-connector polls Cleo, translates the EDI into QuickBooks Bill records, and posts them on the same day. The distributor's AP team validates and approves invoices inside QuickBooks, and the manual data-entry step is gone.

What you can do

  • Translate EDI 810 invoices from Cleo suppliers into QuickBooks Bill records with the correct vendor, amount, line items, and due date.
  • Map EDI 850 purchase orders from Cleo into QuickBooks PurchaseOrder records aligned with your internal accounts and classes.
  • Post EDI 856 shipment receipts into QuickBooks inventory and match them against open purchase orders.
  • Authenticate with Cleo via OAuth2 and QuickBooks via QBWC session tokens, with EditSequence version checking to prevent concurrent conflicts.
  • Poll Cleo on a schedule you control, batch large EDI files to stay within QBWC timeout limits, and maintain a complete audit trail of every EDI-to-QuickBooks record created.

Questions

Does the integration require the QBWC Web Connector to be running?
Yes. QBWC is the only way to interact with QuickBooks Desktop. ml-connector polls QBWC via SOAP, QBWC polls back to ml-connector for requests, and ml-connector executes the QBXML instructions inside the QuickBooks process on your Windows machine. QuickBooks and QBWC must both be running and logged in to the company file.
How does ml-connector handle EDI translation and line item mapping?
ml-connector parses EDI transactions according to the X12 810, 850, and 856 schemas. For each invoice, it extracts supplier name and number, invoice total, line items with descriptions and amounts, and payment terms. Line amounts map to GL accounts and classes based on the supplier configuration stored in ml-connector; if a line amount cannot be mapped, it is flagged in the audit log and the invoice is held for manual review before posting.
What happens if QBWC is not available or QuickBooks is closed?
Cleo continues to receive EDI files normally. When QBWC and QuickBooks come back online, ml-connector detects the QBWC session resumption and begins posting queued EDI transactions in order. All records waiting to post are logged in the audit trail with their hold reason so you can track what was delayed.

Related integrations

Connect QuickBooks Desktop and Cleo

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started