---
schema_version: "1"
id: 376f3455769dc7db66278c3ccf0fdd1f994eed922cd2aebe8c69d0aaedae2099
title: CustomPermission
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_custompermission.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_custompermission.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: b90a1abe897be21c44b65bb3391f8a9b00dfcca05d5a3368024e1475b7c33056
description: Represents a permission that grants access to a custom feature. This type extends the Metadata metadata type and inherits its fullName field.
---
# CustomPermission

Represents a permission that grants access to a custom feature. This type extends the Metadata metadata type and inherits its fullName field.

## File Suffix and Directory Location

CustomPermission components have the suffix .customPermission and are stored in the customPermissions folder.

## Version

CustomPermission components are available in API version 31.0 and later.

## Special Access Rules

As of Summer ’20 and later, only users who have one of these permissions can access this object:

- View Setup and Configuration
- Manage Session Permission Set Activations
- Assign Permission Sets

## Fields

| Field Name | Field Type | Description |
| --- | --- | --- |
| connectedApp | string | The name of the connected app that’s associated with this permission. Limit: 80 characters. |
| description | string | The custom permission description. Limit: 255 characters. |
| isLicensed | boolean | Required. Read-only. Indicates whether the appropriate Salesforce license is required before accessing the permission (true) or not (false). |
| label | string | Required. The custom permission label. Limit: 80 characters. |
| requiredPermission | [CustomPermissionDependencyRequired\[\]](#CustomPermissionDependencyRequired) | Indicates which custom permissions are required by the parent custom permission. This field is available in API version 32.0 and later. |

## CustomPermissionDependencyRequired

CustomPermissionDependencyRequired determines whether a custom permission is required by the parent custom permission. A required custom permission must be enabled when its parent is enabled.

| Field Name | Field Type | Description |
| --- | --- | --- |
| customPermission | string | Required. The custom permission name. |
| dependency | boolean | Required. Indicates whether this custom permission is required by the parent custom permission (true) or not (false). |

## Declarative Metadata Sample Definition

The following is an example of a CustomPermission component.

<?xml version="1.0" encoding="UTF-8"?>
<CustomPermission xmlns="http://soap.sforce.com/2006/04/metadata">
   <connectedApp\>Acme</connectedApp\>
   <description\>Read and edit access for Acme accounts.</description\>
   <label\>Acme Account Full Access</label\>
   <requiredPermission\>
      <customPermission\>Acme\_Account\_Read</customPermission\>
      <dependency\>true</dependency\>
   </requiredPermission\>
</CustomPermission\>

The following is an example package.xml that references the previous definition, as well as other custom permissions that are associated with a connected app.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
   <types\>
      <members\>Acme</members\>
      <name\>ConnectedApp</name\>
   </types\>
   <types\>
      <members\>Acme\_Account\_Email\_Read</members\>
      <members\>Acme\_Account\_Phone\_Edit</members\>
      <members\>Acme\_Account\_Full\_Access</members\>
      <members\>Acme\_Account\_Read</members\>
      <name\>CustomPermission</name\>
   </types\>
   <types\>
      <members\>Acme\_Account\_Email\_Read</members\>
      <members\>Acme\_Account\_Phone\_Edit</members\>
      <members\>Acme\_Account\_Full\_Access</members\>
      <members\>Acme\_Account\_Read</members\>
      <name\>PermissionSet</name\>
   </types\>
   <version\>68.0</version\>
</Package\>

## Wildcard Support in the Manifest File

This metadata type supports the wildcard character \* (asterisk) in the package.xml manifest file. For information about using the manifest file, see [Deploying and Retrieving Metadata with the Zip File](https://developer.salesforce.com/docs/atlas.en-us.264.0.api_meta.meta/api_meta/file_based_zip_file.htm).