Oracle Integration Cloud (OIC) Deep Dive — Adapters, Connections, Error Handling, and Pricing

Type: ERP Integration System: Oracle Integration Cloud (Gen 3 25.x) Confidence: 0.87 Sources: 6 Verified: 2026-03-09 Freshness: 2026-03-09

TL;DR

System Profile

Oracle Integration Cloud (OIC) is Oracle's fully managed iPaaS (integration Platform as a Service), now in its third generation (Gen 3). It provides application integration, process automation, a visual builder, and an embedded file server. OIC Gen 3 is built on Oracle Cloud Infrastructure (OCI) and uses a microservices architecture with containerized services for independent scaling. Beginning with Gen 3, OIC has been split into two separate products: Oracle Integration 3 (handling integration configuration) and OCI Process Automation (handling workflow and decision modeling). [src1, src2]

This card covers both Standard and Enterprise editions. Standard Edition includes SaaS and technology adapters (REST, SOAP, FTP, database) but excludes on-premises adapters and process automation. Enterprise Edition adds on-premises connectivity via the connectivity agent, B2B features, process automation, and advanced capabilities. This card does NOT cover Oracle SOA Cloud Service or Oracle API Gateway (separate products).

PropertyValue
VendorOracle
SystemOracle Integration Cloud (OIC) Gen 3
API SurfaceREST, SOAP, Adapters (80+), File Server, B2B
Current Version25.x (continuous release)
Editions CoveredStandard, Enterprise
DeploymentCloud (OCI)
API DocsOracle Integration 3 Documentation
StatusGA (Gen 3 mandatory; Gen 2 end-of-support)

API Surfaces & Capabilities

OIC is not a single API — it is an integration platform that orchestrates flows between systems using adapters. The key "surfaces" are its adapter types and the integration patterns they support. [src1]

CapabilityProtocolBest ForConcurrencyEditionReal-time?Bulk?
Application adapters (Oracle SaaS)REST/SOAPOracle Fusion ERP, HCM, SCM, CXPer message packStandard+YesVia scheduled
Technology adaptersREST/SOAP/FTP/JMS/KafkaDatabase, file, messaging connectivityPer message packStandard+YesYes
On-premises adaptersVia connectivity agentOn-prem databases, EBS, JDE, PeopleSoftAgent-limitedEnterprise onlyYesYes
B2B adapterEDI/AS2Trading partner document exchangePer message packEnterprise onlyYesYes
File ServerSFTPStaged file processing, large payloadsEmbeddedStandard+NoYes
Process AutomationBPMN 2.0Human workflows, approvals, decisionsSeparate productEnterprise onlyYesNo
Visual BuilderREST/UILow-code application developmentSeparate meteringEnterprise onlyYesNo
RPAUI automationSystems without APIsRobot-basedEnterprise onlyNoNo

Rate Limits & Quotas

Message Pack Limits

OIC billing is based on message packs, not API call counts. Understanding message sizing is critical to cost forecasting. [src3, src4]

Limit TypeValueApplies ToNotes
Messages per pack per hour (Cloud License)5,000Standard cloud licenseEach 50KB in+out = 1 message
Messages per pack per hour (BYOL)20,000Bring Your Own LicenseRequires existing Oracle Fusion Middleware license
Messages per pack per month (SaaS)1,000,000Oracle Integration for SaaSMonthly aggregate, not hourly
Max message packs (Cloud License)12Per instance12 x 5,000 = 60,000 msgs/hr max
Max message packs (BYOL)3Per instance3 x 20,000 = 60,000 msgs/hr max
Grace threshold1.3xHourly average over 24hExceeding 1.3x average triggers billing for additional pack
Message size unit50 KBPer message270KB payload = 6 messages (rounded up)
Minimum charge1 message pack/hourAlwaysEven with zero usage, 1 pack/hr minimum

Platform Limits

Limit TypeValueApplies ToNotes
Active integrations800Per instanceRaised from 700 in Gen 2
Parallel branches5Per parallel actionNew in Gen 3
Connectivity agent instancesMultipleEnterprise EditionFor on-premises connectivity
Scheduled integration min interval1 minuteScheduled integrationsFrequency depends on pattern

Authentication

OIC Gen 3 uses OCI IAM (successor to IDCS) for identity management. Basic authentication for Oracle-provided REST APIs was removed in Gen 3. [src2]

FlowUse WhenToken LifetimeRefresh?Notes
OAuth 2.0 Client CredentialsServer-to-server integration invocation3,600s (1 hour)YesRecommended for automation
OAuth 2.0 Authorization CodeUser-context operations, Visual BuilderSession-basedYesRequires callback URL
OAuth 2.0 Resource OwnerLegacy migration onlySession-basedNoNot recommended for new development
OCI IAM API KeyOCI API calls (instance management)Per-request signatureN/AFor managing OIC instances
Connectivity Agent TokenAgent-to-OIC communication3,600s auto-renewedYes (automatic)Do not modify default expiry

Authentication Gotchas

Constraints

Integration Pattern Decision Tree

START — User needs to integrate systems using Oracle Integration Cloud (OIC)
|-- What edition do you have?
|   |-- Standard Edition
|   |   |-- All systems are cloud-based (SaaS)?
|   |   |   |-- YES -> Proceed with adapter selection
|   |   |   +-- NO (on-premises) -> STOP: upgrade to Enterprise Edition
|   |-- Enterprise Edition -> Proceed
|
|-- What's the integration pattern?
|   |-- Real-time (event-triggered, <1s response)
|   |   |-- Oracle SaaS to Oracle SaaS?
|   |   |   |-- YES -> App-Driven Orchestration with Oracle SaaS adapter
|   |   |   +-- NO -> App-Driven Orchestration with REST/SOAP trigger
|   |   +-- Need human approval step?
|   |       |-- YES -> OCI Process Automation (Enterprise)
|   |       +-- NO -> Standard App-Driven Orchestration
|   |
|   |-- Batch/Scheduled (periodic, high volume)
|   |   |-- Data volume < 5,000 records/hour?
|   |   |   |-- YES -> Single scheduled integration (1 message pack)
|   |   |   +-- NO -> Scheduled + file-based staging via File Server
|   |
|   |-- Event-driven (Business Events, webhooks)
|   |   |-- Source is Oracle SaaS?
|   |   |   |-- YES -> Oracle SaaS adapter with Business Event subscription
|   |   |   +-- NO -> REST adapter webhook trigger or Kafka adapter
|   |   +-- Need guaranteed delivery?
|   |       |-- YES -> Parking lot pattern with ATP database
|   |       +-- NO -> Fire-and-forget with error notification
|   |
|   +-- File-based (FBDI, large file transfer)
|       +-- File Server (SFTP) + Scheduled integration + Stage File
|
+-- Error tolerance?
    |-- Zero-loss -> Parking lot pattern + ATP DB + resubmit flow
    +-- Best-effort -> Scope-based fault handling + email notification

Quick Reference

Adapter Categories

CategoryExamplesCountEdition
Oracle SaaSERP Cloud, HCM Cloud, SCM Cloud, CX Sales, NetSuite20+Standard+
DatabaseOracle DB, MySQL, SQL Server, PostgreSQL5+Standard+
TechnologyREST, SOAP, FTP, File, JMS, Kafka, AS215+Standard+
Third-Party SaaSSalesforce, ServiceNow, Workday, SAP, Shopify20+Standard+
On-PremisesE-Business Suite, JD Edwards, PeopleSoft, Siebel10+Enterprise
AI/MLOCI AI Services, OpenAI, Anthropic LLMs3+Standard+
HealthcareFHIR, HL72Standard+
MessagingOracle AQ, RabbitMQ, Azure Service Bus5+Standard+

Pricing Quick Reference

EditionPay-as-You-GoAnnual CommitBYOL Discount
Standard~$808/month per pack~$539/month per pack~60% off
Enterprise~$1,617/month per pack~$1,078/month per pack~60% off

Step-by-Step Integration Guide

1. Provision an OIC instance

Select Standard or Enterprise edition based on adapter and process automation requirements. Choose the OCI region closest to your primary data sources. [src1]

# Using OCI CLI to create an OIC instance
oci integration integration-instance create \
  --compartment-id <compartment-ocid> \
  --display-name "production-oic" \
  --integration-instance-type "ENTERPRISE" \
  --is-byol false \
  --message-packs 1 \
  --shape "PRODUCTION"

Verify: OCI Console > Integration > Instances > Check status = Active

2. Configure OAuth for integration invocation

Create a confidential application in OCI IAM (IDCS) with the urn:opc:resource:consumer::all scope to enable OAuth-based integration triggering. [src1]

# Test OAuth token acquisition
curl -X POST \
  "https://idcs-<tenant>.identity.oraclecloud.com/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: Response contains access_token with expected expiry (default 3600s)

3. Create an integration flow

Use the Design > Integrations UI. Select App-Driven Orchestration for real-time or Scheduled Orchestration for batch. Configure trigger and invoke connections. [src1]

# Integration flow structure
Trigger: REST Adapter (receives POST /orders)
  -> Map: Transform request to ERP format
  -> Invoke: Oracle ERP Cloud Adapter (create Sales Order)
  -> Map: Transform response
  -> Return: Order confirmation with ERP reference

Verify: Activate integration > Test with sample payload via tracking page

4. Deploy connectivity agent (Enterprise Edition)

Install the connectivity agent on a host with network access to on-premises systems. Requires JDK 17 (mandatory in Gen 3). The agent establishes an outbound connection to OIC — no inbound firewall rules needed. [src1, src2]

# Requires JDK 17 (JDK 8/11 deprecated in Gen 3)
java -version  # Must show 17.x

# Install and configure agent
java -jar oic_connectivity_agent.jar
# Agent auto-registers with OIC via OAuth token
# Do NOT modify the default token expiry (3600s)

Verify: OIC Console > Settings > Agents > Agent status = Running

5. Implement error handling with Scope and fault handler

Wrap all invoke activities in a Scope action. Add a fault handler for structured error processing. Use the parking lot pattern for guaranteed delivery. [src5]

# Error handling pattern
Scope: "Process Order"
  -> Invoke: Oracle ERP Cloud Adapter
  -> [On Success] -> Map response -> Return
  -> [Fault Handler]
     -> Log error details
     -> Invoke: ATP Database (insert to parking_lot table)
     -> Notification: Send error email
     -> Re-throw or swallow based on error type

Verify: Tracking page > Errors tab > Verify fault handler execution

6. Configure scheduling for batch integrations

Use Scheduled Orchestration for recurring batch operations. Set frequency and configure the scheduler to call asynchronous child integrations. [src5]

# Scheduling best practice
Scheduler (Parent): Runs every 15 minutes
  -> Query source system for new/changed records
  -> For-Each record batch:
     -> Invoke: Async child integration (one-way)
  -> Scheduler thread freed for next iteration
# Key: Parent calls ONE-WAY async child

Verify: Monitoring > Integrations > Check scheduled runs and child execution counts

Code Examples

Python: Trigger an OIC integration via REST

# Input:  OIC REST endpoint URL, OAuth credentials
# Output: Integration execution response

import requests

# Step 1: Get OAuth token from OCI IAM
token_url = "https://idcs-<tenant>.identity.oraclecloud.com/oauth2/v1/token"
token_resp = requests.post(
    token_url,
    data={
        "grant_type": "client_credentials",
        "scope": "urn:opc:resource:consumer::all"
    },
    auth=("<client-id>", "<client-secret>")
)
access_token = token_resp.json()["access_token"]

# Step 2: Invoke the integration
oic_url = "https://<oic-host>/ic/api/integration/v1/flows/rest/ORDER_SYNC/1.0/orders"
response = requests.post(
    oic_url,
    headers={
        "Authorization": f"Bearer {access_token}",
        "Content-Type": "application/json"
    },
    json={"orderNumber": "ORD-001", "amount": 1500.00}
)
print(response.status_code, response.json())

cURL: Check OIC instance health and message usage

# Input:  OIC host, OAuth token
# Output: Instance status and message consumption

# Check integration monitoring
curl -X GET \
  "https://<oic-host>/ic/api/integration/v1/monitoring/integrations" \
  -H "Authorization: Bearer <access-token>" \
  -H "Accept: application/json"

# Check failed integration instances (last 24 hours)
curl -X GET \
  "https://<oic-host>/ic/api/integration/v1/monitoring/instances?status=FAILED&limit=10" \
  -H "Authorization: Bearer <access-token>"

Data Mapping

OIC Mapping Capabilities

FeatureGen 2Gen 3Notes
Visual mapperYesEnhanced Redwood UIDrag-and-drop field mapping
XSLT functionsStandard setExpanded built-in setMore string, date, math functions
Import mappingsNoYesReuse mappings across integrations
LookupsDomain Value Map (DVM)Domain Value Map (DVM)Key/value reference tables
Custom functionsXSLT templatesXSLT templates + JavaScriptJavaScript added in Gen 3
Conditional mappingIf-then in XSLTIf-then + SwitchImproved conditional logic

Data Type Gotchas

Error Handling & Failure Points

Common Error Patterns

ErrorMeaningCauseResolution
ORA-00001Unique constraint violationDuplicate record in targetImplement idempotency check; use upsert pattern
CASDK-0004Connection timeoutTarget system unreachableIncrease timeout; check connectivity agent health
IC-INVOKE-0015Rate/throttle limit exceededToo many messages in windowImplement backoff; reduce frequency; add message pack
IC-SCHEDULE-0001Scheduled integration overlapPrevious run not finishedIncrease interval or convert to async child pattern
OIC-AUTH-0001Authentication failureExpired token or misconfigured OAuthVerify OCI IAM confidential app; check scope
CASDK-0007Payload too largeResponse exceeds adapter limitsPaginate or stage to File Server

Failure Points in Production

Anti-Patterns

Wrong: Synchronous child invocation from scheduler

// BAD — blocks scheduler thread for each record
Scheduler (Parent)
  -> For-Each record:
     -> Invoke SYNCHRONOUS child integration
     -> Wait for child response
// Result: scheduler thread blocked, overlap risk

Correct: Asynchronous one-way child invocation

// GOOD — scheduler dispatches and moves on
Scheduler (Parent)
  -> For-Each record:
     -> Invoke ASYNC (one-way) child integration
  -> Parent completes quickly
// Child processes independently

Wrong: Single monolithic integration for complex flows

// BAD — one massive integration handles everything
Integration: "Full Order Process"
  -> Validate -> Check inventory -> Create customer
  -> Create order -> Ship -> Notify
// Any failure restarts entire flow

Correct: Decompose into idempotent microflows

// GOOD — each step is separate, idempotent
Integration 1: "Validate Order" -> publishes event
Integration 2: "Check Inventory" -> subscribes, publishes
Integration 3: "Create Customer" -> idempotent upsert
// Individual retry, easier debugging

Wrong: Ignoring message sizing in capacity planning

// BAD — counting transactions, not messages
Requirement: 10,000 orders/hour, avg payload 150KB
Plan: 2 message packs (10,000 msgs)
// Reality: ceiling(150/50) = 3 msgs per order
// Actual: 30,000 msgs/hr = 6 packs needed

Correct: Calculate effective message count from payload size

// GOOD — factor in payload sizing
Messages per order = ceiling(150KB / 50KB) = 3
Effective msgs/hr = 10,000 x 3 = 30,000
Packs needed = ceiling(30,000 / 5,000) = 6

Common Pitfalls

Diagnostic Commands

# Check OIC instance status via OCI CLI
oci integration integration-instance get \
  --integration-instance-id <instance-ocid> \
  --query 'data.{"Status":status,"Shape":"instance-shape","Message Packs":"message-packs"}'

# List all integrations and their status
curl -s -X GET \
  "https://<oic-host>/ic/api/integration/v1/integrations?limit=100" \
  -H "Authorization: Bearer <token>" | jq '.items[] | {name, status, version}'

# Check failed integration instances
curl -s -X GET \
  "https://<oic-host>/ic/api/integration/v1/monitoring/instances?status=FAILED&limit=10" \
  -H "Authorization: Bearer <token>"

# Check connectivity agent health
curl -s -X GET \
  "https://<oic-host>/ic/api/integration/v1/agents" \
  -H "Authorization: Bearer <token>" | jq '.items[] | {name, status, lastHeartbeat}'

# Monitor message consumption (OCI Monitoring)
oci monitoring metric-data summarize-metrics-data \
  --compartment-id <compartment-ocid> \
  --namespace oracle_oci_integration \
  --query-text 'MessageCount[1h].sum()'

Version History & Compatibility

VersionReleaseStatusKey ChangesMigration Notes
Gen 3 (25.x)2024-2025CurrentRedwood UI, Projects, parallel execution, RBAC, Rapid Adapter Builder, AI/MCP supportMandatory upgrade; Oracle-managed, <10 min downtime
Gen 3 (24.x)2024CurrentInitial Gen 3 release, microservices, OCI-nativeRemoved Basic Routing, File Transfer; OAuth required
Gen 22019-2024EOLFull feature set, 700 active integrationsUpgrade path to Gen 3 is automatic
Classic (ICS)2016-2019EOLOriginal iPaaS offeringMust upgrade to Gen 2 first, then Gen 3

Deprecation Policy

Oracle Integration follows a continuous release model with updates every 2-4 weeks. Gen 2 to Gen 3 upgrades are mandatory and Oracle-managed. Features removed in Gen 3 have documented workarounds but will not be restored. [src2]

When to Use / When Not to Use

Use WhenDon't Use WhenUse Instead
Integrating Oracle SaaS products (ERP, HCM, SCM, CX)Need API gateway with rate limiting and developer portalOracle API Gateway or Apigee
Need low-code visual integration designer for Oracle ecosystemComplex transformation requiring custom Java/Python codeMuleSoft Anypoint or custom middleware
Want Oracle-managed iPaaS with prebuilt SaaS adaptersPrimarily non-Oracle systems with no Oracle SaaSBoomi, Workato, or MuleSoft
Batch file processing with embedded SFTP file serverReal-time streaming at sub-second latency (>100K events/sec)Apache Kafka, Oracle Streaming, or Confluent
Oracle-to-Oracle integration with business eventsMulti-cloud orchestration across AWS, Azure, GCP servicesWorkato or custom event-driven architecture
B2B/EDI trading partner connectivity (Enterprise)Simple point-to-point API proxy with no transformationOracle API Gateway or direct REST calls

Cross-System Comparison

CapabilityOracle OICMuleSoft AnypointBoomiWorkato
Pricing modelMessage packs (5K msgs/hr/pack)vCore-basedConnection + flow-basedRecipe + connection-based
Prebuilt adapters80+400+200+1,000+
Oracle SaaS depthNative (deepest integration)Good (certified adapters)GoodGood
On-premises supportConnectivity agent (Enterprise)Mule runtime (on-prem)Atom (on-prem)On-prem agent
Low-code designerVisual flow designerAnypoint Studio + Flow DesignerVisual, drag-and-dropRecipe builder
Process automationOCI Process Automation (separate)Not includedFlow ServicesWorkflow bots
B2B/EDIBuilt-in (Enterprise)B2B add-onB2B/EDI add-onLimited
AI integrationOCI AI, OpenAI, Anthropic, MCPAI ChainGPT connectorAI by Workato
API managementSeparate (Oracle API Gateway)Built-in (API Manager)API Management add-onAPI platform
File handlingEmbedded SFTP file serverFile connectorDisk connectorFile connector

Important Caveats

Related Units