ml-connector
Exact OnlineWooCommerce

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.

How Exact Online works

Exact Online exposes accounts, sales invoices, sales orders, customers, GL accounts, cost centers, and other finance records through a REST API with OData v3 query syntax. It authenticates with OAuth 2.0 Authorization Code Grant, with access tokens that expire in 10 minutes and refresh tokens valid for 30 days. Exact Online's base URL is region-specific (Netherlands, Belgium, UK, Germany, France, Spain, or USA) and requires a division ID appended to every call. The platform supports webhooks via push subscription with HMAC-SHA256 signature verification, though payloads contain only the entity key and action type, requiring a follow-up REST call to fetch the full record.

How WooCommerce works

WooCommerce exposes orders, customers, products, refunds, and coupons through a REST API over HTTPS. It authenticates with API Key credentials (Consumer Key and Consumer Secret), provided as HTTP Basic Auth. WooCommerce is self-hosted on the merchant's WordPress domain, so each customer deployment has a unique base URL. It supports webhooks for order.created, order.updated, customer.created, and customer.updated events, using HMAC-SHA256 signatures. Webhooks are disabled automatically after five consecutive non-2xx responses, requiring manual re-enablement.

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

Connect Exact Online and WooCommerce

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

Get started