Skip to main content
PUT
/
features
/
{code}
Update a feature
curl --request PUT \
  --url https://api-m.paypal.com/v1/commerce/billing/features/{code} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "User Seats",
  "description": "Maximum 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"
    },
    {
      "code": "guest_access",
      "name": "Allow guest access",
      "value_type": "BOOLEAN"
    }
  ]
}'
{
  "code": "seats",
  "name": "User Seats",
  "description": "Maximum 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"
    },
    {
      "code": "guest_access",
      "name": "Allow guest access",
      "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.

Path Parameters

code
string
required

The unique identifier code of the feature. This is the code that was specified when the feature was created.

Body

application/json

Request payload for updating an existing feature. All fields are optional - only provided fields will be updated. Note that the feature code cannot be changed.

name
string

Name of the feature

Maximum length: 255
Example:

"Number of seats"

description
string

Description of the feature

Maximum length: 600
Example:

"Number of users allowed in the account"

privileges
object[]

Updated list of privileges for the feature. This replaces the entire privileges array - to add or remove individual privileges, include the complete desired list.

Response

Feature was successfully updated with the new configuration

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