ml-connector
Oracle Fusion Cloud ERPSAP Concur

Oracle Fusion Cloud ERP and SAP Concur integration

Oracle Fusion Cloud ERP runs your financials, procurement, and supply chain, while SAP Concur manages travel expenses, expense reports, and invoice processing. Connecting the two keeps your spending and your general ledger synchronized. Expense reports and vendor invoices created in Concur flow automatically into Fusion's accounts payable and general ledger, matched to the correct vendors and GL accounts, without manual re-entry. ml-connector handles the very different API structures, multi-tenancy models, and authentication requirements of each platform.

How Oracle Fusion Cloud ERP works

Oracle Fusion Cloud ERP exposes invoices, payments, suppliers, purchase orders, journal batches, journal headers, journal lines, and GL accounts through REST APIs accessed via HTTPS to customer-specific pod URLs with OAuth2 Bearer tokens valid for approximately one hour. Accounts, suppliers, and cost centers are typically managed in setup; the API is used for transactional queries and posting. Oracle Fusion Cloud has no direct outbound webhook system for external integrations without Oracle Integration Cloud middleware, so expense records and vendor data are read by polling the REST API on a cadence you control.

How SAP Concur works

SAP Concur exposes vendors, invoices, purchase orders, purchase requests, expense reports, financial integration documents, and employees through REST APIs across three geographic datacenters (US, EMEA, China). Every request requires OAuth2 with a company-specific password grant and a company ID, and the datacenter base URL is determined from the OAuth token response, not hardcoded. Concur natively supports webhooks through its Event Subscription Service, allowing ml-connector to receive a push notification when expense reports and invoices are created or updated, eliminating the need to poll.

What moves between them

The main flow is from SAP Concur into Oracle Fusion Cloud ERP. Expense reports and vendor invoices created in Concur trigger webhook events that ml-connector receives and processes. ml-connector maps Concur expense categories to Fusion GL accounts, Concur employees to Fusion employees or cost centers, and Concur vendors to Fusion supplier records. Once mapped, ml-connector posts journal entries into Fusion's general ledger and creates or updates records in Fusion Accounts Payable. Vendor and GL account reference data flows the opposite direction, from Fusion to Concur, to ensure that Concur enforces valid vendor and account combinations during expense entry.

How ml-connector handles it

ml-connector stores Fusion pod URLs and OAuth2 credentials encrypted, and refreshes Bearer tokens when they expire or return 401. It subscribes to Concur's Event Subscription Service for expense report and invoice topics, validates each webhook payload against Concur's mutual TLS certificate (CN webhook.api.concursolutions.com), and parses the geolocation from the Concur OAuth token response to route all subsequent API calls to the correct Concur datacenter. When an expense report or invoice arrives, ml-connector looks up the Concur employee, vendor, and GL account codes against mapping tables, then posts a journal header and journal lines into Fusion using the Fusion pod URL for that customer and the current Bearer token. If a Fusion call returns 401, ml-connector refreshes the token and retries. GL account combinations and supplier records must exist in Fusion before expenses can post; ml-connector validates these on ingestion and logs validation failures for manual review. Concur's Financial Integration Document API is used to confirm receipt and posting status back to the Concur platform.

A real-world example

A multinational mid-market company runs Oracle Fusion Cloud ERP for global finance and accounting across three regions and four operating divisions. Employees incur expenses via SAP Concur, which is integrated with the company's travel management platform. Before the integration, the finance team imported expense reports from Concur into Excel, manually mapped each expense to the correct cost center and GL account, and re-entered the summary journals into Fusion. Month-end close required three days of reconciliation work, and exceptions and late-submitted reports often pushed close dates by a week. With Oracle Fusion Cloud ERP and SAP Concur connected, each approved expense report automatically posts to Fusion's GL within one hour of approval, allocated to the correct cost center and GL account, and the finance team can close the month two days earlier because expense reconciliation is already complete.

What you can do

  • Receive expense reports and invoices from Concur via webhook notifications and post them as journal entries into Oracle Fusion Cloud ERP's general ledger.
  • Map Concur expense categories, cost centers, and vendors to Oracle Fusion GL accounts and supplier records before posting to prevent invalid combinations.
  • Validate that Concur webhooks arrive with the correct mutual TLS certificate and that Concur API calls route to the correct geographic datacenter.
  • Handle multi-tenant isolation by accepting a unique Oracle Fusion pod URL per customer and maintaining separate OAuth2 token lifespans for each.
  • Track posting status and delivery guarantees, with retries on transient failures and a full audit trail on every expense report and invoice.

Questions

How does the integration handle Oracle Fusion Cloud ERP's pod-based multi-tenancy?
ml-connector stores the customer-specific Oracle Fusion pod URL encrypted alongside credentials and uses that URL for all REST API calls to that customer's Fusion instance. Because each pod is isolated, this ensures that expense data posted by one customer never reaches another customer's Fusion instance. OAuth2 tokens are refreshed per pod URL as they expire.
Why does SAP Concur require geolocation routing, and how does ml-connector handle it?
SAP Concur operates three datacenters (US, EMEA, China) and determines which datacenter a company belongs to during OAuth2 token exchange. ml-connector parses the geolocation from the token response and routes all subsequent API calls to that datacenter. A hardcoded base URL would cause API calls to fail for customers in non-US regions.
What validation does ml-connector perform before posting an expense into Oracle Fusion Cloud ERP?
ml-connector verifies that the Concur employee maps to a valid Fusion employee or cost center, that the Concur vendor exists in Fusion Suppliers, and that the GL account code is valid in Fusion General Ledger. If any validation fails, the expense is logged as an exception for manual review rather than posted, preventing invalid account combinations from entering the ledger.

Related integrations

Connect Oracle Fusion Cloud ERP and SAP Concur

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

Get started