Exact Online and AvidXchange integration
Exact Online runs your accounting and purchasing. AvidXchange runs your invoice approval and payment automation. Connecting the two keeps purchasing in sync with accounts payable, so invoices created in Exact Online flow directly into AvidXchange for approval and payment, vendors and accounts match between systems, and payment status reflects back into Exact Online without re-entry. ml-connector handles the OAuth 2.0 token refresh on Exact Online's side, the proprietary token credentials on AvidXchange, and reconciles vendors and GL accounts so every invoice and payment lands on the correct dimension in both systems.
What moves between them
Purchase invoices and purchase orders flow from Exact Online into AvidXchange on a schedule tied to your invoice receipt cycle, typically daily or weekly. Vendors from Exact Online are synced to AvidXchange so invoices reference valid suppliers in the approval system. GL accounts and cost centers are mapped bidirectionally so approval-coded invoices and payments from AvidXchange route to the correct accounts and dimensions in Exact Online. Payment status and completed payment data are pulled from AvidXchange back to Exact Online, updating invoice payment state and posting paid invoices to the GL without re-keying. GL postings originate in Exact Online; AvidXchange does not write back to the ledger.
How ml-connector handles it
ml-connector stores both credential sets encrypted and manages Exact Online's OAuth 2.0 tokens, refreshing the 10-minute access token before it expires and handling the 30-day rotating refresh token lifecycle. It registers a webhook subscription with Exact Online for purchase invoice and purchase order changes, receiving push notifications when invoices are created or updated. For each invoice notification, ml-connector fetches the full invoice and line details from Exact Online using OData queries (filtering and pagination via top/skip), maps the vendor from Exact Online's Accounts entity (IsSupplier=true) to the matching AvidXchange vendor, and posts the invoice into AvidXchange. Vendors are synced first in both directions so every new vendor in Exact Online is available in AvidXchange before invoices reference it. GL accounts and cost centers are mapped at the time of sync so coded invoices from AvidXchange route to the correct dimensions. ml-connector handles AvidXchange rate limits with exponential backoff and retries, and tracks the full audit trail of every invoice and payment. Because Exact Online requires division ID routing on every call, ml-connector caches the division ID from the /api/v1/current/Me endpoint and validates it on every token refresh. Webhook signatures are validated using HMAC-SHA256 with the webhook secret from Exact Online App Center before processing any payload.
A real-world example
A mid-sized distributor runs Exact Online for accounting, purchasing, and inventory across multiple EU locations. The company uses AvidXchange for AP automation, invoice approval routing, and check/ACH payment processing. Before the integration, purchasing teams entered invoices into Exact Online, the accounting team exported those invoices to a spreadsheet, manually coded them in AvidXchange for approval routing, and after payment execution, manually posted the payments back to Exact Online's GL. With Exact Online and AvidXchange connected, invoices created in Exact Online flow directly to AvidXchange for approval and coding, vendors and GL accounts are reconciled automatically, and payment status flows back to Exact Online to update invoice state. The manual transfer step is eliminated, approval routing is faster, and the GL is reconciled with payment execution on the same day.
What you can do
- Push purchase invoices and purchase orders from Exact Online to AvidXchange on webhook notification, with full line-item detail and vendor mapping.
- Sync vendors from Exact Online (Accounts with IsSupplier flag) to AvidXchange so invoices reference valid suppliers in the approval system.
- Map GL accounts and cost centers bidirectionally so approval-coded invoices from AvidXchange route to the correct accounts and dimensions in Exact Online.
- Handle Exact Online OAuth 2.0 token refresh (10-minute access tokens and 30-day rotating refresh tokens) automatically and transparently.
- Pull payment status and completed payment data from AvidXchange and post paid invoices to Exact Online's general ledger without re-keying.
Questions
- How does the integration handle Exact Online's OAuth 2.0 token expiry and division ID requirement?
- ml-connector stores the OAuth credentials encrypted and refreshes the 10-minute access token before it expires, handling the 30-day rotating refresh token lifecycle automatically. Division ID is fetched once from the /api/v1/current/Me endpoint and cached, then validated on every token refresh. If the refresh token expires (must be used within 30 days), ml-connector surfaces an alert for re-authorization.
- Does the integration rely on Exact Online webhooks or does it poll for invoices?
- ml-connector registers webhook subscriptions with Exact Online for purchase invoice and purchase order changes, receiving push notifications when invoices are created or updated. This is faster and more reliable than polling. When a webhook fires, ml-connector fetches the full invoice and line details from Exact Online using OData queries before posting to AvidXchange.
- How are vendors and GL accounts kept in sync between Exact Online and AvidXchange?
- Vendors from Exact Online (Accounts entity with IsSupplier=true) are synced to AvidXchange before invoices reference them, and new vendors in AvidXchange are synced back to Exact Online. GL accounts and cost centers are mapped at the time of sync so approval-coded invoices from AvidXchange route to the correct accounts. This bidirectional mapping ensures every invoice and payment lands on valid dimensions in both systems.
Related integrations
More Exact Online integrations
Other systems that connect to AvidXchange
Connect Exact Online and AvidXchange
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started