ml-connector
Oracle E-Business SuiteSAP Concur

Oracle E-Business Suite and SAP Concur integration

Oracle E-Business Suite runs your financials and procurement. SAP Concur manages travel, expenses, and invoices. Connecting them means expense reports and invoices submitted in Concur flow directly into Oracle EBS without re-entry, mapped to the correct GL accounts and cost centers. Your finance team gets a full audit trail of every record that moved and the ability to replay any transaction if downstream posting fails.

How Oracle E-Business Suite works

Oracle E-Business Suite exposes financials and procurement through the Integrated SOA Gateway (ISG), a REST or SOAP web service layer deployed at a customer-specific hostname and port. Authentication uses HTTP Basic Auth or a session token obtained via login endpoint, plus required application context headers (responsibility, organization, security group, language). Key entities include AP_INVOICES_ALL, AP_INVOICES_INTERFACE, PO_HEADERS_ALL, GL_CODE_COMBINATIONS, GL_JE_HEADERS, and GL_JE_LINES. EBS has no modern webhook system, so data must be read via polling of open interface tables filtered by LAST_UPDATE_DATE, with pagination via limit and offset. Session tokens expire after 30 to 60 minutes, requiring re-authentication on 401 responses.

How SAP Concur works

SAP Concur is a cloud expense and invoice platform with REST APIs rooted at geolocation-specific base URLs (us.api.concursolutions.com, emea.api.concursolutions.com, or cn.api.concursolutions.com determined from the OAuth token response). Authentication uses OAuth 2.0 with password grant and company-level credentials. Key entities include Vendors, Invoices (Payment Requests), Purchase Orders, Expense Reports, and Financial Integration Documents. Concur supports webhooks via Event Subscription Service (ESS) with topics for expense reports, invoices, and users; webhooks use mutual TLS and deliver at least once with automatic retry on 5xx and 429 errors. Access tokens last 1 hour and refresh tokens last 6 months.

What moves between them

Data flows primarily from SAP Concur into Oracle E-Business Suite. Expense reports and invoices submitted in Concur trigger webhooks that ml-connector receives, then writes to EBS open interface tables (AP_INVOICES_INTERFACE for invoices, RA_INTERFACE_LINES_ALL for revenue lines). The data is mapped to Oracle EBS GL accounts and cost centers based on project and employee dimension matching. EBS concurrent programs then import the interface records into base tables (AP_INVOICES_ALL, AR_TRANSA) asynchronously. Vendor master data from Concur is also synced to EBS PO_VENDORS, allowing new expense vendors to be registered in the ERP without manual entry.

How ml-connector handles it

ml-connector subscribes to SAP Concur's Event Subscription Service and receives webhooks for expense reports and invoices. Each webhook payload is validated, the expense or invoice data is extracted, and a Concur API call retrieves the full transaction details (line items, distributions, cost allocations). ml-connector then maps the Concur cost allocations to Oracle EBS GL_CODE_COMBINATIONS (GL account + cost center combinations) and inserts rows into the EBS open interface tables via the ISG REST API using HTTP Basic Auth. If the EBS session token expires (401), ml-connector re-authenticates and retries. Because EBS import from interface tables is asynchronous (concurrent program execution), ml-connector polls the EBS API for import status and tracks import errors in its audit log. If an import fails, the transaction can be replayed by re-inserting the interface record. Concur's geolocation routing is handled automatically from the OAuth token response, and refresh tokens are renewed before expiry.

A real-world example

A global professional services firm runs Oracle E-Business Suite for financials and project accounting, and uses SAP Concur for employee travel and expenses across 15 countries. Previously, expense reports were submitted in Concur, exported to spreadsheet, and manually entered into EBS project accounting by regional finance teams, a process that took 3-5 days per batch and created frequent reconciliation gaps. With Oracle EBS and SAP Concur connected, expense reports flow directly from Concur into EBS the moment they are approved, automatically allocated to the correct project and cost center, and imported into project accounting without any manual re-entry. The finance team now closes projects on time with complete cost visibility, and expense processing time is reduced from days to hours.

What you can do

  • Receive expense reports and invoices from SAP Concur via webhooks and post them to Oracle EBS open interface tables.
  • Map Concur cost allocations and employee dimensions to Oracle EBS GL accounts and cost centers automatically.
  • Authenticate to Oracle EBS via HTTP Basic Auth or session token, with automatic re-authentication on session timeout.
  • Sync Concur vendor master data to EBS PO_VENDORS so new vendors are available for purchase orders without manual entry.
  • Track every transaction in a full audit log with replay capability if EBS concurrent program import fails.

Questions

How does ml-connector handle the different authentication methods on each side?
SAP Concur uses OAuth 2.0 with a company-level auth token and client credentials; ml-connector stores these encrypted and exchanges them for a 1-hour access token, refreshing before expiry. Oracle E-Business Suite uses HTTP Basic Auth or session tokens; ml-connector stores Basic credentials encrypted and re-authenticates on 401 responses. Both auth flows are independent, so either system can be rotated without affecting the other.
What happens if the Oracle EBS import from interface tables fails?
The EBS interface import is asynchronous: ml-connector inserts the record and then polls the EBS API for import status. If the concurrent program fails, ml-connector logs the error in its audit trail and marks the transaction as failed. You can then replay the transaction by re-inserting the interface record, which triggers the import again without creating a duplicate.
Does ml-connector support both Concur expense reports and invoices?
Yes. ml-connector subscribes to Concur webhooks for both expense reports (routed to RA_INTERFACE_LINES_ALL for revenue lines) and invoices (routed to AP_INVOICES_INTERFACE). The mapping rules differ by document type, but both flows follow the same geolocation routing, OAuth refresh, and EBS interface insert pattern.

Related integrations

Connect Oracle E-Business Suite and SAP Concur

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

Get started