SAP BTP destinations and the Cloud Connector — what a destination is, proxy types, every authentication type, custom headers and query parameters, how the SAP Cloud SDK finds a destination, how on-premise calls travel through the connectivity service and Cloud Connector, access control, and principal propagation

The plumbing behind most SAP integrations. A BTP destination stores a URL, proxy type (Internet, OnPremise, PrivateLink) and one of 17 authentication types. The SAP Cloud SDK resolves it from the destinations environment variable, then the Destination service. On-premise calls go through the connectivity service to a Cloud Connector, which connects outbound only and exposes just allowlisted hosts and paths. Covers client credentials, principal propagation and failure points.

markdownreferencev162FK-0MWZstage: connecttrust: officialservice: connectivityinterface: restBTP destinationDestination serviceProxyType Internet OnPremise PrivateLinkdestination authentication typesNoAuthenticationBasicAuthenticationClientCertificateAuthenticationPrincipalPropagationOAuth2SAMLBearerAssertionOAuth2ClientCredentialsOAuth2UserTokenExchangeOAuth2JWTBearerOAuth2TechnicalUserPropagationtokenServiceURLclientIdCloudConnectorLocationIdURL.headersURL.queriessap-client propertydestinations environment variabledestinationName jwtconnectivity service bindingCloud Connector reverse invoke proxyaccess control HTTP RFC TCP LDAPvirtual hostprincipal propagationdestination service REST APITransparent Proxy for Kubernetes

Created 23 Oct 2026 · Modified 23 Oct 2026 · 1 version

BTP destinations and the Cloud Connector

Destinations

A destination is a named record in a BTP subaccount (or a service instance) that holds:

  • URL;
  • ProxyType: Internet (the default), OnPremise (through the Cloud Connector) or PrivateLink;
  • Authentication and its properties.

Code asks for a destination by name, so URLs and secrets stay out of the code.

Authentication value (examples)Use for
NoAuthenticationPublic endpoints, or the sandbox with an API-key header (below)
BasicAuthenticationA communication user on S/4HANA Cloud, or a technical user on-premise
ClientCertificateAuthenticationCertificate-based technical access
OAuth2ClientCredentialsApp-to-app OAuth. Properties: clientId, client secret, tokenServiceURL
PrincipalPropagationThe signed-in BTP user is mapped to an on-premise user through the Cloud Connector. Properties: ProxyType: OnPremise, optionally CloudConnectorLocationId
OAuth2SAMLBearerAssertion, OAuth2UserTokenExchange, OAuth2JWTBearer, OAuth2TechnicalUserPropagation, …User propagation to cloud systems such as S/4HANA Cloud and SuccessFactors

SAP's destination guide lists 17 authentication types in all, plus client assertions instead of secrets. The hub's reading: start with BasicAuthentication or OAuth2ClientCredentials for a technical integration user, and move to principal propagation when the SAP-side audit must show the real user.

Custom headers and query parameters:

  • Add destination properties URL.headers.<Name> and URL.queries.<Name>, for example URL.headers.APIKey for the sandbox key, or URL.queries.language = EN. They're sent on every call.
  • A sap-client property is sent as the sap-client header by the SAP Cloud SDK.
  • Not every client supports these properties. SAP notes it depends on the consumption method.

Creating destinations:

  • in the BTP cockpit (from scratch or from a template);
  • on service-instance creation;
  • in an MTA descriptor;
  • with the Destination service REST API.

How code finds a destination (SAP Cloud SDK)

executeHttpRequest({ destinationName: "S4", jwt }, …):

  1. looks in the destinations environment variable, which is handy locally and in tests;
  2. otherwise asks the Destination service of the bound BTP subaccount, using the caller's JWT.

For ProxyType: OnPremise:

  • the app needs a connectivity service binding;
  • the SDK uses that binding's client credentials to get a token, gets the connectivity proxy's host and authorization, and sends the request through the proxy to the Cloud Connector.

The Cloud Connector

  • Runs inside the customer's network as a "reverse invoke proxy". It opens an outbound tunnel to BTP, so no inbound firewall ports open.
  • Exposes only allowlisted back-end systems, under a virtual host and port, and only the paths and resources the administrator allows. Access control is configured per protocol: HTTP, RFC, TCP, LDAP.
  • Can propagate the cloud user's identity (principal propagation). Variants use the IAS token, OIDC token, corporate IdP or user exchange token, and RFC.
  • Recovers connections automatically, audit-logs inbound traffic and configuration changes, and supports high availability.
  • One subaccount can connect several Cloud Connectors. They're told apart by location ID (CloudConnectorLocationId on the destination).

Where calls fail

LayerTypical failureCheck
Destination lookupNot foundThe name, the subaccount, or the destinations variable locally
Token (OAuth types)401 from the token servicetokenServiceURL, client ID and secret, the scope for the API
Connectivity proxyNo connectivity binding; the location ID doesn't matchThe app's service bindings; the Cloud Connector's location ID
Cloud ConnectorBack end not exposed, or the path isn't allowlistedThe Cloud Connector's access control: virtual host, port, path prefix
SAP back end401, 403 or 404 from GatewayThe user's roles, the service activation, CSRF (reference/connectivity/odata-calls-csrf-and-errors.md)

Read this document as markdown — the same bytes an agent receives.