---
title: "Use this API to create an eSigning Request"
method: POST
path: "/v2.1/sign/request"
tags: ["Document Execution Platform"]
---

# Use this API to create an eSigning Request

`POST /v2.1/sign/request`

A POST call has to be made to this API with name,  email ID and/or Phone Number of the user(s). You can either pass a PDF file encoded in Base64 format or use a Template pre-configured in your account bypassing the Template ID and the values of the Template Keys. You can also use the optional parameters for additional Settings. On successful request creation, you get an ID & eSigning URL in response.

## Request body

- SignRequest
  - `file` File, required
    - `name` string, required — Use this to set the Name of file to be eSigned. **Allowed Characters are:** 1. **All Alphanumeric Characters** 2. **Special Characters:** + | - : () , _. [] &/ @ 3. **Maximum Character Length:** 255
    - `file` string, required — Pass the Base64 encoded file string value of the PDF file you want to get eSigned from the user. Maximum size of the file before encoding is 15 MB. Either file or templateId is required.
    - `templateId` string, required — Provide the ID of the Template from your Leegality Dashboard if you are using a Template to generate a document. Either templateId or file is required.
    - `fileUrl` string — The URL should be a GET API and the expected response code should be 200. The API response should be the stream of the PDF file.
    - `headers` Headers[]
      - `key` string — Pass this parameter value as you want the name of the key as a header.
      - `value` string — Pass this parameter value as you want the value of the key as a header.
    - `fields` TemplateFields[] — To be used if you are using a Template. Pass the values of the fields of the Template based on the sample JSON provided in your Dashboard for your Template. You can download the same from the Download Form Fields Button from your Template Editor.
      - `id` string — ID of the field
      - `name` string — Name of the field
      - `type` string — Type of the field like checkbox, radio, text, dropdown, textarea, select, and files.
      - `value` string — Value of the field
      - `checked` boolean — In case of checkbox and radio, if any option is pre-defined.
      - `multiple` boolean — In case of dropdown, if multiple options can be selected.
      - `width` string — In case of file (image), width of the image.
      - `height` string — In case of file (image), height of the image.
      - `required` boolean — If the field is mandatory or not.
    - `autoGroupedFieldsFill` boolean — Enables automatic population of grouped fields in HTML templates. Grouped fields are linked fields that share the same data across multiple locations in a template (e.g., collecting the same address in five different places). When creating grouped fields, you assign them to a common group (e.g., "Address Group"), and filling in one field automatically populates all others in that group. When set to `true`, you only need to pass **one field** from the group in your API request with its details and all other fields in the same group will be auto-populated with the same data. When set to `false` (default), you must explicitly pass **all grouped fields** individually in your request payload with their complete details. **Note:** This parameter only works with HTML templates and is currently in Beta. You can download the template field JSON for a template from the old dashboard by selecting **Download Form Fields v2:Beta** under ≡ option in text editor.
    - `allowFill` boolean — Pass 'true' if you want to allow user to fill the template fields before signing the document.
    - `additionalFiles` string[] — If you want to merge multiple files and send all as single invitation you can use this parameter to send additional PDF files. Maximum size of all files is upto 15 MB. In case of template these files will be appended to the selected template.
  - `invitees` Invitee[], required
    - `name` string, required — Name of the invitee.
    - `email` string, required — Valid email address of the invitee. Either email or phone is required.
    - `phone` string, required — Valid 10 digit mobile number of the invitee.
    - `emailNotification` boolean — Pass 'true' if you want to send the eSigning invitation and reminder notifications to be sent to invitee's email. Completion and signed notifications will be sent by default to all signers.
    - `phoneNotification` boolean — Pass 'true' if you want to send the eSigning invitation and reminder notifications to be sent to the invitee's phone. Completion and signed notifications will be sent by default to all signers.
    - `enableWhatsApp` boolean — Pass 'true' if you wish to send the Completion and signed notifications via WhatsApp to the invitee.
    - `whatsappNotification` boolean — Pass 'true' if you want to send the eSigning invitation and reminder notifications to be sent to the invitee's WhatsApp phone number. Completion and signed notifications will always be sent on WhatsApp by default if 'enableWhatsApp' key is true.
    - `expiryTime` integer — Pass the value of date in long format to set the absolute value of date & time for the expiration of invitation.
    - `appearances` Appearance[]
      - `x1` integer, required — Lower-left x-coordinate for the visual appearance of the digital signature on a specific page. Default x1 coordinate of the first signature is 20, default x1 coordinate for the second signature is 120.
      - `y1` integer, required — Lower-left y-coordinate for the visual appearance of the digital signature on a specific page. Default x1 coordinate of the first signature is 20, default x1 coordinate for the second signature is 20.
      - `x2` integer, required — Upper-right x-coordinate for the visual appearance of the digital signature on a specific page. Default x1 coordinate of the first signature is 120, default x1 coordinate for the second signature is 220.
      - `y2` integer, required — Upper-right y-coordinate for the visual appearance of the digital signature on a specific page. Default x1 coordinate of the first signature is 80, default x1 coordinate for the second signature is 80.
      - `page` string, required — This defines the Page Numbers on which the visual representation of the Digital Signature will be made with the above coordinates. Default value is 'A'. Possible values are 'A'- All Pages, 'F'- First Page, 'L'-Last Page, 'E'- Even Pages, 'O'- Odd Pages or comma separated Page numbers eg. '1,2,5'.
    - `fixedName` boolean — Pass 'true' if you do not want to allow the user to edit his Name before eSigning.
    - `noName` boolean — Pass 'true' if you do not want the user's provided Name to be printed in the visual representation of the Digital Signature.
    - `supportingDocuments` SupportDocument[]
      - `name` string — Pass this parameter if you want the user to upload a supporting document before being able to eSign. Pass the type of the Supporting Document in this parameter. For example, Board Resolution.
    - `viewSupportingDocuments` boolean — Pass 'true' if you want the invitee to be able to see the supporting documents uploaded by all the invitees.
    - `orgConfig` OrgConfig
      - `require` boolean — Pass true, if you want the signer to sign on behalf of an organisation.
      - `name` string — Pass the name of the organisation on whose behalf the signer will be eSigning. In case, this value is not passed but the value of the require key above is true, then the signer will be asked to enter his organisation's name before signing.
      - `sealType` string — You can mandate the user to use an Organisational Seal while signing on behalf of an organisation. The seal will be made based on the signer's organisation name- either passed by you or entered by him. Use the following values- AUTHORIZED_SIGNATORY_SEAL- Authorized Signatory Seal DIRECTOR_SEAL- Director Seal CUSTOM- Use this to ask the user to upload an image of the Seal
    - `enforceAuthentication` boolean — Pass true if you want the user to go through an OTP authentication before being able to access the document both before and after signing.
    - `sendDocumentRawUrl` boolean — Pass true if you want the user to receive a Raw Document URL along with the invite email.
    - `captureLocation` boolean — Pass true if you want to capture the GPS coordinates of the signer. If you are using our Front-end Mobile SDKs, please ensure that your own Application has the ability to access signer's GPS location.
    - `gpsConfig` GpsConfig — Location and Accuracy based restriction parameters can be configured here
      - `applyLocationRestriction` boolean — Pass this parameter as true to enable location-based restriction for the signer. The signer will be able to sign only if their device location is within the location specified in allowedLatitude, allowedLongitude and permissbleRadius.
      - `allowedLatitude` string — Pass the latitude value in decimal degrees format of the required location. This value will be used to assess if the signer location is within the restricted location.
      - `allowedLongitude` string — Pass the longitude value in decimal degrees format of the required location. This value will be used to assess if the signer location is within the restricted location.
      - `permissibleRadius` integer — Pass the permissible radius value in meters. This value, along with allowedLatitude and allowedLongitude, determines the restricted location area from which the Signer can sign.
      - `applyLocationAccuracy` boolean — Pass this parameter as true to enable accuracy-based restriction for the signer. At the time of signing, the signer's device's GPS accuracy will be checked against this value.
      - `accuracyThreshold` integer — Pass the allowed accuracy threshold here. The signer will not be able to sign if the captured accuracy of signer's device is more than the value specified in this parameter.
    - `capturePhoto` boolean — Pass true if you want to capture the live photo of the signer before the signature. If you are using our Front-end Mobile SDKs, please ensure that your application has access to the signer's camera.
    - `webhook` Webhook — Webhook should be configured in order to receive a POST API call to the URL provided when the invitee signs the document. A call is made to success URL in case of successful signing of the document and in case of signature failure, a call is made to the error URL. Note: In case of webhook version 2.5, the URL has to be passed for both success and error parameter in order to receive the corresponding call. Same webhook URL can also be passed in both success and error
      - `success` string — If provided, we will make POST calls to this URL after successful signing by the signer with the data as described in webhookData model below.
      - `failure` string — If provided, we will make POST calls to this URL after expiry or failure of the signature for the user as per the data described in errorWebhookdata model below.
      - `version` number — If provided, we will make call to specific version of webhook data. Valid values are '2.1', '2.2', '2.3', '2.5'.
      - `profileId` string — If provided, we will encrypt the webhook payload and/or add the additional custom headers as per the configured requirement against the provided Profile ID. To obtain a Profile ID for your requirement, please contact your Leegality customer success manager.
    - `eSignPriority` ESignPriority — eSign Priority should be configured to prioritise Aadhaar over other eSign types for the Signer. Order within the Aadhaar subtypes like OTP, BIO, IRIS, FACE can also be specified here along with their retry attempts. When configured, signer will only see Aadhaar eSign type with the subtype of highest order. Specified retry attempts of subtype need to be met before the next in order subtype option is shown to the Signer along with current options. Once all the retry attempts criteria are met, only the other eSign type options, in addition to Aadhaar, will be shown to the Signer.
      - `enableEsignPriority` boolean — Pass 'true' if you want to prioritise Aadhaar over other eSign types and/or if you want to specify order/sequence amongst the selected eSign subtypes (e.g., OTP, BIO, IRIS, FACE, etc.)
      - `eSignPriorityConfig` ESignPriorityConfig[]
        - `signatureType` string — Pass the value of the type of signature. Accepted values - AADHAAR
        - `eSignSubType` string — Pass the value of the subtype of signature. Accepted values - OTP, BIO, IRIS, FACE
        - `retryAttempts` integer — Pass the additional try attempt count for this subtype. Signing subtype option which is next in order will be shown only after the retry counts of this order are equal to this parameter. Accepted Values - 0, 1, 2, 3, 4, 5
        - `order` integer — Pass the sequence number for this subtype. Values passed in this parameter in the array will be sorted in ascending order to create the signing order. subtypes having same 'order' will appear in the same sequence simultaneously. Accepted Values - 1, 2, 3
    - `orderLevelRetryCount` boolean — Pass true if retries are to be counted collectively per order. Progression occurs upon reaching the maximum attempts set for any subtype within that order. To be passed as true only if eSign Priority is configured for this invitee
    - `baseUrl` string — Provide the URL where you want the user to be redirected on clicking the Back button during the transaction. (Not applicable if you are using our Front-end SDKs).
    - `redirectUrl` string — Provide the URL where you want the user to be redirected on completion/rejection of the transaction (Not applicable if you are using our Front-end SDKs). documentId will be appended to the URL on redirection.
    - `retry` integer — Use this parameter to define the number of re-attempts you want the user to take in case of Aadhaar eSign failure in authenticating Aadhaar Number. This field is not applicable for any other modes of eSign.
    - `enableFaceMatch` boolean — Pass true or false depending on whether face match is to be enabled or not, "capturePhoto" needs to be enabled to use Face Match.
    - `faceMatchRetryAttempts` integer — Use this parameter to define the number of Face Match retries allowed for the signer.
    - `faceMatchImage` string — Use this parameter to pass the base64 formatted string of the image to be compared with the photo captured during the signing journey.
    - `smartUserLivelinessConfig` SmartUserLiveliness
      - `enableSmartUserLiveliness` boolean — Set this parameter to `true` to activate Smart User Liveliness, or `false` to deactivate it. Note that to enable Smart User Liveliness, the parameter capturephoto must also be set to `true`.
      - `smartUserLivelinessRetryAttempts` integer — This parameter specifies the maximum number of retry attempts allowed for Smart User Liveliness by the signer. This parameter is mandatory.
    - `customConsent` string — You can pass any custom consent that the signer needs to agree to before eSigning. This will be in addition to Leegality's standard signature specific consent. Maximum length of custom consent can be 500 characters.
    - `signatures` SignatureType[] — Pass the type of signatures you want the user to choose from before eSigning.
      - `type` string, required — Pass the value of the type of signature. Accepted values are- AADHAAR, VIRTUAL_SIGN, DSC, OFFLINE_SIGN , QUICK_SIGN, DOC_SIGNER, AUTOMATED_SIGN, NESL_ESIGN, and VISUAL_SIGN.The value OFFLINE_SIGN refers to Cloud DSC.
      - `config` SignatureConfig
        - `authTypes` AuthenticationType[], required — This parameter works only with Aadhaar eSign. Accepted values are - OTP, BIO, IRIS, FACE. Use OTP for OTP authentication, BIO for biometric authentication, IRIS for iris authentication or all to allow the user to choose from OTP and Biometric and IRIS while signing.
        - `allowDraw` boolean — Pass 'true' if you want to allow the signer to draw their signature on the screen. Only applicable for virtual signature.
        - `allowChoose` boolean — Pass 'true' if you want to allow user to choose their signature from a set of auto generated signature images based on their name. Only applicable for virtual signature.
        - `affixFingerprint` boolean — Pass 'true' if you want to allow the signer to affix an image of their fingerprint, scanned using a supported biometric fingerprint detection device. Fingerprint detection works only on Windows and Android devices, and requires access to a supported biometric device. Biometric device required to capture fingerprint. Only applicable for virtual signature.
        - `allowQuickDraw` boolean — Pass 'true' for Quick Sign if you want to allow the signer to draw their signature on the screen. Only applicable for quick signature.
        - `allowQuickChoose` boolean — Pass 'true' for Quick Sign if you want to allow user to choose their signature from a set of auto generated signature images based on their name. Only applicable for quick signature.
        - `quickSignAffixFingerprint` boolean — Pass 'true' for Quick Sign if you want to allow the signer to affix an image of their fingerprint, scanned using a supported biometric fingerprint detection device. Fingerprint detection works only on Windows and Android devices, and requires access to a supported biometric device. Biometric device required to capture fingerprint. Only applicable for quick signature.
        - `quickSignPhysicalSignature` boolean — Pass `true` to allow the signer to upload an image of their physical signature.
        - `physicalSignature` boolean — Pass 'true' if you want to allow the signer to upload an image of their signature.
        - `f2fmode` boolean — Pass 'true' if you want to enable f2f mode in NESL eSign.
        - `verifyName` boolean — Pass 'true' if you want the document to be generated only if the provided Name matches with the Name contained in the Digital Signature Certificate. This parameter will only work for Aadhaar eSign, DSC or OFFLINE_SIGN. In case of mismatch, the transaction will be charged but the document will be rejected. Character case is ignored for verification.
        - `verifySmartName` boolean — Pass 'true' if you want the document to be generated only if the provided Name matches with the Name contained in the Digital Signature Certificate to a certain percentage specified in the account. This parameter will only work for Aadhaar eSign, DSC or OFFLINE_SIGN. In case of the match percentage being less than the saved value, the transaction will take the course saved in the account. Character case is ignored for verification.
        - `verifyPincode` string — Pass PINCODE if you want to verify the user's PIN Code with the PIN Code contained in the Digital Signature Certificate. This parameter will only work for Aadhaar eSign, DSC or OFFLINE_SIGN. The document will only be generated if the PIN Codes match. The parameter will be ignored if this field is not present in the Certificate.
        - `verifyState` string — Pass value of State if you want to verify the user's State with the value of State contained in the Digital Signature Certificate. This parameter will only work for Aadhaar eSign, DSC or OFFLINE_SIGN. The document will only be generated if the values of States match.The parameter will be ignored if this field is not present in the Certificate.
        - `verifyYob` integer — Pass YEAR OF BIRTH in DIGITS if you want to verify the user's Year of Birth with the Year of Birth contained in the Digital Signature Certificate. This parameter will only function in case of an Aadhaar eSign. The document will only be generated if the Year of Birth matches. In case the certificate does not have this value, this parameter will be ignored.
        - `verifyGender` string — Pass Gender value if you want to verify the user's Gender with the value contained in the Digital Signature Certificate issued.This parameter will only function in case of Aadhaar eSign. The document will only be generated if both the values match. Possible values are 'M' for Male, 'F' for Female and 'T' for Transgender. All values have to be in Capitals. In case the certificate does not have this value, the parameter will be ignored.
        - `verifyTitle` string — Pass the last 4 digits of the UID No. if you want to verify the user's identity as contained in the Digital Signature Certificate. This parameter only works with Aadhaar eSign or OFFLINE_SIGN (where the SignerID is created using Aadhaar XML). The document will only be generated if both the values match. In case, the value is not present in the certificate, this parameter will be ignored.
        - `removeSignatureVerificationDocument` boolean — Pass 'true' if you want to remove the signature verification document. This parameter will only work for Virtual eSign.
        - `signatureVerificationDocument` string — Pass the value of Signature verification document in Base64 format while creating a request. The same document will be used to verify signature against the signer's signature. This parameter works only with Virtual eSign.
        - `id` string — This parameter works only with Automated Signer. Pass the value of the Automated Virtual Sign ID or Automated Document Signer ID after obtaining the same from your Dashboard.
        - `passkey` string — This parameter works only with Automated Signer. Pass the value of the passkey for the corresponding Automated Signer Id passed above.
        - `allowVisualDraw` boolean — Pass `true` to allow the signer to draw their signature on the screen. Only applicable for VISUAL_SIGN.
        - `allowVisualChoose` boolean — Pass `true` to allow the signer to choose their signature from a set of auto-generated signature images based on their name. Only applicable for VISUAL_SIGN.
        - `visualSignAffixFingerprint` boolean — Pass `true` to allow the signer to affix an image of their fingerprint scanned using a supported biometric fingerprint detection device. Only applicable for VISUAL_SIGN. **Note:** Fingerprint detection is supported only on Windows and Android devices, and requires access to a compatible biometric device.
        - `visualSignPhysicalSignature` boolean — Pass `true` to allow the signer to upload an image of their physical signature. Only applicable for VISUAL_SIGN.
    - `userLiveliness` boolean — Pass true if you want to capture liveliness of the signer.
    - `isApprover` boolean — Pass true if you want to use this invitee as a approver transaction.
    - `requiresApproverOtp` boolean — Pass this parameter as false if you want to activate the non-otp flow for the invitee.
    - `recordApproverResponse` boolean — Pass true if you want to record the approver transaction in audit trail. This will only work when you enable the invitee as a approver transaction.
    - `twoFactorAuthentication` boolean — Pass true if you want to enable two factor authentication for the invitee.
    - `enableRejectDocument` boolean — Pass this parameter as "true" to allow signers to reject sign invitations in the signing journey. This is compatible with Aadhaar eSign, Secure Virtual Sign, DSC Sign, Offline Sign, Quick Sign & DocSigner.
    - `enableRejectMessage` boolean — Pass this parameter as "true" to mandate the invitee to share a message if they are rejecting the sign invitation. This parameter can be passed "true" only if enableRejectDocument is also set as "true".
    - `paymentCollectionEnabled` boolean — Pass this parameter as "true" to enable Leegality Payment Collect. This parameter can be passed as "true" only if Payment Collect is enabled for the organisation and a payment gateway acccount is linked with an admin's account.
    - `amount` string — Pass the amount (greater than Rs.10) to be collected from the signer. This parameter can be passed "true" only if paymentCollectionEnabled is also set as "true".
    - `message` string — Pass the message to be displayed to the user at the time of payment collect. This parameter will only be displayed to the user only if 'paymentCollectionEnabled' parameter is passed as true along with a valid value of 'amount' parameter.
    - `enableLanguage` boolean — Pass this parameter as true to enable the signer to select a language before starting the signing journey. An additional screen will be displayed to the user to select a language. The language of the signing journey will be basis of the language selected by the signer.
    - `defaultLanguage` boolean — Pass this parameter as true to enable a default Language for an Invitee. If this parameter is passed as true, a value for defaultLanguageSelect will have to be passed mandatorily. The signing journey will start in the Langauge as per the value passed in defaultLanguageSelect parameter.
    - `defaultLanguageSelect` string — Pass the language to be displayed in the signing journey for the invitee. Possible values are ENGLISH, HINDI, MARATHI, GUJARATI, BENGALI, MALAYALAM, TAMIL, TELUGU, KANNADA, ODIA. This parameter can be passed only if defaultLanguage parameter is set as "true".
    - `maskContactDetails` boolean — Pass this parameter as `true` to prevent the invitee from viewing other invitees' contact details (Name, Phone Number, and Email Address) during and after the signing process. By default, it is passed as `false` allowing the invitee to view the contact details of other invitees.
  - `neslData` Nesl
    - `documentDetail` NeslDocument
      - `loanNumber` string — The loan number associated with the debt. Mandatory for Individual, non-individual loans and eBG.
      - `sanctionNumber` string — The sanction number associated with the debt. Mandatory for Individual, non-individual loans and eBG.
      - `registrationType` string, required — Type of debt (Individual Loan, Non-Individual Loan, Non-lending or e-Bank Guarantee). Accepted values are- INDIVIDUAL_LOAN, NON_INDIVIDUAL_LOAN, non_lending, EBG
      - `state` string, required — The state in which stamp duty is being paid.
      - `branchName` string — The name of the branch granting the loan.
      - `branchAddress` string — The address of the branch granting the loan.
      - `dateOfSanction` string — The date on which the loan was sanctioned as per the lender's CBS. Mandatory for Individual and non-individual loans.
      - `emiAmount` string — Interest installment amount payable on the loan. Mandatory for Individual and non-individual loans.
      - `rateOfInterest` string — Rate of Interest on the loan. Mandatory for Individual and non-individual loans.
      - `sanctionAmount` string — The amount sanctioned by the financial creditor. Mandatory for Individual, non-individual loans and eBG.
      - `tenure` string — The tenure of the loan. Mandatory for Individual and non-individual loans.
      - `typeOfDebt` string — The type of loan (financial debt or operational debt). Mandatory for Individual, non-individual loans and eBG. Accepted values are- FINANCIAL, OPERATIONAL.
      - `accountClosedFlag` string — Whether the account is closed (yes, no, or assigned debt). Mandatory for Individual loans, non-individual loans and eBG Accepted values are- YES, NO, ASSIGNED.
      - `fundType` string — Whether the credit facility is funded or non funded. Mandatory for Individual, non-individual loans and eBG. Accepted values are- FUNDED, NON_FUNDED.
      - `sanctionCurrency` string — The currency in which the loan is denominated (INR or USD). Mandatory for Individual, non-individual loans and eBG. Accepted values are- INR, USD.
      - `creditSubtype` string — Whether the financial debt is created pursuant to a credit facility or the purchase of a property. Mandatory for Individual, non-individual loans and eBG. Accepted values are- CREDIT_FACILITY, PROPERTY_BUYER, GRANT
      - `facilityName` string — The name of the loan facility. Mandatory for Individual and non-individual loans.
      - `amountOverdue` string — The amount overdue on the loan.
      - `otherChargeAmount` string — Any other charges (if applicable).
      - `debtStartDate` string — The date on which the financial debt started.
      - `interestAmount` string — The amount of interest.
      - `oldDebtRefNo` string — The old debt reference number (applicable in case there is a change in the debt reference number).
      - `principalOutstanding` string — The outstanding principal amount.
      - `loanRemark` string — Loan remarks (if any).
      - `totalOutstandingAmount` string — Total outstanding amount.
      - `creditorBusinessUnit` string — The business unit of the creditor providing the debt (such as SME, Retail etc).
      - `drawingPower` string — The drawing power of the loan.
      - `daysPastDue` string — The number of days past due date.
      - `docRefNo` string — This parameter is applicable only for Non-Lending Flow. An alphanumeric document reference number can be added in this parameter which will be stored in the IU. Note- This is a mandatory parameter for Non-lending flow.
      - `expiryDateEbg` string — The expiry date of Bank Guarantee. Expected Format is "yyyy-MM-dd" and it is mandatory for eBG
      - `claimExpiryDate` string — The expiry date of Bank Guarantee Claim. Expected Format is "yyyy-MM-dd" and it is mandatory for eBG
      - `contractRefNo` string — Vendor Contract Reference Number
      - `vendorCode` string — Vendor Code
      - `portalId` string — Portal ID as assigned to the Creditor by NeSL
    - `stampData` NeslStampArray[]
      - `firstParty` string, required — The name of the first party (for the stamp paper).
      - `secondParty` string, required — The name of the second party (for the stamp paper).
      - `stampDutyAmount` string, required — The stamp duty amount.For the states of West Bengal, Maharashtra, Madhya Pradesh and Kerala, the stamp duty is calculated automatically based on considerationPrice and will override the value passed in this parameter, if there is a difference between the two.
      - `considerationPrice` string, required — The consideration price for the purposes of stamp duty.
      - `descriptionOfDocument` string, required — The description of the document for the purposes of stamp duty.
      - `stampDutyPaidBy` string, required — The name of the party paying the stamp duty.
      - `articleCode` string, required — Article code for payment of stamp duty.
      - `firstPartyPin` string — The pincode of the first party (for the stamp paper). This is mandatory for the states of Madhya Pradesh & West Bengal.
      - `secondPartyPin` string — The pincode of the second party (for the stamp paper). This is mandatory for the states of Madhya Pradesh & West Bengal.
      - `firstPartyOVDType` string — The OVD Type of the first party (for the stamp paper). This will be List of values. This is mandatory for the states of West Bengal. Accepted values are - PAN_CARD, DRIVING_LICENSE, VOTER_ID, PASSPORT, ANY_OTHER_OFFICIAL_ID.
      - `firstPartyOVDValue` string — The OVD Value of the first party (for the stamp paper). This is mandatory for the states of West Bengal.
      - `secondPartyOVDType` string — The OVD Type of the second party (for the stamp paper). This will be List of values. This is mandatory for the states of West Bengal.Accepted values are - PAN_CARD, DRIVING_LICENSE, VOTER_ID, PASSPORT, ANY_OTHER_OFFICIAL_ID.
      - `secondPartyOVDValue` string — The OVD Value of the second party (for the stamp paper). This is mandatory for the states of West Bengal.
      - `documentIndex` string — Pass the document number to which you want to attach the stamp corresponding to this parameter. Note- documentIndex = 1 corresponds to the key file in the object file, and documentIndex = 2 corresponds to the first element in the additionalFiles array, documentIndex = 3 corresponds to the second element in the additionalFiles array and so on.
    - `participants` NeslParticipants[]
      - `fullName` string, required — Full name of the Party.
      - `contactPersonName` string, required — Full name of the contact person of the Party.
      - `contactRelation` string, required — Relation of the party to the debt (Debtor, Guarantor, Co-obligant, etc.). Accepted values are- CREDITOR, DEBTOR, GUARANTOR, CO_OBLIGANT, SECURITY_PROVIDER, ASSIGNEE, BENEFICIARY
      - `emailId` string, required — Email ID of the signer.
      - `mobileNumber` string, required — Mobile Number of the signer.
      - `dob` string, required — Date of Birth/Incorporation.
      - `legalConstitution` string, required — Legal constitution of the signer (Resident Individual, Private Limited, Public Limited, LLP, Proprietorship, Partnership, Entity created by Statute, Trust, HUF, Coop Society, Association of Persons, Government, Self Help Groups, Non-Resident, Foreign Company). Accepted values are- RESIDENT_INDIVIDUAL, PUBLIC_LTD, PRIVATE_LTD, LLP, PROPRIETORSHIP, PARTNERSHIP, ENTITY_CREATED_BY_STATUTE, TRUST, HUF, CO_OP_SOCIETY, ASSOCIATION_OF_PERSONS, GOVERNMENT, SELF_HELP_GROUP, NON_RESIDENT, FOREIGN_COMPANY.
      - `alternateEmailId` string — Alternate email ID of the signer.
      - `alternateMobileNumber` string — Alternate mobile of the signer.
      - `officialDocType` string, required — Official Document Type (Pan Card, Driving License, Voter ID, Passport, Others). Accepted values are- PAN_CARD, DRIVING_LICENSE, VOTER_ID, PASSPORT, ANY_OTHER_OFFICIAL_ID.
      - `officialDocId` string, required — Official Document ID.
      - `registeredAddress` string — Registered address of the signer.
      - `registeredPinCode` string — PIN code of the registered address of the signer.
      - `designation` string — Designation of the signer (relevant in case of corporate entities).
      - `communicationAddress` string — Communication address of the signer.
      - `communicationAddressPinCode` string — PIN code of the communication address of the signer.
      - `cin` string — Corporate Identification Number (relevant in case of corporate entities).
      - `kin` string — KYC Identification Number of signer.
      - `partyType` string, required — Type of Party (Indian entity/ Resident Individual/ Foreign Entity/ NRI/Foreign Individual. Accepted values are- INDIAN_ENTITY, RESIDENT_INDIVIDUAL, FOREIGN_ENTITY, NRI.
      - `isIndividual` string — Whether the participant is an individual or not. It is mandatory for eBG Accepted values are- YES, NO.
      - `signatoryGender` string — Gender of the participant. Accepted values are- Male, Female.
      - `businessUnit` string — Business Unit Code of the party. It is an alphanumeric string with a maximum length of 30 characters. (Only for eBG)
    - `neslParties` NeslParties[]
      - `fullName` string, required — Full name of the Party.
      - `contactPersonName` string, required — Full name of the contact person of the Party.
      - `contactRelation` string, required — Relation of the party to the debt (Debtor, Guarantor, Co-obligant, etc.). Accepted values are- CREDITOR, DEBTOR, GUARANTOR, CO_OBLIGANT, SECURITY_PROVIDER, ASSIGNEE, BENEFICIARY
      - `emailId` string, required — Email ID of the signer.
      - `mobileNumber` string, required — Mobile Number of the signer.
      - `dob` string, required — Date of Birth/Incorporation.
      - `legalConstitution` string, required — Legal constitution of the signer (Resident Individual, Private Limited, Public Limited, LLP, Proprietorship, Partnership, Entity created by Statute, Trust, HUF, Coop Society, Association of Persons, Government, Self Help Groups, Non-Resident, Foreign Company). Accepted values are- RESIDENT_INDIVIDUAL, PUBLIC_LTD, PRIVATE_LTD, LLP, PROPRIETORSHIP, PARTNERSHIP, ENTITY_CREATED_BY_STATUTE, TRUST, HUF, CO_OP_SOCIETY, ASSOCIATION_OF_PERSONS, GOVERNMENT, SELF_HELP_GROUP, NON_RESIDENT, FOREIGN_COMPANY.
      - `alternateEmailId` string — Alternate email ID of the signer.
      - `alternateMobileNumber` string — Alternate mobile of the signer.
      - `officialDocType` string, required — Official Document Type (Pan Card, Driving License, Voter ID, Passport, Others). Accepted values are- PAN_CARD, DRIVING_LICENSE, VOTER_ID, PASSPORT, ANY_OTHER_OFFICIAL_ID.
      - `officialDocId` string, required — Official Document ID.
      - `registeredAddress` string — Registered address of the signer.
      - `registeredPinCode` string — PIN code of the registered address of the signer.
      - `designation` string — Designation of the signer (relevant in case of corporate entities).
      - `communicationAddress` string — Communication address of the signer.
      - `communicationAddressPinCode` string — PIN code of the communication address of the signer.
      - `cin` string — Corporate Identification Number (relevant in case of corporate entities).
      - `kin` string — KYC Identification Number of signer.
      - `partyType` string, required — Type of Party (Indian entity/ Resident Individual/ Foreign Entity/ NRI/Foreign Individual. Accepted values are- INDIAN_ENTITY, RESIDENT_INDIVIDUAL, FOREIGN_ENTITY, NRI.
      - `isIndividual` string — Whether the participant is an individual or not. It is mandatory for eBG Accepted values are- YES, NO.
      - `signatoryGender` string — Gender of the participant. Accepted values are- Male, Female.
    - `neslSecurities` NeslSecurities[]
      - `securityDescription` string, required — Description of security.
      - `assetsType` string, required — Type of asset forming security (Movable, Immovable, Intangible, Not Classified). Accepted values are- MOVABLE, IMMOVABLE, INTANGIBLE, NOT_CLASSIFIED.
      - `chargeType` string, required — Type of charge created (Mortgage, Hypothecation, Charge, Assignment, Pledge, Lien, Negative Lien, Guarantee, Others, Not Classified). Accepted values are- MORTGAGE, HYPOTHECATION, CHARGE, ASSIGNMENT, PLEDGE, LIEN, NEGATIVE_LIEN, GUARANTEE, OTHERS, NOT_CLASSIFIED.
      - `assetId` string, required — Asset ID of the Security (used internally by the lender).
      - `doc` string — Date of creation of security.
      - `dov` string — Date of valuation of security.
      - `cersaiId` string — CERSAI ID of security created.
      - `rocChargeId` string — ROC ID for security created.
      - `securityValue` string — Value of security.
  - `ccInvitees` CcInvitee[]
    - `name` string — Name of the CC.
    - `email` string — Valid email ID of the CC.
    - `invitation_notifications` boolean — This parameter is used if you want the CC to receive notifications when an invitation is activated, or when an invitation is resent, or when a reminder notification is sent. Pass 'false' to disable these notifications.
    - `signing_notifications` boolean — This parameter is used if you want the CC to receive notifications on the signing/rejection/approval of each invitation. Pass 'false' to disable these notifications.
    - `completion_notifications` boolean — This parameter is used if you want the CC to receive a notification on the completion of the document. Pass 'false' to disable these notifications.
    - `failure_notifications` boolean — This parameter is used if you want the CC to receive notifications on the occurrence of failure events such as “details mismatch”, “retry attempts exhausted” and “invitation time out”. Pass 'false' to disable these notifications.
    - `send_invitation_URL` boolean — Pass ‘true’ if you want the CC to receive invitationURLs corresponding to each of the invitees in the document. Note that in case of NeSL eSign, the invitationURL will not be shared. This parameter can be set as ‘true’ only if ‘invitation_notifications’ is also set as ‘true’.
    - `share_doc_audit_trail` boolean — Pass ‘true’ if you want the CC to receive the document and audit trail. The document and audit trail will be shared as a link in the email notifications sent to the CC, as well as in the form of attachments to the email sent on document completion. This parameter can be set as ‘true’ only if ‘completion_notifications’ is also set as ‘true’.
    - `record_audit_trail` boolean — Pass ‘true’ if you want the notifications shared with the CC to be recorded in the audit trail.
  - `irn` string — irn stands for Internal Reference Number. Use this value to set a custom Internal Reference Number to your document. You can later use the internal reference number to search for this document either through the Search API or your Dashboard. **Allowed Characters are:** 1. **All Alphanumeric Characters** 2. **Special Characters:** + | - : () , _. [] &/ @ 3. **Maximum Character Length:** 255
  - `folderId` string — folder id stands for the Unique ID of the folder obtained from your Dashboard. Pass this value in the Create API to add the document to a particular folder.
  - `expiryDays` integer — Can be used to define the timeout period after which an uncompleted transaction gets cancelled and reversed. -1 is for 45 minutes, 0 means same day (11:59 PM) , 1 stands for next day , 2 stands for 2 days and so on.
  - `requestSignOrder` boolean — Pass 'false' if you want to activate all the signing invitations for a particular document instantly. By default, the invitations for subsequent users are only activated once all the previous invitations to that document are eSigned. This will be mandatory in case you use and invitee as a approver transaction.
  - `enableMultiDocument` boolean — Pass this parameter as true to allow configuring stamps specific to documents while sending a document with NeSL eSign configured. If you pass this parameter as true, configure NeSL eStamps and map eStamps to documents, then NeSL eStamps will be attached just before its corresponding documents. To map eStamps with documents, you need to mandatorily pass a value for documentIndex key in the array of stampData. The documentIndex key accepts natural numbers starting from 1. Note that documentIndex = 1 corresponds to the key file in the object file, and documentIndex = 2 corresponds to the first element in the additionalFiles array, and so on.
  - `deleteOnComplete` boolean — Pass 'true' if you want the documents to be automatically deleted on completion after 7 days of completion. The URLs sent to all signers will also be put to auto-delete after 7 days of completion unless the signer expressly saves it in his account. (Please setup a webhookUrl in this case as deleted documents cannot be recovered).
  - `message` string — You can enter any customer message to send to the user which will be sent with the invitation. The message will also be displayed to the user on the signing page.
  - `stampSeries` string — Unique stamp series number to be passed in case you want to use stamp paper along with the document. Stamp series can be found in Leegality stamp dashboard. If stamp series and stamp group both are passed in the API stamp series will be given higher priority.
  - `multipleStampSeries` MultipleStampSeries[]
    - `stampSeries` string — Pass the unique series number of the stamp series whose stamp papers you want to use.
    - `seriesQuantity` string — The number of stamps you want to affix to the document. (Minimum Quantity = 1 and Maximum Quantity = 99)
  - `seriesGroup` string — Unique series group number to be passed in case you want to use stamp paper along with the document. Series group number can be found in Leegality stamp dashboard.
  - `stampValue` string — If you are using Series group stamp value is required. It signifies the value of stamp you want to use along with the document.
  - `revenueStampSeries` string — Unique stamp series number associated with a revenue stamp series to be passed in case you want to use a revenue stamp along with the document. Stamp series can be found in Leegality stamp dashboard. Revenue stamp series can be used along with either one of normal stamp series or stamp groups.
  - `revenueStampQuantity` string — Pass the number of revenue stamps you want to attach to the document. Note- If the parameter is not passed, default value of 1 will be considered.
  - `replicateStampCoordinates` boolean — If this value is passed as TRUE, then for each invitee, in appearance, ‘page’ = 1 will corresponding to the coordinates of all stamps. In this case, ‘page’ = 2 would be the 1st page of the document.
  - `attachments` Attachment[]
    - `file` string, required — Pass the base64 file string of the file you want to attach with the invitation. This attached file will be viewed to all signers.
    - `name` string, required — Pass the name of the file sent above.
    - `type` string, required — Pass the value of the type of document. For eg. original agreement, board resolution etc.
    - `contentType` string — Pass the value of the type of document. Accepted values are PDF, PNG, JPG and JPEG.
  - `sftp` boolean — Pass this value as TRUE to transfer the document, once completed via SFTP Note: The parameter sftpId needs to be passed with a correct value if sftp is passed as TRUE
  - `sftpId` string — This parameter requires the unique SFTP ID generated by Leegality for every SFTP configured in Department Level Settings of an admin account Note: The parameter sftp needs to be passed as TRUE in order to pass sftpId
  - `coordinate_picker` boolean — Pass this parameter as ‘true’ to receive a URL in return for setting custom eSign coordinates for all signers in the API call. The eSign coordinates that are set through the URL will be in addition to any coordinates you pass in the Invitees array (Invitees. appearances). Note 1: If you pass coordinate_picker as ‘true’ the response structure of the API call will be different. Note 2: Invitations in the API call will become active only after the eSign coordinates are set through the URL received in return. Note 3: If you pass coordinate_picker as ‘true’, we highly recommend that you also pass a URL in the “coordinate_picker_webhook” parameter to receive an update when the eSign coordinates are set and the invitations are active.
  - `coordinate_picker_webhook` string — Enter the URL where you wish to receive a webhook notification when the eSign coordinates are set and the invitations are active.
  - `coordinate_picker_webhook_profileId` string — If provided, custom headers mapped with the Profile ID would be added in the webhook Call. To obtain a Profile ID for your requirement, please contact your Leegality customer success manager. The structure of the webhook response can be found here: https://docs.leegality.com/webhooks_resources#tag/Coordinate-Picker-Webhook. This parameter is relevant only if you pass coordinate_picker as ‘true’.

## Response `200`

Default Response

- RequestApiResponse
  - `status` integer — if success then 1, else 0.
  - `messages` Message[]
    - `code` string — Message Code.
    - `message` string — Success/Error Message.
  - `data` RequestApiResponseData
    - `documentId` string — documentId is a unique Leegality ID created for every eSigning request.
    - `irn` string — Internal Reference Number.
    - `invitations` Request[] — This parameter is passed only if coordinate_picker parameter is set 'false'.
      - `name` string — Name of the invitee.
      - `email` string — Email of the invitee.
      - `phone` string — Phone Number of the invitee.
      - `signUrl` string — Invitee specfic URL unique to the request.
      - `active` boolean — Status of the URL.
      - `expiryDate` string — Expiry date of the signing invite - DD-MM-YYYY HH:MM:SS. Note: If expiryDate is null, expiry is set as 45 minutes.
    - `coordinatePickerURL` string — This parameter is passed only if coordinate_picker parameter is set 'true'. This is a URL that allows a user to set custom eSign coordinates for all signers. You can show this URL to users inside your application using our SDKs.

---

[API](https://skmtc.dev/leegality/apis/leegality-documentation-gateway.md) · [All operations](https://skmtc.dev/leegality/apis/leegality-documentation-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/leegality/leegality-documentation-gateway/revisions/0290f3a2dc73/schema)
