Skip to main content
POST
/
features
curl --request POST \
--url https://api-m.paypal.com/v1/commerce/billing/features \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"code": "seats"
}'
{
"code": "seats",
"name": "Number of seats",
"description": "Number of users allowed in the account",
"privileges": [
{
"code": "max",
"name": "Maximum seats",
"value_type": "INTEGER"
},
{
"code": "max_admins",
"name": "Maximum admin users",
"value_type": "INTEGER"
},
{
"code": "root",
"name": "Allow root user",
"value_type": "BOOLEAN"
}
],
"created_at": "2025-01-28T10:00:00Z"
}

Authorizations

Authorization
string
header
required

Use the /v1/oauth2/token endpoint to obtain an access token and pass it as a Bearer token in the Authorization header.

Body

application/json

Request payload for creating a new feature. Features represent entitleable capabilities that can be assigned to customers through plans. Core properties that define a feature - a capability or functionality that can be entitled to customers through plans or subscriptions

code
string
required

Unique identifier for the feature across your entire system. This code is used when creating entitlements and should represent the feature's function (e.g., 'seats', 'api-access', 'API_STORAGE'). Allows alphanumeric characters, underscores, and hyphens.

Maximum length: 255
Example:

"USER-SEATS"

name
string

Customer-facing name of the feature that clearly describes what functionality or capability it provides. This name appears in billing interfaces and customer portals.

Maximum length: 255
Example:

"Number of seats"

description
string

Detailed explanation of what this feature provides, its limitations, and how it affects the customer's experience.

Maximum length: 600
Example:

"Number of users allowed in the account"

privileges
object[]

List of configurable privileges that define what aspects of this feature can be customized when creating entitlements. Each privilege can have different values assigned in different plans or subscriptions. Can be empty if the feature is simply on/off.

Response

Feature was successfully created and is now available for use in plan entitlements

Complete feature object returned by the API, including all properties and server-generated fields like timestamps Core properties that define a feature - a capability or functionality that can be entitled to customers through plans or subscriptions

code
string
required

Unique identifier for the feature across your entire system. This code is used when creating entitlements and should represent the feature's function (e.g., 'seats', 'api-access', 'API_STORAGE'). Allows alphanumeric characters, underscores, and hyphens.

Maximum length: 255
Example:

"USER-SEATS"

created_at
string<date-time>
required

Timestamp indicating when this feature was first created in the system. Used for audit and tracking purposes. Date and time in ISO 8601 format.

Example:

"2023-10-01T12:00:00Z"

name
string

Customer-facing name of the feature that clearly describes what functionality or capability it provides. This name appears in billing interfaces and customer portals.

Maximum length: 255
Example:

"Number of seats"

description
string

Detailed explanation of what this feature provides, its limitations, and how it affects the customer's experience.

Maximum length: 600
Example:

"Number of users allowed in the account"

privileges
object[]

Privileges associated with this feature. Can be empty

I