Oracle EBS to Fusion Cloud Migration: API Changes, Data, and Coexistence

Type: ERP Integration System: Oracle E-Business Suite (12.2) → Oracle Fusion Cloud ERP (25A) Confidence: 0.84 Sources: 6 Verified: 2026-03-09 Freshness: 2026-03-09

TL;DR

System Profile

This card covers the technical migration path from Oracle E-Business Suite 12.2 (on-premise, all editions) to Oracle Fusion Cloud ERP (Release 24B/25A). It addresses the API surface changes, data migration methods, integration middleware options, and coexistence architecture during the transition period.

SystemRoleAPI SurfaceDirection
Oracle E-Business Suite 12.2Source ERP (on-premise)PL/SQL, SOAP/REST via ISG, Open Interface TablesOutbound
Oracle Fusion Cloud ERP 25ATarget ERP (cloud)REST API, SOAP, FBDI, ADFdiInbound
Oracle Integration Cloud (OIC)Integration middlewareEBS Adapter, ERP Cloud AdapterOrchestrator
Oracle Data Integrator (ODI)ETL for bulk migrationBatch file processingOrchestrator

API Surfaces & Capabilities

The fundamental API shift from EBS to Fusion Cloud is the elimination of direct database access. In EBS, integrations commonly used PL/SQL procedures, open interface tables, and concurrent programs. None of these are available in Fusion Cloud.

API SurfaceEBS EquivalentFusion Cloud MethodBest ForMax Records/RequestReal-time?Bulk?
REST APIISG REST ServicesNative REST endpointsReal-time CRUD, < 500 records500 per POSTYesNo
SOAP Web ServicesISG SOAP ServicesERP Cloud SOAP servicesComplex operations, metadataVariesYesNo
FBDIOpen Interface Tables + Concurrent ProgramsExcel/CSV templates uploaded to UCMBulk data loading, > 500 records100,000 per importNoYes
ADFdiSpreadsheet-based entryExcel add-in for direct data entryManual data entry correctionsN/ASemiNo
BIP ReportsConcurrent Programs / XML PublisherBI Publisher for extractsData extraction, reportingN/ANoYes
ESS JobsConcurrent ManagerEnterprise Scheduler ServiceScheduled processingN/ANoYes

Rate Limits & Quotas

Per-Request Limits

Limit TypeValueApplies ToNotes
Max records per REST POST500REST APIUse FBDI for higher volumes
Max FBDI ZIP file size250 MBFBDI uploadsIndividual files within ZIP can be up to 1 GB
Max concurrent FBDI imports5FBDI import jobsQueue additional imports
Max FBDI records per import100,000Single FBDI batchSplit larger datasets
UCM file upload limit2 GBWebCenter ContentFor FBDI file staging

Rolling / Daily Limits

Limit TypeValueWindowNotes
REST API callsFair-use throttlingPer podNo hard daily cap; Oracle throttles based on pod load
ESS concurrent jobsPod-dependent (8-16)Per podShared across all scheduled processes
FBDI imports per dayNo hard limitPer podConstrained by ESS job slots
OIC message packsLicense-dependent (5K-50K/month)MonthlyEach integration flow execution consumes messages

Authentication

FlowEBS MethodFusion Cloud MethodNotes
Server-to-serverISG username/passwordOAuth 2.0 JWT Bearer via IDCSRecommended for all integrations
User-contextSSO (Oracle Access Manager)SAML 2.0 / IDCS FederationFor UI-based access
OIC AdapterEBS ISG + Connectivity AgentERP Cloud Adapter (native)Agent required for on-premise EBS
Basic AuthSupported in ISGSupported but deprecatedUse OAuth 2.0 instead

Authentication Gotchas

Constraints

Integration Pattern Decision Tree

START — Migrating from Oracle EBS to Fusion Cloud
├── What needs to migrate?
│   ├── Master Data (customers, suppliers, items, COA)
│   │   ├── Volume < 100K → FBDI (single batch per entity)
│   │   ├── Volume > 100K → FBDI with chunking (split into 100K batches)
│   │   └── Ongoing sync needed? → OIC with EBS Adapter (event-driven or scheduled)
│   ├── Open Transactions (POs, invoices, journals)
│   │   ├── Convert in-flight? → Complete in EBS first, migrate as history
│   │   └── Historical data? → FBDI for balances, BIP extract for detail
│   ├── Integrations (with external systems)
│   │   ├── EBS PL/SQL interface → Redesign to Fusion REST API + OIC
│   │   ├── EBS Open Interface Tables → Redesign to FBDI or REST API
│   │   ├── Concurrent Programs → Redesign to ESS Jobs or BIP reports
│   │   └── Custom Forms → Redesign to VBCS pages or REST API
│   └── Custom Reports → Redesign to OTBI, BIP, or FDI
├── Coexistence needed?
│   ├── YES → See oracle-erp-cloud-coexistence-patterns/2026
│   └── NO → Big-bang cutover with parallel run
└── Timeline?
    ├── < 12 months → Focus on core modules, defer customizations
    ├── 12-24 months → Standard phased approach
    └── > 24 months → Module-by-module coexistence

Quick Reference

EBS to Fusion Cloud API Mapping

EBS ComponentFusion Cloud ReplacementMigration EffortNotes
PL/SQL API (direct DB)REST APIHighComplete rewrite required
Open Interface TablesFBDI templatesMediumMap columns to FBDI format
Concurrent ProgramsESS Scheduled ProcessesMediumRewrite in ESS or BIP
Oracle FormsVBCS PagesHighUI redesign from scratch
Oracle ReportsBIP Reports / OTBIMediumTemplate redesign
Discoverer ReportsOTBI / FDI AnalyticsMediumQuery logic redesign
Workflow (AME/WF)BPM / Approval RulesMediumApproval chain redesign
XML Gateway (EDI)B2B Integration / OICMediumEDI partner remapping
ISG SOAP ServicesFusion REST APIMediumProtocol + payload change
DFFs/KFFsExtensible FlexfieldsHighStructure may differ
Custom TablesExtension tables or REST APIsHighNo custom schema in Fusion

Step-by-Step Integration Guide

1. Assess EBS Environment and Catalog Integrations

Document all active integrations, customizations, and data volumes. [src5]

-- Query active ISG integrations
SELECT service_name, service_type, direction, status
FROM fnd_soa_services
WHERE status = 'DEPLOYED'
ORDER BY service_type;

Verify: Every integration has a Fusion Cloud replacement method assigned in inventory spreadsheet.

2. Configure Fusion Cloud Integration User and OAuth

Create dedicated integration user with appropriate data roles, set up IDCS OAuth application. [src1]

curl -X POST "https://<idcs-url>/oauth2/v1/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&scope=urn:opc:resource:consumer::all" \
  -u "<client_id>:<client_secret>"

Verify: GET /fscmRestApi/resources/latest/ledgers returns your chart of accounts.

3. Migrate Master Data via FBDI

Extract from EBS, transform to FBDI format, upload to UCM, trigger import. [src2]

import requests, base64
FUSION_URL = "https://<pod>.fa.us2.oraclecloud.com"
# Upload FBDI ZIP then trigger importBulkData
resp = requests.post(
    f"{FUSION_URL}/fscmRestApi/resources/latest/erpintegrations",
    json={"OperationName": "importBulkData", "DocumentId": doc_id,
          "JobName": "/oracle/apps/ess/.../SupplierImportJob"},
    headers=headers)

Verify: ESS job status shows SUCCEEDED.

4. Set Up OIC for Coexistence Sync

Configure OIC with EBS Adapter (on-premise via connectivity agent) and ERP Cloud Adapter for bidirectional data flow. [src4]

Verify: Test end-to-end flow with a single record — verify record appears in both systems.

Code Examples

Python: Bulk Supplier Migration via FBDI

# Input:  EBS supplier extract (CSV)
# Output: FBDI-formatted ZIP ready for Fusion import

import csv, zipfile, io

def transform_ebs_to_fbdi(ebs_csv_path, fbdi_output_path):
    COLUMN_MAP = {
        "VENDOR_NAME": "Supplier",
        "VENDOR_TYPE_LOOKUP_CODE": "SupplierType",
        "SEGMENT1": "SupplierNumber",
    }
    rows = []
    with open(ebs_csv_path, "r") as f:
        for row in csv.DictReader(f):
            rows.append({v: row.get(k, "") for k, v in COLUMN_MAP.items()})
    buf = io.StringIO()
    writer = csv.DictWriter(buf, fieldnames=list(COLUMN_MAP.values()))
    writer.writeheader()
    writer.writerows(rows)
    with zipfile.ZipFile(fbdi_output_path, "w", zipfile.ZIP_DEFLATED) as zf:
        zf.writestr("PozsupplierInt.csv", buf.getvalue())
    print(f"Created FBDI ZIP with {len(rows)} suppliers")

cURL: Test Fusion Cloud REST API Connectivity

# Get OAuth token and test API
TOKEN=$(curl -s -X POST "https://<idcs-url>/oauth2/v1/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&scope=urn:opc:resource:consumer::all" \
  -u "<client_id>:<client_secret>" | jq -r '.access_token')

curl -s "https://<pod>.fa.us2.oraclecloud.com/fscmRestApi/resources/latest/businessUnits" \
  -H "Authorization: Bearer $TOKEN" | jq '.items[].BusinessUnitName'

Data Mapping

Field Mapping Reference (Suppliers)

EBS FieldFusion Cloud FieldTypeTransformGotcha
AP_SUPPLIERS.VENDOR_NAMESupplier.SupplierNameStringDirectMax 360 chars in Fusion (was 240 in EBS)
AP_SUPPLIERS.SEGMENT1Supplier.SupplierNumberStringDirectMust be unique; auto-generation available
AP_SUPPLIERS.VENDOR_TYPE_LOOKUP_CODESupplier.SupplierTypeStringLookup remapEBS values may not match Fusion seed data
AP_SUPPLIER_SITES_ALL.VENDOR_SITE_CODESupplierAddress.AddressNameStringDirectOne-to-many relationship differs
PO_VENDOR_CONTACTS.FIRST_NAMESupplierContact.FirstNameStringDirectContact model restructured

Data Type Gotchas

Error Handling & Failure Points

Common Error Codes

CodeMeaningCauseResolution
JBO-25013Too many objects lockedConcurrent updates to same recordSerialize updates; retry with backoff
FND-0Import job failedFBDI data validation errorCheck ESS job output for row-level errors
403Insufficient privilegesIntegration user missing data roleAdd required Fusion data role
401Token expired/invalidOAuth token lifetime exceededRefresh token; typical lifetime 3600s
ADFBC-BC4059Duplicate key violationRecord already existsImplement upsert logic

Failure Points in Production

Anti-Patterns

Wrong: Using REST API for bulk data migration

# BAD — REST API limited to 500 records per POST
for supplier in all_suppliers:  # 50,000 suppliers
    requests.post(f"{FUSION_URL}/.../suppliers", json=supplier, headers=headers)
    # Takes hours with 50,000 individual API calls

Correct: Use FBDI for bulk data, REST for real-time only

# GOOD — FBDI handles up to 100,000 records per batch
create_fbdi_zip(all_suppliers, "SupplierImport.zip")  # Single file
upload_and_import(zip_path="SupplierImport.zip")       # Minutes not hours

Wrong: Replicating EBS PL/SQL logic in Fusion Cloud

-- BAD — No direct database access in Fusion Cloud
BEGIN
  INSERT INTO po_headers_interface (...) VALUES (...);
  COMMIT;
END;
-- This does NOT work in Fusion Cloud

Correct: Use Fusion Cloud REST API

# GOOD — Use REST API for PO creation
requests.post(f"{FUSION_URL}/.../purchaseOrders",
              json=po_payload, headers=headers)

Common Pitfalls

Diagnostic Commands

# Check Fusion Cloud REST API availability
curl -s -o /dev/null -w "%{http_code}" \
  "https://<pod>.fa.us2.oraclecloud.com/fscmRestApi/resources/latest/" \
  -H "Authorization: Bearer $TOKEN"
# Expected: 200

# Check FBDI import job status
curl -s "https://<pod>.fa.us2.oraclecloud.com/fscmRestApi/resources/latest/erpintegrations?finder=ESSJobStatusRF;requestId=<REQ_ID>" \
  -H "Authorization: Bearer $TOKEN" | jq '.items[0].RequestStatus'

# Verify OIC Agent connectivity
curl -s "https://<oic-url>/ic/api/integration/v1/monitoring/agents" \
  -H "Authorization: Bearer $OIC_TOKEN" | jq '.items[].status'
# Expected: "CONNECTED"

Version History & Compatibility

Fusion ReleaseDateBreaking ChangesImpact on EBS Migration
25A2025-02New REST endpoints for FinancialsUpdate integration endpoints
24D2024-11FBDI template changes for ProcurementRe-download FBDI templates
24C2024-08OAuth 2.0 enforcementMigrate from basic auth
24B2024-05New validation rules for supplier importUpdate data cleansing rules

When to Use / When Not to Use

Use WhenDon't Use WhenUse Instead
Migrating from EBS 12.2 to Fusion Cloud ERPAlready on Fusion Cloud, need coexistence onlyoracle-erp-cloud-coexistence-patterns/2026
Planning integration redesign for EBS → FusionNeed Oracle Retail Suite upgradeoracle-retail-suite-upgrade-planning/2026
Evaluating migration approachesNeed third-party ERP migration (SAP → Fusion)Vendor-specific migration guides

Important Caveats

Related Units