SAP ECC and GoCardless integration
SAP ECC runs your enterprise accounting and customer master data on premises. GoCardless collects bank debit payments from your customers in 30+ countries. Connecting the two keeps your customer payment mandates aligned with ECC master files and brings payment confirmations and payout reconciliation straight into your accounts receivable ledger. New customers added in SAP ECC can be registered in GoCardless as debit mandate holders, and each payment confirmation flows back into ECC with a full audit trail so month-end AR reconciliation is automatic.
What moves between them
The main flow is bidirectional. SAP ECC customer master records sync to GoCardless to set up or update customer and mandate information, including bank account details and contact information. Payment and subscription records created in GoCardless flow back into SAP ECC as accounts receivable transactions with payment status and payout details. Payout confirmations from GoCardless are matched against ECC open receivables and posted to the GL as deposits, so the cash receipts flow is complete from bank debit collection through ECC reconciliation.
How ml-connector handles it
ml-connector runs an on-premises agent (SAP .NET Connector or Java Connector) that bridges ECC RFC calls, since ECC cannot be reached directly from the cloud. Customer master data is read from ECC via BAPI_CUSTOMER_GETLIST and BAPI_CUSTOMER_GETDETAIL, mapped to GoCardless customer and bank account objects, and synced with PUT requests whenever ECC records change. When GoCardless sends webhook events for payments, ml-connector verifies the HMAC-SHA256 signature against the registered webhook secret, then posts the payment transactions into SAP ECC's accounts receivable module via BAPI_ACC_DOCUMENT_POST with the sales order and payout reference embedded in the document reference fields. Amounts are sent to GoCardless in the smallest currency unit (cents/pence) and converted back to ECC transaction currency on the return path. If an HMAC signature does not match, ml-connector returns a 401 response so GoCardless marks the endpoint unhealthy and retries the webhook. If an RFC call to ECC fails due to SYSTEM_FAILURE or network timeout, ml-connector backs off and retries with exponential jitter, and every attempt is logged so failed transactions can be replayed once the agent or ECC network is restored.
A real-world example
A mid-market B2B SaaS company bills 500+ European and UK SME customers monthly via GoCardless bank debits. Before the integration, the finance team exported payment confirmations from GoCardless daily, looked up each transaction in SAP ECC to find the matching invoice, and manually posted cash receipts to accounts receivable. Payment reconciliation took three days at month-end because received-vs-posted amounts had to be chased across systems. With SAP ECC and GoCardless integrated, each GoCardless payment confirmation posts automatically to ECC AR with the invoice reference and customer account linked. Reconciliation now completes in hours, and the team can immediately see which customers have failed bank debits so they can intervene before the next cycle.
What you can do
- Sync SAP ECC customer master data to GoCardless to set up debit mandates and update customer and bank account details.
- Receive GoCardless payment webhooks with verified HMAC-SHA256 signatures and post cash receipts into ECC accounts receivable.
- Match GoCardless payouts against ECC open invoices and post GL deposits with full audit trail.
- Handle on-premises agent routing to ECC RFC/BAPI calls and convert between ECC transaction currency and GoCardless smallest-unit amounts.
- Detect and retry failed RFC calls and webhook signature mismatches without losing transaction state.
Questions
- How does ml-connector reach SAP ECC if it is on premises?
- ml-connector uses an on-premises agent running SAP .NET Connector or Java Connector that routes RFC and BAPI calls into ECC from the customer network. The agent is deployed on premises and makes outbound HTTPS calls to ml-connector, so no inbound firewall rule is required. Alternatively, if the customer has activated OData services via SAP Gateway, ml-connector can use OData REST calls over HTTPS, also via the on-premises network without direct cloud-to-ECC connectivity.
- What happens if a GoCardless webhook signature does not verify?
- If the HMAC-SHA256 signature in the Webhook-Signature header does not match the computed hash of the request body, ml-connector returns HTTP 401. This tells GoCardless that the endpoint is not healthy, so it marks the webhook as failed and retries the event on its schedule. Once the webhook is verified, ml-connector parses the payment event and posts the corresponding AR transaction to ECC.
- How are payment amounts handled when ECC uses a different currency than the bank account?
- GoCardless stores amounts in the smallest currency unit of the mandate currency (pence for GBP, cents for EUR, etc.). ml-connector reads the payment amount and currency from GoCardless, looks up the ECC customer's transaction currency in SAP, converts the received amount via the daily exchange rate if needed, and posts the GL entry in ECC's transaction currency. The original GoCardless amount and currency are stored in the document reference so the posting can be traced back to the payment.
Related integrations
More SAP ECC integrations
Other systems that connect to GoCardless
Connect SAP ECC and GoCardless
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started