> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.sign.plus/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Attachment Requests

<Frame>
  <img className="block" src="https://mintcdn.com/alohi/KnYKDC0EFTC2S5WS/resources/guides/request-attachments.svg?fit=max&auto=format&n=KnYKDC0EFTC2S5WS&q=85&s=96571a2a358a6dc0a467c80ecac0408b" alt="Set Attachment Requests" width="733" height="314" data-path="resources/guides/request-attachments.svg" />
</Frame>

The **Attachment Request** feature allows you to request recipients to upload files when signing their documents. This is particularly useful when you need additional documentation such as ID cards, driving licenses, payment receipts, or other supporting documents as part of your signature request.

Attachment requests are configured at the envelope level.

Once you have created an envelope and set a recipient using signing steps, you will get the `recipient_id` that you can use to set up attachment placeholders.

## Set up attachment placeholders

First, configure what attachments you want to collect by <a href="/api-reference/endpoints/signplus/set-envelope-attachment-placeholders" target="_blank">setting up placeholders</a>:

```bash Set envelope attachment placeholders theme={null}
curl --request PUT \
--url https://restapi.sign.plus/v2/envelope/{envelope_id}/attachments/placeholders \
--header 'Authorization: Bearer <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"placeholders": [
  {
    "recipient_id": "<string>",
    "id": "<string>",
    "name": "<string>",
    "hint": "<string>",
    "required": <bool>,
    "multiple": <bool>
  }
]
}'
```

## Configure attachment settings

To configure attachment settings for a given envelope, check the <a href="/api-reference/endpoints/signplus/set-envelope-attachment-settings" target="_blank">set envelope attachment settings</a> endpoint documentation.

<Note>By default, all recipients can see files attached by others. Setting `visible_to_recipients` to `"false"` ensures that only the envelope sender can access the attachment files provided by all signers.</Note>

```bash Set attachment settings theme={null}
curl --request PUT \
--url https://restapi.sign.plus/v2/envelope/{envelope_id}/attachments/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"settings": {
  "visible_to_recipients": <bool>
}
}'
```

## Download uploaded attachments

Once recipients have uploaded their files, you can <a href="/api-reference/endpoints/signplus/get-envelope-attachment-file" target="_blank">download them</a>:

```bash Download attachment files theme={null}
curl --request GET \
  --url https://restapi.sign.plus/v2/envelope/{envelope_id}/attachments/{file_id} \
  --header 'Authorization: Bearer <api-key>'
```

On success, the API will return the requested attachment file.

## Using with templates

You can also <a href="/api-reference/endpoints/signplus/set-template-attachment-settings" target="_blank">set up attachment requests for templates</a>, making them reusable across multiple envelopes:

```bash Set template attachment placeholders theme={null}
 curl --request PUT \
  --url https://restapi.sign.plus/v2/template/{template_id}/attachments/placeholders \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
  "placeholders": [
    {
      "recipient_id": "<string>",
      "id": "<string>",
      "name": "<string>",
      "hint": "<string>",
      "required": <bool>,
      "multiple": <bool>
    }
  ]
}'
```

```bash Set template attachment settings theme={null}
  curl --request PUT \
  --url https://restapi.sign.plus/v2/template/{template_id}/attachments/settings \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "settings": {
    "visible_to_recipients": <bool>
  }
}'
```

<Card horizontal title="API Reference" icon="code" href="/api-reference/endpoints/signplus/set-envelope-attachment-placeholders">
  Get endpoint details
</Card>
