# On behalf of

In BoldSign, you can perform several operations on behalf of another user. For this, you should add that user as your sender identity, and that user should approve your request. Once this is done, you can perform the actions like sending documents, downloading the audit log, revoking, reminding, changing the access code, etc. The documents you sent on behalf of another user will be displayed under the `Behalf Documents` section in the BoldSign application.

For more information, please refer to the {% customlink href="/sender-identities/create-identity/" text="Sender Identities" /%} article.

## Asynchronous processing

Learn more about asynchronous processing in the following section:

{% customlink href="/documents/send-document/#asynchronous-document-processing" text="Document Asynchronous processing" /%}

## Document not found

Learn more about document not found in the following section:

{% customlink href="/documents/send-document/#document-not-found" text="Document not found" /%}


## Send document on-behalf

{% post /%} {% path text="/v1/document/send " /%}

You can send documents to the signer on behalf of another user. When you send a document on behalf of another person, you will need to provide their email address in the `onBehalfOf` property. This API supports both `multipart/form-data` and `application/json` content types.

### Code snippet using multipart/form-data

{% codetab id="codetab1" %}

cURL

```shell
curl -X 'POST' \ 'https://api.boldsign.com/v1/document/send' \
     -H 'accept: application/json' \
     -H 'X-API-KEY: {your API key}' \
     -H 'Content-Type: multipart/form-data' \
     -F 'DisableExpiryAlert=false' \
     -F 'ReminderSettings.ReminderDays=3' \
     -F 'BrandId=' \
     -F 'ReminderSettings.ReminderCount=5' \
     -F 'EnableReassign=true' \
     -F 'Message=Please sign this.' \
     -F 'Signers={
          "Name": "David",
          "EmailAddress": "david@cubeflakes.com",
          "FormFields": [
            {
              "FieldType": "Signature",
              "PageNumber": 1,
              "Bounds": {
                "X": 100,
                "Y": 100,
                "Width": 100,
                "Height": 50
              },
              "IsRequired": true
            }
          ]
        }' \
      -F 'ExpiryDays=10' \
      -F 'EnablePrintAndSign=false' \
      -F 'AutoDetectFields=false' \
      -F 'OnBehalfOf=luthercooper@cubeflakes.com' \
      -F 'EnableSigningOrder=false' \
      -F 'UseTextTags=false' \
      -F 'SendLinkValidTill=' \
      -F 'Files=@agreement.pdf;type=application/pdf' \
      -F 'Title=Agreement' \
      -F 'HideDocumentId=false' \
      -F 'EnableEmbeddedSigning=false' \
      -F 'ExpiryDateType=Days' \
      -F 'ReminderSettings.EnableAutoReminder=false' \
      -F 'ExpiryValue=60' \
      -F 'DisableEmails=false' \
      -F 'DisableSMS=false'
```

C#

```csharp
var apiClient = new ApiClient("https://api.boldsign.com", "Your_API_Key");

var documentClient = new DocumentClient(apiClient);

List<FormField> formField = new List<FormField>
{
    new FormField(
        id: "Signature",
        type: FieldType.Signature,
        pageNumber: 1,
        bounds: new Rectangle(x: 50, y: 50, width: 200, height: 30))
};

var documentDetails = new SendForSign
{
    Title = "Agreement",
    Signers = new List<DocumentSigner>
    {
        new DocumentSigner(
            signerName: "David",
            signerType: SignerType.Signer,
            signerEmail: "david@cubeflakes.com",
            formFields: formField)
    },
    Files = new List<IDocumentFile>
    {
        new DocumentFilePath
        {
            ContentType = "application/pdf",
            FilePath = "YOUR_FILE_PATH",
        }
    },
    OnBehalfOf = "luthercooper@cubeflakes.com"
};

var documentCreated = documentClient.SendDocument(documentDetails);
```

Python

```python
import boldsign

configuration = boldsign.Configuration(host = "https://api.boldsign.com", api_key="YOUR_API_KEY")

with boldsign.ApiClient(configuration) as api_client:

    document_api = boldsign.DocumentApi(api_client)
	
    form_field = boldsign.FormField(
		fieldType="Signature",
		pageNumber=1,
		bounds=boldsign.Rectangle(x=50, y=50, width=200, height=25))

    document_signer = boldsign.DocumentSigner(
        name="David",
        emailAddress="david@cubeflakes.com",
        signerType="Signer",
        formFields=[form_field])

    send_for_sign = boldsign.SendForSign(
        title="Agreement",
        files=["YOUR_FILE_PATH"],
        signers=[document_signer],
        onBehalfOf="luthercooper@cubeflakes.com")

    document_created = document_api.send_document(send_for_sign)
```

PHP

```php
<?php require_once "vendor/autoload.php";

use BoldSign\Configuration;
use BoldSign\Api\DocumentApi;
use BoldSign\Model\{FormField, Rectangle, DocumentSigner, SendForSign, FileInfo};

$config = new Configuration();
$config->setHost('https://api.boldsign.com');
$config->setApiKey('YOUR_API_KEY');

$document_api = new DocumentApi($config);

$form_field = new FormField();
$form_field->setFieldType('Signature');
$form_field->setPageNumber(1);
$bounds = new Rectangle([100, 100, 100, 50]);
$form_field->setBounds($bounds);

$document_signer = new DocumentSigner();
$document_signer->setName('David');
$document_signer->setEmailAddress('david@cubeflakes.com');
$document_signer->setSignerType('Signer');
$document_signer->setFormFields([$form_field]);

$send_for_sign = new SendForSign();
$files = new FileInfo();
$files = 'YOUR_FILE_PATH';
$send_for_sign->setFiles([$files]);
$send_for_sign->setSigners([$document_signer]);
$send_for_sign->setOnBehalfOf('luthercooper@cubeflakes.com');
$send_for_sign->setTitle('Document sdk api');

$document_created = $document_api->sendDocument($send_for_sign);
```

Java

```java
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("https://api.boldsign.com");
client.setApiKey("YOUR_API_KEY");
       
DocumentApi documentApi = new DocumentApi(client);

FormField signatureField = new FormField();
signatureField.setFieldType(FormField.FieldTypeEnum.SIGNATURE);
signatureField.setPageNumber(1);
Rectangle bounds = new Rectangle().x(100f).y(100f).width(100f).height(50f);
signatureField.setBounds(bounds);

DocumentSigner signer = new DocumentSigner();
signer.setName("David");
signer.setEmailAddress("david@cubeflakes.com");
signer.setSignerType(DocumentSigner.SignerTypeEnum.SIGNER);
signer.setFormFields(Arrays.asList(signatureField));

SendForSign sendForSign = new SendForSign();
File file = new File("YOUR_FILE_PATH");  
sendForSign.setFiles(Arrays.asList(file));
sendForSign.setSigners(Arrays.asList(signer));
sendForSign.setOnBehalfOf("luthercooper@cubeflakes.com");
sendForSign.setTitle("Document SDK API");

DocumentCreated documentCreated = documentApi.sendDocument(sendForSign);
```

NodeJS

```js
import { DocumentApi, FormField, Rectangle, DocumentSigner, SendForSign } from "boldsign";
import * as fs from 'fs';

const documentApi = new DocumentApi("https://api.boldsign.com");
documentApi.setApiKey("YOUR_API_KEY");

const bounds = new Rectangle();
bounds.x = 50;
bounds.y = 50;
bounds.width = 200;
bounds.height = 25;

const formField = new FormField();
formField.fieldType = FormField.FieldTypeEnum.Signature;
formField.pageNumber = 1;
formField.bounds = bounds;

const documentSigner = new DocumentSigner();
documentSigner.name = "David";
documentSigner.emailAddress = "david@cubeflakes.com";
documentSigner.signerType = DocumentSigner.SignerTypeEnum.Signer;
documentSigner.formFields = [formField];

const files = fs.createReadStream("YOUR_FILE_PATH");
const sendForSign = new SendForSign();
sendForSign.title = "SDK Document Test case";
sendForSign.files = [files];
sendForSign.signers = [documentSigner];
sendForSign.onBehalfOf = "luthercooper@cubeflakes.com";

const documentCreated = documentApi.sendDocument(sendForSign);
```

{% /codetab %}

### Code snippet using application/json

{% codetab id="codetab2" %}

cURL

```shell
curl -X 'POST' \
  'https://api.boldsign.com/v1/document/send' \
  -H 'accept: application/json' \
  -H 'X-API-KEY: {your API key}' \
  -H 'Content-Type: application/json' \
  -d '{
    "DisableExpiryAlert": false,
    "ReminderSettings": {
        "ReminderDays": 5,
        "ReminderCount": 3,
        "EnableAutoReminder": true
    },
    "BrandId": "",
    "EnableReassign": true,
    "Message": "",
    "Signers": [
        {
            "Name": "Alex",
            "EmailAddress": "alexgayle@boldsign.dev",
            "SignerType": "Signer",
            "FormFields": [
                {
                    "Id": "string",
                    "Name": "string",
                    "FieldType": "Signature",
                    "PageNumber": 1,
                    "Bounds": {
                        "X": 50,
                        "Y": 50,
                        "Width": 125,
                        "Height": 25
                    },
                    "IsRequired": true
                }
            ],
            "Locale": "EN"
        }
    ],
    "ExpiryDays": 30,
    "EnablePrintAndSign": false,
    "AutoDetectFields": false,
    "OnBehalfOf": "luthercooper@cubeflakes.com",
    "EnableSigningOrder": false,
    "UseTextTags": false,
    "SendLinkValidTill": "",
    "Files": [
        "data:application/pdf;base64,JVBERi0xLjcKJcfs..."
    ],
    "Title": "Sampledocument",
    "HideDocumentId": false,
    "EnableEmbeddedSigning": false,
    "ExpiryDateType": "Days",
    "ExpiryValue": 60,
    "DisableEmails": false,
    "DisableSMS": false
  }'
```

{% /codetab %}

### Request body

{% nestedtable %}

- {% arguments name="Files" /%}{% batch datatype="array" /%}
- The files to be uploaded for sending signature request. `.pdf,` `.png,` `.jpg,` `.docx`, `.xlsx` and `.pptx` are supported file formats. The preferred file format is `.pdf.` You can upload up to 25 files. Each document may have a maximum of 1000 pages and must be no larger than 25 MB in size. 

  For a single file with file name, the Base64 format should be: `[{ "base64": "data:application/{{fileType}};base64,{{content}}", "fileName": "{{fileName}}" }]`.

  For multiple files with file name, the format should be: `[{ "base64": "data:application/{{fileType}};base64,{{content1}}", "fileName": "{{fileName}}" }, {...}]`.

---

- {% arguments name="Title" /%}{% batch datatype="string" /%}
- This is the title of the document that will be displayed in the BoldSign user interface as well as in the signature request email.

---

- {% arguments name="Message" /%}{% batch datatype="string" /%}
- A message for all the recipients. You can include the instructions that the signer should know before signing the document.

---

- {% arguments name="Signers" /%}{% batch datatype="array" /%}
- Details of the signers. One or more signers can be specified.
  {% nestedtable %}

  - {% arguments name="Name" /%}{% batch datatype="string" /%}
  - Name of the signer. This name will appear on all the emails, notifications, and audit files.

  ---

  - {% arguments name="EmailAddress" /%}{% batch datatype="string" /%}
  - Mail ID of the signer. This ID will appear on all the emails, notifications, and audit files.

  ---

  - {% arguments name="PrivateMessage" /%}{% batch datatype="string" /%}
  - When the specified signer proceeds to sign the document, a message appears. You can include the instructions that the signer should know before signing the document.

  ---

  - {% arguments name="AuthenticationType" /%}{% batch datatype="string" /%}
  - This is used to allow authentication for a specific signer. We have three types of authentication. They are `AccessCode`, `EmailOTP`, `SMSOTP` and `IdVerification`. The default value is `None`.

  ---
  - {% arguments name="AuthenticationCode" /%}{% batch datatype="string" /%}
  - The authentication access code that the signer must enter to access the document. This should be shared with the signer.
  ---
  - {% arguments name="EnableEmailOTP" /%}{% batch datatype="boolean" /%}
  - Enables the email OTP authentication. when this feature is enabled, the signer must enter the OTP received via email, to access the document.
  ---
  - {% arguments name="PhoneNumber" /%}{% batch datatype="object" /%}
  - When you set the authentication type to `SMSOTP` or select the delivery mode as `SMS` or `EmailAndSMS`, you can provide the phone number with the country code.
    {% nestedtable %}
     - {% arguments name="CountryCode" /%}{% batch datatype="string" /%}
     - This property represents the country code associated with the phone number.
    ---

    - {% arguments name="Number" /%}{% batch datatype="string" /%}
    - This property represents the actual phone number.

    {% /nestedtable %}

  ---

  - {% arguments name="IdentityVerificationSettings" /%}{% batch datatype="object" /%}
  - Settings for identity verification when `IdVerification` authentication type is enabled for the signer.
    {% nestedtable %}

    - {% arguments name="Type" /%}{% batch datatype="string" /%}
    - Customize the frequency of identity verification for signers accessing documents.
      - **EveryAccess**: Signers must undergo identity verification each time they access the document, even after completing their signature.
      - **UntilSignCompleted**: Identity verification is required until the signer completes their signature. After which, they will not need to undergo identity verification again.
      - **OncePerDocument**: Signers authenticate their identity only once, even if accessing the document multiple times.

    ---

    - {% arguments name="MaximumRetryCount" /%}{% batch datatype="integer" /%}
    - Specify the maximum number of verification attempts allowed for signers. Exceeding this limit restricts access to the document. Senders have the option to reset failed signers for additional attempts and manually review failed document uploads for approval or rejection. Maximum number of retries is 10.

    ---

    - {% arguments name="RequireLiveCapture" /%}{% batch datatype="boolean" /%}
    - Mandate signers to capture a live image of their identification document using their device camera. This verifies the document's authenticity and originality, preventing the use of photos or photocopies.

    ---

    - {% arguments name="RequireMatchingSelfie" /%}{% batch datatype="boolean" /%}
    - Uses advanced machine learning algorithms to ensure facial recognition accuracy, preventing the use of stolen identity documents by comparing the photo on the ID and the selfie image.

    ---

    - {% arguments name="NameMatcher" /%}{% batch datatype="string" /%}
    - Define the tolerance level for matching the signer's name with the name on the uploaded identification document. Options include:
      - **Strict**: Minimal variations are permitted, adhering to strict matching rules.
      - **Moderate**: Moderate matching rules allow for variations in the middle, prefix, and suffix parts of the name.
      - **Lenient**: Relaxed matching rules accommodate minor spelling mistakes for increased flexibility.

    ---

    - {% arguments name="HoldForPrefill" /%}{% batch datatype="boolean" /%}
    - Enable this option to hold the signer from signing the document, giving you the opportunity to prefill the signer's details. Once the prefill is completed, the signer can proceed with the signing process. The maximum hold time is 30 seconds; if you exceed this time limit, the signer will be redirected to the signing page.

    ---

    - {% arguments name="AllowedDocumentTypes" /%}{% batch datatype="array" /%}
    - Defines the list of document types from which the signer can upload any one as an identification document. The allowed types are `Passport`, `IDCard`, and `DriverLicense`.

    {% /nestedtable %}

  ---

  - {% arguments name="AuthenticationRetryCount" /%}{% batch datatype="Nullable int" /%}
  - Specifies the maximum number of allowed authentication attempts for the signer during the signing process. This applies to the following authentication methods:

    - `AccessCode`
    - `EmailOTP`
    - `SMSOTP`

    The retry count must be an integer between `1` and `10`. If this property is not specified, the value configured in the business profile will be used automatically. You can learn how to set it [here](https://support.boldsign.com/kb/article/19693/how-to-set-authentication-retry-attempts-in-boldsign). This property is optional.

  ---
  - {% arguments name="DeliveryMode" /%}{% batch datatype="string" /%}
  - This property allows you to specify the desired delivery mode for sending notifications. We have three types of delivery modes. They are `Email` , `SMS` and `EmailAndSMS`. The default value is `Email`.
  ---
  - {% arguments name="SignerType" /%}{% batch datatype="SignerType" /%}
  - Type of the signer. The values are `Signer,` `Reviewer,` and `InPersonSigner.`

  ---

  - {% arguments name="SignType" /%}{% batch datatype="enum" /%}
  - Specifies whether the recipient is an individual signer (`Single`) or a contact group signer (`Group`). If not specified, it defaults to `Single`.

  ---

  - {% arguments name="GroupId" /%}{% batch datatype="string" /%}
  - The identifier of the contact group to be used as the signer. You can obtain it from the Contact Groups API.

  ---

  - {% arguments name="HostEmail" /%}{% batch datatype="string" /%}
  - Mail ID of the host. It is applicable when the signerType is set to `InPersonSigner`.

  ---
  - {% arguments name="SignerRole" /%}{% batch datatype="string" /%}
  - The role of the signer, which was specified while creating the template.
  ---
  - {% arguments name="AllowFieldConfiguration" /%}{% batch datatype="boolean" /%}
  - This option enables the signer to add fields at their end while signing the document. If this option is set to `false`, the signer cannot add fields, and they must complete the assigned ones. By default, it is set to false.

  ---

  - {% arguments name="FormFields" /%}{% batch datatype="array" /%}
  - List of form fields associated with the signer.
    {% nestedtable %}

    - {% arguments name="Id" /%}{% batch datatype="string" /%}
    - The id of the form field. ID must start with a letter or an underscore and can only contain letters, digits, and underscores.

    ---

    - {% arguments name="Name" /%}{% batch datatype="string" /%}
    - Name of the form field.

    ---

    - {% arguments name="Type" /%}{% batch datatype="string" /%}
    - Type of the form field. The available values are `Signature`, `Initial`, `CheckBox`, `TextBox`, `Label`, `DateSigned`, `Image`, `Attachment`, `EditableDate`, `Hyperlink`, `Formula`, `Dropdown` and `Drawing`. The `Formula` field is only available in the beta version.

      **Note:**
      To add `Email`, `Name`, `Title`, and `Company` fields via API, use `TextBox` fields with the validation type set to `Regex` .

    ---

    - {% arguments name="PageNumber" /%}{% batch datatype="integer" /%}
    - Page number in the document, in which the form field has to be placed. The page number must be greater than zero.

    ---

    - {% arguments name="Bounds" /%}{% batch datatype="Rectangle" /%}
    - Position and size values of the form field to be placed.
      {% nestedtable %}

      - {% arguments name="X" /%}{% batch datatype="float" /%}
      - X-coordinate value to place the form field.

      ---

      - {% arguments name="Y" /%}{% batch datatype="float" /%}
      - Y-coordinate value to place the form field.

      ---

      - {% arguments name="Width" /%}{% batch datatype="float" /%}
      - Width of the form field. The width must be greater than zero.

      ---

      - {% arguments name="Height" /%}{% batch datatype="float" /%}
      - Height of the form field. The height must be greater than zero.

      {% /nestedtable %}

    ---

    - {% arguments name="IsRequired" /%}{% batch datatype="boolean" /%}
    - Decides whether this form field is required to be filled or not.

    ---

    - {% arguments name="IsMasked" /%}{% batch datatype="Nullable boolean" /%}
    - Decides whether this form field should be masked so that its value is hidden from other signers present in the document.

    ---

    - {% arguments name="TabIndex" /%}{% batch datatype="Nullable int" /%}
    - Assign tab index to control the flow of field focus while using `TAB` key navigation. Default to `null`, which denotes it will follow regular flow. The accepted range starts from `-1` to a valid `integer`.
    ---
    - {% arguments name="Label" /%}{% batch datatype="string" /%}
    - The label used to represent the value for a radio button. Also, can be used to prefill a radio button.
    ---

    - {% arguments name="Value" /%}{% batch datatype="string" /%}
    - Value to be displayed on the label form field.

    ---

    - {% arguments name="FontSize" /%}{% batch datatype="float" /%}
    - Size of the font. The default size font is **13.0** .

    ---

    - {% arguments name="Font " /%}{% batch datatype="string" /%}
    - Font family. The values are `Courier`, `Helvetica`, ` TimesNewRoman` and `NotoSans`. The default font family is `Helvetica`.

    ---

    - {% arguments name="FontHexColor" /%}{% batch datatype="string" /%}
    - Color of the font. The value should be a hex color code. Example - `#035efc`.

    ---

    - {% arguments name="IsBoldFont" /%}{% batch datatype="boolean" /%}
    - Decides whether the font should be in bold or not.

    ---

    - {% arguments name="IsItalicFont" /%}{% batch datatype="boolean" /%}
    - Decides whether the font should be in italic or not.

    ---

    - {% arguments name="IsUnderLineFont" /%}{% batch datatype="boolean" /%}
    - Decides whether the font should be underlined or not.

    ---

    - {% arguments name="LineHeight" /%}{% batch datatype="integer" /%}
    - Height of a line in the text. The default line height is **15.0** .

    ---

    - {% arguments name="CharacterLimit" /%}{% batch datatype="integer" /%}
    - Limits the number of characters in the text. The character limit value must be greater than zero.

    ---

    - {% arguments name="GroupName" /%}{% batch datatype="string" /%}
    - The group name of the form field. This field is required when the `fieldType` is set to `RadioButton.`

    ---

    - {% arguments name="PlaceHolder" /%}{% batch datatype="string" /%}
    - A hint text to be displayed in the textbox form field by default.

    ---

    - {% arguments name="ValidationType" /%}{% batch datatype="string" /%}
    - Type of validation for the textbox form field. The values are `Only Numbers`, `Regex`, `Currency`, `Email` and `None`. The default validation type is `None` .

    ---

    - {% arguments name="ValidationCustomRegex" /%}{% batch datatype="string" /%}
    - Value for regex validation. This is applicable when the `validationType` is set to `Regex`.

    ---

    - {% arguments name="ValidationCustomRegexMessage" /%}{% batch datatype="string" /%}
    - Description for regex validation. This message is displayed when the signer enters an invalid regex format value in the textbox form field.

    ---

    - {% arguments name="DateFormat" /%}{% batch datatype="string" /%}
    - Format of the date to be displayed on the date signed form field. The default value is `MM/dd/yyyy`. When `null` is provided, the value is inherited from the business profile settings of your account. 
    Accepted formats are 
      - `MM/dd/yyyy` (02/08/2024)
      - `dd/MM/yyyy` (08/02/2024)
      - `dd-MMM-yyyy` (08-Feb-2024)
      - `MMM-dd-yyyy` (Feb-08-2024)
      - `MMM dd, yyyy` (Feb 08, 2024)
      - `dd MMM, yyyy` (08 Feb, 2024)
      - `yyyy, MMM dd` (2024, Feb 08)
      - `yyyy/MM/dd` (2024/02/08)
      - `dd-MM-yyyy` (08-02-2024)
      - `MM-dd-yyyy` (02-08-2024)
      - `yyyy-MM-dd` (2024-02-08)

    ---

    - {% arguments name="TimeFormat" /%}{% batch datatype="string" /%}
    - Format of the time to be displayed on the date signed form field. When `null` is provided, the value is inherited from the business profile settings of your account. 
    Accepted formats are 
      - `hh:mm tt` (12:30 PM)
      - `h:mm tt` (2:45 PM)
      - `HH:mm` (14:30)
      - `H:mm` (9:15)
      - `hh:mm:ss tt` (12:30:15 PM)
      - `h:mm:ss tt` (2:45:30 PM)
      - `HH:mm:ss` (14:30:10)
      - `H:mm:ss` (9:15:40)
      - `None` (Disabled, no time will be displayed)

    ---

    - {% arguments name="ImageInfo" /%}{% batch datatype="object" /%}
    - Options to customize the image form field.
      {% nestedtable %}

      - {% arguments name="Title" /%}{% batch datatype="string" /%}
      - Title of the image form field.

      ---

      - {% arguments name="Description" /%}{% batch datatype="string" /%}
      - Description of the image form field.


      ---

      - {% arguments name="AllowedFileExtensions" /%}{% batch datatype="string" /%}
      - Controls the image formats that are allowed to upload on the image form field. The values are `.jpg` or `.jpeg,` `.svg,` `.png,` and `.bmp.`

      {% /nestedtable %}

    ---

    - {% arguments name="AttachmentInfo" /%}{% batch datatype="object" /%}
    - Options to customize the attachment form field.
      {% nestedtable %}

      - {% arguments name="Title" /%}{% batch datatype="string" /%}
      - Title of the attachment form field.

      ---

      - {% arguments name="Description" /%}{% batch datatype="string" /%}
      - Description of the attachment form field.

      ---

      - {% arguments name="AllowedFileTypes" /%}{% batch datatype="string" /%}
      - Controls the file formats that are allowed to upload on the attachment form field. The values are `PDF,` `Document,` and `Image.`

      {% /nestedtable %}

    ---

    - {% arguments name="EditableDateFieldSettings" /%}{% batch datatype="object" /%}
    - Options to customize the editable date form field.
      {% nestedtable %}

      - {% arguments name="DateFomat" /%}{% batch datatype="string" /%}
      - BoldSign API supports a variety of date-time formats, including:

          - `MM/dd/yyyy`
          - `dd/MM/yyyy`
          - `dd-MMM-yyyy`
          - `MMM-dd-yyyy`
          - `MMM dd,yyyy`
          - `dd MMM,yyyy`
          - `yyyy,MMM dd`
          - `yyyy/MM/dd`
          - `dd-MM-yyyy`
          - `MM-dd-yyyy`
          - `yyyy-MM-dd`

          Format of the date to be displayed on the date signed form field. The default value is `MM/dd/yyyy`.

      ---

      - {% arguments name="MinDate" /%}{% batch datatype="string" /%}
      - The minimum date that can be selected. The string should be in date-time format.
        The default ISO standard `YYYY-MM-DDTHH:MM:SSZ`.
        ##### Example Format 
        minDate : `2024-01-01T00:00:00Z`

        The date-time should be passed in UTC timezone using Z (e.g., `2024-01-01T00:00:00Z`).

        If using a specific timezone, provide the UTC offset:
          - IST (UTC+5:30): `2024-01-01T00:00:00+05:30`
          - PST (UTC-8:00): `2024-01-01T00:00:00-08:00`

      ---

      - {% arguments name="MaxDate " /%}{% batch datatype="string" /%}
      - The maximum date that can be selected. The string should be in date-time format.
        The default ISO 8601 standard `YYYY-MM-DDTHH:MM:SSZ`.
        ##### Example Format 
        maxDate : `2025-12-31T23:59:59Z`

        Pass the date-time in UTC timezone using Z (e.g., `2025-12-31T23:59:59Z`).

        For specific timezones, provide the UTC offset:
          - EST (UTC-5:00): `2025-12-31T23:59:59-05:00`
          - CET (UTC+1:00): `2025-12-31T23:59:59+01:00`

      ---
      - {% arguments name="TimeFormat" /%}{% batch datatype="string" /%}
      - Format of the time to be displayed on the editable date form field. When `null` is provided, the value is set to `none`.
        Accepted formats are
        - `hh:mm tt` (12:30 PM)
        - `h:mm tt` (2:45 PM)
        - `HH:mm` (14:30)
        - `H:mm` (9:15)
        - `hh:mm:ss tt` (12:30:10 PM)
        - `h:mm:ss tt` (2:45:20 PM)
        - `HH:mm:ss` (14:30:20)
        - `H:mm:ss` (9:15:10)
        - `None` (Disabled, no time will be displayed)

      {% /nestedtable %}

    ---

    - {% arguments name="HyperLinkText" /%}{% batch datatype="string" /%}
    - Text to be displayed for the hyperlink.

    ---

    - {% arguments name="DataSyncTag" /%}{% batch datatype="string" /%}
    - The value that can be specified on two or more textbox form fields to sync them.

    ---

    - {% arguments name="DropDownOptions" /%}{% batch datatype="array" /%}
    - The values that have to be displayed on the dropdown form field. One or more values can be specified.

    ---

    - {% arguments name="FormulaFieldSettings" /%}{% batch datatype="object" /%}
    - Options to configure formula field.
      {% nestedtable %}

      - {% arguments name="FormulaExpression" /%}{% batch datatype="string" /%}
      - This property is used to specify the formula as a string define the calculation or expression for the formula field.

      ---

      - {% arguments name="DecimalPrecision" /%}{% batch datatype="integer" /%}
      - This property is used to determines the decimal rounding precision for the computed result.

      {% /nestedtable %}

    ---

    - {% arguments name="ResizeOption" /%}{% batch datatype="enum" /%}
    - Defines how the Textbox form field resizes based on the entered text. The available values are `GrowHorizontally`, `GrowVertically`, `GrowBoth`, `FixedSize`, and `AutoResizeFont`.

    {% /nestedtable %}

  ---

  - {% arguments name="Language" /%}{% batch datatype="integer" /%}
  - Index of the language, in which the document signing pages and emails for the signer should render. The supported languages are `1-English,` `2-Spanish,` `3-German,` `4-French,` and `5-Romanian.` The default language is `1-English` .

  ---

  - {% arguments name="AuthenticationSettings" /%}{% batch datatype="object" /%}
  - Configure additional options for signers who are authenticated using Email OTP, SMS OTP, or Access Code. These settings allow you to control how often the signer must authenticate when accessing the document. And it applies only when the signer's `AuthenticationType` is set to `EmailOTP`, `SMSOTP`, or `AccessCode`. For `IdVerification`, use the `IdentityVerificationSettings` property instead.
    {% nestedtable %}

    - {% arguments name="AuthenticationFrequency" /%}{% batch datatype="string" /%}
    - Specifies how frequently the signer must complete authentication:
      - **EveryAccess**: The signer must authenticate every time they access the document, even after signing.
      - **UntilSignCompleted**: Authentication is required until the signer completes their signature. After signing, further authentication is not required.
      - **OncePerDocument**: The signer authenticates only once per document, regardless of how many times they access it.

    {% /nestedtable %}

  ---

  {% /nestedtable %}

---

- {% arguments name="CC" /%}{% batch datatype="array" /%}
- Mail ID of the CC recipients. One or more CC recipients can be specified.
  {% nestedtable %}

  - {% arguments name="EmailAddress" /%}{% batch datatype="string" /%}
  - Mail ID of the CC recipients.

  {% /nestedtable %}

---

- {% arguments name="EnableSigningOrder" /%}{% batch datatype="boolean " /%}
- Enables or disables the signing order. When enabled, signers must sign the document in the specified order and cannot sign in parallel. The default value is `false.`

---

- {% arguments name="ExpiryDays" /%}{% batch datatype="integer" /%}
- The number of days after which the document expires. The default value is `60` days.

---

- {% arguments name="ReminderSettings.EnableAutoReminder" /%}{% batch datatype="boolean" /%}
- Enables or disables the auto-reminder.

---

- {% arguments name="ReminderSettings.ReminderDays" /%}{% batch datatype="integer" /%}
- The number of days between each automatic reminder.

---

- {% arguments name="ReminderSettings.ReminderCount" /%}{% batch datatype="integer" /%}
- The number of times the auto-reminder should be sent.

---

- {% arguments name="DisableEmails" /%}{% batch datatype="boolean" /%}
- Disables the sending of document related emails to all the recipients. The default value is `false`.

---

- {% arguments name="DisableSMS" /%}{% batch datatype="boolean" /%}
- Disables the sending of document related SMS to all the recipients. The default value is `false`.

---

- {% arguments name="BrandId" /%}{% batch datatype="string" /%}
- You can customize the logo, colors, and other elements of the signature request emails and document signing pages to match your company branding. The ID of the existing brand can be obtained from the branding API and from the web app.

---

- {% arguments name="HideDocumentId" /%}{% batch datatype="boolean" /%}
- Decides whether the document ID should be hidden or not.

---

- {% arguments name="Labels" /%}{% batch datatype="array" /%}
- Labels (tags) are added to the document to categorize and filter the documents. One or more labels can be added.  Labels cannot contain whitespaces and must not exceed 255 characters.

---

- {% arguments name="FileUrls" /%}{% batch datatype="array" /%}
- The URL of the file must be publicly accessible. `.pdf`, `.png`, `.jpg`, `.docx`, `.xlsx` and `.pptx` are supported file formats. The preferred file format is `.pdf.` You can upload up to 25 files. Each document may have a maximum of 1000 pages and must be no larger than 25 MB in size.

---

- {% arguments name="SendLinkValidTill" /%}{% batch datatype="string" /%}
- Configures the expiration for the generated URL. A maximum of 180 days can be assigned. The string should be in date-time format.
---

- {% arguments name="UseTextTags" /%}{% batch datatype="Boolean" /%}
- When enabled, it will convert all the tags defined in the document to BoldSign form fields. The default value is `false`.

---

- {% arguments name="TextTagDefinitions" /%}{% batch datatype="array" /%}
- This can be used for long text tag handling.
  {% nestedtable %}

  - {% arguments name="DefinitionId" /%}{% batch datatype="string" /%}
  - The definition id of the text tag.
  ---

  - {% arguments name="Type" /%}{% batch datatype="FieldType" /%}
  - The type of the form field.

  ---

  - {% arguments name="SignerIndex" /%}{% batch datatype="integer" /%}
  - The signer index of the form field.

  ---

  - {% arguments name="IsRequired" /%}{% batch datatype="boolean" /%}
  - When disabled, the signer is not required to fill out the specific form field. The default value is `true.`

  ---

  - {% arguments name="IsMasked" /%}{% batch datatype="Nullable boolean" /%}
  - Decides whether this form field should be masked so that its value is hidden from other signers present in the document.

  ---

  - {% arguments name="PlaceHolder" /%}{% batch datatype="string" /%}
  - The placeholder of the form field.

  ---
  - {% arguments name="TabIndex" /%}{% batch datatype="Nullable int" /%}
  - Assign tab index to control the flow of field focus while using `TAB` key navigation. Default to `null`, which denotes it will follow regular flow. The accepted range starts from `-1` to a valid `integer`.
  ---
  - {% arguments name="Label" /%}{% batch datatype="string" /%}
  - The label used to represent the value for a radio button. Also, can be used to prefill a radio button.
  ---

  - {% arguments name="FieldId" /%}{% batch datatype="string" /%}
  - The field id of the form field.

  ---

  - {% arguments name="Font" /%}{% batch datatype="object" /%}
  - The font of the form field.
    {% nestedtable %}

    - {% arguments name="Name" /%}{% batch datatype="FontFamily" /%}
    - Font family. The values are `Courier`, `Helvetica`, ` TimesNewRoman` and `NotoSans`. The default font family is `Helvetica`.

    ---

    - {% arguments name="Color" /%}{% batch datatype="string" /%}
    - Color of the font.

    ---

    - {% arguments name="Size" /%}{% batch datatype="Nullable float" /%}
    - Size of the font.

    ---

    - {% arguments name="Style" /%}{% batch datatype="FontStyle" /%}
    - Style of the font. The values are `Regular`, `Bold`, `Italic` and `Underline`. The default font style is `Regular`.

    ---

    - {% arguments name="LineHeight" /%}{% batch datatype="Nullable int" /%}
    - Height of a line in the text. The default line height is **15.0** .

    ---

    - {% arguments name="IsBoldFont" /%}{% batch datatype="boolean" /%}
    - Decides whether the font should be in bold or not.

    ---

    - {% arguments name="IsItalicFont" /%}{% batch datatype="boolean" /%}
    - Decides whether the font should be in italic or not.

    ---

    - {% arguments name="IsUnderLineFont" /%}{% batch datatype="boolean" /%}
    - Decides whether the font should be underlined or not.

    {% /nestedtable %}

  ---

  - {% arguments name="Validation" /%}{% batch datatype="object" /%}
  - When we select the type as `TextBox,` the validation of the form field is required.
    {% nestedtable %}

    - {% arguments name="Type" /%}{% batch datatype="string" /%}
    - The validation type of the textbox form field. The available values are `None,` `NumbersOnly,` `EmailAddress,` `Currency,` and `CustomRegex.` The default value is `None.`

    ---

    - {% arguments name="Regex" /%}{% batch datatype="string" /%}
    - The custom regex of the textbox form field. When we set the `ValidationType` to `CustomRegex`, it will be required.

    ---

    - {% arguments name="RegexMessage" /%}{% batch datatype="string" /%}
    - Description for regex validation. This message is displayed when the signer enters an invalid regex format value in the text box field.

    {% /nestedtable %}

  ---

  - {% arguments name="Size" /%}{% batch datatype="object" /%}
  - This can be used to specify the form field's height and width.
    {% nestedtable %}

    - {% arguments name="Width" /%}{% batch datatype="float" /%}
    - The width of the form field. The width must be greater than zero.

    ---

    - {% arguments name="Height" /%}{% batch datatype="float" /%}
    - The height of the form field. The height must be greater than zero.

    {% /nestedtable %}

  ---

  - {% arguments name="DateFormat" /%}{% batch datatype="string" /%}
  - Format of the date to be displayed on the date signed form field. The default value is `MM/dd/yyyy`. When `null` is provided, the value is inherited from the business profile settings of your account. 
    Accepted formats are 
      - `MM/dd/yyyy` (02/08/2024)
      - `dd/MM/yyyy` (08/02/2024)
      - `dd-MMM-yyyy` (08-Feb-2024)
      - `MMM-dd-yyyy` (Feb-08-2024)
      - `MMM dd, yyyy` (Feb 08, 2024)
      - `dd MMM, yyyy` (08 Feb, 2024)
      - `yyyy, MMM dd` (2024, Feb 08)
      - `yyyy/MM/dd` (2024/02/08)
      - `dd-MM-yyyy` (08-02-2024)
      - `MM-dd-yyyy` (02-08-2024)
      - `yyyy-MM-dd` (2024-02-08)

  ---

  - {% arguments name="TimeFormat" /%}{% batch datatype="string" /%}
  - Format of the time to be displayed on the date signed form field. When `null` is provided, the value is inherited from the business profile settings of your account. 
    Accepted formats are 
      - `hh:mm tt` (12:30 PM)
      - `h:mm tt` (2:45 PM)
      - `HH:mm` (14:30)
      - `H:mm` (9:15)
      - `hh:mm:ss tt` (12:30:15 PM)
      - `h:mm:ss tt` (2:45:30 PM)
      - `HH:mm:ss` (14:30:10)
      - `H:mm:ss` (9:15:40)
      - `None` (Disabled, no time will be displayed)

  ---

  - {% arguments name="RadioGroupName" /%}{% batch datatype="string" /%}
  - The form field's group name, which is required when we set the type as `RadioButton`.

  ---

  - {% arguments name="Value" /%}{% batch datatype="string" /%}
  - The value of the form field.

  ---

  - {% arguments name="DropDownOptions" /%}{% batch datatype="array" /%}
  - The options of the dropdown form field.

  ---

  - {% arguments name="OffSet" /%}{% batch datatype="object" /%}
  - Specifies the offset positioning for the text tag, allowing adjustments to its location relative to the computed position. The computed value after value must remain within the page dimensions.
    {% nestedtable %}

    - {% arguments name="OffSetX" /%}{% batch datatype="double" /%}
    -  Adjusts the text tag's position horizontally (left or right).

    ---

    - {% arguments name="OffSetY" /%}{% batch datatype="double" /%}
    - Adjusts the text tag's position vertically (top or bottom).

    {% /nestedtable %}

  ---

    - {% arguments name="FormulaFieldSettings" /%}{% batch datatype="object" /%}
    - Options to configure formula field.
      {% nestedtable %}

      - {% arguments name="FormulaExpression" /%}{% batch datatype="string" /%}
      - This property is used to specify the formula as a string define the calculation or expression for the formula field.

      ---

      - {% arguments name="DecimalPrecision" /%}{% batch datatype="integer" /%}
      - This property is used to determines the decimal rounding precision for the computed result.

      {% /nestedtable %}

  ---

    - {% arguments name="ResizeOption" /%}{% batch datatype="enum" /%}
    - Defines how the Textbox form field resizes based on the entered text. The available values are `GrowHorizontally`, `GrowVertically`, `GrowBoth`, `FixedSize`, and `AutoResizeFont`.

  ---

  - {% arguments name="DataSyncTag" /%}{% batch datatype="string" /%} 
  - The value that can be specified on two or more textbox fields to sync them.

  ---

  - {% arguments name="TextAlign" /%}{% batch datatype="string" /%} 
  - Determines the horizontal alignment of text for the textbox and label form fields, and can be set to `Left`, `Center` or `Right`. The default of alignment of text is `Left`.

  ---

  - {% arguments name="TextDirection" /%}{% batch datatype="string" /%} 
  - Determines the text direction of text for the textbox and label form fields, and can be set to `LTR` or `RTL`. The default text direction is `LTR`.

  ---

  - {% arguments name="CharacterSpacing" /%}{% batch datatype="float" /%} 
  - Determines the character spacing of text for the textbox and label form fields. It can be set as a floating-point value.

  ---

  - {% arguments name="CharacterLimit" /%}{% batch datatype="integer" /%} 
  - Limits the number of characters in the text. The character limit value must be greater than zero.

  {% /nestedtable %}

---

- {% arguments name="EnablePrintAndSign" /%}{% batch datatype="boolean" /%}
- Allows the signer to reassign the signature request to another person. The default value is `true`.

---

- {% arguments name="DisableExpiryAlert" /%}{% batch datatype="array" /%}
- Disables the alert, which was shown one day before the expiry of the document.

---

- {% arguments name="FormGroups" /%}{% batch datatype="array" /%}
- Manages the rules and configuration of grouped form fields.
  {% nestedtable %}

  - {% arguments name="MinimumCount" /%}{% batch datatype="integer" /%}
  - The minimum number of items that must be selected in a form group. The minimum count value must be greater than zero.

  ---

  - {% arguments name="MaximumCount" /%}{% batch datatype="integer" /%}
  - The maximum number of items that must be selected in a form group. The maximum count value must be greater than zero.

  ---

  - {% arguments name="DataSyncTag" /%}{% batch datatype="string" /%}
  - The data sync tag of the form group.

  ---

  - {% arguments name="GroupNames" /%}{% batch datatype="array" /%}
  - The group names to which this form group rule should be applied.

  ---

  - {% arguments name="GroupValidation" /%}{% batch datatype="string" /%}
  - Specify the form group validation type, the available validations are `Minimum`, `Maximum`, `Absolute`, and `Range`.

  {% /nestedtable %}

---

- {% arguments name="DocumentInfo" /%}{% batch datatype="array" /%}
- Options to customize the information, like the title and description of the document for a particular signer.
  {% nestedtable %}

  - {% arguments name="Language" /%}{% batch datatype="integer" /%}
  - Language in which the document signing pages and emails for the signer should be rendered. The supported languages are `1-English,` `2-Spanish,` `3-German,` `4-French,` and `5-Romanian.` The default language is `1-English` .

  ---

  - {% arguments name="Title" /%}{% batch datatype="string" /%}
  - Title of the document.

  ---

  - {% arguments name="Description" /%}{% batch datatype="string" /%}
  - A message for the signer. You can include the instructions that the signer should know before signing the document.

  {% /nestedtable %}

---

- {% arguments name="OnBehalfOf" /%}{% batch datatype="string" /%}
- Mail ID of the user to send the document on behalf of them.

---

- {% arguments name="EnableAuditTrailLocalization" /%}{% batch datatype="boolean" /%}
- Enable localization for audit trail based on the signer's language. If `null` is provided, the value will be inherited from the Business Profile settings. Only one additional language can be specified in the signer's languages besides English.

---

- {% arguments name="DownloadFileName" /%}{% batch datatype="string" /%}
- Defines the custom format for the file name of downloaded document files. You can combine your own file name elements with the following predefined dynamic variables:
  - `title`
  - `documentId`  
  - `signername`  
  - `signername_last`  
  - `signername_order#1`  
  - `sendername`  
  - `completeddate`  
  - `status` 

  The `#1` in `signername_order#1` serves as a placeholder and should be replaced with an actual value, such as `signername_order#3`, to represent a 3rd signer's name. 

  The maximum file name length is 250 characters. If the generated name exceeds this limit, it will be truncated to fit within the limit. This property is optional; if not provided, the default format configured in the business profile will be used.

---

- {% arguments name="GroupSignerSettings" /%}{% batch datatype="object" /%}
- Configures whether contact groups can be used as signers for this document, and restricts which contact groups are allowed.
  {% nestedtable %}

  - {% arguments name="Enabled" /%}{% batch datatype="boolean" /%}
  - When set to `true`, contact groups can be used as signers.

  ---

  - {% arguments name="AllowedDirectories" /%}{% batch datatype="array" /%}
  - The list of allowed directory values. Only contact groups assigned to one of these directories can be used as signers.

  {% /nestedtable %}

{% /nestedtable %}

**Notes:**
1. Please note that you must use either the `fileUrls` or `files` parameter in a request, both cannot be used together.

2. For more details on OTP behavior, validity, and resend limits when using Email or SMS OTP for signing, please refer to this article: [OTP limitation and Restriction](https://support.boldsign.com/kb/article/19836/otp-limitations-and-restrictions-in-boldsign)

### Example response

***201 Created***

```json
{
  "documentId": "8f59295d-xxxx-xxxx-xxxx-e7dc88cfff2c"
}
```
