> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Create custom provision definition

POST https://api-d.docusign.com/v1/accounts/{accountId}/custom-provisions
Content-Type: application/json

Creates a new custom provision definition for the specified account.


Reference: https://developers.docusign.com/docs/agreement-manager-api/reference/agreementmanager/customprovisions/createcustomprovision

## Authentication

- `Authorization` header (bearer token, required) — OAuth2 authentication. - Demo: - authorizationUrl: https://account-d.docusign.com/oauth/auth - tokenUrl: https://account-d.docusign.com/oauth/token - Production: - authorizationUrl: https://account.docusign.com/oauth/auth - tokenUrl: https://account.docusign.com/oauth/token

## Servers

- `https://api-d.docusign.com` (Demo server, default)
- `https://api.docusign.com` (Production server)

## Request

### Path parameters

- `accountId` (string, required)

### Body (application/json)

This endpoint expects a Provision.

- `key` (string, optional, nullable) — Stable machine identifier for the provision. Populated on GET and POST responses; ignored on POST request bodies.
- `label` (string, optional) — Human-readable display name for the provision. May contain spaces, punctuation, and mixed case.
- `category` (enum, optional) — The category a provision field belongs to.
  - Allowed values: `GENERAL`, `PAYMENT`, `FINANCIAL`, `TERMINATION`, `RENEWAL`, `LEGAL_AND_COMPLIANCE`, `OTHER`
- `type` (enum, optional) — The data type of the provision
  - Allowed values: `STRING`, `NUMBER`, `DATE`, `LIST`, `CURRENCY`
- `options` (list of string, optional) — Available options when type is LIST.
- `associations` (list of string, optional) — Associated resources or contexts for this provision.
- `metadata` (ResourceMetadata, optional)

## Response

### 201

The provision definition was created successfully.

- `key` (string, optional, nullable) — Stable machine identifier for the provision. Populated on GET and POST responses; ignored on POST request bodies.
- `label` (string, optional) — Human-readable display name for the provision. May contain spaces, punctuation, and mixed case.
- `category` (enum, optional) — The category a provision field belongs to.
  - Allowed values: `GENERAL`, `PAYMENT`, `FINANCIAL`, `TERMINATION`, `RENEWAL`, `LEGAL_AND_COMPLIANCE`, `OTHER`
- `type` (enum, optional) — The data type of the provision
  - Allowed values: `STRING`, `NUMBER`, `DATE`, `LIST`, `CURRENCY`
- `options` (list of string, optional) — Available options when type is LIST.
- `associations` (list of string, optional) — Associated resources or contexts for this provision.
- `metadata` (ResourceMetadata, optional)
- `response_metadata` (ResponseMetadata, optional) — Control information and metadata for the response.
- `_links` (PageLinks, optional) — Hypermedia controls (HATEOAS) for navigating between pages in a paginated collection of results. Links for the current page, next page, and previous page, with optional first and last page links.

## Errors

### 400 Bad Request Error

Bad Request - The request could not be understood or was missing required parameters.

- `type` (string, required) — A URI reference that identifies the problem type. When dereferenced, it should provide human-readable documentation for the problem type. Use "about:blank" when no specific type documentation exists.
- `title` (string, required) — A short, human-readable summary of the problem type. Should not change between occurrences.
- `status` (integer, required) — The HTTP status code generated by the origin server for this occurrence of the problem.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem (typically the request path).
- `errors` (list of ValidationError, optional) — An array of detailed validation error objects when multiple issues exist. Each entry identifies a specific field-level or parameter-level error.
- `request_id` (string, optional) — Unique identifier for the request, useful for tracing and debugging with support.
- `timestamp` (string, optional) — The timestamp when the error occurred.

### 401 Unauthorized Error

Unauthorized - Authentication is required and has failed or not been provided.

- `type` (string, required) — A URI reference that identifies the problem type. When dereferenced, it should provide human-readable documentation for the problem type. Use "about:blank" when no specific type documentation exists.
- `title` (string, required) — A short, human-readable summary of the problem type. Should not change between occurrences.
- `status` (integer, required) — The HTTP status code generated by the origin server for this occurrence of the problem.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem (typically the request path).
- `errors` (list of ValidationError, optional) — An array of detailed validation error objects when multiple issues exist. Each entry identifies a specific field-level or parameter-level error.
- `request_id` (string, optional) — Unique identifier for the request, useful for tracing and debugging with support.
- `timestamp` (string, optional) — The timestamp when the error occurred.

### 403 Forbidden Error

Forbidden - The request was valid, but you do not have permission to perform the action.

- `type` (string, required) — A URI reference that identifies the problem type. When dereferenced, it should provide human-readable documentation for the problem type. Use "about:blank" when no specific type documentation exists.
- `title` (string, required) — A short, human-readable summary of the problem type. Should not change between occurrences.
- `status` (integer, required) — The HTTP status code generated by the origin server for this occurrence of the problem.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem (typically the request path).
- `errors` (list of ValidationError, optional) — An array of detailed validation error objects when multiple issues exist. Each entry identifies a specific field-level or parameter-level error.
- `request_id` (string, optional) — Unique identifier for the request, useful for tracing and debugging with support.
- `timestamp` (string, optional) — The timestamp when the error occurred.

### 500 Internal Server Error

Internal Server Error

- `type` (string, required) — A URI reference that identifies the problem type. When dereferenced, it should provide human-readable documentation for the problem type. Use "about:blank" when no specific type documentation exists.
- `title` (string, required) — A short, human-readable summary of the problem type. Should not change between occurrences.
- `status` (integer, required) — The HTTP status code generated by the origin server for this occurrence of the problem.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem (typically the request path).
- `errors` (list of ValidationError, optional) — An array of detailed validation error objects when multiple issues exist. Each entry identifies a specific field-level or parameter-level error.
- `request_id` (string, optional) — Unique identifier for the request, useful for tracing and debugging with support.
- `timestamp` (string, optional) — The timestamp when the error occurred.

## Types

### ResourceMetadata

- `created_at` (string, optional, nullable) — Timestamp when the agreement document was created.
- `created_by` (string, optional, nullable) — User ID of the person who created the agreement document.
- `modified_at` (string, optional, nullable) — Timestamp when the agreement document was last modified.
- `modified_by` (string, optional, nullable) — User ID of the person who last modified the agreement document.
- `request_id` (string, optional) — Unique identifier for the request, useful for tracking and debugging.
- `response_timestamp` (string, optional) — The timestamp indicating when the response was generated.
- `response_duration_ms` (integer, optional) — The duration of time, in milliseconds, that the server took to process and respond to the request. This is measured from the time the server received the request until the time the response was sent.

### ResponseMetadata

Control information and metadata for the response.

- `request_id` (string, required) — Unique identifier for the request, useful for tracking and debugging.
- `response_timestamp` (string, required) — The timestamp indicating when the response was generated.
- `response_duration_ms` (integer, required) — The duration of time, in milliseconds, that the server took to process and respond to the request. This is measured from the time the server received the request until the time the response was sent.
- `page_limit` (integer, optional, default: 25) — The maximum number of items that can be returned in a single page.

### PageLinks

Hypermedia controls (HATEOAS) for navigating between pages in a paginated collection of results. Links for the current page, next page, and previous page, with optional first and last page links.

- `first` (PageLink, optional) — A URL that references a specific page in the pagination process. This is typically used for navigation between paginated results.
- `self` (PageLink, optional) — A URL that references a specific page in the pagination process. This is typically used for navigation between paginated results.
- `next` (PageLink, optional) — A URL that references a specific page in the pagination process. This is typically used for navigation between paginated results.

### ValidationError

A single field-level or parameter-level validation error.

- `code` (string, required) — A machine-readable error code identifying the specific validation failure.
- `message` (string, required) — A human-readable description of the validation error.
- `target` (string, optional) — The name of the field, parameter, or path segment that caused the error.

### PageLink

A URL that references a specific page in the pagination process. This is typically used for navigation between paginated results.

- `href` (string, required) — The URL for the referenced page.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "key": "string",
  "label": "string",
  "category": "GENERAL",
  "type": "STRING",
  "options": [
    "string"
  ],
  "associations": [
    "string"
  ],
  "metadata": {
    "created_at": "2024-01-15T09:30:00Z",
    "created_by": "string",
    "modified_at": "2024-01-15T09:30:00Z",
    "modified_by": "string",
    "request_id": "3f7c9e4b-851c-4f9b-89e7-123456789abc",
    "response_timestamp": "2024-10-17T14:30:00Z",
    "response_duration_ms": 150
  },
  "response_metadata": {
    "request_id": "3f7c9e4b-851c-4f9b-89e7-123456789abc",
    "response_timestamp": "2024-10-17T14:30:00Z",
    "response_duration_ms": 150,
    "page_limit": 10
  },
  "_links": {
    "first": {
      "href": "https://api.docusign.com/v1/accounts/12345678/agreements?limit=10&ctoken=abc123"
    },
    "self": {
      "href": "https://api.docusign.com/v1/accounts/12345678/agreements?limit=10&ctoken=abc123"
    },
    "next": {
      "href": "https://api.docusign.com/v1/accounts/12345678/agreements?limit=10&ctoken=abc123"
    }
  }
}
```