ml-connector
Oracle Fusion Cloud ERPBrex

Oracle Fusion Cloud ERP and Brex integration

Oracle Fusion Cloud ERP handles your company's financials and accounting, while Brex manages corporate spend and card transactions. Connecting them keeps your general ledger current with card activity and expenses without manual re-entry. When Brex processes a transaction or expense, ml-connector posts the accounting record into Oracle Fusion's GL, mapped to the correct cost center and account. Your AP and expense reconciliation happens in real time, and month-end close starts with the spend accounts already aligned.

How Oracle Fusion Cloud ERP works

Oracle Fusion Cloud ERP is a multi-tenant SaaS platform that exposes Financials, Procurement, and HR data through REST API at a customer-specific pod URL (https://{pod}.fa.{region}.oraclecloud.com/fscmRestApi/resources/). The API uses OAuth2 Client Credentials or Authorization Code grant, returning JWTs valid for approximately 1 hour. Key entities include invoices, payments, journal headers and lines, GL accounts, suppliers, and purchase orders, queryable with OData-style parameters (limit, offset, fields, expand). Oracle Fusion is pull-only for external connectors without Oracle Integration Cloud middleware, so ml-connector polls the REST API by filtering on LastUpdateDate to retrieve new and changed records every 5 to 15 minutes.

How Brex works

Brex is a corporate spend management platform exposing Transactions, Expenses, Vendors, Accounting Records, and Transfers through a REST API at https://api.brex.com using bearer token authentication. For single-tenant integrations, the bearer token is a static API key; for multi-tenant integrations, OAuth2 Authorization Code grant with 1-hour access token lifetime is used. Brex supports both polling and webhooks, with event types including TRANSFER_PROCESSED, EXPENSE_PAYMENT_UPDATED, and ACCOUNTING_RECORD_READY_FOR_EXPORT (Alpha). Webhook signatures are verified with HMAC-SHA256 against a base64-encoded secret. Transactions are read-only; writes are available on Expenses, Vendors, Transfers, Users, and Cards.

What moves between them

Data flows from Brex into Oracle Fusion Cloud ERP. When Brex processes a transaction, expense, or accounting record, ml-connector reads the accounting record via REST API or webhook notification and posts the entry into Oracle Fusion's journal tables, mapping to the correct GL accounts and cost centers per customer configuration. Reference data such as vendors, cost centers, and accounts are maintained in both systems and aligned bidirectionally so every spend entry lands on a valid GL dimension. Transactions and accounting records in Brex are read-only, so ml-connector never writes spend data back to Brex.

How ml-connector handles it

ml-connector stores both credential sets encrypted and authenticates to Oracle Fusion with OAuth2 bearer tokens refreshed hourly, and to Brex with either a static API key or OAuth2 bearer token depending on the customer's tenancy model. Oracle Fusion requires the full pod-specific URL per customer since it publishes no shared hostname; ml-connector accepts that URL during setup. On the Brex side, ml-connector can receive webhook notifications for accounting records and spend events with full HMAC signature verification, or poll the REST API if webhooks are not configured. Accounting records are matched to Oracle Fusion GL accounts and cost centers via a customer-defined mapping table; if a cost center or account does not exist in Oracle Fusion, the record is held for review. Because Oracle Fusion's API documents no public rate limits, ml-connector monitors response codes and backs off on 429 returns. Idempotency keys are passed on all Brex transfers to prevent duplicate postings. Every record carries a full audit trail so failed GL postings can be retried or reviewed.

A real-world example

A mid-sized software company uses Oracle Fusion Cloud ERP for accounting and HR, and issues Brex corporate cards to sales, engineering, and operations teams. Before the integration, the finance team exported expense reports from Brex once a week, coded each expense to a cost center and GL account, and then manually entered the batch into Oracle Fusion's journal module. Reconciliation of the spend accounts was a multi-day month-end task because some coding mistakes were caught late. With Brex and Oracle Fusion Cloud ERP connected, expenses and card transactions flow into the GL automatically, with cost center and GL account coded at the point of capture in Brex. The finance team reviews exceptions (unknown vendors, unmapped cost centers) in a queue and approves the batch for GL posting. Month-end close is faster, and coding errors are caught immediately instead of days later.

What you can do

  • Read Brex accounting records and post them into Oracle Fusion Cloud ERP's journal tables, mapped to cost centers and GL accounts.
  • Authenticate Oracle Fusion Cloud ERP with OAuth2 and the customer-specific pod URL, and Brex with bearer token or OAuth2 depending on tenancy.
  • Receive Brex webhook notifications for transactions, expenses, and accounting records with HMAC signature verification.
  • Route failed GL postings to a review queue and retry with full audit trail on every record.
  • Validate that GL accounts and cost centers exist in Oracle Fusion before posting, holding unmapped records for manual review.

Questions

Which direction does data flow between Oracle Fusion Cloud ERP and Brex?
Data flows from Brex into Oracle Fusion Cloud ERP. Accounting records, transactions, and expenses move from Brex into Oracle Fusion's general ledger, mapped to GL accounts and cost centers per your configuration. Transactions and accounting records in Brex are read-only, so ml-connector does not write spend data back to Brex.
How does ml-connector handle Oracle Fusion's pod-specific URL and lack of direct webhooks?
Oracle Fusion Cloud ERP uses a customer-specific pod URL (https://{pod}.fa.{region}.oraclecloud.com/) and requires ml-connector to poll the REST API every 5 to 15 minutes filtered by LastUpdateDate, since it does not support direct outbound webhooks without Oracle Integration Cloud middleware. On the Brex side, ml-connector receives webhook notifications directly or polls if webhooks are not enabled.
What happens if a GL account or cost center in a Brex transaction does not exist in Oracle Fusion?
ml-connector validates that the GL account and cost center exist in Oracle Fusion before posting the journal entry. If either is missing, the record is held in a review queue for the finance team to either map the missing dimension or update the Brex transaction coding. Once resolved, the record can be retried and posted into Oracle Fusion with a full audit trail.

Related integrations

Connect Oracle Fusion Cloud ERP and Brex

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

Get started