SAP S/4HANA and Coupa integration
SAP S/4HANA runs your enterprise procurement and finance. Coupa manages your spend and supplier ecosystem. Connecting the two keeps supplier master data and purchase orders synchronized across your procurement landscape. New suppliers created in SAP flow into Coupa, and purchase order changes in either system are reflected in the other, eliminating manual re-entry and reconciliation work.
What moves between them
Supplier and purchase order records flow from SAP S/4HANA into Coupa. New suppliers created in SAP (A_Supplier and A_SupplierCompany entities) are extracted via OData polling and inserted into Coupa as Supplier records. Purchase orders and their line items flow the same direction on a schedule you control. Coupa webhook events for purchase orders and suppliers are logged but not currently written back to SAP, keeping the primary flow unidirectional to avoid conflicts with SAP's master data governance.
How ml-connector handles it
ml-connector stores SAP OAuth credentials and queries the tenant-specific token endpoint to retrieve short-lived bearer tokens, caching them and refreshing before expiry. It polls SAP's OData V4 APIs for suppliers and purchase orders using delta tokens or LastChangeDateTime filters to capture changes incrementally. On the Coupa side, it registers a webhook endpoint, verifies webhook signatures using HMAC-SHA256, and consumes purchase order and supplier events in real time. Supplier records from SAP are mapped to Coupa Supplier entities by external ID to prevent duplicates. Purchase orders map SAP line items to Coupa PurchaseOrder line items, translating cost centers to Coupa dimensional values where they exist. When Coupa returns rate-limit responses (429), ml-connector backs off and retries up to 3 times with exponential jitter. SAP GL Account APIs are read-only, so procurement costing data flows only from SAP into Coupa.
A real-world example
A large manufacturing enterprise runs SAP S/4HANA for global procurement and finance, with Coupa deployed to manage supplier relationships and spend analytics across ten business units. Before the integration, procurement teams manually entered new suppliers into both systems after each onboarding, and purchase order changes required re-keying to keep the spend platform current. With SAP S/4HANA and Coupa connected, supplier master data flows automatically, PO creation and changes propagate in real time through Coupa webhooks, and the procurement team can track spend against a single source of truth.
What you can do
- Sync supplier master data from SAP S/4HANA to Coupa on a schedule you control, preventing duplicate supplier entry.
- Automatically transfer purchase orders and line items from SAP into Coupa with full cost center mapping.
- Verify Coupa webhook signatures with HMAC-SHA256 and consume real-time purchase order and supplier events.
- Manage OAuth 2.0 tokens for both platforms, caching SAP tokens and refreshing before expiry to prevent auth failures.
- Handle Coupa rate limiting with exponential backoff retries and full audit trail for every supplier and order record.
Questions
- Which direction does data flow between SAP S/4HANA and Coupa?
- The main flow is from SAP S/4HANA into Coupa. Suppliers and purchase orders are extracted from SAP via OData polling and inserted into Coupa. Coupa webhook events for purchase orders and suppliers are consumed and logged but not written back to SAP. GL accounting data in SAP is read-only and remains the system of record.
- How does ml-connector handle the differences in how these systems authenticate?
- SAP S/4HANA uses OAuth 2.0 with tenant-specific token endpoints, and tokens are short-lived (typically 12 hours). ml-connector caches the token and refreshes it before expiry. Coupa uses OAuth 2.0 client credentials with an X-Coupa-API-Version header pinning. ml-connector manages both credential sets encrypted and presents the correct headers to each platform.
- What happens if Coupa returns a rate-limit error or timeout?
- When Coupa returns a 429 rate-limit response or a 5xx error, ml-connector backs off and retries up to 3 times with exponential backoff capped at 30 seconds. Every record carries a full audit trail and can be retried if a call fails.
Related integrations
More SAP S/4HANA integrations
Other systems that connect to Coupa
Connect SAP S/4HANA and Coupa
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started