ml-connector
Sage IntacctCleo

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.

How Sage Intacct works

Sage Intacct is a cloud-based ERP and accounting system that exposes vendors, AP bills, AP payments, GL accounts, and dimensions through a single XML gateway endpoint at https://api.intacct.com/ia/xml/xmlgw.phtml. Authentication uses session-based credentials: a senderId and senderPassword exchanged with a userId and userPassword for a sessionid cached for 50 minutes. Intacct does not support webhooks, so all data flows are polling-driven or manually triggered. HTTP 200 responses may contain application-level errors in the XML body, so responses must be parsed for error tags and status codes. Session tokens are isolated per senderId, companyId, and userId triple.

How Cleo works

Cleo Integration Cloud is a cloud-native B2B/EDI integration platform that handles EDI, API, and managed file transfer integrations via REST with JSON payloads. Authentication uses OAuth 2.0 password grant credentials to exchange username and password for a short-lived Bearer token. Cleo exposes folders, files, connections, actions, and audit events through its REST API at a tenant-specific base URL. EDI transactions (850/810/856/820) flow through Cleo as files or API payloads rather than native REST objects. Outbound webhooks require CIC Studio configuration by a tenant admin; there is no programmatic self-service webhook API.

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

Connect Sage Intacct and Cleo

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

Get started