SAP Integration Suite Capabilities

Type: ERP Integration System: SAP Integration Suite (Cloud, Q1 2026) Confidence: 0.90 Sources: 8 Verified: 2026-03-01 Freshness: 2026-03-01

TL;DR

System Profile

SAP Integration Suite is SAP's enterprise iPaaS running on SAP Business Technology Platform (BTP). It consolidates five previously separate integration tools into a single subscription. The suite is continuously updated (no numbered versions). It replaces SAP PI/PO, which is in maintenance mode. [src1, src4]

PropertyValue
VendorSAP
SystemSAP Integration Suite (Cloud, continuously updated)
API SurfaceREST, SOAP, OData, IDoc, RFC, AMQP, AS2/AS4, SFTP, JDBC, Kafka, Mail, 250+ adapters
Current VersionContinuously updated (Q1 2026 latest)
Editions CoveredStarter, Standard, Premium (Subscription) / CPEA / BTPEA / PAYG
DeploymentCloud (SAP BTP) + Edge Integration Cell (hybrid on-premise/private cloud)
API DocsSAP Integration Suite Documentation
StatusGA (General Availability)

API Surfaces & Capabilities

SAP Integration Suite is organized into five core capabilities. [src1, src4]

CapabilityPurposeKey FeaturesIncluded In
Cloud Integration (CPI)A2A and B2B message processingiFlow designer, 250+ adapters, message mapping, routing, transformation, monitoringAll editions
API ManagementAPI lifecycle governanceAPI proxy creation, policies (rate limit, security, caching), developer portal, analyticsAll editions
Integration AdvisorB2B mapping accelerationAI-assisted mapping proposals, EDI standards (EDIFACT, X12, cXML), MIGsStandard, Premium
Trading Partner ManagementB2B partner onboardingPartner profiles, communication channels, agreement management, AS2/EDIFACT/X12Standard, Premium
Open ConnectorsPre-built 3rd-party connectors170+ connectors to non-SAP SaaS (being deprecated in favor of native adapters)All editions

Adapter Categories (Cloud Integration)

CategoryAdaptersDirection
ProtocolHTTP, SOAP (1.x/1.2), REST, OData (V2/V4), AMQP 1.0, AS2, AS4, SFTP, FTP, Mail, XISender + Receiver
SAP ConnectivityIDoc, RFC, SuccessFactors, Ariba Network, SAP Concur, S/4HANA ODataSender + Receiver
MessagingJMS (internal), Kafka, AMQP (external), SAP Event MeshSender + Receiver
DatabaseJDBC (Oracle, SQL Server, PostgreSQL, MySQL, HANA, MariaDB, DB2)Receiver only
Cloud StorageAmazon S3, Google Cloud Storage, Azure Blob, Box, OneDrive, DropboxReceiver
B2B/EDIAS2, AS4, EDIFACT, X12, cXML (via Integration Advisor + TPM)Sender + Receiver
ApplicationSalesforce, ServiceNow, Slack, MS Teams, Workday, DocuSign, Shopify, HubSpotReceiver (varies)
InternalProcessDirect (no message counting), Loopback, Data StoreInternal only

Rate Limits & Quotas

Message Counting Rules

RuleDetailImpact
Base unit1 message = up to 250 KB combined payloadLarger payloads increase count
Oversize calculationPayload > 250 KB: divide by 250 KB, round up (2 MB = 9 messages)Large file transfers are expensive
Splitter operationsEach split output is a separate outgoing message1-to-100 split = 100 messages
Retry countingEach retry attempt counts as a new messageConfigure max retries carefully
Request-replyReply payload in synchronous calls is countedBoth directions consume quota
Multi-environmentDEV, QAS, PROD tenants metered independentlyTest traffic costs real money

[src2, src3]

What Does NOT Count

Exempt Adapter/FeatureWhy It's Free
ProcessDirectInternal in-process communication — no outgoing network call
Internal JMS queuesMessages between iFlows via JMS are not counted as outgoing
Standard SAP content (unmodified)Pre-delivered SAP-to-SAP integration packages with no customization
Monitoring/logging API callsOperations API calls for monitoring do not count

[src2, src3]

JMS Queue Limits (Per Tenant)

ResourceLimitNotes
Number of JMS queues9 (expandable)Contact SAP for more
Queue storage capacity4 GB totalShared across all queues
Message retention30 days maxExpired messages auto-deleted
Max message size10 MBPer individual JMS message
Transactions1 consumer per queueNo competing consumers

[src8]

Message Pricing Tiers

Monthly VolumeCost per 10K BlockNotes
0–10,000Included (free)Base quota with every subscription
10,001–500,000~€6.08 / 10KStandard list price
500,001–2,500,000~€4.50 / 10KVolume discount tier
2,500,001–10,000,000~€2.75 / 10KHigh-volume tier
10,000,000+NegotiableContact SAP for enterprise pricing
Edge Integration Cell50% of aboveFactor 0.5 applied to Edge messages

[src2, src7]

Authentication

FlowUse WhenMechanismNotes
OAuth 2.0 Client CredentialsProgrammatic API accessBTP service key with clientId + clientSecretStandard for automation
SAP Cloud ConnectorOn-premise backend connectivitySecure tunnel via agent installed on-premiseNo inbound firewall ports required
Basic AuthSimple sender adapters (HTTPS, SOAP)Username/password via credential storeUse only with TLS; prefer OAuth
Client CertificateMutual TLS for B2B partnersX.509 certificate exchangeRequired for AS2
SAP Principal PropagationUser-context operations through to on-prem SAPSSO token forwarded via Cloud ConnectorMaps BTP user to SAP user

[src1]

Authentication Gotchas

Constraints

Integration Pattern Decision Tree

START -- User needs to integrate with SAP Integration Suite
|-- What systems are involved?
|   |-- SAP-to-SAP --> Check Business Accelerator Hub for pre-built content
|   |   |-- Pre-built available? YES --> Deploy standard package (free if unmodified)
|   |   +-- NO --> Build custom iFlow with SAP adapters (IDoc, RFC, OData)
|   |-- SAP-to-non-SAP --> Protocol adapters (HTTP, REST, SOAP, OData) or app-specific
|   |-- B2B/EDI --> Trading Partner Management + AS2/EDIFACT/X12
|   +-- Non-SAP-to-non-SAP --> Possible but not recommended; use dedicated iPaaS
|-- Integration pattern?
|   |-- Real-time (<1s) --> Direct HTTP/REST/SOAP adapter; API Mgmt for throttling
|   |-- Batch (scheduled) --> Timer-triggered iFlow + SFTP/JDBC/OData
|   |-- Event-driven --> SAP Event Mesh + AMQP; or Webhook/Kafka for non-SAP
|   +-- File-based --> SFTP/FTP adapter + ProcessDirect internal routing (free)
|-- Need on-premise connectivity?
|   |-- Cloud Connector available --> Tunnel (RFC, IDoc, HTTP)
|   +-- Latency-sensitive --> Edge Integration Cell (50% message discount)
+-- Cost optimization?
    |-- Use ProcessDirect between iFlows (no message counting)
    |-- Avoid unnecessary splitters
    +-- Monitor consumption monthly in cockpit

Quick Reference

Five Capabilities at a Glance

CapabilityWhat It DoesWhen to UseKey Metric
Cloud IntegrationProcess, transform, route messagesAll A2A/B2B integrationsMessages/month
API ManagementExpose, secure, throttle APIsAPI productization, partner APIsAPI calls/month
Integration AdvisorGenerate B2B message mappingsEDI onboarding (EDIFACT, X12)Mapping proposals/month
Trading Partner MgmtManage B2B partner relationshipsMulti-partner EDI scenariosPartners managed
Open ConnectorsPre-built SaaS connectors (170+)Quick non-SAP connectivity (being deprecated)API calls/month

Licensing Model Quick Reference

ModelCommitmentBest ForPrice Range
Subscription (Starter)Annual/multi-yearSmall teams, < 50K messages/month~$5,500/month
Subscription (Standard)Annual/multi-yearMid-market, standard featuresNegotiable
Subscription (Premium)Annual/multi-yearEnterprise, all capabilitiesNegotiable
CPEA/BTPEACredit pool commitmentMulti-service BTP customersVolume-discounted credits
Pay-As-You-GoNoneEvaluation, spiky workloadsList price (highest/unit)

[src6, src7]

Step-by-Step Integration Guide

1. Provision SAP Integration Suite on BTP

Subscribe to SAP Integration Suite in your BTP subaccount and activate capabilities. [src1]

# Via BTP CLI
btp login --sso
btp subscribe integration-suite --plan=standard --subaccount=<subaccount-id>
btp assign role-collection Integration_Provisioner --to-user <email> --subaccount=<subaccount-id>

Verify: BTP cockpit → Subscriptions → SAP Integration Suite shows "Subscribed"

2. Create a Service Key for API Access

Create OAuth credentials for programmatic access. [src1]

btp create service-instance --plan=api --service=it-rt --name=cpi-api-access --subaccount=<subaccount-id>
btp create service-key cpi-api-access --name=cpi-api-key --subaccount=<subaccount-id>
btp get service-key cpi-api-access cpi-api-key --subaccount=<subaccount-id>

Verify: Response contains clientid, clientsecret, and tokenurl fields

3. Deploy an Integration Flow

Design an iFlow in the web UI, then monitor via API. [src1]

TOKEN=$(curl -s -X POST "$TOKEN_URL" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET" \
  | jq -r '.access_token')

curl -s -X GET "https://<tmn-host>/api/v1/IntegrationDesigntimeArtifacts" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json"

Verify: HTTP 200 with list of deployed artifacts

4. Monitor Message Processing

Use the Operations API to check message logs. [src1]

curl -s -X GET "https://<tmn-host>/api/v1/MessageProcessingLogs?\$top=50&\$orderby=LogEnd desc" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json"

# Failed messages only
curl -s -X GET "https://<tmn-host>/api/v1/MessageProcessingLogs?\$filter=Status eq 'FAILED'" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json"

Verify: Response contains MessageProcessingLogs array with Status, LogStart, LogEnd, CorrelationId

Code Examples

Python: Query Integration Flow Status via OData API

# Input:  SAP Integration Suite tenant URL, OAuth credentials
# Output: List of deployed integration flows with status

import requests

TOKEN_URL = "https://<auth-host>/oauth/token"
TENANT_URL = "https://<tmn-host>/api/v1"
CLIENT_ID = "<client-id>"
CLIENT_SECRET = "<client-secret>"

token_resp = requests.post(TOKEN_URL,
    data={"grant_type": "client_credentials"},
    auth=(CLIENT_ID, CLIENT_SECRET), timeout=30)
token_resp.raise_for_status()
access_token = token_resp.json()["access_token"]

headers = {"Authorization": f"Bearer {access_token}", "Accept": "application/json"}
iflows = requests.get(f"{TENANT_URL}/IntegrationRuntimeArtifacts", headers=headers, timeout=30)
iflows.raise_for_status()

for a in iflows.json().get("d", {}).get("results", []):
    print(f"  {a['Id']} | Status: {a['Status']} | Version: {a['Version']}")

JavaScript/Node.js: Check Failed Message Logs

// Input:  SAP Integration Suite tenant URL, OAuth credentials
// Output: Recent failed message processing logs

const axios = require('axios'); // [email protected]

async function getFailedMessages(tenantUrl, tokenUrl, clientId, clientSecret) {
  const tokenResp = await axios.post(tokenUrl, 'grant_type=client_credentials', {
    auth: { username: clientId, password: clientSecret },
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
  });
  const token = tokenResp.data.access_token;

  const logs = await axios.get(`${tenantUrl}/api/v1/MessageProcessingLogs`, {
    params: { '$filter': "Status eq 'FAILED'", '$top': 100, '$orderby': 'LogEnd desc' },
    headers: { 'Authorization': `Bearer ${token}`, 'Accept': 'application/json' }
  });
  return logs.data.d.results.map(log => ({
    id: log.MessageGuid, iflow: log.IntegrationFlowName,
    status: log.Status, error: log.ErrorMessage, timestamp: log.LogEnd
  }));
}

cURL: Quick API Test

# Input:  CLIENT_ID, CLIENT_SECRET, TOKEN_URL, TMN_HOST
# Output: Integration flow status and message counts

export TOKEN=$(curl -s -X POST "$TOKEN_URL" \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r '.access_token')

# List deployed artifacts
curl -s "https://$TMN_HOST/api/v1/IntegrationRuntimeArtifacts" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" \
  | jq '.d.results[] | {Id, Status, Version}'

# Count messages processed today
curl -s "https://$TMN_HOST/api/v1/MessageProcessingLogs/\$count" \
  -H "Authorization: Bearer $TOKEN"

Data Mapping

Mapping Approaches

ApproachToolBest ForComplexityReusability
Message MappingGraphical mapperSimple field-to-field transformationsLowPer-iFlow
XSLT MappingXSLT 2.0/3.0Complex XML transformationsMediumReusable
Groovy ScriptScripting stepCustom logic, API calls during mappingHighScript collection
Integration Advisor MIGAI-assisted toolB2B/EDI mappings (EDIFACT, X12)Low (AI-assisted)MIG artifact
Value MappingKey-value lookupCode translations (country, currency)LowShared

Data Type Gotchas

Error Handling & Failure Points

Common Error Patterns

ErrorMeaningCauseResolution
MPL Status: FAILEDMessage processing failedUnhandled exception in iFlowCheck MPL error details + stack trace
HTTP 401Authentication failureExpired token, wrong credentialsRegenerate service key, check roles
HTTP 403Authorization failureMissing ESBMessaging.send scopeAssign required role collections
HTTP 429Rate limit exceededAPI Management policy limit hitExponential backoff; increase quota
Cloud Connector refusedOn-premise unreachableCC down, wrong virtual hostCheck CC admin console status
JMS: Queue fullStorage exhausted4 GB tenant limit reachedIncrease consumption, purge old msgs
PKIX path building failedSSL certificate errorUntrusted CA, expired certImport cert into iFlow keystore

[src1]

Failure Points in Production

Anti-Patterns

Wrong: Using HTTP adapter for internal iFlow-to-iFlow communication

// BAD -- Each HTTP call between iFlows counts as a billable message
// This doubles or triples your message cost for multi-step processing
def result = new URL("https://tenant.hci.sap/http/internal-step2").text

Correct: Using ProcessDirect adapter for internal communication

// GOOD -- ProcessDirect is internal, in-process, NOT counted as a message
// Configure sender iFlow with ProcessDirect sender adapter
// Address: /internal/step2 -- zero message cost

Wrong: Building all logic in a single massive iFlow

// BAD -- One iFlow with 50+ steps, multiple splitters, complex exception handling
// Impossible to debug, monitor, or maintain
// A single failure in step 47 requires reprocessing all 50 steps

Correct: Decomposing into modular iFlows

// GOOD -- Break into focused iFlows:
// 1. Receiver: Accept, validate, persist to JMS
// 2. Processor: Transform and enrich (JMS-triggered)
// 3. Sender: Deliver to target (ProcessDirect from #2)
// Each independently deployable, testable, monitorable

Wrong: Ignoring message metering in dev/test

// BAD -- Running load tests on QAS with 100K messages
// "It's just test" -- but SAP counts every message
// Surprise: 10x quota overage on monthly invoice

Correct: Monitoring consumption across all environments

// GOOD -- Check consumption monthly: Settings -> Metering
// Set alerts at 80% quota; use ProcessDirect for internal test routing
// Consider Edge Integration Cell for high-volume tests (50% discount)

Common Pitfalls

Diagnostic Commands

# Check OAuth token validity
curl -s -X POST "$TOKEN_URL" -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials" | jq '{access_token: .access_token[:20], expires_in}'

# List deployed iFlows with status
curl -s "https://$TMN_HOST/api/v1/IntegrationRuntimeArtifacts" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" \
  | jq '.d.results[] | {Id, Status, Version, DeployedOn}'

# Count messages processed today
curl -s "https://$TMN_HOST/api/v1/MessageProcessingLogs/\$count?\$filter=LogStart gt datetime'$(date -u +%Y-%m-%dT00:00:00)'" \
  -H "Authorization: Bearer $TOKEN"

# Check failed messages with errors
curl -s "https://$TMN_HOST/api/v1/MessageProcessingLogs?\$filter=Status eq 'FAILED'&\$top=10" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" \
  | jq '.d.results[] | {MessageGuid, IntegrationFlowName, ErrorMessage}'

# Check JMS queue status
curl -s "https://$TMN_HOST/api/v1/JmsResources" \
  -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" \
  | jq '.d.results[] | {Name, MessageCount, StorageUsage}'

Version History & Compatibility

QuarterKey ChangesImpactMigration Notes
Q1 2026Edge Integration Cell B2B, Kafka improvementsNew B2B scenarios on EICOpt-in, no breaking changes
Q4 2025BTPEA replaces CPEA for new contracts, Google Pub/Sub adapterLicensing model changeExisting CPEA honored until renewal
Q3 2025Edge Integration Cell GA, RFC on EIC, 48h offline modeHybrid without Cloud ConnectorRequires Kubernetes 1.27+
Q2 2025Integration Advisor AI mapping, Salesforce Pub/Sub adapterFaster B2B onboardingRequires capability activation
2024Open Connectors deprecation announced, BTPEA introducedPlan migration off Open ConnectorsStart migrating to native adapters

[src1, src5]

Deprecation Policy

SAP communicates deprecations via the Roadmap Explorer and quarterly release notes. Open Connectors deprecation announced 2024 with multi-year migration window. SAP PI/PO mainstream maintenance ends December 2027. Typical deprecation notice: 12-24 months. [src1, src5]

When to Use / When Not to Use

Use WhenDon't Use WhenUse Instead
Integrating SAP-to-SAP (S/4HANA, SF, Ariba)No SAP systems at allMuleSoft, Boomi, Workato, or cloud-native integration
Need pre-built SAP content (2,500+ packages)Simple webhook-to-webhook routingZapier, Make, or n8n
B2B/EDI with trading partnersOnly API gateway without transformationKong, Apigee, AWS API Gateway
Migrating from SAP PI/PO to cloudReal-time streaming analyticsApache Kafka + Kafka Streams/Flink
Hybrid cloud/on-premise (Edge Integration Cell)Sub-10ms latency for HFT/IoTDirect point-to-point or edge compute
Consolidated SAP BTP billingBudget is primary constraint, low volumeOpen-source (Apache Camel, WSO2)

Important Caveats

Related Units