ml-connector
IFS CloudJAGGAER

IFS Cloud and JAGGAER integration

IFS Cloud runs enterprise manufacturing and finance. JAGGAER runs procurement and supplier management. Connecting them keeps your purchase orders, invoices, and supplier records synchronized across both systems. New purchase orders in IFS Cloud sync into JAGGAER, invoice receipts from JAGGAER post into IFS, and supplier master data stays aligned in both directions. ml-connector manages the different API shapes and authentication flows on each side and moves records on a schedule you control.

How IFS Cloud works

IFS Cloud exposes purchase orders, supplier invoices, suppliers, customers, GL accounts, and accounting dimensions through OData v4 REST API via the IFS OData Provider. Each customer has a tenant-specific subdomain URL, and authentication uses OAuth 2.0 Client Credentials against a tenant-specific token endpoint with a 60-minute token lifetime. IFS offers Event Actions for server-side triggers but they require manual per-customer configuration in the admin UI and are not self-registerable via API, so integration relies on polling the OData API with filters on modified timestamps. Requests are subject to a 1000-per-minute rate limit and page size limits of under 5000 elements per result set. Mutation operations require OData ETag headers for optimistic concurrency control, forcing the client to read a record, capture its ETag, and include that etag on PATCH or POST actions.

How JAGGAER works

JAGGAER is a cloud Source-to-Pay platform exposing purchase orders, invoices, suppliers, contracts, catalog items, and GL accounts through the J1P REST API. Authentication uses OAuth 2.0 Client Credentials provisioned during customer onboarding, with credentials provided by JAGGAER and a token endpoint at a customer-instance-specific URL. JAGGAER also supports cXML for bidirectional supplier-facing document exchange and SAP iDoc for ERP sync, though the J1P REST API is the primary integration path. The platform does not publish detailed J1P endpoint paths publicly; they are provided during onboarding and gated behind customer login in Swagger specs. Event-driven configuration is not self-serve and requires JAGGAER professional services.

What moves between them

Purchase orders and invoices flow from IFS Cloud into JAGGAER on a schedule you define. When a new purchase order is created in IFS Cloud, ml-connector reads it via OData query, maps it to JAGGAER PO structure, and writes it to JAGGAER. Similarly, when JAGGAER invoices are received, they flow back into IFS Cloud as posting proposals or GL entries. Supplier master data is aligned in both directions so sourcing rules and GL account assignments remain consistent.

How ml-connector handles it

ml-connector manages two separate OAuth 2.0 flows: one against the IFS Cloud tenant-specific token endpoint and one against JAGGAER's customer-instance token endpoint. It polls IFS Cloud OData entities with $filter clauses on LastModifiedDate to find new or changed records, captures the ETag header from each response, and includes that etag in the If-Match header when performing updates, satisfying IFS's optimistic concurrency requirement. When writing to JAGGAER, it uses standard OAuth bearer token authentication. Because IFS Cloud does not offer a push event mechanism via API, polling is the only reliable pattern. Requests to both systems are subject to rate limiting: ml-connector respects IFS Cloud's 1000-per-minute limit and JAGGAER's throttling by backing off with exponential jitter on HTTP 429 responses. Supplier records are mapped first so purchase order GL account assignments exist in IFS before orders are written. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized manufacturing company runs IFS Cloud for ERP and production planning, and uses JAGGAER for strategic sourcing and invoice management across multiple procurement departments. Before the integration, purchase requisitions created in IFS Cloud were manually exported and re-entered into JAGGAER, and invoices received in JAGGAER had to be manually matched and entered as proposals in IFS, creating delays in month-end close. With IFS Cloud and JAGGAER connected, new purchase orders flow into JAGGAER automatically, supplier contracts and pricing are visible to planners in IFS, and invoice receipts post directly into IFS as posting proposals with the correct GL accounts. The procurement cycle is faster, invoice discrepancies surface earlier, and manual re-keying is eliminated.

What you can do

  • Sync purchase orders from IFS Cloud into JAGGAER with correct GL account and supplier mapping.
  • Post JAGGAER invoice receipts into IFS Cloud as posting proposals or GL entries.
  • Keep supplier master data and GL account assignments aligned in both directions.
  • Manage OAuth 2.0 authentication for both IFS Cloud's tenant-specific token endpoint and JAGGAER's customer instance.
  • Handle IFS OData ETag concurrency requirements and rate limits with retry logic and full audit trail.

Questions

How does ml-connector handle IFS Cloud's OData ETag requirement?
IFS Cloud enforces optimistic concurrency control via OData ETag headers. ml-connector reads each record to capture its @odata.etag value, then includes that etag in the If-Match header when performing updates or mutations. This prevents lost updates if multiple clients are writing to the same record.
Which direction do purchase orders and invoices flow?
Purchase orders flow from IFS Cloud into JAGGAER. Invoices and receipt acknowledgments flow from JAGGAER back into IFS Cloud as posting proposals or GL entries. Supplier master data is synced in both directions so sourcing rules and account assignments remain consistent across both systems.
Does JAGGAER's pull-only API require polling, or can ml-connector receive push events?
JAGGAER's J1P REST API is pull-only for standard integration. Event-driven configuration exists but is not self-serve and requires JAGGAER professional services engagement. ml-connector polls on a schedule you define, filtering by modified timestamp or state to find new records since the last sync.

Related integrations

Connect IFS Cloud and JAGGAER

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

Get started