ml-connector
Oracle E-Business SuitePlaid

Oracle E-Business Suite and Plaid integration

Oracle E-Business Suite runs your financials, procurement, and supply chain. Plaid connects your bank accounts and financial institutions. Bringing them together means bank transactions from Plaid flow into Oracle's accounts payable and general ledger without manual re-keying, payments initiated in Plaid record their GL impact automatically in Oracle, and your cash position in Oracle always reflects your actual bank balances. ml-connector bridges the two systems and handles the different authentication styles and async import processes each requires.

How Oracle E-Business Suite works

Oracle E-Business Suite R12.2 exposes integrations through the Integrated SOA Gateway (ISG), which publishes REST or SOAP web services defined in the Integration Repository. There is no fixed public URL: each customer provides their own hostname and port. Authentication uses HTTP Basic Authentication with a username and password, or a session token obtained via the login endpoint that returns an accessToken in XML. Callers must supply application context headers: ctx_responsibility, ctx_respapplication, ctx_securitygroup, ctx_nlslanguage, and ctx_orgid. EBS has no modern webhook system, so polling is the recommended approach. Records are written to open interface tables via REST POST, then a concurrent program imports them to base tables, which may take minutes to hours. AP Payments and GL Journal Headers are read via REST, but their creation requires Oracle Payments and GL concurrent programs, not direct API writes. Session tokens expire based on EBS session timeout, typically 30-60 minutes.

How Plaid works

Plaid is a financial data network providing read and write access to bank accounts, transactions, and transfer capabilities. All endpoints are REST with HTTP POST and JSON bodies. Base URLs are https://sandbox.plaid.com for testing and https://production.plaid.com for live data. Authentication uses client credentials: client_id and secret supplied as PLAID-CLIENT-ID and PLAID-SECRET headers or in the request body. Per-user access tokens are obtained through the three-step Plaid Link flow: link/token/create, the user's Link experience in browser, then item/public_token/exchange to get the access token. Plaid delivers webhooks as HTTP POST to a configured endpoint for transaction, transfer, and account events, with a requirement for 200 response within 10 seconds. Signatures are verified using JWT with JWK public key lookup, and require iat claims no older than 5 minutes. Transfers are idempotent via idempotency key, with a 48 hour expiry.

What moves between them

Bank transactions and account data flow from Plaid into Oracle E-Business Suite. ml-connector reads transactions from Plaid, maps them to Oracle's GL_JE_LINES and AP_INVOICES_INTERFACE tables with the appropriate GL_CODE_COMBINATIONS and cost center dimensions, and posts them to the interface tables. The Oracle GL Import and AP Invoice Import concurrent programs then move the records into base tables (GL_JE_HEADERS, GL_JE_LINES, AP_INVOICES_ALL). Payments initiated in Plaid record their GL impact by creating GL journal entries in Oracle. Account balance and transaction data from Plaid is synced on a schedule you control, typically daily or after each major ACH batch. The flow is unidirectional: Plaid provides the source transactions, Oracle absorbs them into its general ledger and accounts payable.

How ml-connector handles it

ml-connector stores both credential sets encrypted. For Oracle, it accepts the customer-specific ISG hostname and port, caches the session token obtained via the login endpoint, and re-authenticates on 401 responses since tokens expire in 30-60 minutes. For Plaid, it stores the client credentials and the per-user access token obtained through Link flow. On each sync, ml-connector fetches transactions and account details from Plaid via REST, enriches them with GL_CODE_COMBINATIONS selected from Oracle, and prepares journal entries or invoice interface records. It then posts to Oracle's open interface tables and triggers the GL Import or AP Import concurrent programs. Plaid's webhook signatures are verified using the JWT public key and iat timestamp check before accepting any event. Oracle's concurrent programs may take minutes to complete, so ml-connector queries the program request_id to track import status and logs any errors to the audit trail. If an import fails, the interface record can be corrected and re-imported. Transfers from Plaid are idempotent via idempotency key to prevent duplicate GL entries. Rate limiting is handled via exponential backoff with jitter.

A real-world example

A mid-market distribution company runs Oracle E-Business Suite for procure-to-pay and general ledger, and uses Plaid to consolidate bank accounts across its three regional offices. Before the integration, the accounting team manually downloaded bank transactions daily from Plaid, matched them to open invoices in Oracle, created journal entries to record bank fees and interest, and posted them by hand every morning before month-end close. With Plaid and Oracle connected, each day's transactions flow automatically into Oracle's GL, matched to the correct cost center for each office, and the team spends those morning hours on analysis instead of data entry. Month-end close accelerates because the cash reconciliation and bank fee posting are done.

What you can do

  • Sync bank transactions from Plaid into Oracle E-Business Suite general ledger as GL journal entries, with GL account and cost center mapped per transaction.
  • Read bank account balances and transaction history from Plaid and store them in Oracle for real-time cash position visibility.
  • Initiate ACH and wire transfers from Plaid and record their GL impact automatically in Oracle, with full audit trail on the GL entry.
  • Authenticate to Oracle E-Business Suite via ISG REST with HTTP Basic Auth or session token, handling token expiry and refresh on 401 responses.
  • Verify Plaid webhook signatures using JWT public key and iat timestamp, and process transfer and account events asynchronously with idempotent deduplication.

Questions

How does ml-connector handle Oracle's session token expiry and the ISG REST endpoint?
Oracle E-Business Suite does not publish a fixed ISG URL, so ml-connector accepts the customer-specific hostname and port for each instance. Session tokens expire every 30-60 minutes, so ml-connector caches the token obtained via the login endpoint and automatically re-authenticates on 401 responses. This ensures uninterrupted polling and posting across sync cycles.
Can ml-connector initiate payments in Plaid and record them in Oracle's GL?
Yes. ml-connector can initiate ACH or wire transfers via Plaid's transfer endpoints and record them in Oracle by creating GL journal entries that capture the transfer amount, bank fee, and offset account. The GL entry includes the transaction reference and full audit trail, so the transfer is fully traceable from Plaid back into Oracle's GL.
Does ml-connector rely on Plaid webhooks or polling to detect new transactions?
ml-connector can use Plaid webhooks when configured, leveraging Plaid's TRANSACTIONS and TRANSFER event types to detect new data. It verifies webhook signatures using JWT public key and iat timestamp check, and processes events asynchronously. If webhooks are not available, ml-connector polls Plaid on a schedule you control, typically daily, and uses cursor-based pagination to fetch transaction updates efficiently.

Related integrations

Connect Oracle E-Business Suite and Plaid

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

Get started