Quota Management
Cost Control
Service Access
BTP Foundation

BTP Entitlements

Quota management for BTP services across the account hierarchy. Entitlements define which services a Global Account has the right to use and in what quantity. Without an entitlement, no service instance or subscription can be created.

How Entitlements Work

Entitlements define which BTP services and service plans a Global Account has the right to use, and in what quantity. They are the gating mechanism for all BTP service consumption — no entitlement means no service instance can be created, even if the credits exist in the account.

Entitlements flow downward through the account hierarchy: Global Account → Directory → Subaccount. Each level can receive a quota from its parent. Directories with the Entitlements Management feature enabled act as quota pools — distributing their allocation to child subaccounts.

There is an important distinction between an entitlement (the right to use a service) and a service instance (actual usage that consumes quota). Assigning an entitlement reserves capacity; creating a service instance consumes it.

Quick Facts

Scope
Global Acct → Directory → Subaccount
Source
SAP contract / CPEA credits
PAYG entitlements
Auto-enable when service activated
CPEA entitlements
Must be explicitly assigned
Assignment UI
BTP Cockpit > Entitlements
Assignment CLI
btp assign accounts/entitlement
IaC support
Terraform BTP provider
API
SAP BTP Accounts Service API
Entitlement Flow — Global Account to Service Instance
Rendering diagram…

Entitlement Types

Quantity-Based
Amount Required
  • Requires a numeric amount (e.g., 1 HANA Cloud instance)
  • Used by services with discrete instance counts
  • Examples: HANA Cloud, AI Core, ABAP Cloud
  • Amount decrements when service instance is created
  • Over-allocation prevented at quota boundary
Subscription-Based
Enable / Disable
  • Binary enable/disable — no numeric amount
  • Used by SaaS application subscriptions
  • Examples: Integration Suite, BAS, Build Apps
  • One subscription per subaccount once enabled
  • Requires separate subscription action after entitlement
Unlimited / PAYG
Auto-Assigned
  • Auto-entitled when PAYG model is active
  • No manual quota assignment required
  • Billed purely on consumption (pay per use)
  • Used by many foundation services (Destination, Connectivity)
  • Still requires explicit subaccount assignment in cockpit

Enterprise Example — DEWA CPEA Contract

DEWA's CPEA contract includes the following entitlements. The BTP platform team distributes these across directories with guardrails to prevent any single subaccount from consuming the full allocation:

ServicePlanTotal QuotaDistributionMax per Subaccount
SAP HANA Cloudhana-cloud3 instancesUtilities: 2, Smart City: 11
SAP AI Coreextended1 unitAI Services dir: 11
Integration Suiteenterprise_agreement1 tenantIntegration dir: 11
Cloud FoundrystandardUnlimited memoryAll directoriesQuota per subaccount
Kyma Runtimeaws2 clustersS4Ext: 1, Smart City: 11
Leave headroom in your entitlement allocation
DEWA deliberately does not assign all AI Core quota to a single subaccount. 20% of quota is kept unallocated at the directory level as headroom for urgent projects without requiring a quota increase request to SAP.

Managing Entitlements via btp CLI

entitlement-management.sh
1# Login to BTP CLI
2btp login --url https://cpcli.cf.eu10.hana.ondemand.com
3
4# List all entitlements for the global account
5btp list accounts/entitlement
6
7# List entitlements assigned to a specific subaccount
8btp list accounts/entitlement --subaccount <subaccount-id>
9
10# Assign HANA Cloud entitlement to a subaccount (1 instance)
11btp assign accounts/entitlement \
12  --to-subaccount <subaccount-id> \
13  --for-service hana \
14  --plan hana-cloud \
15  --amount 1
16
17# Assign Integration Suite entitlement (subscription-based — no amount)
18btp assign accounts/entitlement \
19  --to-subaccount <subaccount-id> \
20  --for-service integrationsuite \
21  --plan enterprise_agreement \
22  --enable
23
24# Assign entitlement to a directory (quota pool)
25btp assign accounts/entitlement \
26  --to-directory <directory-id> \
27  --for-service hana \
28  --plan hana-cloud \
29  --amount 3
30
31# Check remaining quota
32btp list accounts/entitlement | grep hana

Infrastructure as Code — Terraform

Use IaC for reproducible entitlement management
The SAP BTP Terraform provider manages entitlements as code. This ensures the entitlement state is version-controlled, reviewable, and reproducible across environments.
entitlements.tf
1# Terraform — BTP entitlement assignment
2resource "btp_subaccount_entitlement" "hana_cloud" {
3  subaccount_id = btp_subaccount.s4ext_prd.id
4  service_name  = "hana"
5  plan_name     = "hana-cloud"
6  amount        = 1
7}
8
9resource "btp_subaccount_entitlement" "integration_suite" {
10  subaccount_id = btp_subaccount.integ_prd.id
11  service_name  = "integrationsuite"
12  plan_name     = "enterprise_agreement"
13  # No amount — subscription-based
14}
15
16resource "btp_subaccount_entitlement" "ai_core" {
17  subaccount_id = btp_subaccount.ai_prd.id
18  service_name  = "aicore"
19  plan_name     = "extended"
20  amount        = 1
21}

Best Practices

Audit entitlements monthly

Unused entitlements assigned to subaccounts that are no longer active waste CPEA credits. Monthly reviews prevent quota hoarding and allow redistribution.

Use Directory entitlement management as pools

Enable the Entitlements Management feature on directories to create departmental quota pools. This prevents individual subaccounts from consuming all available quota.

Never assign 100% of quota to one subaccount

Always retain at minimum 10–20% at the directory or global account level as an emergency reserve for urgent project needs without requiring SAP intervention.

Automate entitlement tracking via API

Use the SAP BTP Accounts Service API to export entitlement consumption data into your monitoring dashboard for proactive quota management.

Include entitlement review in quarterly SAP reviews

Quarterly Business Reviews with SAP are the right forum to request quota increases, review CPEA credit burn rate, and adjust commercial models if needed.

Common Pitfalls

Assigning all quota to one subaccount, blocking other teams
If all HANA Cloud quota is assigned to the development subaccount, the production team cannot create their instance without a quota reallocation — which can take hours.
Not requesting entitlement increases before project go-live
Quota increase requests require SAP involvement and can take several business days. Request additional quota at least 2 weeks before a production go-live.
Confusing entitlement (right to use) with service instance (actual usage)
An assigned entitlement does not create a service instance — it only reserves the right. Developers must still create the service instance separately.
Missing CPEA credit burn alerts
CPEA credits are consumed over time. Without budget alerts configured in the BTP Cockpit Cost Management section, teams discover quota exhaustion only when service creation fails.

Security Considerations

Entitlement management is a privileged operation
Incorrect entitlement changes can block all service creation in a subaccount or expose quota to unintended consumers. Restrict entitlement management to the platform team only.
Restrict entitlement management to Global Account admins only — developers should never have this right.
Use the Accounts Service API with OAuth credentials for programmatic entitlement operations, not personal cockpit sessions.
Audit entitlement changes via the BTP Audit Log service — all assignment and removal events are captured.
Use Terraform with state-file locking to prevent concurrent entitlement modifications that could leave inconsistent state.

References