Exact Online and WooCommerce integration
Exact Online runs your accounting and ERP. WooCommerce runs your online store. Connecting them keeps your sales records in agreement. Orders placed on your WooCommerce store flow into Exact Online as sales invoices linked to customer accounts, eliminating manual entry and the risk of missed or duplicate transactions. Customer information updates sync in both directions so your Exact Online customer master reflects who shops on your site.
What moves between them
Orders and customer information flow from WooCommerce into Exact Online. When a customer places an order on WooCommerce, ml-connector reads the order and customer record, maps the order to Exact Online's Sales Invoice format, and posts it into Exact Online linked to a customer account. Customer address changes and new customer records from WooCommerce update the corresponding Exact Online customer accounts. The flow runs on a schedule you control, typically checking WooCommerce for new or updated orders at the cadence that matches your sales cycle.
How ml-connector handles it
ml-connector stores both credential sets encrypted: Exact Online's OAuth 2.0 refresh token and WooCommerce's API Key pair. For Exact Online, ml-connector refreshes the short-lived access token before it expires and handles the region-specific base URL and division ID required by each Exact Online instance. For WooCommerce, it presents the API Key as HTTP Basic Auth on every request. WooCommerce order line items are mapped to Exact Online Sales Invoice Lines, with customer name and address merged into a single Exact Online customer account record if not already present. Both systems use HMAC-SHA256 for webhook signatures, which ml-connector validates on receipt. If WooCommerce webhooks are disabled due to repeated failures, ml-connector switches to polling mode until the webhook is re-enabled, ensuring no orders are lost. Every record carries a unique identifier so replays and retries do not create duplicates.
A real-world example
A mid-sized e-commerce merchant sells specialty goods through their WooCommerce store and uses Exact Online for accounting and customer management. Before the integration, the accounting team received order data from WooCommerce daily, manually created corresponding invoices in Exact Online, and spent time reconciling customer records across both systems. With the integration live, each new WooCommerce order automatically creates a Sales Invoice in Exact Online within minutes, mapped to the correct GL accounts and customer. Customer records stay synchronized, so the accounts receivable team can see the full order history for any customer without switching between systems. Month-end close is faster because the invoice and customer data already match.
What you can do
- Read orders from WooCommerce and post them into Exact Online as Sales Invoices, automatically linked to customer accounts.
- Keep customer records synchronized between WooCommerce and Exact Online, ensuring name, address, and contact data stay in agreement.
- Manage Exact Online's short-lived OAuth tokens and WooCommerce's API Key credentials, refreshing tokens before expiry.
- Validate webhook signatures on both platforms using HMAC-SHA256 and fall back to polling if WooCommerce webhooks are disabled.
- Map WooCommerce order line items to Exact Online Sales Invoice Lines with idempotent record creation to prevent duplicates.
Questions
- Which direction does data move between Exact Online and WooCommerce?
- The primary flow is from WooCommerce into Exact Online. Orders and customer records from WooCommerce are synced into Exact Online as Sales Invoices and customer accounts. Customer address and contact updates are kept in sync bidirectionally so Exact Online remains the source of truth for customer master data.
- How does ml-connector handle Exact Online's short OAuth token lifetime and region-specific base URLs?
- ml-connector caches Exact Online's refresh token encrypted and automatically refreshes the access token before the 10-minute expiry, eliminating the need for manual re-authentication. It stores the region-specific base URL per customer and appends the division ID on every API call, since Exact Online publishes no shared global base.
- What happens if WooCommerce webhooks are disabled after repeated failures?
- WooCommerce disables webhooks automatically after five consecutive non-2xx responses. ml-connector detects this and switches to polling mode, checking for new and updated orders at the configured schedule until the webhook is manually re-enabled. No orders are lost during the transition.
Related integrations
More Exact Online integrations
Other systems that connect to WooCommerce
Connect Exact Online and WooCommerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started