Oracle Integration Cloud (OIC) Capabilities

Type: ERP Integration System: Oracle Integration Cloud (OIC) (Gen 3 (26.01)) Confidence: 0.88 Sources: 8 Verified: 2026-03-01 Freshness: 2026-03-01

TL;DR

System Profile

Oracle Integration Cloud (OIC) is Oracle's fully managed integration platform as a service (iPaaS) running on Oracle Cloud Infrastructure (OCI). It consolidates four capabilities into one service: application integration (orchestration + adapters), process automation (human workflows + forms), Visual Builder (low-code web/mobile apps), and integration analytics. OIC Gen 3, the current generation released in 2024, runs on a Kubernetes-native architecture that provides per-flow scalability and improved performance over Gen 2. [src1]

This card covers the OIC platform itself -- its capabilities, editions, adapters, pricing model, and integration patterns. For specific Oracle ERP Cloud REST API endpoints and rate limits, see the Oracle ERP Cloud REST API card. For FBDI file-based imports, see the Oracle ERP Cloud FBDI Import card.

PropertyValue
VendorOracle
SystemOracle Integration Cloud (OIC) Gen 3
TypeiPaaS (Integration Platform as a Service)
Current Version26.01 (January 2026)
EditionsStandard, Enterprise
DeploymentCloud (OCI)
API DocsOracle Integration 3 Documentation
StatusGA

API Surfaces & Capabilities

OIC is not a single API -- it is an orchestration platform that connects systems through prebuilt adapters, visual flows, and multiple integration patterns. The "API surfaces" here are OIC's integration pattern types and the adapter categories it supports. [src1]

Integration PatternTriggerBest ForVolume HandlingReal-time?Bulk?
App-Driven OrchestrationREST/SOAP endpoint call or adapter eventReal-time individual record sync, API-triggered workflowsIndividual records or small batchesYesNo
Scheduled OrchestrationCron scheduleBatch/bulk data sync, ETL, file processingHigh volume (thousands to millions of records)NoYes
File TransferSchedule or eventSecure file movement between FTP/SFTP endpointsFile-based (any size within limits)NoYes
Event SubscriptionOracle Cloud business eventEvent-driven processing of ERP/HCM/CX changesPer-event processingYesNo
Publish/SubscribeApplication eventDecoupled event routing between multiple consumersPer-event, fan-outYesNo

Adapter Categories

OIC provides 80+ prebuilt adapters across these categories: [src1, src6]

CategoryKey AdaptersEdition Required
Oracle SaaSERP Cloud, HCM Cloud, SCM Cloud, CX Cloud (Sales, Service, Marketing), NetSuite, EPM CloudStandard
Oracle TechnologyOracle Database, Oracle Autonomous DB, Oracle Object StorageStandard
Third-Party SaaSSalesforce, SAP (IDoc/BAPI), Workday, ServiceNow, Microsoft 365, Google Workspace, Shopify, Marketo, PayPalStandard (SaaS), Enterprise (on-prem SAP)
On-Premise OracleE-Business Suite, JD Edwards, Siebel, PeopleSoftEnterprise only
TechnologyREST, SOAP, FTP/SFTP, File, Email, Kafka, JMS, LDAP, MSMQStandard
DatabaseOracle DB, MySQL, Microsoft SQL Server, PostgreSQLStandard
AI / ModernOpenSearch (vector search/RAG), Google Sheets, Rapid Adapter Builder (custom)Standard

Rate Limits & Quotas

Per-Message Pack Limits

Limit TypeStandard LicenseBYOL LicenseNotes
Messages per hour per pack5,00020,000Billed per hour whether messages flow or not
Max message packs123Both cap at 60K msgs/hr total
Max messages per hour (total)60,00060,000Scale by adding packs
Message size threshold50 KB50 KBMessages >50KB count as multiple (size / 50KB, rounded up)

[src4, src5]

Concurrency Limits

Limit TypeValueScopeNotes
Concurrent sync requests per pack100Per message packScales linearly with packs
Max concurrent sync requests2,000Per instanceHard ceiling regardless of packs
File Server concurrent connections50Per service instanceFixed, not scalable with packs
Active integrations (Gen 3)800Per instanceRaised from 700 in 2025

[src1, src6]

Gen 3 Project Limits

Limit TypeValueNotes
Integrations per project100Up from earlier 70 limit
Project deployments50Per project
Connections per project20Project-scoped only
Lookups per project20Project-scoped only
JavaScript libraries per project20Project-scoped only

[src3]

Message Counting Rules

Authentication

FlowUse WhenSupported InNotes
OAuth 2.0 (Client Credentials)Server-to-server automation, CI/CD pipelinesGen 3 onlyRecommended for all new integrations
OAuth 2.0 (Authorization Code)User-context operations, Visual Builder appsGen 2 + Gen 3Requires callback URL registration
OAuth 2.0 (Resource Owner)Legacy migration scenariosGen 3Not recommended for new development
Basic AuthenticationN/AGen 2 only (deprecated)Removed in Gen 3 -- all APIs require OAuth
IDCS/OCI IAM TokensOCI API calls, cross-service authGen 3Required for connectivity agent

[src1, src7]

Authentication Gotchas

Constraints

Integration Pattern Decision Tree

START -- User needs to integrate using Oracle Integration Cloud
|-- What integration pattern?
|   |-- Real-time (individual records, <1s latency)
|   |   |-- Source is Oracle SaaS (ERP/HCM/SCM/CX)?
|   |   |   |-- YES --> App-Driven Orchestration with native adapter + business events
|   |   |   +-- NO --> App-Driven Orchestration with REST/SOAP adapter
|   |   +-- Need to react to changes in Oracle Cloud?
|   |       |-- YES --> Event Subscription (Business Events) for ERP/HCM/CX
|   |       +-- NO --> App-Driven Orchestration triggered by REST endpoint
|   |-- Batch/Bulk (scheduled, high volume)
|   |   |-- File-based data (CSV/XML)?
|   |   |   |-- YES --> Scheduled Orchestration + FTP adapter + File adapter
|   |   |   +-- NO --> Scheduled Orchestration + SaaS/DB adapter with pagination
|   |   +-- Need FBDI import to Oracle ERP Cloud?
|   |       |-- YES --> Scheduled Orchestration + ERP Cloud adapter (FBDI pattern)
|   |       +-- NO --> Scheduled Orchestration + target system adapter
|   |-- Event-driven (push notifications)
|   |   |-- Oracle SaaS source?
|   |   |   |-- YES --> Business Events subscription via native adapter
|   |   |   +-- NO --> REST webhook receiver via App-Driven Orchestration
|   |   +-- Multiple consumers need same event?
|   |       |-- YES --> Publish/Subscribe pattern (if supported in your project type)
|   |       +-- NO --> Direct Event Subscription
|   +-- File transfer (move files between systems)
|       +-- Use Scheduled File Transfer (FTP/SFTP) or File adapter
|-- Which edition do you need?
|   |-- On-premise targets (EBS, JDE, Siebel, SAP) --> Enterprise
|   |-- Process Automation (human workflows, forms) --> Enterprise
|   |-- SaaS-to-SaaS and technology only --> Standard
+-- How many message packs?
    |-- Calculate: peak messages per hour / 5,000 (standard) or / 20,000 (BYOL)
    |-- Add headroom: 20-30% buffer for burst traffic
    +-- Remember: billed per hour even when idle

Quick Reference

OIC Editions Comparison

CapabilityStandardEnterprise
SaaS application adaptersYesYes
Technology adapters (REST, SOAP, FTP, DB)YesYes
Oracle SaaS adapters (ERP, HCM, SCM, CX)YesYes
Scheduled file transferYesYes
Visual Builder (VBCS)YesYes
Integration analyticsYesYes
On-premise application adaptersNoYes
Process AutomationNoYes
B2B/EDI capabilitiesNoYes
E-Business Suite adapterNoYes
JD Edwards adapterNoYes
Siebel adapterNoYes
SAP adapter (IDoc/BAPI)NoYes

[src4]

Gen 2 vs Gen 3 Comparison

FeatureGen 2Gen 3
ArchitectureShared infrastructureKubernetes-native, per-flow scaling
UIClassic OracleRedwood design system
AuthenticationBasic auth + OAuthOAuth only (basic auth removed)
OrganizationPackagesProjects (RBAC, unified workspace)
Max active integrations700800
Parallel processingNot supportedParallel action (multiple endpoints simultaneously)
AI capabilitiesNot availableAI Agents in Projects (26.01+)
Human-in-the-LoopNot availableHITL approval orchestration (26.01+)
Rapid Adapter BuilderNot availableCustom adapter creation with visual UI
Connectivity agentBasic authOAuth-based authentication
Activity data migrationN/ANOT migrated from Gen 2

[src1, src2, src7]

Step-by-Step Integration Guide

1. Provision an OIC Instance

Choose your edition (Standard vs Enterprise) based on whether you need on-premise adapters or Process Automation. Select message packs based on expected throughput. [src5]

# OCI CLI: Create OIC Gen 3 instance (Enterprise, 2 message packs)
oci integration integration-instance create \
  --compartment-id $COMPARTMENT_ID \
  --display-name "production-oic" \
  --integration-instance-type "ENTERPRISE" \
  --is-byol false \
  --message-packs 2 \
  --idcs-at $IDCS_ACCESS_TOKEN

Verify: Check instance status in OCI Console > Integration > Instances -- expected: ACTIVE

2. Configure Connections

Create connections for each system you need to integrate. OIC uses a connection-per-system model. [src1]

# REST API: List available adapters to verify your edition supports what you need
curl -X GET "https://<oic-host>/ic/api/integration/v1/adapters" \
  -H "Authorization: Bearer $OAUTH_TOKEN" \
  -H "Accept: application/json"

Verify: Adapter list includes your target system adapter (e.g., oracle/erp-cloud, salesforce, sap)

3. Create an Integration Flow

Use the OIC Designer (visual, browser-based) to create an integration. Choose the pattern: App-Driven for real-time, Scheduled for batch. [src1]

# REST API: Export an integration for version control
curl -X GET "https://<oic-host>/ic/api/integration/v1/integrations/<integration-id>/archive" \
  -H "Authorization: Bearer $OAUTH_TOKEN" \
  -o integration_export.iar

Verify: .iar file downloaded successfully (this is OIC's integration archive format)

4. Deploy and Activate

Deploy the integration to make it live. For Scheduled integrations, define the cron schedule. [src1]

# REST API: Activate an integration
curl -X POST "https://<oic-host>/ic/api/integration/v1/integrations/<integration-id>/activate" \
  -H "Authorization: Bearer $OAUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "ACTIVATED"}'

Verify: Integration status = ACTIVATED in OIC console > Integrations

5. Monitor Message Consumption

Track your message pack usage to avoid overage and plan scaling. [src4]

# REST API: Check integration monitoring metrics
curl -X GET "https://<oic-host>/ic/api/integration/v1/monitoring/integrations" \
  -H "Authorization: Bearer $OAUTH_TOKEN" \
  -H "Accept: application/json"

Verify: billableMessageCount in response matches expected volume

Code Examples

Python: Trigger an OIC REST Endpoint (App-Driven Integration)

# Input:  OIC endpoint URL, OAuth credentials, payload
# Output: Integration execution result

import requests

# Step 1: Get OAuth token from IDCS/OCI IAM
token_url = "https://<idcs-host>/oauth2/v1/token"
token_resp = requests.post(token_url, data={
    "grant_type": "client_credentials",
    "scope": "https://<oic-host>:443urn:opc:resource:consumer::all"
}, auth=("CLIENT_ID", "CLIENT_SECRET"))
access_token = token_resp.json()["access_token"]

# Step 2: Call the OIC integration endpoint
oic_url = "https://<oic-host>/ic/api/integration/v1/flows/rest/<INTEGRATION>/<VERSION>/<RESOURCE>"
headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}
payload = {
    "customerName": "Acme Corp",
    "orderAmount": 15000.00,
    "currency": "USD"
}

response = requests.post(oic_url, json=payload, headers=headers)
print(f"Status: {response.status_code}")
print(f"Response: {response.json()}")

cURL: Test OIC Connectivity and Export Integration

# Input:  OIC host URL, OAuth bearer token
# Output: Integration list (JSON)

# List all integrations
curl -X GET "https://<oic-host>/ic/api/integration/v1/integrations" \
  -H "Authorization: Bearer $OAUTH_TOKEN" \
  -H "Accept: application/json" | jq '.items[] | {name: .name, status: .status}'

# Check message pack usage (monitoring)
curl -X GET "https://<oic-host>/ic/api/integration/v1/monitoring/dashboards/MESSAGES" \
  -H "Authorization: Bearer $OAUTH_TOKEN" \
  -H "Accept: application/json"

Data Mapping

OIC Adapter Data Type Mapping

Source TypeOIC Internal TypeTarget ConsiderationsGotcha
Oracle ERP Cloud Datexs:dateTime (UTC)Convert to target timezoneERP Cloud always returns UTC; OIC does not auto-convert
Salesforce Number(18,0)xs:decimalCheck target field precisionPrecision loss possible when mapping to float types
SAP DATS (YYYYMMDD)xs:stringParse to xs:date in OIC mapperSAP date format is string, not a date type
NetSuite Currencyxs:doubleConvert currency if multi-currency enabledExchange rate timing affects amount accuracy
REST API nullEmpty string or omittedHandle null vs empty differentlySome adapters serialize null as "", others omit the field

Data Type Gotchas

Error Handling & Failure Points

Common Error Codes

CodeMeaningCauseResolution
HTTP 429Too Many RequestsOIC or target system rate limit exceededImplement exponential backoff; check message pack concurrency limits
ORA-00001Unique constraint violationDuplicate record insertion via DB adapterImplement upsert logic or pre-check for existence
OICERR-100Connection timeoutTarget system unreachable or slow responseCheck connectivity agent status; increase timeout in connection config
OICERR-200Authentication failureExpired OAuth token or misconfigured credentialsRefresh token; verify IDCS client ID/secret; check for Gen 2-to-3 auth migration issues
OICERR-300Message size exceededPayload exceeds 50 KB single-message thresholdSplit payload or accept multi-message billing; consider Bulk/File pattern
500 (target)Target system internal errorDownstream failure in ERP/SaaSImplement retry with exponential backoff; log payload for replay

[src1, src6]

Failure Points in Production

Anti-Patterns

Wrong: Using a separate message pack per integration for isolation

// BAD -- provisioning multiple OIC instances for "isolation"
// Instance 1 (1 pack): Salesforce integrations
// Instance 2 (1 pack): SAP integrations
// Instance 3 (1 pack): HCM integrations
// Result: 3x billing cost, no shared connections, maintenance nightmare

Correct: Use Projects for isolation within a single instance

// GOOD -- single OIC instance with Gen 3 Projects for logical separation
// Project 1: Salesforce integrations (RBAC: Salesforce team)
// Project 2: SAP integrations (RBAC: SAP team)
// Project 3: HCM integrations (RBAC: HR IT team)
// Result: shared message packs, lower cost, centralized monitoring

Wrong: Polling Oracle ERP Cloud for changes on a tight schedule

// BAD -- polling every 5 minutes for new invoices
// Uses up message pack allocation on empty polls
// Scheduled Orchestration: "Get invoices where lastUpdateDate > lastRunTime"
// If 280 runs/day return 0 results, you've burned 280+ messages for nothing

Correct: Use Business Events subscription for change detection

// GOOD -- subscribe to Oracle ERP Cloud business events
// Zero messages consumed when no changes occur
// Event Subscription: "oracle.apps.financials.payables.invoices.invoiceCreated"
// Messages only consumed when actual invoices are created

Wrong: Hardcoding connection details in integration flows

<!-- BAD -- endpoint URL embedded in XSLT or integration logic -->
<assign>
  <copy>
    <from>"https://production-erp.oracle.com/fscmRestApi/resources/v1/invoices"</from>
    <to>$endpoint</to>
  </copy>
</assign>

Correct: Use OIC Connection properties and environment-specific configurations

// GOOD -- use OIC connection abstraction
// Connection "Oracle_ERP_Production" -> endpoint configured in connection, not flow
// Same integration .iar file deploys to dev/test/prod by swapping connections
// Use Lookups or configuration integrations for environment-specific values

Common Pitfalls

Diagnostic Commands

# Check OIC instance status and configuration
curl -X GET "https://<oic-host>/ic/api/integration/v1/monitoring/health" \
  -H "Authorization: Bearer $OAUTH_TOKEN"

# List all active integrations and their status
curl -X GET "https://<oic-host>/ic/api/integration/v1/integrations?status=ACTIVATED" \
  -H "Authorization: Bearer $OAUTH_TOKEN" | jq '.items | length'

# Check message pack consumption (current billing period)
curl -X GET "https://<oic-host>/ic/api/integration/v1/monitoring/dashboards/MESSAGES" \
  -H "Authorization: Bearer $OAUTH_TOKEN"

# Monitor failed integration instances (last 24h)
curl -X GET "https://<oic-host>/ic/api/integration/v1/monitoring/integrations?status=FAILED&timeWindow=LAST_24_HOURS" \
  -H "Authorization: Bearer $OAUTH_TOKEN"

# Verify connectivity agent status (for on-premise integrations)
curl -X GET "https://<oic-host>/ic/api/integration/v1/agents" \
  -H "Authorization: Bearer $OAUTH_TOKEN" | jq '.items[] | {name: .name, status: .agentStatus}'

# Export integration for backup/version control
curl -X GET "https://<oic-host>/ic/api/integration/v1/integrations/<INTEGRATION_ID>|<VERSION>/archive" \
  -H "Authorization: Bearer $OAUTH_TOKEN" -o backup.iar

Version History & Compatibility

VersionRelease DateStatusKey ChangesMigration Notes
26.012026-01CurrentAI Agents in Projects, Human-in-the-Loop (HITL), OpenSearch adapter, NetSuite REST adapter, Google Sheets adapterNo breaking changes from 25.x Gen 3
Gen 3 (initial)2024CurrentKubernetes-native, Projects, RBAC, Redwood UI, parallel flow, Rapid Adapter BuilderMajor migration from Gen 2: OAuth required, basic auth removed, connectivity agent reinstall
Gen 22019MaintenancePackages, basic auth support, 700 active integrationsBeing phased out; plan migration to Gen 3
Gen 1 (Classic)2016EOLOriginal OIC on classic infrastructureNo longer supported; migrate immediately

[src1, src2, src7]

Deprecation Policy

Oracle Integration follows Oracle's standard cloud service lifecycle. Gen 2 instances are in maintenance mode with no new features. Oracle has not announced a hard EOL date for Gen 2 but is actively encouraging migration to Gen 3. All new features (Projects, AI Agents, HITL, new adapters) are Gen 3 exclusive. [src2, src7]

When to Use / When Not to Use

Use WhenDon't Use WhenUse Instead
Integrating Oracle SaaS (ERP, HCM, SCM, CX) with each other or third-party systemsYou need sub-10ms latency for high-frequency trading or IoT streamingOracle Streaming Service, Apache Kafka
You need a visual, low-code integration designer for citizen integratorsYou need custom middleware with complex routing rules (content-based, XPath)Oracle SOA Suite (on-premise) or MuleSoft
Your organization is standardized on Oracle Cloud Infrastructure (OCI)Your stack is entirely AWS/Azure with no Oracle systemsAWS Step Functions + EventBridge, Azure Logic Apps
You need prebuilt recipes for common Oracle-to-Oracle flowsYou need to process >100K events/second with guaranteed orderingOracle Streaming, Kafka, Pulsar
You want a single platform for integration + process automation + Visual BuilderYou only need simple point-to-point API calls with no transformationDirect REST calls, no iPaaS needed
You need to connect on-premise Oracle systems (EBS, JDE, Siebel) to cloud (Enterprise edition)Your budget is <$1K/month for integrationOpen-source alternatives (Apache Camel, n8n)

Cross-System Comparison

CapabilityOracle OICSAP Integration SuiteMuleSoft AnypointDell Boomi
DeploymentCloud only (OCI)Cloud (BTP)Cloud + HybridCloud + Hybrid
Pricing modelMessage packs (per hour)API calls + Integration Advisor creditsvCores (capacity-based)Connections + flows
Native ERP adaptersOracle ERP/HCM/SCM/CXSAP S/4HANA, ECC, SuccessFactorsBroad (no native ERP preference)Broad (no native ERP preference)
On-premise supportConnectivity Agent (Enterprise)Cloud ConnectorMule Runtime (on-prem)Atom (on-prem)
Low-code builderVisual Builder (VBCS)Build Apps (BAS)ComposerFlow (limited)
Process AutomationYes (Enterprise)Workflow ManagementN/A (separate product)Flow
AI capabilitiesAI Agents, HITL (26.01+)AI-assisted mappingAI-assisted mappingAI-suggested mappings
Best forOracle-centric ecosystemsSAP-centric ecosystemsMulti-vendor, API-ledSMB, rapid deployment

Important Caveats

Related Units