ml-connector
IFS CloudSAP Ariba

IFS Cloud and SAP Ariba integration

IFS Cloud handles manufacturing, finance, and procurement. SAP Ariba manages the procurement catalog and invoice approval workflow. Connecting them keeps your purchasing data aligned: vendors and purchase orders approved in Ariba flow into IFS Cloud as official procurement documents, invoices move into IFS for matching and payment, and supplier records are reconciled between both systems. ml-connector manages the different authentication layers and the async reporting pattern that Ariba requires, so your procurement team works in one system while the financial records are already in IFS.

How IFS Cloud works

IFS Cloud is an enterprise ERP exposing manufacturing, asset management, finance, procurement, and project management through OData v4 REST APIs. The cloud product authenticates with OAuth2 client credentials against a tenant-specific URL (https://<tenant>.ifs.cloud), where each customer has its own subdomain and Keycloak realm. IFS Cloud exposes purchase orders, supplier invoices, vendor records, GL accounts, journal entries, and accounting dimensions through named projections (e.g., PurchaseOrderSet, PostingProposalHeadSet, SupplierSet). The platform enforces optimistic concurrency via ETag headers on mutations, rate-limits at roughly 1000 requests per minute per tenant, and pages results in chunks under 5000 elements. IFS Cloud does not expose standard webhooks, though it offers manual Event Actions (server-side triggers configured in the admin UI, not API-registered). The recommended pattern is pull-based polling of the OData API using modified-date filters.

How SAP Ariba works

SAP Ariba is a cloud procurement platform providing purchase orders, invoices, suppliers, requisitions, and contracts through REST Open APIs and async reporting jobs. Every API call requires OAuth2 client credentials (access token) plus a static API key header (apiKey), and the realm must be passed as a query parameter. Ariba does not offer outbound webhooks from the Open APIs; instead, ml-connector submits async reporting jobs filtered by date window (max one year), polls for job completion via jobId, and downloads paginated results (maximum 50,000 records per call, 2,000,000 per day). OAuth tokens expire in one hour, and write operations such as invoice creation are primarily handled via SOAP/cXML rather than REST. The REST APIs are read-heavy; most updates come through requisition imports or invoice workflows rather than direct REST PATCH calls.

What moves between them

Purchase orders, invoices, and supplier records flow from SAP Ariba into IFS Cloud. ml-connector polls Ariba daily for updated purchase orders, invoices, and suppliers using async reporting jobs filtered by date, then posts those records into IFS Cloud as PurchaseOrderSet entries, PostingProposalHeadSet invoices, and SupplierSet vendor records. Supplier reconciliation maps Ariba supplier IDs to IFS supplier numbers so both systems maintain a single source of supplier truth. Purchase order line items and invoice line amounts are also synced so the receiving and matching steps in IFS reflect what was ordered and invoiced in Ariba. Accounting dimensions (cost centers, GL accounts) are pre-mapped so invoices post to the correct financial accounts.

How ml-connector handles it

ml-connector stores the OAuth2 credentials (client_id, client_secret) and API key for Ariba encrypted, and refreshes the access token every 50 minutes (before the one-hour expiry). On the IFS side, it stores the tenant URL and OAuth2 credentials and requests a new bearer token as needed. For each poll cycle, ml-connector submits an async reporting job to Ariba filtered by updatedDateFrom and updatedDateTo (typically the last 24 hours), then polls the job status until it completes. When the job finishes, ml-connector downloads the paginated results (up to 50,000 per page) and extracts purchase orders, invoices, and suppliers. It then maps Ariba supplier IDs to IFS supplier numbers and company codes, validates that the target GL accounts exist in IFS, and POSTs the records into IFS Cloud using the OData API. Each PATCH or POST to IFS includes the required If-Match ETag header (captured from prior GET requests) to enforce optimistic concurrency. If an Ariba async job takes longer than expected or IFS rate-limits with a 429 response, ml-connector backs off and retries with exponential jitter. Every record is logged in the audit trail with its source Ariba ID, so failures can be traced back and replayed.

A real-world example

A mid-market discrete manufacturer uses IFS Cloud for production planning, purchasing, and finance, and SAP Ariba for supplier management and invoice approval across multiple plants. Before the integration, purchase orders approved in Ariba were printed or emailed to IFS users, who manually created matching PO records in the system. Invoices were received, approved in Ariba, then re-entered into IFS for three-way matching against receipts and POs. The purchasing team spent hours each week reconciling data between the two systems, and invoice posting to the general ledger lagged by days. With IFS Cloud and SAP Ariba connected, each approved purchase order and invoice moves from Ariba into IFS automatically on a daily schedule, matched to the correct cost center and GL account. Three-way matching now starts with complete data from both systems, and month-end close starts with current invoices already posted to the ledger.

What you can do

  • Sync purchase orders approved in SAP Ariba into IFS Cloud as official PurchaseOrderSet records, mapped to the correct company code and cost center.
  • Move invoices from SAP Ariba into IFS Cloud as PostingProposalHeadSet entries, ready for three-way matching and GL posting.
  • Reconcile supplier records between SAP Ariba and IFS Cloud, mapping Ariba supplier IDs to IFS supplier numbers to maintain a single vendor source of truth.
  • Handle SAP Ariba async reporting jobs, date-window filtering, realm routing, and OAuth token refresh on a schedule that aligns with your procurement cycle.
  • Track every record in the audit trail with its source Ariba ID, so failed syncs can be traced and replayed without manual re-entry.

Questions

How does ml-connector handle SAP Ariba's async reporting jobs?
ml-connector submits an async reporting job to Ariba filtered by date window (typically the last 24 hours), then polls the job status until completion. Once the job finishes, ml-connector downloads the paginated results (up to 50,000 records per call) and processes them into IFS Cloud. This pattern aligns with Ariba's read-heavy REST API design and handles the one-year window limit by submitting multiple jobs for multi-year backfills.
Do invoices and purchase orders sync bidirectionally?
No. Purchase orders, invoices, and suppliers flow from SAP Ariba into IFS Cloud. IFS Cloud is the source of truth for GL posting and financial reconciliation, so invoices do not flow back to Ariba. Updates to suppliers and POs in IFS are manual or driven by other systems, not by changes in Ariba.
How are supplier records mapped between the two systems?
ml-connector maps SAP Ariba supplier IDs to IFS Cloud supplier numbers during each sync. Company codes and cost centers are pre-configured during setup so invoices post to the correct GL accounts. If a supplier does not exist in IFS, the sync logs the mismatch in the audit trail, and the record is held until the supplier is manually created in IFS and the sync is replayed.

Related integrations

Connect IFS Cloud and SAP Ariba

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

Get started