> 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

# Update fields of agreement

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

This operation updates one or more fields of a specific agreement identified by its `agreementId`.
The operation supports partial updates, allowing clients to modify only the fields they need without affecting the rest of the agreement data.

The request body should contain a JSON payload with the fields to be updated. Only the fields provided in the request body will be modified; all other fields remain unchanged. The operation returns a `204 No Content` response on success.

This operation is essential for maintaining and evolving agreement data throughout the agreement's lifecycle, such as updating status, provisions, custom fields, or metadata based on business events or reviews.

### Use Cases:

- **Updating agreement status or review completion**: Mark agreements as reviewed, completed, or pending further action based on internal workflows.
- **Modifying provision details**: Update agreement terms, effective dates, expiration dates, or renewal conditions as circumstances change.
- **Managing custom attributes**: Add or modify user-defined fields and custom metadata to capture additional business context for the agreement.
- **Recording business events**: Update agreements to reflect changes such as amendments, renewals, or termination notices.
- **Synchronizing agreements across systems**: Update agreements in response to changes detected in external systems (e.g., ERP, CRM) to maintain data integrity.

### Key Features:

- **Partial Updates**: Modify only the fields you need; other agreement data remains intact.
- **Flexible Payload**: Accept JSON objects with any combination of updateable agreement fields, including provisions, metadata, and custom attributes.
- **Data Integrity**: Validates all input data to ensure compliance with agreement structure and data constraints.

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

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

- `id` (string, required) — The unique identifier for the agreement document.
- `title` (string, optional, nullable) — Title of the agreement document, summarizing its purpose.
- `file_name` (string, optional, nullable) — The file name of the agreement.
- `document_id` (string, optional, nullable) — The id the original agreement document.
- `type` (string, optional, nullable) — The type of agreement.
- `category` (string, optional, nullable) — Server-defined category based on the agreement type.
- `summary` (string, optional, nullable) — A detailed summary of the agreement's key provisions and scope.
- `status` (string, optional, nullable) — Current status of the agreement (e.g., PENDING, COMPLETE, INACTIVE)
- `review_status` (string, optional, nullable) — The review status of the agreement, indicating whether it has been complete or pending.
- `review_completed_at` (string, optional, nullable) — The date when the agreement extraction review was completed.
- `parties` (list of Party, optional, nullable) — A list of parties involved in the agreement.
- `provisions` (AgreementProvisions, optional) — "The conditions or rules written in a legal agreement. The set of possible provisions is determined by the agreement type."
- `custom_provisions` (map from string to any, optional) — “A dictionary of user-defined provisions that extend the standard provisions set for this agreement type. • Keys = names of additional terms supplied by the customer (e.g., early_termination_fee). • Values = the term’s value, expressed as a primitive JSON type (string, number, boolean, etc.). This object reflects the data model as-defined by the customer, including property names and data types. note - Changes to the underlying data model will be reflected dynamically in this object at runtime.
- `additional_custom_clm_data` (map from string to any, optional) — Custom attributes originating from CLM in this agreement.
- `additional_custom_esign_data` (map from string to any, optional) — Custom attributes originating from eSign in this agreement.
- `languages` (list of string, optional, nullable) — List of languages applicable to the agreement, identified using BCP-47 language codes.
- `source_name` (string, optional) — The name of the source system which created this agreement, e.g. eSign, CLM, or Salesforce.
- `source_id` (string, optional) — The ID of the resource in the source system associated with this agreement. For example, it could be an ID of the envelope in eSign.
- `source_account_id` (string, optional) — The Account ID of the source system who creates this entity, e.g. eSign Account ID
- `linked_data` (list of LinkedData, optional)
- `metadata` (ResourceMetadata, optional)
- `_links` (AgreementLinks, optional) — Hypermedia controls (HATEOAS) for agreement specific links to resources.
- `_actions` (AgreementActions, optional) — Available actions on the agreement. Actions are conditionally present based on the current state of the resource.
- `additional_user_defined_data` (map from string to any, optional, deprecated) — User-defined/custom attributes included in this agreement.

## Response

### 204

The agreement has been successfully updated. No content is returned.

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

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

### Party

A party is a person, group, or organization that is involved in a contract and has legally binding obligations and responsibilities. They also seek to benefit from the agreement.

- `id` (string, required) — Unique identifier for the party, mapped to the party entity reference.
- `name_in_agreement` (string, optional, nullable) — Name of the party as it appears in the agreement.

### AgreementProvisions

"The conditions or rules written in a legal agreement. The set of possible provisions is determined by the agreement type."

- `effective_date` (string, optional) — The date when the terms of the agreement start to apply and become legally binding.
- `expiration_date` (string, optional) — The date when the agreement ends and is no longer valid or enforceable.
- `execution_date` (string, optional) — The date when the agreement is signed by all parties, making it officially binding. This is not necessarily the same as the effective date.
- `term_length` (string, optional) — Overall duration of the agreement.
- `assignment_type` (string, optional) — The type of assignment rights in the agreement (e.g., transferability)
- `assignment_change_of_control` (string, optional) — Provisions related to changes in control of the assigning party
- `assignment_termination_rights` (string, optional) — Provisions for the termination of assignment rights
- `confidentiality_obligation_period` (string, optional) — A subset of ISO 8601 duration. Fractional or negative values are not supported.
- `governing_law` (string, optional) — The governing law clause identifies the substantive law that will govern the rights and obligations of the parties to the agreement.
- `jurisdiction` (string, optional) — A jurisdiction clause expressly sets out which courts or tribunals have the power to hear a dispute which arises under the agreement.
- `nda_type` (string, optional) — Type of non-disclosure agreement (e.g., unilateral, bilateral).
- `annual_agreement_value` (double, optional, nullable) — Total annual value of the agreement.
- `annual_agreement_value_currency_code` (enum, optional) — Currency code (e.g., USD, EUR) for the agreement's annual value.
  - Allowed values: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BOV`, `BRL`, `BSD`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHE`, `CHF`, `CHW`, `CLF`, `CLP`, `CNY`, `COP`, `COU`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MXV`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `USN`, `UYI`, `UYU`, `UZS`, `VEF`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XBA`, `XBB`, `XBC`, `XBD`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `XSU`, `XTS`, `XUA`, `XXX`, `YER`, `ZAR`, `ZMW`, `ZWL`
- `total_agreement_value` (double, optional, nullable) — Total value of the agreement.
- `total_agreement_value_currency_code` (enum, optional) — Currency code (e.g., USD, EUR) for the agreement's total value.
  - Allowed values: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BOV`, `BRL`, `BSD`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHE`, `CHF`, `CHW`, `CLF`, `CLP`, `CNY`, `COP`, `COU`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MXV`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `USN`, `UYI`, `UYU`, `UZS`, `VEF`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XBA`, `XBB`, `XBC`, `XBD`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `XSU`, `XTS`, `XUA`, `XXX`, `YER`, `ZAR`, `ZMW`, `ZWL`
- `payment_terms_due_date` (enum, optional, default: OTHER) — Terms specifying the payment due date, based on a defined number of days or other conditions.
  - Allowed values: `UNDER_SEVEN_DAYS`, `SEVEN_DAYS`, `FIFTEEN_DAYS`, `THIRTY_DAYS`, `FORTY_FIVE_DAYS`, `SIXTY_DAYS`, `NINETY_DAYS`, `OVER_NINETY_DAYS`, `ON_RECEIPT`, `OTHER`, `SILENT`
- `can_charge_late_payment_fees` (boolean, optional, nullable) — Indicates if late payment fees can be charged.
- `late_payment_fee_percent` (double, optional, nullable) — Percentage fee charged on late payments.
- `liability_cap_fixed_amount` (double, optional, nullable) — Maximum liability cap in the agreement
- `liability_cap_currency_code` (enum, optional) — Currency code for the liability cap amount.
  - Allowed values: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BOV`, `BRL`, `BSD`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHE`, `CHF`, `CHW`, `CLF`, `CLP`, `CNY`, `COP`, `COU`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MXV`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `USN`, `UYI`, `UYU`, `UZS`, `VEF`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XBA`, `XBB`, `XBC`, `XBD`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `XSU`, `XTS`, `XUA`, `XXX`, `YER`, `ZAR`, `ZMW`, `ZWL`
- `liability_cap_multiplier` (double, optional, nullable) — Multiplier applied to calculate the liability cap
- `liability_cap_duration` (string, optional) — Duration for the liability cap
- `price_cap_percent_increase` (float, optional, nullable) — Maximum allowed percentage increase in prices, limited between 0 and 100.
- `renewal_type` (string, optional, nullable) — Specifies the type of renewal (e.g., automatic, manual).
- `renewal_notice_period` (string, optional) — The period of time that a party is required to provide to indicate their intention to renew an agreement.
- `renewal_notice_date` (string, optional, nullable) — Calculated field based on renewal notice period. (agreement expiration date - renewal notice period duration)
- `auto_renewal_term_length` (string, optional) — The duration of the auto-renewal period.
- `renewal_extension_period` (string, optional) — The period an agreement has been extended after it has been renewed.
- `renewal_process_owner` (string, optional) — User ID of the person responsible for managing the renewal process
- `renewal_additional_info` (string, optional, nullable) — Additional information related to the renewal process.
- `termination_period_for_cause` (string, optional) — The specific duration that a party has to give notice before terminating the agreement due to a significant breach or violation of terms. This period allows the other party to address the cause or prepare for termination.
- `termination_period_for_convenience` (string, optional) — Specifies the required notice period that a party must provide before terminating the agreement for convenience, without cause, under the terms outlined in the contract.

### LinkedData

Identifies records in external systems which correlate with this agreement.

- `application_name` (string, optional)
- `object_name` (string, optional)
- `record_id` (string, optional)

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

### AgreementLinks

Hypermedia controls (HATEOAS) for agreement specific links to resources.

- `document` (Link, optional) — A URL that references a specific resource.
- `agreement_types` (Link, optional) — Link to the collection of configured agreement types for the account. Always present.

### AgreementActions

Available actions on the agreement. Actions are conditionally present based on the current state of the resource.

- `change_type` (AgreementActionsChangeType, optional) — Change the agreement type to a different configured type. Only present when the agreement type is mutable.

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

### Link

A URL that references a specific resource.

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

### AgreementActionsChangeType

Change the agreement type to a different configured type. Only present when the agreement type is mutable.

- `href` (string, optional) — The URL for the change-type action.
- `method` (string, optional) — The HTTP method for the action.
- `description` (string, optional) — Human-readable description of the action.

## Examples

**Request**

```json
{}
```