Sage Intacct and Cleo integration
Sage Intacct runs finance and accounting. Cleo handles B2B/EDI integration for procurement and supply chain. Connecting the two keeps vendor master data, GL accounts, and EDI transactions in agreement across both systems. Purchase orders and invoices arrive through Cleo as EDI transactions and flow into Sage Intacct as AP bills and purchase records without manual entry. Vendor reference data stays synchronized so procurement and finance see the same suppliers.
What moves between them
The integration flows in both directions. Vendor and GL account reference data flows from Sage Intacct into Cleo so procurement transactions land on valid suppliers and cost centers. EDI transactions (purchase orders, invoices, and shipment notices) arrive through Cleo and flow into Sage Intacct as AP bills and vendor records. Synchronization is scheduled, polling Sage Intacct for reference changes and Cleo for incoming EDI transactions on a cadence you control.
How ml-connector handles it
ml-connector manages two separate session types: a Sage Intacct XML gateway session refreshed every 50 minutes, and an OAuth 2.0 bearer token for Cleo REST calls. On the Sage Intacct side, ml-connector serializes all read and write operations through the single XML gateway endpoint, wrapping each operation in a control block with a uniqueid flag to leverage Intacct's server-side deduplication on retries. It parses all HTTP 200 responses for embedded error tags since Intacct does not use HTTP status codes to signal application errors. On the Cleo side, ml-connector polls the files and folders API for incoming EDI transactions, maps the EDI syntax to Sage Intacct GL accounts and vendor names, and POST GL postings and vendor additions into Sage Intacct. EDI control characters and forbidden XML control characters are stripped before escaping, preventing serialization failures. Retries are backed off exponentially, and every record carries a full audit trail so operations can be replayed if a downstream call fails.
A real-world example
A mid-sized discrete manufacturer runs Sage Intacct for finance and accounting, and uses Cleo for B2B/EDI integration with its supply chain partners. Before the integration, the procurement team received EDI purchase order confirmations and shipment notices through Cleo, manually mapped them to vendor names and GL accounts, and re-entered them into Sage Intacct as AP bills. Finance and procurement operated with different vendor master data, leading to AP reconciliation delays and duplicate vendor records. With Sage Intacct and Cleo connected, EDI transactions flow automatically into Sage Intacct matched to the correct vendors and GL accounts, and vendor master changes in Sage Intacct immediately propagate to Cleo so new trading partners are visible for procurement. AP reconciliation is now automatic, and procurement and finance see the same supplier list.
What you can do
- Sync vendor master data from Sage Intacct to Cleo so EDI transactions land on valid suppliers.
- Sync GL accounts and cost center dimensions from Sage Intacct to Cleo for procurement categorization.
- Receive EDI purchase order confirmations, invoices, and shipment notices from Cleo and post them into Sage Intacct as AP bills and vendor records.
- Authenticate Sage Intacct with XML gateway session credentials and Cleo with OAuth 2.0, refreshing tokens and sessions on expiry.
- Poll on a schedule you define, with retries, error parsing, and a full audit trail on every record.
Questions
- Which direction does data move between Sage Intacct and Cleo?
- Reference data such as vendors and GL accounts flows from Sage Intacct into Cleo so EDI transactions map to valid suppliers and cost centers. EDI transactions (purchase orders, invoices, shipments) flow from Cleo into Sage Intacct as AP bills and vendor records. The integration is bidirectional for reference data and inbound for EDI.
- How does ml-connector handle Sage Intacct's XML gateway and single-endpoint design?
- ml-connector sends all operations through the single XML gateway endpoint at https://api.intacct.com/ia/xml/xmlgw.phtml, serializing reads and writes into a single HTTPS POST connection. Each operation includes a uniqueid in the control block to leverage Sage Intacct's server-side deduplication on retries. Because Intacct returns HTTP 200 even on application errors, ml-connector parses all responses for embedded error tags and status codes.
- What happens to EDI transactions that arrive through Cleo?
- ml-connector polls Cleo's file and folder API for incoming EDI transactions, maps the EDI document type (850, 810, 856, 820) and supplier information to the matching Sage Intacct vendor and GL account, and POSTs AP bills or vendor additions into Sage Intacct. If a mapping fails, the transaction is logged for audit and replay once the reference data is synchronized.
Related integrations
More Sage Intacct integrations
Other systems that connect to Cleo
Connect Sage Intacct and Cleo
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started