GET /customers/{customer-id}/customer_entitlements

Disabled by default

This endpoint is disabled by default. To enable it, contact Chargebee Support.

Retrieves a list of all customer_entitlement objects for the specified customer.
Tip

To retrieve subscription entitlements for a specific subscription, use the List subscription entitlements API.

Pagination {#pagination}

Pagination works differently for this endpoint than other List endpoints in the Billing API. In other list endpoints, the limit parameter sets the limit on the total number of objects returned in the response. However, in this endpoint, the limit parameter defines the number of features for which the customer_entitlement objects are returned. For example, if limit = n, then all customer_entitlement objects for up to n features are returned.

Let's look at an example:

Features {#foo1}

Consider the following three features defined in Chargebee for a project management software:

The feature objects are listed below:

Feature 1

{ "feature": { "id": "user-licenses", "name": "User Licenses", "description": "Maximum number of user licenses allowed.", "status": "active", "type": "quantity", "unit": "licence", "levels": [ { "name": "3 licences", "value": "3", "is_unlimited": false, "level": 1 }, { "name": "10 licences", "value": "10", "is_unlimited": false, "level": 2 }, { "name": "25 licences", "value": "25", "is_unlimited": false, "level": 3 }, { "name": "Unlimited licence", "value": "Unlimited", "is_unlimited": true, "level": 4 } ], "object": "feature" } }

Feature 2

{ "feature": { "id": "support-level", "name": "Support Level", "description": "Level of support offered.", "status": "active", "type": "custom", "levels": [ { "name": "Email", "value": "Email", "is_unlimited": false, "level": 1 }, { "name": "Chat", "value": "Chat", "is_unlimited": false, "level": 2 }, { "name": "Calls", "value": "Calls", "is_unlimited": false, "level": 3 } ], "object": "feature" } }

Feature 3

{ "feature": { "id": "xero-integration", "name": "Xero Integration", "description": "Integrate your Chargebee site with Xero", "status": "active", "type": "switch", "object": "feature" } }

Subscriptions

Now consider that a customer c1 has two subscriptions: s1 and s2.

Subscription entitlements

Consider the following subscription entitlements for s1 and s2:

Subscription idFeature NameEntitlement Value
s1User Licenses3
s1Support LevelEmail
s2User Licenses10
s2Support LevelChat
s2Xero Integrationtrue
API responses

API calls to this endpoint work as follows:

First call

Consider the first call with limit set to 2.
GET /api/v2/customers/c1/customer_entitlements?limit=2

Response

{ "list": [ { "customer_entitlement": { "customer_id": "c1", "subscription_id": "s1", "feature_id": "user-licenses", "value": "3", "name": "3 licences", "is_enabled": true, "object": "customer_entitlement" } }, { "customer_entitlement": { "customer_id": "c1", "subscription_id": "s2", "feature_id": "xero-integration", "value": "true", "name": "Available", "is_enabled": true, "object": "customer_entitlement" } }, { "customer_entitlement": { "customer_id": "c1", "subscription_id": "s2", "feature_id": "user-licenses", "value": "10", "name": "10 licences", "is_enabled": true, "object": "customer_entitlement" } } ], "next_offset": "2" }

Since limit = 2, the API returns the customer_entitlement for two features: User Licenses and Xero Integration. Three objects are returned, corresponding to rows 1, 3, and 5 in the table above.

Second call

We now retrieve the next page of the list in the second call by setting offset to the value of next_offset obtained from the previous response.
GET /api/v2/customers/c1/customer_entitlements?limit=2&offset=2

Response

{ "list": [ { "customer_entitlement": { "customer_id": "c1", "subscription_id": "s1", "feature_id": "support-level", "value": "Email", "name": "Email", "is_enabled": true, "object": "customer_entitlement" } }, { "customer_entitlement": { "customer_id": "c1", "subscription_id": "s2", "feature_id": "support-level", "value": "Chat", "name": "Chat", "is_enabled": true, "object": "customer_entitlement" } } ] }

Although limit = 2, the customer_entitlement objects for only one more feature, namely, Support Level are returned because the remaining were covered in the previous page. No more customer_entitlement objects remain for the customer, as indicated by the absence of the next_offset attribute in the response. The returned objects in this last call correspond to rows 2 and 4 in the table above.

Servers

Path parameters

Name Type Required Description
customer-id String Yes

Request headers

Name Type Required Description
chargebee-request-origin-device String No

The device from which the customer has made the request

chargebee-business-entity-id String No

If the site has multiple business entities, you can use this custom HTTP header to specify the business entity for which Chargebee should perform the operation.

chargebee-request-origin-user String No

The email address of your customer/user. Use this when the email address has only ASCII characters.

chargebee-request-origin-ip String No

The IP address of the customer where the request originated

chargebee-request-origin-user-encoded String No

The Base64-encoded email address of your customer/user. Use this if the email address has UTF-8 characters. When this header is provided, the header chargebee-request-origin-user is ignored.

Query parameters

Name Type Required Description
limit Integer No

The number of features for which to return customer_entitlement objects.

See also

Pagination for List customer entitlements.

Default value: 10

offset String No

Determines your position in the list for pagination. To ensure that the next page is retrieved correctly, always set offset to the value of next_offset obtained in the previous iteration of the API call.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.