ml-connector
SAP S/4HANAProcurify

SAP S/4HANA and Procurify integration

SAP S/4HANA runs enterprise finance and procurement. Procurify runs purchase requests, purchase orders, and vendor spend management. Connecting the two keeps your source of truth aligned across both systems. Purchase orders and vendor bills created in Procurify flow into SAP S/4HANA on schedule, and vendor master records are kept in sync so procurement and finance see the same suppliers and cost allocations.

How SAP S/4HANA works

SAP S/4HANA exposes purchase orders, supplier invoices, suppliers, GL accounts, cost centers, and journal entries through OData V2 and OData V4 REST APIs over HTTPS. The cloud product authenticates with OAuth 2.0 client credentials against a tenant-specific URL, with scopes defined per Communication Arrangement. Tokens are typically short-lived (12 hours), so they must be cached and refreshed before expiry. SAP has no native webhooks for cloud connectors, so records are read by polling with LastChangeDateTime filters or delta tokens.

How Procurify works

Procurify exposes vendors, purchase orders, requisitions, bills, payments, account codes, locations, departments, and currencies through JSON REST APIs over HTTPS. Every request requires OAuth 2.0 client credentials and bearer token authorization, plus an X-Procurify-Client header. Tokens are valid for 24 hours. Procurify does not support webhooks or push notifications, so records are read by polling with date-range filters. Some endpoints like payments and order items are read-only.

What moves between them

The main flow runs from Procurify into SAP S/4HANA. Purchase orders and requisitions created in Procurify are read on a schedule and posted into SAP S/4HANA as purchase orders or purchase order line items, mapped to the correct GL accounts and cost centers. Vendor bills from Procurify flow into SAP as supplier invoices and GL account postings. Vendor master records are synced bidirectionally so both systems see the same supplier list, locations, and departments.

How ml-connector handles it

ml-connector stores both credential sets encrypted and manages the OAuth tokens independently on each side, since SAP uses Communication Arrangements while Procurify uses a standard client credentials flow. Since both systems poll only (neither supports webhooks), ml-connector polls Procurify at a cadence you define and writes to SAP S/4HANA's OData APIs. Procurify account codes and locations are mapped to SAP cost centers and GL accounts before posting, and the mapping is validated so every PO line references a valid GL account and cost center in SAP. Because GL Account and Cost Center APIs in SAP are read-only, ml-connector reads both on startup to build the validation table. SAP tokens require manual refresh handling, so ml-connector caches them and requests a new token before the 12-hour expiry. Procurify read-only endpoints like payments mean ml-connector never writes vendor payment data back into Procurify. Every record carries a full audit trail and can be replayed if a downstream SAP posting fails.

A real-world example

A mid-sized manufacturing company runs SAP S/4HANA for enterprise finance and procurement, and Procurify for decentralized purchase request management and vendor spend visibility. Before the integration, procurement managers submitted PO requests in Procurify, then the finance team manually entered approved orders into SAP S/4HANA, creating lag and duplicate data entry. Vendor master data was maintained in two places, leading to mismatched supplier lists at month-end close. With Procurify and SAP S/4HANA connected, each approved PO flows into SAP automatically, mapped to the correct cost centers for each department. Vendor records sync bidirectionally, so the procurement team always sees the authoritative supplier list, and the finance team starts close with PO and vendor data already in agreement.

What you can do

  • Sync purchase orders and requisitions from Procurify into SAP S/4HANA as purchase orders, mapped to the correct GL accounts and cost centers.
  • Post vendor bills and supplier invoice line items from Procurify into SAP, with full GL account allocation.
  • Keep vendor master records and locations aligned between Procurify and SAP S/4HANA so both systems see the same supplier list.
  • Validate all GL accounts and cost centers against SAP S/4HANA before writing, and maintain a lookup table refreshed on startup.
  • Poll Procurify on a custom schedule, handle OAuth token refresh for both systems independently, and track every record with a full audit trail.

Questions

Which direction does data move between SAP S/4HANA and Procurify?
The main flow is Procurify into SAP S/4HANA. Purchase orders, requisitions, and vendor bills move from Procurify into SAP, while vendor master records and location data are synced bidirectionally. Procurify payment endpoints are read-only, so ml-connector does not write payment data back into Procurify.
How does ml-connector handle the different OAuth flows on each side?
SAP S/4HANA uses OAuth 2.0 via Communication Arrangements with custom scopes, while Procurify uses standard client credentials flow with a 24-hour token lifetime. ml-connector manages both independently, caching SAP tokens and refreshing before the 12-hour expiry, and cycling Procurify tokens on the 24-hour boundary.
What happens if a PO references a cost center or GL account that does not exist in SAP S/4HANA?
ml-connector reads all GL accounts and cost centers from SAP on startup and validates every PO line before posting. If a Procurify account code or location does not map to a valid SAP cost center or GL account, the record is flagged in the audit trail and held in a queue for manual review, so bad data does not corrupt the general ledger.

Related integrations

Connect SAP S/4HANA and Procurify

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

Get started