> 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

# Add envelope attachments

PUT https://demo.docusign.net/restapi/v2/accounts/{accountId}/envelopes/{envelopeId}/attachments
Content-Type: application/json

Supported attachment formats include: .asp, .bmp, .csv, .doc, .docm, .docx, .dot, .dotm, .dotx, .gif, .htm, .html, .jpeg, .jpg, .msg, .pdf, .png, .pot, .potx, .pps, .ppt, .pptm, .pptx, .ps, .rtf, .tif, .tiff, .txt, .wpd, .xls, .xlsm, .xlsx, .xml, and .xps. For more information on supported file formats please see [Supported File Formats](https://support.docusign.com/guides/ndse-user-guide-supported-file-formats).

Reference: https://developers.docusign.com/docs/esign-rest-api/v2/reference/envelopes/envelopeattachments/create

## Authentication

- `Authorization` header (required) — OAuth 2.0 access token (JWT or auth-code grant). Sent as Authorization: Bearer \<token>.

## 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.
- `envelopeId` (string, required) — The envelope's GUID. Eg 93be49ab-afa0-4adf-933c-f752070d71ec

### Body (application/json)

This endpoint expects an envelopeAttachmentsRequest.

- `attachments` (list of attachment, optional)

## Response

### 200

Successful response.

- `attachments` (list of envelopeAttachment, optional)

## Errors

### 400 Bad Request Error

Error encountered.

- `errorCode` (string, optional) — An error code associated with the error.
- `message` (string, optional) — A short error message.

## Types

### attachment

Contains information about an attachment.

- `accessControl` (string, optional)
- `attachmentId` (string, optional)
- `attachmentType` (string, optional) — Specifies the type of the attachment for the recipient.
- `data` (string, optional)
- `label` (string, optional)
- `name` (string, optional)
- `remoteUrl` (string, optional)

### envelopeAttachment

- `accessControl` (string, optional)
- `attachmentId` (string, optional)
- `attachmentType` (string, optional)
- `errorDetails` (errorDetails, optional) — This object describes errors that occur. It is only valid for responses, and ignored in requests.
- `label` (string, optional)
- `name` (string, optional)

### errorDetails

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

- `errorCode` (string, optional) — An error code associated with the error.
- `message` (string, optional) — A short error message.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "attachments": [
    {
      "accessControl": "string",
      "attachmentId": "string",
      "attachmentType": "string",
      "errorDetails": {
        "errorCode": "string",
        "message": "string"
      },
      "label": "string",
      "name": "string"
    }
  ]
}
```