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 Types
- 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
- 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
- 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:
| Service | Plan | Total Quota | Distribution | Max per Subaccount |
|---|---|---|---|---|
| SAP HANA Cloud | hana-cloud | 3 instances | Utilities: 2, Smart City: 1 | 1 |
| SAP AI Core | extended | 1 unit | AI Services dir: 1 | 1 |
| Integration Suite | enterprise_agreement | 1 tenant | Integration dir: 1 | 1 |
| Cloud Foundry | standard | Unlimited memory | All directories | Quota per subaccount |
| Kyma Runtime | aws | 2 clusters | S4Ext: 1, Smart City: 1 | 1 |
Managing Entitlements via btp CLI
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 hanaInfrastructure as Code — Terraform
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
Unused entitlements assigned to subaccounts that are no longer active waste CPEA credits. Monthly reviews prevent quota hoarding and allow redistribution.
Enable the Entitlements Management feature on directories to create departmental quota pools. This prevents individual subaccounts from consuming all available quota.
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.
Use the SAP BTP Accounts Service API to export entitlement consumption data into your monitoring dashboard for proactive quota management.
Quarterly Business Reviews with SAP are the right forum to request quota increases, review CPEA credit burn rate, and adjust commercial models if needed.