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

# Deliver the request to signers

> Customize Box Sign email, send your own notifications, or embed the signing client so signers can complete a request in your app.

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

After you
[create a sign request](/guides/box-sign/create-sign-request),
each signer needs a way to open the request. You can:

* Let Box email the signer, and optionally customize the subject and body
* Turn off Box email and send the signing link yourself
* Embed the signing client in your website

Set these options when you create the request. You cannot change them when you
[cancel a request](/guides/box-sign/cancel-sign-request).

## Customize Box email

By default, Box Sign emails each signer from a `box.com` address with a generic
subject and body. Set `email_subject` and `email_message` when you create the request to
change that copy. Both accept strings. `email_message` also accepts the following HTML
tags: `a`, `abbr`, `acronym`, `b`, `blockquote`, `code`, `em`, `i`, `ul`,
`li`, `ol`, `strong`. Custom styles are not allowed. A high text-to-HTML ratio can send the email to spam or cause clipping.

If you create the request from a template, the template can already define the subject and body.

Set `are_reminders_enabled` to `true` to email unsigned signers after 3, 8, 13, and 18 days. To resend immediately, see [Resend a Box Sign request](/guides/box-sign/resend-sign-request).

```sh theme={null}
curl -i -X POST "https://api.box.com/2.0/sign_requests" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "email_subject": "All we need is your signature to get started",
       "email_message": "Please review and sign the attached agreement.",
       "parent_folder": {
         "type": "folder",
         "id": "0987654321"
       },
       "source_files": [
         {
           "type": "file",
           "id": "123456789"
         }
       ],
       "signers": [
         {
           "email": "signer@example.com",
           "role": "signer"
         }
       ]
     }'
```

## Send your own notifications

To take over delivery, set both of these on the signer when you create the request:

1. `suppress_notifications` to `true`
2. `embed_url_external_user_id` to an ID you choose for that person

Box Sign then skips the default signing email for that signer. The response includes
`embed_url`, which you can put in your own email, push notification, or text message.

You can send the notice from your own domain and use any channel you already operate.
The signing log records that you suppressed Box notifications and
stores the signer ID you passed in `embed_url_external_user_id`.

<Note>
  When you suppress Box email, your organization is responsible for delivering
  every required notice to signers at the right time, with the right content, and
  in line with applicable law, including consent to the delivery method when that applies.
</Note>

```sh theme={null}
curl -i -X POST "https://api.box.com/2.0/sign_requests" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "parent_folder": {
         "type": "folder",
         "id": "0987654321"
       },
       "source_files": [
         {
           "type": "file",
           "id": "123456789"
         }
       ],
       "signers": [
         {
           "role": "signer",
           "email": "signer@example.com",
           "suppress_notifications": true,
           "embed_url_external_user_id": "1234"
         }
       ]
     }'
```

A simplified response includes both the `embed_url` and `iframeable_embed_url` for that signer:

```json theme={null}
{
  "id": "22a990ce-4e24-463b-b2f4-124820fe161a",
  "signers": [
    {
      "email": "signer@example.com",
      "role": "signer",
      "embed_url_external_user_id": "1234",
      "embed_url": "https://app.box.com/sign/document/22a990ce-4e24-463b-b2f4-124820fe161a/9331fe9ac85650d61645d4b0fd30fe3e0ebee7921720ab6ecca587654d3cd875/",
      "iframeable_embed_url": "https://app.box.com/embed/sign/document/22a990ce-4e24-463b-b2f4-124820fe161a/9331fe9ac85650d61645d4b0fd30fe3e0ebee7921720ab6ecca587654d3cd875/"
    }
  ]
}
```

Use `embed_url` in your own notification. Use `iframeable_embed_url` to embed the client, as described next.

## Embed the signing client

[Box Embed](/guides/embed/box-embed) lets signers complete the request inside your website, instead of leaving for Box Sign and coming back.

Pass `embed_url_external_user_id` for each signer when you create the request.
The response includes a unique `iframeable_embed_url` for that signer:

```text theme={null}
https://app.box.com/embed/sign/document/f14d7098-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4
```

Put that URL in an `iframe`:

```html theme={null}
<iframe
  src="https://app.box.com/embed/sign/document/f14d7098-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4"
  width="{pixels}"
  height="{pixels}"
  frameborder="0"
  allowfullscreen
  webkitallowfullscreen
  msallowfullscreen
></iframe>
```

For in-person signing on the requester's device, also set `is_in_person` to
`true`. For more information, see [In-person signing](/guides/box-sign/in-person-signing).

For more information on Box Embed, see [Embed Box elements programmatically](/guides/embed/box-embed#programmatically).

<RelatedLinks
  title="RELATED APIS"
  items={[
{ label: translate("Create Box Sign request"), href: "/reference/post-sign-requests", badge: "POST" }
]}
/>

<RelatedLinks
  title="RELATED GUIDES"
  items={[
{ label: translate("Create Box Sign request"), href: "/guides/box-sign/create-sign-request", badge: "GUIDE" },
{ label: translate("In-person signing"), href: "/guides/box-sign/in-person-signing", badge: "GUIDE" },
{ label: translate("Resend a Box Sign request"), href: "/guides/box-sign/resend-sign-request", badge: "GUIDE" }
]}
/>
