ml-connector
SAP ECCCin7

SAP ECC and Cin7 integration

SAP ECC runs finance and procurement on premises. Cin7 Core runs cloud inventory and order management. Connecting them keeps your master vendor data and accounting records synchronized across both systems without manual re-entry. Vendor changes made in SAP ECC flow into Cin7 automatically, and GL postings from SAP ECC account entries post into Cin7's chart of accounts on a schedule you define. ml-connector bridges the on-premises RFC layer to the cloud REST API, handling the different authentication schemes and the polling cadence required by each system.

How SAP ECC works

SAP ECC exposes vendors, customers, purchase orders, invoice documents, general ledger accounts, materials, cost centers, and employee records through RFC/BAPI function modules and OData REST via SAP Gateway. Authentication uses HTTP Basic Auth for OData and RFC Basic Auth for BAPI calls via an on-premises SAP .NET Connector or Java Connector agent. SAP ECC publishes no native webhook registry, so data is read by polling against standard BAPIs such as BAPI_VENDOR_GETLIST and BAPI_ACC_DOCUMENT_POST, or by scheduled IDoc push if configured in the customer's WE21 outbound delivery settings. The on-premises agent requirement means all RFC and OData requests must originate from the customer's network.

How Cin7 works

Cin7 Core is a cloud REST API that exposes suppliers, purchases, sales, products, customers, and a read-only chart of accounts. Authentication uses custom API key headers (api-auth-accountid and api-auth-applicationkey) sent with every request over HTTPS. Cin7 can push outbound events such as sale and purchase changes via webhooks configured through the UI Automation module, but webhooks are not HMAC-signed and the payloads are unencrypted. The chart of accounts is read-only, and purchase records are unified around a single Approach field that indicates the lifecycle stage (ORDER, INVOICE, RECEIVE). Cin7 Omni is pull-only via REST polling.

What moves between them

Vendor master records flow from SAP ECC to Cin7 Core on a scheduled poll. When a vendor is created or changed in SAP ECC, ml-connector reads the updated record via BAPI_VENDOR_GETLIST and BAPI_VENDOR_GETDETAIL, maps the SAP vendor fields to Cin7's Supplier entity, and upserts the supplier in Cin7. GL postings from SAP ECC's BAPI_ACC_DOCUMENT_POST flow into Cin7 on the same schedule, mapped to Cin7's read-only chart of accounts. The flow is unidirectional: Cin7 is not a source of truth for vendor or GL data, so ml-connector does not write changes from Cin7 back into SAP ECC.

How ml-connector handles it

ml-connector stores the SAP ECC HTTP Basic Auth credentials (username and password) and the Cin7 API key headers encrypted in the database. On each poll interval, ml-connector invokes the on-premises SAP agent via RFC to call BAPI_VENDOR_GETLIST with a change date filter, parses the vendor records, and maps SAP vendor fields (vendor number, name, address, payment terms) to Cin7's Supplier entity structure. For GL postings, ml-connector reads BAPI_ACC_DOCUMENT_POST results, filters for accounts that map to Cin7's chart of accounts, and batches the posts into Cin7 via the REST API. SAP ECC has no built-in external idempotency key, so ml-connector uses the SAP document number and posting date as the deduplication key to prevent duplicate vendor or GL posts on retry. Rate limits are not published by SAP, but typical safe throughput is 10-50 concurrent RFC calls; exceeding this causes SYSTEM_FAILURE exceptions which ml-connector backs off and retries. Cin7 rate limits are per Application Key. Write BAPIs in SAP ECC require an explicit BAPI_TRANSACTION_COMMIT call; ml-connector always commits after posting GL documents. Every vendor and GL post carries a full audit trail in ml-connector so failed records can be replayed after the on-premises agent or Cin7 API returns to service.

A real-world example

A mid-sized wholesale distributor runs SAP ECC on premises for finance, procurement, and vendor management, and uses Cin7 Core in the cloud for inventory, order fulfillment, and accounting. Before the integration, when a new supplier was set up in SAP ECC, the procurement team had to manually copy the vendor name, address, payment terms, and account coding into Cin7, introducing typos and doubling data-entry work. Month-end financial close required exporting GL postings from SAP ECC and re-keying them into Cin7's chart of accounts by hand. With SAP ECC and Cin7 connected, new vendors and vendor changes flow into Cin7 automatically, and GL postings are posted directly into Cin7's accounting records on a daily or weekly schedule tied to the customer's close calendar. The procurement team no longer re-enters vendor data, and the month-end close process starts with all GL accounts already reconciled.

What you can do

  • Sync vendor master records from SAP ECC to Cin7 Core automatically on a scheduled poll, including name, address, payment terms, and account coding.
  • Post general ledger documents from SAP ECC into Cin7's chart of accounts, mapped to the correct GL account structure.
  • Handle HTTP Basic Auth for SAP ECC OData and RFC calls via an on-premises agent, and custom API key headers for Cin7.
  • Deduplicate vendor and GL posts using SAP document numbers and posting dates to prevent duplicates on retry.
  • Store all vendor and GL posting records with a full audit trail, enabling replay if the on-premises agent or Cin7 API is temporarily unavailable.

Questions

How does ml-connector call SAP ECC if it runs in the cloud?
SAP ECC exposes RFC and OData only through an on-premises network. ml-connector requires the customer to deploy an SAP .NET Connector or Java Connector agent on the customer's network, with network connectivity back to the ml-connector platform. ml-connector sends RFC calls to the agent, which executes the BAPI functions in SAP ECC and returns the results. The agent must be configured with the SAP ECC system details (host, port, system number, client) and the customer's SAP user credentials.
Can ml-connector write vendor or GL data back into SAP ECC?
ml-connector is read-only from SAP ECC into Cin7 Core. Vendors and GL accounts are the system of record in SAP ECC and flow outbound only. Changes made to vendors or GL accounts in Cin7 Core are not synchronized back into SAP ECC. This prevents data conflicts and keeps SAP ECC as the authoritative source for finance and procurement.
What happens if the on-premises SAP agent is offline or Cin7 returns an error?
ml-connector tracks every vendor and GL post in its audit log with a status (pending, succeeded, failed). If the agent is offline or Cin7 returns a temporary error such as rate-limit 429, ml-connector marks the record as failed, backs off with exponential jitter, and retries on the next poll interval. Once the agent or Cin7 is available again, ml-connector replays the failed records automatically without manual intervention.

Related integrations

Connect SAP ECC and Cin7

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

Get started