ml-connector
Oracle E-Business SuiteGoCardless

Oracle E-Business Suite and GoCardless integration

Oracle E-Business Suite runs your financials and customer master. GoCardless collects payments directly from your customers' bank accounts. Connecting the two keeps your accounts receivable and cash receipts synchronized with your payment collections. AR invoices in EBS create mandates in GoCardless, successful bank debits come back to EBS as cash receipts, and manual payment matching is eliminated.

How Oracle E-Business Suite works

Oracle E-Business Suite (R12.2) exposes AP invoices, AR invoices, GL accounts, customers, and payment tables through REST web services deployed via the Integrated SOA Gateway (ISG). Each customer hosts the ISG on their own server at a customer-specific URL with HTTP Basic Authentication or session tokens obtained via a login endpoint. EBS has no modern webhook system, so records are read by scheduled polling of open interface views filtered by last update date. Write operations to EBS are often asynchronous - data is inserted into interface tables and then imported by concurrent programs, which may take minutes to hours. The EBS user must have Invoke permissions granted for each deployed REST service.

How GoCardless works

GoCardless is a REST API payment processor that handles bank debit collections in 30+ countries. It authenticates with a bearer token in the Authorization header. The API provides real-time webhook notifications posted to a registered HTTPS endpoint with HMAC-SHA256 signature verification; webhooks must return 2xx only on valid signatures or GoCardless will mark the endpoint unhealthy and stop retrying. GoCardless publishes its API via a fixed base URL at https://api.gocardless.com and https://api-sandbox.gocardless.com. Payouts are read-only and created automatically; all amount fields are integers in the smallest currency unit. The service provides event records for audit trails but events are not creatable.

What moves between them

AR invoices in EBS flow outbound to GoCardless as payment mandates matched to customers. Successful bank debits flow back from GoCardless as payout events via webhook, and ml-connector posts those payouts to EBS as cash receipt transactions. The flow is bidirectional but asymmetric: invoices are read-only in EBS before matching to GoCardless, and payouts are read-only in GoCardless but become creatable transactions in EBS. The sync runs on a schedule you control, typically daily or with each EBS batch import cycle.

How ml-connector handles it

ml-connector polls EBS for open AR invoices using the customer-specific ISG hostname and HTTP Basic Auth credentials, storing the bearer token in memory until it expires (typically 30 to 60 minutes) and re-authenticating on 401 responses. On the GoCardless side, it stores the bearer token and subscribes to webhook events for successful payouts; it validates each webhook by computing HMAC-SHA256(secret, raw_body) and comparing to the Webhook-Signature header, returning 2xx only on a match. When a payout occurs, ml-connector looks up the corresponding EBS invoice by customer and amount, then inserts a cash receipt record into the EBS cash receipts table via an open interface view and triggers the concurrent program to import it. EBS writes are asynchronous, so ml-connector polls EBS until the receipt is confirmed in the base tables, with exponential backoff and timeout. All records carry a full audit trail and failed receipts can be replayed once the downstream EBS import completes.

A real-world example

A mid-sized B2B software company runs Oracle E-Business Suite for finance and AR. They use GoCardless to collect subscription invoices directly from customer bank accounts across Europe and North America. Before the integration, they issued EBS invoices manually and tracked GoCardless collection status in a separate spreadsheet, then entered successful payments back into EBS weekly after reconciling bank deposits with GoCardless payout reports. With the integration, invoices sync daily to GoCardless, collections are posted automatically to EBS as cash receipts, and reconciliation happens in real time rather than in bulk after-the-fact. AR aging is now accurate, DSO improves, and the finance team spends no time on invoice-to-payment matching.

What you can do

  • Poll Oracle E-Business Suite for open AR invoices and post successful GoCardless bank debits back to EBS as cash receipt transactions.
  • Authenticate with EBS via HTTP Basic Auth and session tokens, and GoCardless via bearer token with real-time webhook event subscription.
  • Validate GoCardless webhook signatures with HMAC-SHA256 verification, returning 2xx only on a valid match to prevent endpoint health degradation.
  • Match GoCardless payouts to EBS invoices by customer and amount, handling asynchronous EBS import cycles and polling until receipts are confirmed in the base tables.
  • Maintain a full audit trail of all invoice-to-payout mappings and replay failed receipts without re-posting duplicate transactions.

Questions

How does ml-connector handle the fact that EBS sessions expire and EBS has no webhooks?
ml-connector stores the EBS bearer token in memory and polls EBS on a schedule tied to your AR batch cycle. When the token expires (typically 30 to 60 minutes), it re-authenticates using HTTP Basic Auth on the next poll. Because EBS has no webhook system, polling is the standard approach and ml-connector manages the session state transparently.
What happens when a GoCardless payout posts to EBS?
ml-connector receives the payout event via webhook, validates its signature, and looks up the matching EBS invoice by customer and amount. It then inserts a cash receipt record into the EBS cash receipts open interface table and triggers the concurrent program to import the receipt into the base tables. Because the import is asynchronous, ml-connector polls EBS until the receipt is confirmed in AR_CASH_RECEIPTS_ALL before marking the payout complete.
How does ml-connector prevent duplicate cash receipts or missed payments?
Every payout is tagged with a GoCardless payout ID before being sent to EBS, and ml-connector deduplicates by payout ID. If an EBS import fails or times out, the payout record is retained in the audit trail and can be replayed with a single API call once the downstream import issue is resolved, without creating a duplicate in EBS.

Related integrations

Connect Oracle E-Business Suite and GoCardless

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

Get started