> 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

# Change type of agreement

PATCH https://api-d.docusign.com/v1/accounts/{accountId}/agreements/{agreementId}/actions/change-type
Content-Type: application/json

Changes the type of an existing agreement to a different configured type.
The target type must exist in the account's agreement-types collection.
Upon successful change, the server recomputes the category based on the new type.


Reference: https://developers.docusign.com/docs/agreement-manager-api/reference/agreementmanager/agreements/changeagreementtype

## 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)
- `agreementId` (string, required)

### Body (application/json)

This endpoint expects a ChangeAgreementTypeRequest.

- `type` (string, required) — The name of the target agreement type from the agreement-types collection.

## Response

### 200

The agreement type has been successfully changed. Returns the updated agreement.

- `id` (string, optional) — Unique identifier of the agreement.
- `title` (string, optional) — Title of the agreement.
- `type` (string, optional) — The updated agreement type.
- `category` (string, optional) — Server-recomputed category based on new type.
- `status` (string, optional) — Current status of the agreement.
- `metadata` (ResourceMetadata, optional)
- `_links` (ChangeAgreementTypeResponseLinks, optional) — Hypermedia links for the agreement.
- `_actions` (ChangeAgreementTypeResponseActions, optional) — Available actions on the agreement.

## 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.

### 404 Not Found Error

Not Found - The requested resource could not be found.

- `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.

### 422 Unprocessable Entity Error

Unprocessable Entity - The specified type does not match any configured agreement type.

- `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.

### ChangeAgreementTypeResponseLinks

Hypermedia links for the agreement.

- `self` (ChangeAgreementTypeResponseLinksSelf, optional)
- `collection` (ChangeAgreementTypeResponseLinksCollection, optional)
- `agreement_types` (ChangeAgreementTypeResponseLinksAgreementTypes, optional)

### ChangeAgreementTypeResponseActions

Available actions on the agreement.

- `change_type` (ChangeAgreementTypeResponseActionsChangeType, optional)

### 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.

### ChangeAgreementTypeResponseLinksSelf

- `href` (string, optional)

### ChangeAgreementTypeResponseLinksCollection

- `href` (string, optional)

### ChangeAgreementTypeResponseLinksAgreementTypes

- `href` (string, optional)

### ChangeAgreementTypeResponseActionsChangeType

- `href` (string, optional)
- `method` (string, optional)
- `description` (string, optional)

## Examples

**Request**

```json
{
  "type": "MSA_DOCUMENT_DATA"
}
```

**Response**

```json
{
  "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "title": "Non-Disclosure Agreements (NDAs)",
  "type": "NonDisclosureAgreements",
  "category": "Services",
  "status": "active",
  "metadata": {
    "created_at": "2025-03-15T10:30:00.000Z",
    "created_by": "user@example.com",
    "modified_at": "2026-05-08T14:22:00.000Z"
  },
  "_links": {
    "self": {
      "href": "/v1/accounts/{accountId}/agreements/{agreementId}"
    },
    "collection": {
      "href": "/v1/accounts/{accountId}/agreements"
    },
    "agreement_types": {
      "href": "/v1/accounts/{accountId}/agreement-types"
    }
  },
  "_actions": {
    "change_type": {
      "href": "/v1/accounts/{accountId}/agreements/{agreementId}/actions/change-type",
      "method": "PATCH",
      "description": "Change the agreement type to a different configured type."
    }
  }
}
```