Odoo and Cleo integration
Odoo runs procurement and finance across product lines and cost centers. Cleo orchestrates EDI and API trading partner communications. Connecting them moves your purchase orders and invoices from Odoo into Cleo as EDI 850 and 810 transactions, so trading partners receive them in their preferred format. Supplier responses flow back into Odoo and land in the right location so your procurement team can see fulfillment status and invoice reconciliation in a single view.
What moves between them
Purchase orders and supplier invoices are pulled from Odoo on a schedule and pushed to Cleo as EDI 850 and 810 transactions routed to the correct supplier partner folder. Supplier responses such as acknowledgments and shipment notices flow back through Cleo and are posted into Odoo as purchase order updates and receipt confirmations. Supplier master data and partner mappings are aligned in both directions so transactions reach the correct trading partner and land in the right cost center in Odoo.
How ml-connector handles it
ml-connector stores both credential sets encrypted: the Odoo API key and username are used to obtain a session token via XML-RPC or to pass the API key as a Bearer token in JSON-2 calls, while the Cleo username and password are exchanged for an OAuth 2.0 token on each batch run. It maps Odoo purchase order lines to the correct Cleo supplier folders by matching supplier IDs and cost center mappings, then formats each order as an EDI 850 transaction or JSON payload depending on the partner's supported format. When supplier responses arrive in Cleo, ml-connector parses the EDI 810 invoice or 856 shipment, validates it against the original Odoo purchase order, and posts the receipt and invoice match into Odoo's accounts payable. Odoo's write_date filter enables polling from a high-water-mark so only changed records are synced each run, and every record carries a full audit trail so transactions can be replayed if a downstream Odoo posting fails.
A real-world example
A mid-sized consumer goods distributor runs Odoo for procurement and finance across three regional warehouses, and sources products from 40 suppliers who expect purchase orders and invoices in EDI format. Before the integration, the procurement team manually exported purchase orders from Odoo, converted them to EDI 850 format in a separate tool, and sent them to trading partners via Cleo. When supplier invoices arrived as EDI 810, another team member converted them back to Odoo's invoice format and re-entered details into accounts payable. With Odoo and Cleo connected, each purchase order created in Odoo is automatically formatted as an EDI 850, routed through Cleo to the correct supplier, and acknowledgments flow back into Odoo as purchase order updates. Supplier invoices arrive as EDI 810, are matched to the original order, and post into the ledger. Manual re-entry is eliminated and procurement teams see real-time fulfillment status in Odoo.
What you can do
- Sync Odoo purchase orders and supplier invoices to Cleo as EDI 850 and 810 transactions routed to the correct trading partner folder.
- Post supplier acknowledgments, invoices, and shipment notices from Cleo back into Odoo as purchase order updates and receipt confirmations.
- Map Odoo suppliers and cost centers to Cleo folders so transactions reach the right partner and land in the correct ledger account.
- Authenticate Odoo with API key and XML-RPC or JSON-2, and Cleo with OAuth 2.0 password grant, refreshing tokens as needed.
- Poll Odoo on a schedule using write_date filters, validate transactions, and maintain a full audit trail for replay on failure.
Questions
- Which direction do purchase orders and invoices move between Odoo and Cleo?
- Purchase orders and invoices flow from Odoo into Cleo, where they are converted to EDI 850 and 810 transactions and routed to the correct supplier folder. Supplier responses such as acknowledgments and invoices flow back through Cleo and are posted into Odoo as purchase order updates and receipt confirmations. Supplier master data is synchronized in both directions.
- Does Odoo's API key authentication work with all Odoo editions?
- API key authentication is recommended for Odoo 14 and later. Odoo Online, Odoo.sh, and self-hosted editions all support it via XML-RPC or JSON-2. Custom pricing is required for external API access on Odoo Online. Odoo Online users must have a password set by the admin before XML-RPC authentication can be used.
- How does ml-connector handle the differences between Odoo's ERP structure and Cleo's EDI middleware?
- ml-connector maps Odoo purchase orders and supplier invoices to Cleo's EDI transaction model: orders become 850s, invoices become 810s, and shipments become 856s. It uses supplier IDs and cost center mappings to route transactions to the correct Cleo folder for each trading partner, and when responses arrive, it parses the EDI transaction, validates it against the original Odoo order, and posts the result into Odoo's accounts payable and procurement modules.
Related integrations
More Odoo integrations
Other systems that connect to Cleo
Connect Odoo and Cleo
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started