Destinations

Reaching a system that is not yours — an S/4HANA tenant, an on-premise service, a third-party API — without the address, the credentials or the tunnel being written into the application. The destination is the indirection, and the reason an endpoint can move without a redeploy.

Overview

SAP SHIPS
Node.js →

@sap/cds Resolves an SAP BTP destination in the runtime's own fetch client, so a production call no longer has to go through the SAP Cloud SDK. Added in CAP Node.js 10.1 and marked beta, covering proxy type Internet with NoAuthentication, BasicAuthentication or OAuth2ClientCredentials; a destination using any other authentication type is served by @sap-cloud-sdk/http-client once that package is installed.

Java →

com.sap.cds:cds-feature-remote-odata A CAP Java feature for consuming remote OData V2 and V4 services as Remote Services, translating CQN queries into OData requests against a destination or a service binding.

com.sap.cds:cds-integration-cloud-sdk A CAP Java feature that integrates the SAP Cloud SDK, so features such as remote OData and enterprise messaging resolve a destination or service binding and reach a remote REST-based service.

Not covered: At the SAP Cloud SDK packages: they resolve a destination, carry the token and put the resilience around the call, and the call then takes the shape their clients give it.

Until 2026-09-27 this was assessed from who provides it, because no capire page had been found to cite; the Outbound Authentication and Remote Services pages are that page.

Built into @sap/cds
SourceOutbound Authentication — capirechecked
THE COMMUNITY ADDS

cdse reads the destination from the CAP configuration and hands the request to axios, so the url, the method and the body are written at the call site.

Licence1

LicenceSAP Developer License Agreement 3.2 CAP§ 1AlwaysA destination used by a covered CAP application sends SAP product data to a non-SAP product rather than only addressing a remote endpoint.
  • § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.

A destination is configuration, not the deciding boundary. The licence becomes material when the resulting data flow is extraction into a non-SAP product, so the target and purpose need review.

SAP Developer License Agreement 3.2 CAP →

Artifacts13

13 of 13 artifacts
ArtifactSignals
Packages12
@sap-cloud-sdk/connectivityDestination lookup and connectivity proxy for the Cloud SDK
Signals
none
@sap-cloud-sdk/http-clientHTTP client carrying a destination's credentials
Signals
none
@sap-cloud-sdk/odata-commonShared machinery under the Cloud SDK's OData and OpenAPI clients
Signals
none
@sap-cloud-sdk/openapiGenerated OpenAPI clients for the Cloud SDK
Signals
none
@sap-cloud-sdk/resilienceTimeouts, retries and circuit breaking around remote calls
Signals
none
@sap-cloud-sdk/utilGeneral utilities shared across the Cloud SDK packages
Signals
none
@sap/cdsCAP Node.js runtime
Signals
none
@sapmentors/cds-scp-apiNode module for CAP calling external APIs through a destination
Signals
Quiet+1
capire/s4Prebuilt SAP S/4HANA integration package for CAP projects
Signals
none
cdseDestination resolution and axios calls from CAP configuration
Signals
Quiet
com.sap.cds:cds-feature-remote-odataRemote Services for consuming OData V2 and V4 APIs in CAP Java
Signals
none
com.sap.cds:cds-integration-cloud-sdkSAP Cloud SDK integration for remote REST services in CAP Java
Signals
none
Services1
SAP Destination serviceNamed, credentialed addresses of other systems resolved at runtime
Signals
none

Content38

Group by38 of 38 pieces
Piece, what it offers
CAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AI
SAP Community, Shahid, Blog
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud Connector
SAP Community, Kalaikovan, BlogThe reasoningA recipe
Core changed
Expose S/4HANA Cloud OData API as an MCP Server via CAP Node.js
SAP Community, Jacky_Liu1, Blog
Show 35 more
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-5]
SAP Community, sanjucs, BlogThe reasoning
Implementing Dynamic Subaccount-Based Routing in SAP CAP with SAP BTP Destinations
SAP Community, Dnyaneshwar Salve, BlogThe reasoningRunnable code
UI for the BTP Application Vulnerability Report
SAP Community, Wouter Lemaire, Blog
Establishing connectivity between a local CAP runtime and on-premise systems
SAP Community, vLeonkev, BlogThe reasoningA recipeRunnable code
From REST to Datasphere: A CAP-based Integration Approach
SAP Community, christian_willi, BlogThe reasoning
Sending Emails from SAP CAP Applications with Any SMTP Provider
SAP Community, MaheshSirsat1708, Blog
How to Call a Remote OData API from Your Local CAP Java Project
SAP Community, Umezuki, BlogThe reasoningRunnable code
Connect to Public Cloud API in Node.js via Authorisation Code
SAP Community, Egan, BlogThe reasoning
Extending SAP Sales and Service Cloud V2 Using CAP
SAP Community, Quablab, BlogThe reasoningA recipe
Consuming data from SAP Datasphere in SAP BTP CAP Applications
SAP Community, sudheer-tammana, BlogThe reasoning
CAP Service to Fetch + Create Sales Order in S4 HANA Public Cloud
SAP Community, Mujeeb, Blog
SAP BTP Destinations in a Nutshell Part 1 - Motivation & NoAuthentication Destinations
SAP Community, JakobFra, Blog
Connecting On Premise Mail Destination and Sending Email Using SAP Cloud SDK JavaScript Version 3 on SAP CAP
SAP Community, codebrokerad, BlogThe reasoningRunnable code
Core changed
Surviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdles
SAP Community, maxstreifeneder, Blog
SFSFとHANA Cloudを使用するCAPのアプリケーション開発
SAP Community, rasai, BlogA recipeRunnable code
Core changed
BTP CAP : How to Connect to Remote Services Locally in CAP Application
SAP Community, showkath_naseem, BlogThe reasoning
Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]
SAP Community, mohit_bansal3, BlogThe reasoning
Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]
SAP Community, mohit_bansal3, part 3 of 3, BlogThe reasoningA recipe
Core changed
HTML5.Timeout for CAP destinations in mta.yaml longer than default
SAP Community, NilsJanen, Blog
Useful CAP CDS and Fiori Commands to Accelerate Development and Deployment
SAP Community, TiaXu, Blog
Qualtrics integration with domain based authorization in CAP project on HANA cloud
SAP Community, former_member69893, BlogThe reasoningRunnable code
Core changed
Invoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming Model
SAP Community, wittro, BlogThe reasoningRunnable code
Core changed
Execute [OAuth2 client credentials] protected REST request with SAP CAP Application
SAP Community, Lachmish, BlogThe reasoningA recipe
Core changed
Extend SAP SuccessFactors on SAP BTP with CAP - Import SAP SuccessFactors OData Services definitions
SAP Community, Alessandro Biagi, Blog
SAP CAP Remote Services & SAP Fiori Elements
SAP Community, Former Member, BlogThe reasoningA recipeRunnable code
Core changed
Part 2: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elements
SAP Community, former_member748, part 2 of 2, BlogThe reasoningA recipeRunnable code
Core changed
Part 1: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elements
SAP Community, former_member748, part 1 of 2, BlogThe reasoningA recipeRunnable code
Core changed
How to Access On-premise OData from the Business Application Studio - CAPM Development
SAP Community, laszlo_kajan2, BlogThe reasoningA recipeRunnable code
Core changed
Use SCP CF Destination service in NodeJs locally
SAP Community, WouterLemaire, BlogThe reasoningRunnable code
Core changed
SAP Cloud Application Programming Model: Deep Insert (5) Consume Remote Service with SAP Cloud SDK
SAP Community, CarlosRoggan, BlogThe reasoningRunnable code
Core changed
SAP Cloud Application Programming Model: Deep Insert (4) Consume Remote Service
SAP Community, CarlosRoggan, BlogThe reasoningA recipeRunnable code
Core changed
Consume Remote Services in a Full-Stack CAP Application
SAP Developer Center, SAP, WorkshopThe reasoningA recipe
Extend SAP SuccessFactors on SAP BTP with the SAP Cloud Application Programming Model
SAP Developer Center, SAP, WorkshopThe reasoningA recipe
Consume SOAP Web Services in SAP Cloud Application Programming Model
SAP Developer Center, SAP, TutorialThe reasoningA recipe
Use the SAP Cloud SDK in the SAP Cloud Application Programming Model
SAP Developer Center, SAP, TutorialThe reasoningA recipe

Seen working10

ArtifactSignals
Samples10
az-private-linky-capCAP project reaching S/4 via SAP BTP Private Link Service for Azure
No license
cap-ams-a2aApp-to-app setups between CAP Java and CAP Node.js under AMS and IAS
No license
cap-external-northwindCAP service serving Northwind's external OData Products as its own
none
cap-oauth-destinationOAuth2UserTokenExchange destination declared in mta.yaml
No license
cap-openaiCAP service actions calling OpenAI chat completions two ways
No license
cap-openapiCAP Java service calling role collection APIs via a generated client
No license
cap-principal-propagationOn-premise ABAP OData V2 service read from CAP over Connectivity
No license
cap-rfcCAP Node.js action calling BAPI_EPM_BP_CREATE over RFC
No license
cap-uiMTA deploying CAP, HDI container and a Fiori elements app
none
SAP-samples/cap-service-integration-codejamCodeJam on consuming external services from a CAP project
none

Details

What changed — and what it makes stale1
@sap-cloud-sdk/connectivity 4.0.0, CAP

SAP Cloud SDK for JavaScript 4.0 turned destination caching on by default for lookups made through the destination service — getDestination(), getAllDestinationsFromDestinationService(), and the generated client's execute() all now cache what they resolve. Before 4.0, every one of those calls re-fetched credentials from the destination service; the same release also stopped requiring an XSUAA service binding to retrieve a destination and disabled iasToXsuaaTokenExchange by default.

Makes stale:

Advice written before March 2025 that assumes every destination lookup is a fresh call to the destination service. A stale cached destination, not a slow round trip, is now the first thing to check.

Coverage
statecore and community, CAP
assessed
relationshipunassessed
also inBTP/BAIP, UI5
For your agent