ml-connector
Oracle E-Business SuiteWise

Oracle E-Business Suite and Wise integration

Oracle E-Business Suite runs your financials and vendor payables. Wise handles cross-border payments and multi-currency transfers. Connecting them automates vendor payouts to international suppliers, eliminating manual payment entry into Wise and reducing reconciliation effort at month end. Payment records flow from Oracle EBS into Wise, and transfer confirmations flow back for audit and GL posting.

How Oracle E-Business Suite works

Oracle E-Business Suite exposes AP_INVOICES_ALL, AP_VENDOR_SITES_ALL, PO_HEADERS_ALL, GL_JE_LINES, AP_CHECKS_ALL, and other tables through REST or SOAP web services deployed via the Integrated SOA Gateway (ISG). Authentication uses HTTP Basic Auth (username and password) or session tokens obtained from the login endpoint and passed in application context headers (ctx_responsibility, ctx_respapplication, ctx_orgid). EBS publishes no webhooks for modern connectors, so integrations must poll open interface views filtered by LAST_UPDATE_DATE with limit and offset pagination. Payment creation is asynchronous - data inserted into interface tables is imported by concurrent programs after minutes or hours.

How Wise works

Wise exposes profiles, balances, transfers, and recipients through REST APIs over HTTPS, secured by OAuth 2.0 (12-hour token expiry, long-lived refresh tokens) or Personal API Token (Bearer token, no expiry). Transfer creation follows a 4-step sequence: obtain a quote, create a recipient, create a transfer order, and fund the payment. Wise supports webhooks including transfersstate-change and transferspayout-failure with RSA-SHA256 signature verification. Rate limits are 100 requests per second and up to 1000 per minute. Idempotency is enforced via customerTransactionId for transfers. Recipients are immutable and require delete and recreate to change. Profile ID must be retrieved first and included on most API calls.

What moves between them

Payment instructions flow from Oracle EBS to Wise once per day or on demand. ml-connector polls the AP_INVOICES_ALL and AP_VENDOR_SITES_ALL tables in EBS via REST, filtering for unpaid invoices due to international suppliers with Wise-compatible recipient data (bank account, SWIFT code, IBAN). For each invoice, ml-connector creates a Wise quote in the supplier's local currency, creates or retrieves a recipient record in Wise with the bank details from EBS, creates a transfer order, and funds it via the Wise Platform API. Transfer state changes and payout failures flow back from Wise via webhook, and ml-connector reconciles them against EBS by posting GL journal entries to record payment completion or failure, linked to the original AP check record.

How ml-connector handles it

ml-connector stores EBS Basic Auth credentials (username and password) and Wise OAuth client credentials encrypted in its database. On each poll cycle, it calls the EBS login endpoint to obtain a session token, then reads AP_INVOICES_ALL and AP_VENDOR_SITES_ALL using REST, including all required application context headers (ctx_responsibility, ctx_respapplication, ctx_securitygroup, ctx_orgid). It maps EBS vendor site data to Wise recipient format - if a site has a bank account and SWIFT code or IBAN, ml-connector creates a Wise recipient and stores the recipient ID. For each unpaid invoice, ml-connector calls Wise to obtain a quote in the target currency, verifies the quote has not expired, creates or updates the recipient, creates the transfer order with the quote ID and customerTransactionId for idempotency, and funds it. If Wise returns a 429 rate-limit response, ml-connector backs off and retries with exponential jitter. When Wise webhooks arrive, ml-connector verifies the X-Signature-SHA256 header using Wise's public key, parses the transfer state change or failure, and posts the corresponding GL journal entry to EBS via the same REST service used for reads, or if that is not permitted, queues the journal entry in EBS interface tables for import by a concurrent program. Every record carries a full audit trail, including the original EBS invoice ID, the Wise transfer ID, timestamps, and any error message.

A real-world example

A mid-market manufacturing company sources raw materials and components from suppliers in India, Thailand, and Mexico. The finance team runs Oracle EBS for procurement and payables but has no automated way to execute international payments. Currently, the AP team reviews unpaid invoices in EBS each week, notes the suppliers' bank details and currency preferences in a spreadsheet, manually creates quotes in the Wise dashboard, and books transfers one by one. This is error-prone and creates a week of delay between EBS invoice approval and actual payment. With Oracle EBS and Wise connected, each approved invoice for an international supplier is automatically quoted, a transfer is created and funded, and the payment status is logged back to EBS. The finance team reviews a daily report instead of a spreadsheet, and month-end reconciliation is complete because Wise transfer confirmations automatically post as GL entries in EBS.

What you can do

  • Automatically read approved invoices from Oracle EBS and create payment transfers in Wise in the supplier's local currency.
  • Map EBS vendor bank details and currency codes to Wise recipient records, deduplicating recipients across multiple EBS invoices.
  • Generate quotes automatically for each currency and transfer size, with expiry-aware renewal if the quote staleness check fails.
  • Receive Wise webhook notifications of transfer completion and payout failure, verify their signatures, and post corresponding GL journal entries back to EBS.
  • Prevent duplicate payments by using Wise customerTransactionId idempotency and deduplicating based on EBS invoice and supplier keys.

Questions

How does ml-connector authenticate to both Oracle EBS and Wise?
ml-connector stores EBS Basic Auth credentials (username and password) encrypted and retrieves a session token from the EBS login endpoint on each poll cycle. For Wise, it stores OAuth 2.0 client credentials encrypted and requests a 12-hour bearer token via the OAuth authorization endpoint. When the Wise token expires, ml-connector requests a new one before the next API call. Both credential sets are refreshed before expiry to prevent outages.
What happens if a Wise quote expires or a rate limit is hit?
ml-connector checks the quote expiry time before using it for a transfer. If the quote has expired, ml-connector requests a fresh quote from Wise in the same currency and amount. If Wise returns a 429 rate-limit response, ml-connector backs off and retries with exponential jitter, protecting both systems from cascading failures.
Can ml-connector handle vendors with bank accounts in multiple countries?
Yes. Wise supports multi-currency transfers and recipients in over 130 countries. ml-connector retrieves the bank details and currency preference from each EBS vendor site record. If a vendor has site records for both India (INR) and Mexico (MXN), ml-connector creates separate Wise recipients for each site and routes payments to the correct recipient based on the EBS invoice supplier site ID.

Related integrations

Connect Oracle E-Business Suite and Wise

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

Get started