ml-connector
Exact OnlineSAP Ariba

Exact Online and SAP Ariba integration

Exact Online manages accounting and operations. SAP Ariba runs procurement. Connecting the two keeps your GL accounts in sync with your procurement spend and your supplier master aligned across both platforms. Purchase requisitions approved in Ariba can flow into Exact Online as purchase orders, and invoices in Ariba post to Exact Online's general ledger without re-keying. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.

How Exact Online works

Exact Online exposes suppliers, customers, purchase orders, sales orders, invoices, GL accounts, cost centers, and items through a REST API with OData v3 query syntax (filter, select, orderby, top, skip). The cloud product authenticates with OAuth 2.0 authorization code grant, with access tokens valid for 10 minutes and refresh tokens valid for 30 days. Exact Online supports webhooks for purchase orders, invoices, accounts, and other resources via HMAC-SHA256 signed HTTP POST delivery with up to 10 retries. All API calls require a division ID, which must be fetched from the /current/Me endpoint first. Related data must be fetched in separate requests since the API does not support expand parameters.

How SAP Ariba works

SAP Ariba exposes purchase orders, invoices, suppliers, requisitions, and contracts through REST Open APIs at openapi.ariba.com, supporting both synchronous endpoints for suppliers and approvals and asynchronous reporting jobs for procurement documents. Every request requires OAuth 2.0 client credentials plus a static API key header, and Ariba rate limits vary by endpoint and enforce a maximum of 2,000,000 records per day. Ariba has no outbound webhooks; integrations must poll async reporting jobs filtered by date range, poll for job completion by jobId, and download paginated results up to 50,000 records per call. Write operations such as invoice creation and requisition import use SOAP and cXML, not REST.

What moves between them

The main flow runs both directions. Purchase requisitions approved in SAP Ariba flow into Exact Online as purchase orders mapped to the correct GL accounts and cost centers. Invoices posted in Ariba are read via async reporting jobs, mapped to Exact Online GL accounts by cost center, and posted to Exact Online's journal as transaction lines. Supplier records synchronize bidirectionally so that new suppliers in Ariba are created in Exact Online and supplier updates in either system propagate to the other. GL accounts and cost centers are pre-mapped, so invoice allocations land on valid Exact Online dimensions.

How ml-connector handles it

ml-connector stores both credential sets encrypted. For Exact Online it manages OAuth token refresh (10-minute lifetime) and webhook subscriptions, confirming HMAC-SHA256 signatures on incoming webhooks before processing. For SAP Ariba it caches the OAuth token (1-hour lifetime), presents both the bearer token and API key on every request, and handles the realm parameter as a query string. Because Ariba has no outbound webhooks, ml-connector polls async reporting jobs on a schedule you define, filtering by date range, polling for job completion by jobId, and downloading paginated results. When an Ariba invoice arrives, ml-connector fetches the full context (invoice line items, supplier details, cost center references) in separate API calls, maps the supplier to an Exact Online account and the cost center to an Exact Online GL account, and posts the journal entry. Supplier writes go through the synchronous Ariba endpoints. Rate limits and async job timeouts trigger exponential backoff and retry, and every record carries a full audit trail.

A real-world example

A mid-sized distributor runs Exact Online for accounting and inventory in France and uses SAP Ariba for procurement and supplier management across three warehouses. Before the integration, the procurement team approved requisitions in Ariba, the finance team manually created matching purchase orders in Exact Online, and invoices arrived in Ariba without posting to the GL until they were re-keyed into Exact Online. Month-end close required chasing mismatches between Ariba invoices and GL postings. With Exact Online and Ariba connected, approved requisitions flow into Exact Online as purchase orders on the same day, invoices post to the GL automatically by cost center and GL account, and supplier changes in either system keep the master aligned. Finance closes the month on time with all invoices accounted for.

What you can do

  • Sync purchase requisitions from SAP Ariba to Exact Online as purchase orders, mapped to the correct cost centers and GL accounts.
  • Post SAP Ariba invoices to Exact Online's general ledger as journal entries allocated by cost center.
  • Keep supplier master data in sync bidirectionally between SAP Ariba and Exact Online.
  • Poll Ariba async reporting jobs on a custom schedule, download paginated results, and handle rate limits with exponential backoff.
  • Manage OAuth tokens (10-minute lifetime on Exact Online, 1-hour on Ariba), webhook subscriptions, and HMAC signature verification on Exact Online webhooks.

Questions

Which direction does data move between Exact Online and SAP Ariba?
Both directions. Purchase requisitions and invoices flow from Ariba into Exact Online, while suppliers sync bidirectionally. Ariba write operations use synchronous endpoints for supplier creation and updates, while invoice reads use asynchronous reporting jobs. GL postings are created only in Exact Online, not written back to Ariba.
How does ml-connector handle Ariba's async reporting jobs and polling?
ml-connector submits async reporting jobs filtered by date range, polls for completion by jobId on your custom schedule, and downloads paginated results up to 50,000 records per call. Since Ariba enforces a maximum of 2,000,000 records per day and a one-year window per job, multi-year backfills are submitted in annual chunks. Ariba rate limits trigger exponential backoff and retry.
What happens when an invoice arrives from SAP Ariba?
ml-connector polls the async reporting job, fetches the invoice and its line items from Ariba, looks up the supplier and cost center in Exact Online, maps both to the correct GL accounts, and posts a journal entry. If a supplier does not yet exist in Exact Online, ml-connector creates it first from the Ariba supplier master. All changes are logged with full audit trail.

Related integrations

Connect Exact Online and SAP Ariba

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

Get started