ml-connector
SAP ECCAdyen

SAP ECC and Adyen integration

SAP ECC runs your enterprise finance. Adyen processes your payments. Connecting them keeps your cash and revenue accounts reconciled without manual posting. Every Adyen payment, capture, refund, and settlement flows into SAP ECC's general ledger, matched to the correct customer and GL account. ml-connector handles Adyen's webhook signatures, reconciliation to SAP ECC customer records, and the GL posting mechanics.

How SAP ECC works

SAP ECC exposes vendors, customers, materials, purchase orders, GL accounts, and cost centers through RFC/BAPI function modules, OData via SAP Gateway at the customer's configured host and port, SOAP/WSDL services, or IDoc XML sent over HTTP to a customer-configured port. Authentication uses HTTP Basic Auth for OData and IDoc calls, or RFC Basic Auth for BAPI calls via the SAP .NET Connector or Java Connector agent running on the customer network. SAP ECC does not publish a native webhook registry, so incoming Adyen events must be accepted via a customer-configured IDoc HTTP port or pulled by scheduled polling via RFC_READ_TABLE. Key entities include BAPI_VENDOR_GETLIST, BAPI_CUSTOMER_GETLIST, BAPI_GL_ACC_GETLIST, BAPI_COSTCENTER_GETLIST, and BAPI_ACC_DOCUMENT_POST for posting financial entries.

How Adyen works

Adyen exposes payment transactions, captures, refunds, cancellations, disputes, and settlement reports through REST JSON APIs. The Checkout API handles payment authorization and capture; the Management API provides merchant configuration and reporting; the Transfers API and Balance Platform handle payouts and financial products. Adyen authenticates each call with an API Key via X-API-Key header or Basic Auth via Authorization header, both generated in the Adyen Customer Area and scoped to a company or merchant account. Adyen sends payment and dispute event notifications via webhooks posted as HTTP POST to a configured endpoint, signed with HMAC-SHA256. Test and live environments are separate with distinct API keys and base URLs. Key event types include AUTHORISATION, CAPTURE, REFUND, CANCELLATION, CHARGEBACK, and REPORT_AVAILABLE.

What moves between them

Payment and settlement data flow from Adyen into SAP ECC. After each Adyen transaction or at the end of the settlement cycle, ml-connector receives the webhook event, matches it to a SAP ECC customer via order ID or email, reconciles the amounts and currency, and posts the GL entries into SAP ECC's general ledger. Settlements and chargebacks post to revenue and receivables accounts respectively. SAP ECC is the system of record for GL posting - ml-connector does not write payments or settlements back into Adyen.

How ml-connector handles it

ml-connector listens for Adyen webhook POST requests on a configured endpoint and verifies each signature with HMAC-SHA256 before processing. It stores the Adyen API Key encrypted in SAP ECC and uses it to fetch additional transaction detail if needed. For each payment event, ml-connector queries SAP ECC's BAPI_CUSTOMER_GETLIST and BAPI_GL_ACC_GETLIST to match the transaction to a customer record and the correct GL accounts for revenue and receivables. It then calls BAPI_ACC_DOCUMENT_POST to create the GL entry, specifying the GL account, cost center, customer, amount, and currency. Because SAP ECC write BAPIs require explicit transaction commit and can leave documents locked on error, ml-connector calls BAPI_TRANSACTION_COMMIT after each successful posting and logs failed postings for replay. The on-premises RFC agent must be running and network-accessible for BAPI calls to succeed. Adyen disputes and chargebacks are tracked separately and posted to a designated chargeback or dispute account.

A real-world example

A mid-sized SaaS company processes customer payments through Adyen and runs SAP ECC for accounting and revenue recognition on-premises. Before the integration, the finance team exported settlement reports from Adyen daily and manually entered the cash and revenue journal entries into SAP ECC at month-end, a process that took two to three days and was error-prone due to mismatched customer references and currency rounding. With SAP ECC and Adyen connected, each payment event posts a GL entry into SAP ECC within minutes of the transaction, matched to the customer and the correct GL account. Revenue is recognized in real time, reconciliation happens automatically, and month-end close begins with cash and receivables already balanced.

What you can do

  • Receive Adyen payment events via webhook and verify each signature with HMAC-SHA256.
  • Post Adyen settlements and refunds into SAP ECC's general ledger using BAPI_ACC_DOCUMENT_POST, allocated to the correct GL account and customer.
  • Match Adyen transactions to SAP ECC customers by order ID or email, and reconcile amounts and currencies before posting.
  • Track Adyen disputes and chargebacks separately and post them to a designated GL account for investigation.
  • Replay failed GL postings and maintain a full audit trail of every transaction from Adyen through SAP ECC.

Questions

Does ml-connector support Adyen's Balance Platform and payout features?
ml-connector focuses on payment and settlement reconciliation into SAP ECC's general ledger. Adyen Balance Platform payouts are supported via the Transfers API; ml-connector can post payout settlements as GL entries if your contract includes the Balance Platform. Consult your Adyen account setup to confirm which APIs and features are enabled.
What happens if an Adyen webhook fails to reach ml-connector or SAP ECC is down?
If ml-connector cannot post a GL entry to SAP ECC, the failed transaction is logged with the Adyen event ID and the full request, and can be replayed once SAP ECC is restored or the underlying data issue (e.g., a missing customer or GL account) is fixed. ml-connector retries transient network errors up to a configurable limit. Permanent failures are surfaced in the audit trail for manual review.
Do Adyen refunds and cancellations reverse the original GL entry or create a new offsetting entry?
ml-connector treats refunds and cancellations as separate Adyen events and creates offsetting GL entries with negative amounts, reversing the original revenue or settlement posting. This approach avoids modifying GL entries after posting, which SAP ECC discourages. The audit trail shows both the original transaction and the reversal with their Adyen event IDs linked.

Related integrations

Connect SAP ECC and Adyen

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

Get started