> 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 branding resource file

PUT https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/brands/{brandId}/resources/{resourceContentType}
Content-Type: multipart/form-data

This method updates a branding resource file.

You pass in the new version of the resource file in the `Content-Disposition` header. Example:

`Content-Disposition: form-data; name="file"; filename="DocuSign_SigningResource_4328673.xml"`

**Note:** Branding for either signing or sending must be enabled for the account (`canSelfBrandSend` , `canSelfBrandSign`, or both of these account settings must be **true**).

**Important:** Customizing resource files is an advanced branding configuration option which can significantly impact your account, and should be done only by someone with expertise in XML and HTML. The master resource files are subject to change without notice. If you customize your resource files, after each release, DocuSign recommends you review any changes and update your custom files as needed.

When you upload a modified resource file, only the elements that differ from the master resource file are saved as your resource file. Similarly, when you download your resource files, only the modified elements are included in the file.

Reference: https://developers.docusign.com/docs/esign-rest-api/reference/accounts/accountbrands/updateresource

## Authentication

- `Authorization` header (required) (prefixed with ` Bearer  `) — OAuth 2.0 access token (JWT or auth-code grant). Sent as `Authorization: Bearer <token>` on every request except `GET /v2.1` and `GET /service_information`, which are public discovery endpoints.

## Servers

- `https://demo.docusign.net/restapi` (Demo, default)
- `https://www.docusign.net/restapi` (Production)

## Request

### Path parameters

- `accountId` (string, required) — The external account number (int) or account ID Guid.
- `brandId` (string, required) — The ID of the brand.
- `resourceContentType` (string, required) — The type of brand resource file that you are updating. Valid values are: - `sending` - `signing` - `email` - `signing_captive`

### Body (multipart/form-data)

This endpoint expects a multipart form containing a file.

- `file.xml` (file, required) — Brand resource XML file.

## Response

### 200

Successful response.

- `createdByUserInfo` (userInfo, optional)
- `createdDate` (string, optional) — The date and time that the brand resource was created.
- `dataNotSavedNotInMaster` (list of string, optional) — Deprecated.
- `modifiedByUserInfo` (userInfo, optional)
- `modifiedDate` (string, optional) — The date on which this user record was last modified.
- `modifiedTemplates` (list of string, optional) — This property is returned in the response to the [AccountBrands::listResources](/docs/esign-rest-api/reference/accounts/accountbrands/listresources/) request. It contains a list of any email templates that have been modified to differ from the master resource files.
- `resourcesContentType` (string, optional) — The type of brand resource file. A brand uses a different resource file to control each of the following experiences: - Sending (`sending`) - Signing (`signing`) - Email messages (`email`) - Captive (embedded) signing (`signing_captive`) You can modify the default email messages and formats in these files and upload them to your brand to customize the user experience.
- `resourcesContentUri` (string, optional) — The URI for the brand resource file.

## Errors

### 400 Bad Request Error

Error encountered.

- `errorCode` (string, optional) — The code associated with the error condition.
- `message` (string, optional) — A brief message describing the error condition.

## Types

### userInfo

- `accountId` (string, optional) — The account ID associated with the envelope.
- `accountName` (string, optional) — The name on the account.
- `activationAccessCode` (string, optional) — Access code provided to the user to activate the account.
- `email` (string, optional) — The user's email address.
- `errorDetails` (errorDetails, optional) — This object describes errors that occur. It is only valid for responses, and ignored in requests.
- `ipAddress` (string, optional)
- `loginStatus` (string, optional) — When **true,** indicates that the user is logged in. This is a read-only property.
- `membershipId` (string, optional) — The user's membership ID.
- `sendActivationEmail` (string, optional) — This field is no longer supported for most accounts. To create an eSignature user without sending an activation email, use the Admin API by following [these steps](/docs/admin-api/how-to/create-active-user/).
- `uri` (string, optional) — A URI containing the user ID.
- `userId` (string, optional) — The ID of the user to access.
- `userName` (string, optional) — The name of the user.
- `userStatus` (string, optional) — Status of the user's account. One of: - `ActivationRequired` - `ActivationSent` - `Active` - `Closed` - `Disabled`
- `userType` (string, optional) — The type of user, for example `CompanyUser`.

### errorDetails

This object describes errors that occur. It is only valid for responses, and ignored in requests.

- `errorCode` (string, optional) — The code associated with the error condition.
- `message` (string, optional) — A brief message describing the error condition.

## Examples

**Request**

```json
{
  "file.xml": "<file: string>"
}
```

**Response**

```json
{
  "createdByUserInfo": {
    "accountId": "string",
    "accountName": "string",
    "activationAccessCode": "string",
    "email": "string",
    "errorDetails": {
      "errorCode": "string",
      "message": "string"
    },
    "ipAddress": "string",
    "loginStatus": "string",
    "membershipId": "string",
    "sendActivationEmail": "string",
    "uri": "string",
    "userId": "string",
    "userName": "string",
    "userStatus": "string",
    "userType": "string"
  },
  "createdDate": "string",
  "dataNotSavedNotInMaster": [
    "string"
  ],
  "modifiedByUserInfo": {
    "accountId": "string",
    "accountName": "string",
    "activationAccessCode": "string",
    "email": "string",
    "errorDetails": {
      "errorCode": "string",
      "message": "string"
    },
    "ipAddress": "string",
    "loginStatus": "string",
    "membershipId": "string",
    "sendActivationEmail": "string",
    "uri": "string",
    "userId": "string",
    "userName": "string",
    "userStatus": "string",
    "userType": "string"
  },
  "modifiedDate": "string",
  "modifiedTemplates": [
    "string"
  ],
  "resourcesContentType": "string",
  "resourcesContentUri": "string"
}
```