---
title: "Create Embedded Signature Request"
method: POST
path: "/signature_request/create_embedded"
tags: ["Signature Request"]
---

# Create Embedded Signature Request

`POST /signature_request/create_embedded`

Creates a new SignatureRequest with the submitted documents to be signed in an embedded iFrame. If form_fields_per_document is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents. Note that embedded signature requests can only be signed in embedded iFrames whereas normal signature requests can only be signed on Dropbox Sign.

## Request body

- SignatureRequestCreateEmbeddedRequest
  - `files` string[] — Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.
  - `file_urls` string[] — Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.
  - `signers` SubSignatureRequestSigner[] — Add Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.
    - `name` string, required — The name of the signer.
    - `email_address` string, email, required — The email address of the signer.
    - `order` integer, nullable — The order the signer is required to sign in.
    - `pin` string — The 4- to 12-character access code that will secure this signer's signature page.
    - `sms_phone_number` string — An E.164 formatted phone number. By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **NOTE:** Not available in test mode and requires a Standard plan or higher.
    - `sms_phone_number_type` 'authentication' | 'delivery' — Specifies the feature used with the `sms_phone_number`. Default `authentication`. If `authentication`, signer is sent a verification code via SMS that is required to access the document. If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email).
  - `grouped_signers` SubSignatureRequestGroupedSigners[] — Add Grouped Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.
    - `group` string, required — The name of the group.
    - `order` integer, nullable — The order the group is required to sign in. Use this instead of Signer-level `order`.
    - `signers` SubSignatureRequestSigner[], required — Signers belonging to this Group. **NOTE:** Only `name`, `email_address`, and `pin` are available to Grouped Signers. We will ignore all other properties, even though they are listed below.
      - `name` string, required — The name of the signer.
      - `email_address` string, email, required — The email address of the signer.
      - `order` integer, nullable — The order the signer is required to sign in.
      - `pin` string — The 4- to 12-character access code that will secure this signer's signature page.
      - `sms_phone_number` string — An E.164 formatted phone number. By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **NOTE:** Not available in test mode and requires a Standard plan or higher.
      - `sms_phone_number_type` 'authentication' | 'delivery' — Specifies the feature used with the `sms_phone_number`. Default `authentication`. If `authentication`, signer is sent a verification code via SMS that is required to access the document. If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email).
  - `allow_decline` boolean — Allows signers to decline to sign a document if `true`. Defaults to `false`.
  - `allow_reassign` boolean — Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`. **NOTE:** Only available for Premium plan.
  - `attachments` SubAttachment[] — A list describing the attachments
    - `instructions` string — The instructions for uploading the attachment.
    - `name` string, required — The name of attachment.
    - `required` boolean — Determines if the attachment must be uploaded.
    - `signer_index` integer, required — The signer's index in the `signers` parameter (0-based indexing). **NOTE:** Only one signer can be assigned per attachment.
  - `cc_email_addresses` string[] — The email addresses that should be CCed.
  - `client_id` string, required — Client id of the app you're using to create this embedded signature request. Used for security purposes.
  - `custom_fields` SubCustomField[] — When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests. Pre-filled data can be used with "send-once" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call. For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template.
    - `editor` string — Used to create editable merge fields. When the value matches a role passed in with `signers`, that role can edit the data that was pre-filled to that field. This field is optional, but required when this custom field object is set to `required = true`. **NOTE:** Editable merge fields are only supported for single signer requests (or the first signer in ordered signature requests). If used when there are multiple signers in an unordered signature request, the editor value is ignored and the field won't be editable.
    - `name` string, required — The name of a custom field. When working with pre-filled data, the custom field's name must have a matching merge field name or the field will remain empty on the document during signing.
    - `required` boolean — Used to set an editable merge field when working with pre-filled data. When `true`, the custom field must specify a signer role in `editor`.
    - `value` string — The string that resolves (aka "pre-fills") to the merge field on the final document(s) used for signing.
  - `field_options` SubFieldOptions — This allows the requester to specify field options for a signature request.
    - `date_format` 'MM / DD / YYYY' | 'MM - DD - YYYY' | 'DD / MM / YYYY' | 'DD - MM - YYYY' | 'YYYY / MM / DD' | 'YYYY - MM - DD', required — Allows requester to specify the date format (see list of allowed [formats](/api/reference/constants/#date-formats)) **NOTE:** Only available for Premium and higher.
  - `form_field_groups` SubFormFieldGroup[] — Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.
    - `group_id` string, required — ID of group. Use this to reference a specific group from the `group` value in `form_fields_per_document`.
    - `group_label` string, required — Name of the group
    - `requirement` string, required — Examples: `require_0-1` `require_1` `require_1-ormore` - Check out the list of [acceptable `requirement` checkbox type values](/api/reference/constants/#checkbox-field-grouping). - Check out the list of [acceptable `requirement` radio type fields](/api/reference/constants/#radio-field-grouping). - Radio groups require **at least** two fields per group.
  - `form_field_rules` SubFormFieldRule[] — Conditional Logic rules for fields defined in `form_fields_per_document`.
    - `id` string, required — Must be unique across all defined rules.
    - `trigger_operator` string, required — Currently only `AND` is supported. Support for `OR` is being worked on.
    - `triggers` SubFormFieldRuleTrigger[], required — An array of trigger definitions, the "if this" part of "**if this**, then that". Currently only a single trigger per rule is allowed.
      - `id` string, required — Must reference the `api_id` of an existing field defined within `form_fields_per_document`. Trigger and action fields and groups must belong to the same signer.
      - `operator` 'any' | 'is' | 'match' | 'none' | 'not', required — Different field types allow different `operator` values: - Field type of **text**: - **is**: exact match - **not**: not exact match - **match**: regular expression, without /. Example: - OK `[a-zA-Z0-9]` - Not OK `/[a-zA-Z0-9]/` - Field type of **dropdown**: - **is**: exact match, single value - **not**: not exact match, single value - **any**: exact match, array of values. - **none**: not exact match, array of values. - Field type of **checkbox**: - **is**: exact match, single value - **not**: not exact match, single value - Field type of **radio**: - **is**: exact match, single value - **not**: not exact match, single value
      - `value` string — **value** or **values** is required, but not both. The value to match against **operator**. - When **operator** is one of the following, **value** must be `String`: - `is` - `not` - `match` Otherwise, - **checkbox**: When **type** of trigger is **checkbox**, **value** must be `0` or `1` - **radio**: When **type** of trigger is **radio**, **value** must be `1`
      - `values` string[] — **values** or **value** is required, but not both. The values to match against **operator** when it is one of the following: - `any` - `none`
    - `actions` SubFormFieldRuleAction[], required — An array of action definitions, the "then that" part of "if this, **then that**". Any number of actions may be attached to a single rule.
      - `field_id` string — **field_id** or **group_id** is required, but not both. Must reference the `api_id` of an existing field defined within `form_fields_per_document`. Cannot use with `group_id`. Trigger and action fields must belong to the same signer.
      - `group_id` string — **group_id** or **field_id** is required, but not both. Must reference the ID of an existing group defined within `form_field_groups`. Cannot use with `field_id`. Trigger and action fields and groups must belong to the same signer.
      - `hidden` boolean, required — `true` to hide the target field when rule is satisfied, otherwise `false`.
      - `type` 'change-field-visibility' | 'change-group-visibility', required
  - `form_fields_per_document` SubFormFieldsPerDocumentBase[] — The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).) **NOTE:** Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types. * Text Field use `SubFormFieldsPerDocumentText` * Dropdown Field use `SubFormFieldsPerDocumentDropdown` * Hyperlink Field use `SubFormFieldsPerDocumentHyperlink` * Checkbox Field use `SubFormFieldsPerDocumentCheckbox` * Radio Field use `SubFormFieldsPerDocumentRadio` * Signature Field use `SubFormFieldsPerDocumentSignature` * Date Signed Field use `SubFormFieldsPerDocumentDateSigned` * Initials Field use `SubFormFieldsPerDocumentInitials` * Text Merge Field use `SubFormFieldsPerDocumentTextMerge` * Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge`
    - `document_index` integer, required — Represents the integer index of the `file` or `file_url` document the field should be attached to.
    - `api_id` string, required — An identifier for the field that is unique across all documents in the request.
    - `height` integer, required — Size of the field in pixels.
    - `name` string — Display name for the field.
    - `page` integer, nullable — Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.
    - `required` boolean, required — Whether this field is required.
    - `signer` string, required — Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field. **NOTE:** To set the value of the field as the preparer you must set this to `me_now` **NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.
    - `type` string, required
    - `width` integer, required — Size of the field in pixels.
    - `x` integer, required — Location coordinates of the field in pixels.
    - `y` integer, required — Location coordinates of the field in pixels.
  - `hide_text_tags` boolean — Enables automatic Text Tag removal when set to true. **NOTE:** Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information.
  - `message` string — The custom message in the email that will be sent to the signers.
  - `metadata` object — Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.
  - `signing_options` SubSigningOptions — This allows the requester to specify the types allowed for creating a signature and specify another signing options. **NOTE:** If `signing_options` are not defined in the request, the allowed types will default to those specified in the account settings. **NOTE:** If `force_advanced_signature_details` is set, allowed types has to be defined too.
    - `default_type` 'draw' | 'phone' | 'type' | 'upload', required — The default type shown (limited to the listed types)
    - `draw` boolean — Allows drawing the signature
    - `phone` boolean — Allows using a smartphone to email the signature
    - `type` boolean — Allows typing the signature
    - `upload` boolean — Allows uploading the signature
    - `force_advanced_signature_details` boolean — Turning on advanced signature details for the signature request
  - `subject` string — The subject in the email that will be sent to the signers.
  - `test_mode` boolean — Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.
  - `title` string — The title you want to assign to the SignatureRequest.
  - `use_text_tags` boolean — Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`.
  - `populate_auto_fill_fields` boolean — Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing. **NOTE:** Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature.
  - `expires_at` integer, nullable — When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.

## Response `200`

successful operation

- SignatureRequestGetResponse
  - `signature_request` SignatureRequestResponse, required — Contains information about a signature request.
    - `test_mode` boolean — Whether this is a test signature request. Test requests have no legal value. Defaults to `false`.
    - `signature_request_id` string — The id of the SignatureRequest.
    - `requester_email_address` string, nullable — The email address of the initiator of the SignatureRequest.
    - `title` string — The title the specified Account uses for the SignatureRequest.
    - `original_title` string — Default Label for account.
    - `subject` string, nullable — The subject in the email that was initially sent to the signers.
    - `message` string, nullable — The custom message in the email that was initially sent to the signers.
    - `metadata` object — The metadata attached to the signature request.
    - `created_at` integer — Time the signature request was created.
    - `expires_at` integer, nullable — The time when the signature request will expire unsigned signatures. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.
    - `is_complete` boolean — Whether or not the SignatureRequest has been fully executed by all signers.
    - `is_declined` boolean — Whether or not the SignatureRequest has been declined by a signer.
    - `has_error` boolean — Whether or not an error occurred (either during the creation of the SignatureRequest or during one of the signings).
    - `files_url` string — The URL where a copy of the request's documents can be downloaded.
    - `signing_url` string, nullable — The URL where a signer, after authenticating, can sign the documents. This should only be used by users with existing Dropbox Sign accounts as they will be required to log in before signing.
    - `details_url` string — The URL where the requester and the signers can view the current status of the SignatureRequest.
    - `cc_email_addresses` string[] — A list of email addresses that were CCed on the SignatureRequest. They will receive a copy of the final PDF once all the signers have signed.
    - `signing_redirect_url` string, nullable — The URL you want the signer redirected to after they successfully sign.
    - `final_copy_uri` string, nullable — The path where the completed document can be downloaded
    - `template_ids` string[], nullable — Templates IDs used in this SignatureRequest (if any).
    - `custom_fields` SignatureRequestResponseCustomFieldBase[], nullable — An array of Custom Field objects containing the name and type of each custom field. * Text Field uses `SignatureRequestResponseCustomFieldText` * Checkbox Field uses `SignatureRequestResponseCustomFieldCheckbox`
      - `type` string, required — The type of this Custom Field. Only 'text' and 'checkbox' are currently supported.
      - `name` string, required — The name of the Custom Field.
      - `required` boolean — A boolean value denoting if this field is required.
      - `api_id` string — The unique ID for this field.
      - `editor` string, nullable — The name of the Role that is able to edit this field.
    - `attachments` SignatureRequestResponseAttachment[], nullable — Signer attachments.
      - `id` string, required — The unique ID for this attachment.
      - `signer` string, required — The Signer this attachment is assigned to.
      - `name` string, required — The name of this attachment.
      - `required` boolean, required — A boolean value denoting if this attachment is required.
      - `instructions` string, nullable — Instructions for Signer.
      - `uploaded_at` integer, nullable — Timestamp when attachment was uploaded by Signer.
    - `response_data` SignatureRequestResponseDataBase[], nullable — An array of form field objects containing the name, value, and type of each textbox or checkmark field filled in by the signers.
      - `api_id` string — The unique ID for this field.
      - `signature_id` string — The ID of the signature to which this response is linked.
      - `name` string — The name of the form field.
      - `required` boolean — A boolean value denoting if this field is required.
      - `type` string
    - `signatures` SignatureRequestResponseSignatures[] — An array of signature objects, 1 for each signer.
      - `signature_id` string — Signature identifier.
      - `signer_group_guid` string, nullable — Signer Group GUID
      - `signer_email_address` string — The email address of the signer.
      - `signer_name` string, nullable — The name of the signer.
      - `signer_role` string, nullable — The role of the signer.
      - `order` integer, nullable — If signer order is assigned this is the 0-based index for this signer.
      - `status_code` string — The current status of the signature. eg: awaiting_signature, signed, declined.
      - `decline_reason` string, nullable — The reason provided by the signer for declining the request.
      - `signed_at` integer, nullable — Time that the document was signed or null.
      - `last_viewed_at` integer, nullable — The time that the document was last viewed by this signer or null.
      - `last_reminded_at` integer, nullable — The time the last reminder email was sent to the signer or null.
      - `has_pin` boolean — Boolean to indicate whether this signature requires a PIN to access.
      - `has_sms_auth` boolean, nullable — Boolean to indicate whether this signature has SMS authentication enabled.
      - `has_sms_delivery` boolean, nullable — Boolean to indicate whether this signature has SMS delivery enabled.
      - `sms_phone_number` string, nullable — The SMS phone number used for authentication or signature request delivery.
      - `reassigned_by` string, nullable — Email address of original signer who reassigned to this signer.
      - `reassignment_reason` string, nullable — Reason provided by original signer who reassigned to this signer.
      - `reassigned_from` string, nullable — Previous signature identifier.
      - `error` string, nullable — Error message pertaining to this signer, or null.
    - `bulk_send_job_id` string, nullable — The ID of the Bulk Send job which sent the signature request, if applicable.
  - `warnings` WarningResponse[] — A list of warnings.
    - `warning_msg` string, required — Warning message
    - `warning_name` string, required — Warning name

## Other responses

- `4XX` — failed_operation

---

[API](https://skmtc.net/hellosign/apis/dropbox-sign-api.md) · [All operations](https://skmtc.net/hellosign/apis/dropbox-sign-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hellosign/dropbox-sign-api/versions/2ea3f04008af/schema)
