ml-connector
Exact OnlineSAP Concur

Exact Online and SAP Concur integration

Exact Online runs accounting and ERP for SMEs across multiple regions. SAP Concur runs expense management and travel. Connecting the two keeps your expense records, vendor invoices, and GL accounts aligned without manual re-keying. Expense reports and invoices submitted in SAP Concur post automatically into Exact Online's general ledger, allocated to the correct cost centers and GL accounts. ml-connector bridges the different APIs and keeps both systems in sync on a schedule you control.

How Exact Online works

Exact Online exposes accounts, sales and purchase invoices, GL accounts, cost centers, cost units, journal entries, items, employees, receipts, bank accounts, documents, and projects through a REST API with OData v3 query syntax. It is region-specific (Netherlands, Belgium, UK, Germany, France, Spain, or USA base URL), requires OAuth 2.0 authorization and app registration in Exact Online App Center, and uses 10-minute access tokens with 30-day rotating refresh tokens. Exact Online supports webhooks for a significant set of resources with HMAC-SHA256 verification, but does not support expand queries, so related entities must be fetched in separate requests.

How SAP Concur works

SAP Concur exposes vendors, invoices as payment requests, purchase orders, purchase requests, expense reports, financial integration documents, and employees through REST APIs across multi-datacenter endpoints determined by geolocation. It requires OAuth 2.0 password grant with credentials, company ID, and a 24-hour bootstrap auth token from App Center, with 1-hour access tokens and 6-month refresh tokens. SAP Concur supports webhooks through the Event Subscription Service with at-least-once delivery and mutual TLS, limited to 5 active subscriptions per app. No polling surface is documented.

What moves between them

The main flow is from SAP Concur into Exact Online. Expense reports and invoice payment requests from SAP Concur are read via webhook notifications and REST polling, mapped to GL accounts and cost centers in Exact Online, and posted as financial integration documents into Exact Online's general journal. Vendor and employee reference data is aligned in both directions so expenses land on valid GL dimensions. Financial documents posted to Exact Online are read-only, so ml-connector does not write back to SAP Concur.

How ml-connector handles it

ml-connector stores OAuth credentials for both systems and refreshes tokens before expiry - Exact Online every 8 minutes, SAP Concur every 55 minutes. It fetches Exact Online's division ID from the /current/Me endpoint before any API call, since all Exact Online paths require it. It processes SAP Concur webhook notifications via Event Subscription Service to detect new or updated expense reports and invoices, but also polls SAP Concur on a schedule since webhook-only delivery may miss updates. When posting to Exact Online, ml-connector maps SAP Concur vendors to Exact Online supplier accounts and expense categories to GL accounts and cost centers, validates that GL accounts exist before posting, and retries if the journal entry fails. SAP Concur's geolocation from the OAuth token response is used for all subsequent API calls. Every financial document carries a full audit trail and can be replayed if a downstream journal posting fails.

A real-world example

A mid-sized consulting firm uses Exact Online for accounting across multiple European offices and SAP Concur for travel and expense management. Before the integration, finance staff imported expense reports from SAP Concur each week and manually coded them to GL accounts and cost centers in Exact Online, then spent time chasing discrepancies between the two systems during month-end close. With Exact Online and SAP Concur connected, each submitted expense report flows into the general journal automatically, allocated to the correct cost center and office, and the finance team spends no time re-keying or reconciling between the two systems.

What you can do

  • Post SAP Concur expense reports and invoices into Exact Online's general journal, allocated to the correct cost centers and GL accounts.
  • Map vendors from SAP Concur to supplier accounts in Exact Online and validate GL accounts before posting financial documents.
  • Refresh OAuth tokens for both Exact Online and SAP Concur automatically before expiry, and handle Exact Online's regional base URLs and division requirements.
  • Receive expense and invoice notifications from SAP Concur's Event Subscription Service and poll on a schedule to ensure no updates are missed.
  • Maintain a full audit trail on every financial document and support replay if a journal posting fails.

Questions

Which direction does data move between Exact Online and SAP Concur?
The main flow is from SAP Concur into Exact Online. Expense reports and invoice payment requests flow from SAP Concur into Exact Online's general journal, mapped to GL accounts and cost centers. Vendor and employee reference data is aligned in both directions so expenses land on valid dimensions. Financial documents posted to Exact Online are read-only, so ml-connector does not write transactions back to SAP Concur.
How does ml-connector handle Exact Online's 10-minute access tokens and division requirement?
ml-connector caches and refreshes Exact Online's OAuth access token every 8 minutes before expiry. It fetches the division ID from Exact Online's /current/Me endpoint on each session start, since all API paths require the division ID and Exact Online publishes no shared base address. This ensures the integration never hits authentication or division-lookup failures.
Why does ml-connector poll SAP Concur if webhooks are supported?
SAP Concur's Event Subscription Service supports webhooks, but ml-connector polls on a schedule as well to ensure no updates are missed. Combined webhook and polling delivery is more reliable than webhooks alone, especially across the multi-datacenter geolocation boundaries that SAP Concur requires.

Related integrations

Connect Exact Online and SAP Concur

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

Get started