Contract360 Workflow

Initiate Contract API

24min
introduction welcome to the initiate contract api, your gateway to effortlessly streamline and orchestrate the process of creating and managing contracts within your application this comprehensive guide will walk you through the seamless integration of this api, empowering you to initiate contracts, define signers, customize contract parameters, and efficiently manage callback urls with the power of this api at your fingertips, you can seamlessly orchestrate complex contract workflows while ensuring a smooth and user friendly experience for all parties involved by leveraging the initiate contract api, you can easily upload your contract files, specify signer details, define callback urls, and even customize various aspects of the contract to align with your specific requirements the api harnesses the capability to dynamically generate signing urls for each signer, providing a direct and secure path for individuals to engage with and sign the contract digitally whether you're a developer looking to enhance your application's contract management capabilities or a business seeking a sophisticated and streamlined way to engage signers, the initiate contract api offers a powerful solution that seamlessly integrates into your existing infrastructure join us as we delve into the details of how to leverage the initiate contract api to empower your application with the ability to effortlessly initiate, manage, and facilitate the signing of contracts, ensuring a frictionless and secure contract execution process for all stakeholders involved let's embark on this journey to revolutionize the way contracts are managed and executed within your ecosystem authentication api authentication is a crucial security process that ensures authorized access to an application programming interface (api) it involves validating the identity of users or systems seeking to interact with the api please use the access token shared with you by your assigned signzy's csm please set the value of the key authorization in the headers to the access token , while making an api call in this way, signzy's system will be able to authenticate you and you will be able to make a successful api call api details the details of the api can be found here sample curl pre production curl location 'https //api preproduction signzy app/api/v3/contract/initiate' \\ \ header 'authorization ' \\ \ header 'content type application/json' \\ \ header 'x uniquereferenceid ' \\ \ data '{ "pdf" " ", "templatedetails" { "templateid" " ", "jsondata" { "day" "sample text data", "month" "sample text data", "distributorbusinessname" "sample text data", "distributorbusinessaddress" "sample text data", "distributorname" "sample text data" } }, "persistauthkey" " ", "smtpcredentials" { "smtpfromname" " ", "smtpurl" " ", "smtpport" " ", "smtpusername" " ", "smtppassword" " " }, "customsendinglogic" { "url" " ", "event" \[ "otp verification", "contract initiation", "signer confirmation", "final confirmation", "reminder", "reviewer mail" ], "header" "" }, "contractname" "savings account opening form", "contractexecutername" "signzy", "successredirecturl" "https //signzy com", "failureredirecturl" "https //google com", "contractttl" 10000, "callbackurl" "", "callbackurlauthorizationheader" "", "signercallbackurl" "", "signercallbackurlauthorizationheader" "", "esignprovider" "", "namematchthreshold" "0 50", "allowsignergendermatch" true, "allowsigneryobmatch" true, "allowuidlastfourdigitsmatch" true, "allowpincodematch" true, "crossotpverification" true, "emudhracustomization" { "logourl" "", "headercolour" "", "buttoncolour" "", "maskedaadhaarfield" "", "secondarybuttoncolour" "", "pagebackgroundcolour" "", "pagetextcolour" "", "footerbackgroundcolour" "", "footertextcolour" "", "successtextcolour" "", "errortextcolour" "", "errorbackgroundcolour" "", "linktextcolour" "", "infoiconcolour" "", "textfieldbordercolour" "" }, "signerdetail" \[ { "signername" "mayank", "signermobile" "", "signeremail" "", "signergender" "male", "uidlastfourdigits" "", "pincode" "", "signeryearofbirth" "", "signeruniqueid" "", "signaturetype" "aadhaaresign otp", "cancelbysigner" true, "digitalconsent" { "consentdata" \[ { "text" "i confirm that i have opted for debit card", "required" false }, { "text" "i agree to comply with applicable laws", "required" true } ], "consentheading" "terms & conditions" }, "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "postverification" \[ "otp","videoverification" ], "timer" 5, "matchscript" "my name is xyz, i agree to comply with applicable laws", "signatures" \[ { "pageno" \[ "all" ], "signatureposition" \[ "bottomleft" ] } ] }, { "signername" "ashish", "signermobile" "", "signeremail" "", "signergender" "female", "uidlastfourdigits" "", "pincode" "", "signeryearofbirth" "", "signeruniqueid" "", "signaturetype" "smartesign", "cancelbysigner" true, "organizationname" "", "preverification" \[ "livenessverification","otp","imagecapture" ], "matchimage" \[" "], "matchimagethreshold" "", "additionalchecks" true, "allowiflivenessfails" true, "allowiffacematchfails" true, "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "signatures" \[ { "pageno" \[ 11, 2, 5 ], "signatureposition" \[ "topleft", "customize" ], "xcoordinate" \[ 300, 5 ], "ycoordinate" \[ 400, 5 ] }, { "pageno" \[ 1, 2, 5 ], "signatureposition" \[ "topleft", "customize" ], "xcoordinate" \[ 300, 5 ], "ycoordinate" \[ 400, 5 ] } ] } ], "docsigner" \[ { "signatureoptions" "docsignerclass3", "certificateid" "", "signingstep" "start", "location" "bangalore", "reason" "testing", "signatures" \[ { "pageno" \[ "all" ], "signatureposition" \[ "topleft" ] }, { "pageno" \[ 2 ], "signatureposition" \[ "customize" ], "xcoordinate" \[ 100 ], "ycoordinate" \[ 50 ] } ] }, { "signatureoptions" "docsignerclass2", "certificateid" "", "signingstep" "start", "location" "bangalore", "reason" "testing", "signatures" \[ { "pageno" \[ "all" ], "signatureposition" \[ "topright" ], "height" 70, "width" 130 }, { "pageno" \[ 2 ], "signatureposition" \[ "customize" ], "xcoordinate" \[ 300 ], "ycoordinate" \[ 50 ] } ] }, { "signatureoptions" "seal", "certificateid" " ", "signingstep" "end", "signatures" \[ { "pageno" \[ 5 ], "signatureposition" \[ "bottomleft", "bottomcenter" ], "height" 100, "width" 50 } ] }, { "signatureoptions" "virtualesign", "certificateid" " ", "signingstep" "start", "signatures" \[ { "pageno" \[ 2 ], "signatureposition" \[ "middleleft", "middlecenter" ] } ] } ], "workflow" true, "isparallel" false, "redirecttime" 5, "locationcapturemethod" "ip", "initiationemailsubject" "please sign the document received on your email", "customermaillist" \[ "" ], "customermaillistvisibility" "cc/bcc" "adminmaillist" \["admin1\@test com", "admin1\@test com"], "estamp" { "type" "echallan", "statecode" "", "articlecode" "", "firstpartyname" "", "secondpartyname" "", "stampdutypaidby" "", "purposeofstampduty" "", "stampdutyvalue" "", "considerationprice" "", "amount" "", "pageno" "", "location" "", "customdefacement" "", }, "estamp" { "type" "estamp", "firstpartyname" "abcls", "secondpartyname" "komal", "stampdutypaidby" "abcls", "considerationprice" "" "customdefacement" "", "stampdetails" \[ { "statecode" "ka", "articlecode" "ka1005", "stampdutyvalue" 100, "purposeofstampduty" "test", "dynamicstampconsumption" true, "losscap" 0, "mergelimit" 10 }, { "statecode" "ka", "articlecode" "ka1005", "stampdutyvalue" 100, "purposeofstampduty" "test", "count" 2 }, { "statecode" "ka", "articlecode" "ka1005", "stampdutyvalue" 100, "purposeofstampduty" "test", "dynamicstampconsumption" true } ] }, "revenuestamp" \[ { "pageno" 1, "location" "topleft", "customdefacement" "this revenue stamp paper, bearing unique reference number {{uniquereferencenumber}}, forms an integral part of the {{documentname}} ", "documentname" "dpn" }, { "pageno" 2, "location" "customize", "xcoordinate" "100", "ycoordinate" "50" } ], "emailpdfcustomnameformat" "signername", "logourl" "", "signonstamp" true, "showaadhaarnameonsignature"\ true, "remindersperday" , "locationcapturemethod" , "clickwrapconsenttext" \[""], "clickwrapconfigurabletext" "digital consent record" "reviewerdetail" \[ { "name" "vamshi", "email" "vamshirp05\@gmail com" } ] }' production curl location 'https //api signzy app/api/v3/contract/initiate' \\ \ header 'authorization ' \\ \ header 'content type application/json' \\ \ header 'x uniquereferenceid ' \\ \ data '{ "pdf" " ", "templatedetails" { "templateid" " ", "jsondata" { "day" "sample text data", "month" "sample text data", "distributorbusinessname" "sample text data", "distributorbusinessaddress" "sample text data", "distributorname" "sample text data" } }, "persistauthkey" " ", "smtpcredentials" { "smtpfromname" " ", "smtpurl" " ", "smtpport" " ", "smtpusername" " ", "smtppassword" " " }, "customsendinglogic" { "url" " ", "event" \[ "otp verification", "contract initiation", "signer confirmation", "final confirmation", "reminder", "reviewer mail" ], "header" "" }, "contractname" "savings account opening form", "contractexecutername" "signzy", "successredirecturl" "https //signzy com", "failureredirecturl" "https //google com", "contractttl" 10000, "callbackurl" "", "callbackurlauthorizationheader" "", "signercallbackurl" "", "signercallbackurlauthorizationheader" "", "esignprovider" "", "namematchthreshold" "0 50", "allowsignergendermatch" true, "allowsigneryobmatch" true, "allowuidlastfourdigitsmatch" true, "allowpincodematch" true, "crossotpverification" true, "emudhracustomization" { "logourl" "", "headercolour" "", "buttoncolour" "", "maskedaadhaarfield" "", "secondarybuttoncolour" "", "pagebackgroundcolour" "", "pagetextcolour" "", "footerbackgroundcolour" "", "footertextcolour" "", "successtextcolour" "", "errortextcolour" "", "errorbackgroundcolour" "", "linktextcolour" "", "infoiconcolour" "", "textfieldbordercolour" "" }, "signerdetail" \[ { "signername" "mayank", "signermobile" "", "signeremail" "", "signergender" "male", "uidlastfourdigits" "", "signeryearofbirth" "", "pincode" "", "signeruniqueid" "", "signaturetype" "aadhaaresign otp", "cancelbysigner" true, "digitalconsent" { "consentdata" \[ { "text" "i confirm that i have opted for debit card", "required" false }, { "text" "i agree to comply with applicable laws", "required" true } ], "consentheading" "terms & conditions" }, "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "preverification" \[ "videoverification" ], "postverification" \[ "otp" ], "signatures" \[ { "pageno" \[ "all" ], "signatureposition" \[ "bottomleft" ] } ] }, { "signername" "ashish", "signermobile" "", "signeremail" "", "signergender" "female", "uidlastfourdigits" "", "signeryearofbirth" "", "pincode" "", "signeruniqueid" "", "signaturetype" "smartesign", "organizationname" "" "preverification" \[ "livenessverification" ], "postverification" \[ "imagecapture" ], "matchimage" \[" "], "matchimagethreshold" "", "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "signatures" \[ { "pageno" \[ 11, 2, 5 ], "signatureposition" \[ "topleft", "customize" ], "xcoordinate" \[ 300, 5 ], "ycoordinate" \[ 400, 5 ] }, { "pageno" \[ 1, 2, 5 ], "signatureposition" \[ "topleft", "customize" ], "xcoordinate" \[ 300, 5 ], "ycoordinate" \[ 400, 5 ] } ] } ], "docsigner" \[ { "signatureoptions" "docsignerclass3", "certificateid" "", "signingstep" "start", "location" "bangalore", "reason" "testing", "signatures" \[ { "pageno" \[ "all" ], "signatureposition" \[ "topleft" ] }, { "pageno" \[ 2 ], "signatureposition" \[ "customize" ], "xcoordinate" \[ 100 ], "ycoordinate" \[ 50 ] } ] }, { "signatureoptions" "docsignerclass2", "certificateid" "", "signingstep" "start", "location" "bangalore", "reason" "testing", "signatures" \[ { "pageno" \[ "all" ], "signatureposition" \[ "topright" ], "height" 70, "width" 130 }, { "pageno" \[ 2 ], "signatureposition" \[ "customize" ], "xcoordinate" \[ 300 ], "ycoordinate" \[ 50 ] } ] }, { "signatureoptions" "seal", "certificateid" " ", "signingstep" "end", "signatures" \[ { "pageno" \[ 5 ], "signatureposition" \[ "bottomleft", "bottomcenter" ], "height" 100, "width" 50 } ] }, { "signatureoptions" "virtualesign", "certificateid" " ", "signingstep" "start", "signatures" \[ { "pageno" \[ 2 ], "signatureposition" \[ "middleleft", "middlecenter" ] } ] } ], "workflow" true, "isparallel" false, "redirecttime" 5, "locationcapturemethod" "ip", "initiationemailsubject" "please sign the document received on your email", "customermaillist" \[ "" ], "customermaillistvisibility" "cc/bcc" "adminmaillist" \["admin1\@test com", "admin1\@test com"], "estamp" { "type" "", "statecode" "", "articlecode" "", "firstpartyname" "", "secondpartyname" "", "stampdutypaidby" "", "purposeofstampduty" "", "stampdutyvalue" "", "considerationprice" "", "amount" "", "pageno" "", "location" "", "custmondefacement" "", "message" "" }, "estamp" { "stampdetails" \[ { "statecode" "ka", "articlecode" "ka1008", "stampdutyvalue" 600, "purposeofstampduty" "test", "count" "2" } ], "type" "estamp", "firstpartyname" "signzy technolgy", "secondpartyname" "cognizant", "stampdutypaidby" "cognizant", "considerationprice" "" }, "revenuestamp" \[ { "pageno" 1, "location" "topleft", "customdefacement" "this revenue stamp paper, bearing unique reference number {{uniquereferencenumber}}, forms an integral part of the {{documentname}} ", "documentname" "dpn" }, { "pageno" 2, "location" "customize", "xcoordinate" "100", "ycoordinate" "50" } ], "emailpdfcustomnameformat" "signername", "logourl" "", "remindersperday" , "signonstamp" true, "showaadhaarnameonsignature"\ true, "locationcapturemethod" , "clickwrapconsenttext" \[""], "clickwrapconfigurabletext" "digital consent record" "reviewerdetail" \[ { "name" "vamshi", "email" "vamshirp05\@gmail com" } ] }' input parameters header parameters key type m/o description x uniquereferenceid string optional unique reference id for each api request it needs to be generated at client's end and passed in api it can further be used in initiate contract query api to know the status of the api call 36 characters long, uuid number which has to be unique for example, 82541a35 d494 4fbb 97f3 e2323208986e body parameters key type m/o description pdf string conditionally mandatory the input pdf file which needs to be signed it can be in pdf or base64 formats note not required incase templatedetails is passed templatedetails object conditionally mandatory in order to generate pdf by filling data into the saved template and directly send for signing, this object will be used note not required incase pdf is passed templateid string mandatory identifier for the template the template id that you would have received after uploading the template with the help of save template api jsondata object mandatory json data containing various fields, which were predefined for the template in generate contract api persistauthkey string optional if the key is applied during contract creation, both the signed contract and the links to the final signed contract will be password protected using that key it accepts alpha numeric values smtpcredentials object optional you can use this object to customise smtp server this helps you send mails from your domain instead of signzy customsendinglogic object optional you can use this object to receive notification data of specific events onyour webhook url this can be utilised to send notifications to the contract invitees from your end url string mandatory mandatory within customsendinglogic object webhook url for posting the data of specified notifications event array of string mandatory mandatory within customsendinglogic object list of notification events for which data needs to be posted on given webhook url this can have any values from below list of notification events "otp verification" "contract initiation", "signer confirmation", "final confirmation", "reminder", "reviewer mail" header string mandatory if the webhook url uses authentication, pass the authroization header value in this key contractname string mandatory name of the contract contractexecutername string mandatory name of the entity who has initiated/created/started the contract signing process successredirecturl string optional the redirect url post the completion of the journey, in cases of successful completion, it will be redirected to this page failureredirecturl string optional the redirect url post the completion of the journey, in cases of failures, it will be redirected to this page contractttl string optional the time in seconds after which the contract will expire (by default, it's 14 days) callbackurl string optional callback url for posting data of the contract callbackurlauthorizationheader string optional if the callback url uses authentication, pass the authroization header value in this key signercallbackurl string optional signer callback url for posting data once aadhaar esign process for the particular transaction is completed by the signer signercallbackurauthorizationheader string optional if the signer callback url uses authentication, pass the authroization header value in this key esignprovider string optional the provider of the aadhaar esign by default, it will be emudhra it can be set to either nsdl emudhra cdsl vsign namematchthreshold string optional in case of aadhaar esigning, the name extracted after signer signs with aadhaar esign must match with signername mentioned for a particular signer if the percentage of name match is less than the threshold, it will be retry scenario the details would be posted on callback url for the integrator to make a decision possible values "0 01", "0 02", "0 03", , "1 00" allowsignergendermatch string optional in case of aadhaar esign, if this parameter is set to true , the signer gender extracted from aadhaar must match with signergender mentioned for a particular signer if it doesn't match, it wiil be a retry scenario note and once this parameter is passed, signergender becomes a mandatory parameter with values \["male","female","transgender"] allowsigneryobmatch string optional in case of aadhaar esign, if this parameter is set to true , the signer yob extracted from aadhaar must match with yob mentioned in signeryearofbirth for a particular signer if it doesn't match, it will be a retry scenario note and once this parameter is passed, signeryearofbirth becomes a mandatory parameter allowuidlastfourdigitsmatch string optional in case of aadhaar esign, if this parameter is set to true , the signer last 4 digits of aadhaar extracted from aadhaar must match with last 4 digits of aadhaar mentioned in uidlastfourdigits for a particular signer if it doesn't match, it will be a retry scenario note and once this parameter is passed, uidlastfourdigits becomes a mandatory parameter allowpincodematch string optional in case of aadhaar esign, if this parameter is set to true , the signer pincode extracted from aadhaar must match with pincode mentioned in pincode for a particular signer if it doesn't match, it will be a retry scenario note and once this parameter is passed, pincode becomes a mandatory parameter crossotpverification boolean optional if this parameter is set to true, in such cases, both email id and mobile number of all signers is mandatory and post that the otp verification step (either in pre or post) happens in a cross platform for example, if the signer opened the link from email, the otp step will be completed on mobile and vice versa emudhracustomization object optional in case of emudhra as esign provider, you can customize using this option signerdetail array of objects mandatory details about all the signers signername string mandatory name of the signer signermobile string optional if this value is passed, an sms and whatsapp will be used for communicating with the end customers signeremail string optional if this value is passed, email will be used to communicate with the end customers signergender string optional gender of the signer (male/female/transgender) uidlastfourdigits string optional last 4 digits of the aadhaar number of the signer signeryearofbirth string optional year of birth of the signer pincode string optional pincode of the signer signeruniqueid string optional unique id for the signer to identify each of the signers signaturetype string mandatory the type of signatures the possible values are aadhaaresign otp , aadhaaresign fingerprint, aadhaaresign faceauth, smartesign additionalsignaturetypes array of strings optional the type of signatures the possible values are aadhaaresign otp , aadhaaresign fingerprint, aadhaaresign faceauth, smartesign clickwrap cancelbysigner boolean optional during signing journey, to allow signer to be able to reject the esign request and opt out of the contract, pass true , by default value is false digitalconsent object optional configure specific terms and conditions within the signing journey for users to review and provide consent consentdata array of object conditionaly mandatory a list of consent items that users will review and provide consent to during the signing process max number of unique consent terms 20 text string conditionaly mandatory custom text content to be used for terms and conditions for which user can provide consent to strings can include \n to create line breaks for multi line content max string length 2500 you can also use the below formatting options https //commonmark org/help/ https //commonmark org/help/ required boolean conditionaly mandatory pass true if particular term is mandatory for signer to consent preverification array of strings optional to enable additional verification for a particular signer before the signing step, this field will be used following are allowed objects otp enables otp verification otp will be sent to all the provided communication channel for the signer livenessverification enables liveness verification during the signing journey videoverification enables video verification during the signing journey imagecapture enables capturing of live image during the signing journey note each verification mechanism can be applied either during pre verification or post verification organizationname string optional to enable stamping alongiwith signing on behalf of an organization, you can pass the organization name and the name of organization will appear postverification array of strings optional to enable additional verification for a particular signer after the signing step, this field will be used following are allowed objects otp enables otp verification otp will be sent to all the provided communication channel for the signer livenessverification enables liveness verification during the signing journey videoverification enables video verification during the signing journey imagecapture enables capturing of live image during the signing journey note each verification mechanism can be applied either during pre verification or post verification matchimage array of strings optional to enable face match verification, this field will be used face detected within the image passed in this field will be matched against the live person face during the signing this can be only used if you have passed livenessverification for the particualr signer as a part of preverification/postverificaiton matchimagethreshold string optional key is valid only when matchimage is provided you can set custom threshold percentage for face match check for provided matchimage if match percentage is less than threshold, then it will lead to failure of liveness verification accepted values 0 05 to 0 95 timer number optional you can specify the recording time of video, or it will default to 12 seconds max 90 seconds can be set note this is only valid for video verification matchscript string optional a custom text which the user has to speak out while recording you can provide the script of maximum 5000 characters note this is only valid for video verification additionalchecks boolean optional when enabled, the advanced liveness check detects obstructions like masks or goggles on the user's face and prompts them to remove them if the user fails to do so after three attempts, the system allows them to proceed by default false allowiflivenessfails boolean optional to allow signer to continue with the signing journey even if liveness check fails, pass true by default, value will be false allowiffacematchfails boolean optional to allow signer to continue with the signing journey even if face match check fails, pass true by default, value will be false signatures array of objects mandatory to allow signature to be placed at multiple places on the same page following is the signature object pageno array of page numbers where signautres need to be pasted pass all , if signature is required on all pages signatureposition position where signature is required top left top center top right middle left middle center middle right bottom left bottom center bottom right customize in case of customize, pas the x,y coordinate and height, width height height of signautre width width of signature xcoordinate array of coordinates, ycoordinate array of coordinates, note no of xcoordinate and ycoordinate must be equal docsigner array of objects optional to use automated signing to do signatures of authorised signatory of organisation workflow boolean optional pass value as true, if you want the workflow isparallel boolean optional pass value as true, if you want the parallel signing by default, it will be a sequential signing redirecttime number optional the time after which it redirects the time is in seconds deafult value 5 seconds locationcapturemethod string optional it can take two value ip , browser initiationemailsubject string optional it subject line of the email that will be sent to customers customermaillist array of strings optional list of email ids which will receive the details customermaillistvisibility string optional you can decide whether you want to keep the customer mail list in cc or bcc while sending the email by default it will be cc adminmaillist array of strings optional list of email ids which would recieve every update of the contract, it can be used for rm assisted journeys estamp object optional this is a option to get a stamped document to sign emailpdfcustomnameformat string optional custom name format of the pdf sent in email logourl string optional logo of the customer which will be used to whitelablel remindersperday number optional reminders per day the maxium reminders that can be sent is 4 per day signonstamp boolean optional pass true if you want signature to appear on affixed stamp paper as well by default, it is false showaadhaarnameonsignature boolean optional if passed true, aadhaar name extracted from aadhaar database after aadhaar esign, will be used in the signature appereance instead of the name provided in the api request paylaod only applicable when esign provider is either vsign or cdsl by default, this is false initiationmailsubject string optional custom subject line for the signing mail which is sent to the signer clickwrapconsenttext array of strings optional only applicable for cickwrap signature method custom text to be used in clickwrap signing step each string in the array corresponds to a checkbox label on the front end strings can include \n to create line breaks for multi line content max string length 2500 max number of strings in array 20 you can also use the below formatting options https //commonmark org/help/ https //commonmark org/help/ clickwrapconfigurabletext string optional configurablae clickwrap text to change the word clickwrap on frontend during customer journey maximum 100 characters locationcapturemethod string optional if passed, geolocation capturing is enabled you can pass either two things ip in this case, geolocation is captured automatically without user's involvement browser in this case, user is asked to allow permission for capturing geolocation (broswer popup) emudhra customizations key description type mandatory/optional logourl url for the custom logo string optional headercolour color code for the header string optional buttoncolour color code for buttons string optional maskedaadhaarfield customization for aadhaar field string optional secondarybuttoncolour color code for secondary buttons string optional pagebackgroundcolour color code for page background string optional pagetextcolour color code for page text string optional footerbackgroundcolour color code for footer background string optional footertextcolour color code for footer text string optional successtextcolour color code for success text string optional errortextcolour color code for error text string optional errorbackgroundcolour color code for error background string optional linktextcolour color code for link text string optional infoiconcolour color code for info icon string optional textfieldbordercolour color code for text field border string optional note all the properties under "emudhracustomization" are marked as optional, as they may not be necessary for the customization, and their absence would not cause any issues docsigner parameter name type mandatory/optional description signatureoptions string mandatory pass either of the below 2 supported signature options docsignerclass2 docsignerclass2 docsignerclass3 docsignerclass3 virtualesign virtualesign seal seal certificateid string conditionally mandatory pass the certificate id of docsignerclass2 docsignerclass2 or docsignerclass3 docsignerclass3 or virtualesign virtualesign or seal seal whichever you want to use to sign the document certificateid can be generated by using uploaddocsignconfig api signingstep string optional it can be start or end signatures array of objects mandatory an array of signature objects where the signatures will be placed signatures pageno array mandatory array of page numbers to specify where the signature(s) should be placed note in case where signature needs to be placed on all pages, pass the value all all in case where signature needs to be placed on all pages, pass the value last last signatures signatureposition string mandatory position for the signature on the specified page it will accept the following values topleft topleft topcenter topcenter topright topright middleleft middleleft middlecenter middlecenter middleright middleright bottomleft bottomleft bottomcenter bottomcenter bottomright bottomright customize customize in case of passing the value " customize customize ", the xcoordinate, ycoordinate, height and width must be passed signatures xcoordinate array of numbers conditionally mandatory x coordinate for the specified signature placement signatures ycoordinate array of numbers conditionally mandatory y coordinate for the specified signature placement signatures height number conditionally mandatory height of the signature box for the specified page the minimum value is 70(pixels) if no value is provided or a value less than 70 is passed, it will be set to the default height of 70 signatures width number conditionally mandatory width of the signature box for the specified page the minimum value is 130(pixels) if no value is provided or a value less than 130 is passed, it will be set to the default width of 130 reason string optional only applicale in cases of doc signer class 3 you can pass a reason for the signing you can remove this from the request body if you are using doc signer class 2 location string optional only applicale in cases of doc signer class 3 you can pass a location for the signing for example, bangalore you can remove this from the request body if you are using doc signer class 2 estamping details keys description type m/o type you want to use estamp or echallan values are echallan estamp string mandatory statecode state code of the states where estamps are valid possible values \["ka", "mh", "gj", "ap", "an", "as", "br", "ct", "ch", "dn", "dd", "dl", "hp", "jk", "jh", "la", "or", "py", "rj", "tn", "tr", "up", "ut", "pb", "wb", "ga", "hr", "kl", "mn", "ml", "mz", "nl", "ld", "sk", "ar", "tg", "mp"] string mandatory firstpartyname name of first party involved in the transaction string mandatory secondpartyname name of second party involved in the transactiton string mandatory stampdutyvalue amount of the stamp duty string mandatory in cases when type estamp purposeofstampduty purpose of stamp duty string mandatory considerationprice amount of fund involved in the transaction string mandatory in cases when type estamp articlecode article code for e stamping string mandatory stampdutypaidby name of the party who paid the stamp duty(first party or second party) string mandatory location location of defacement available option topleft, topcenter, middleleft, middlecenter, bottomleft, bottomcenter right not included as there can be space issue string optional (by default bottomleft ) amount amount of the echallan duty number mandatory in cases when type is echallan , not needed when type is estamp count no of stamp papers to be used of given stamp details note you can either pass count or dynamicstampconsumption as true if both are not passed, be default, count as one will be considered number optional pageno page no on which defacement is needed array optional(by default first page) customdefacement message text for custom defacement, it can contain variables the variable should be enclosed in {{}} and can be one from below echallan {{challanno}} , {{challandate}} , {{statecode}} , {{firstpartyname}} , {{articlecode}} , {{amount}} , {{secondpartyname}} , {{purposeofstampduty}} , {{stampdutypaidby}} estamp {{certificateno}}{{certificatedate}} {{uniquedocref}} {{firstpartyname}} {{statecode}},{{articlecode}} {{denomination}} {{secondpartyname}} {{stampdutypaidby}} {{purposeofstampduty}} string optional dynamicstampconsumption if true is passed, dynamic estamping will be enabled for that particular stamp statecode, articlecode and stamp duty note you can either pass count or dynamicstampconsumption as true if both are not passed, then be default, count as one will be considered boolean optional losscap in case of dnyamic stamping, losscap represents the maxium amount of loss, for example, if the amount passed in stamp is inr 1203 and loss cap is 97, so we can get a stamp paper with a maximum value of 1300 (1203+97) number optional (by default as 0) mergelimit in case of dynamic stamping, mergelimit reprsents the maximum number of stamp paper which should be clubbed to get to the amount of stamp value number optional (by default no limit) revenue stamping details keys description type m/o pageno page no on which defacement is needed number mandatory location location of defacement available option topleft, topcenter, middleleft, middlecenter, bottomleft, bottomcenter, right not included as there can be space issue in case of passing the value " customize " the xcoordinate, ycoordinate must be passed string mandatory xcoordinate x coordinate for the revenue stamping string conditionally mandatory ycoordinate y coordinate for the revenue stamping string conditionally mandatory customdefacement if passed, custom defacement will be enabled text for custom defacement can contain variables the variable should be enclosed in {{}} and can be one from the given {{uniquereferencenumber}} {{documentname}} {{lotno}} string optional documentname document name for which stamping is done string optional reviewer details keys description type m/o name name of the reviewer string mandatory email email id of the reviewer string mandatory you can add reviewers who can review the document it can have 3 reviewers and all of them would be in sequential manner sample response 200 { "emudhracustomization" { "buttoncolour" "#ff0000", "headercolour" "#ff0000", "logourl" "https //media trustradius com/vendor logos/th/nh/mvdwep9m89x5 180x180 jpeg" }, "customerid" "bc3024f6 b2de 493f 8b30 e132c3701ce7", "username" "adityasahu", "contractid" "e6b9bf89 5725 4331 9efd 0ff53b914764", "pdf" "https //staging persist signzy tech/api/files/4879875/download/11d297ab903e442784c6a847a2ce10f3970b314ed512437db9f6bdfc55f6b501 pdf", "initialcontracthash" "51acd08565171da3a2e1f50b600df06b444ff18204e53103d2ef590688a3a39a", "contractname" "dd", "contractexecutername" "dd", "successredirecturl" "https //signzy com", "failureredirecturl" "https //google com", "esignprovider" "emudhra", "contractttl" 10000, "signerdetail" \[ { "signerid" "3bd160a3 5e52 4ea8 9819 c1fc1e1bd838", "signername" "mohit", "signaturetype" "aadhaaresign otp", "uidlastfourdigits" "1345", "signeryearofbirth" "0101", "signeruniqueid" "" "signergender" "male", "signatures" \[ { "pageno" \[ "all" ], "signatureposition" \[ "bottomleft" ], "xcoordinate" \[], "ycoordinate" \[] } ], "esignurl" "https //api preproduction signzy app/api/v3/contract/esign/3bd160a3 5e52 4ea8 9819 c1fc1e1bd838" }, { "signerid" "523af19d 762f 40e1 ae00 dbc46f7ed8b1", "signername" "cdcdc", "signaturetype" "aadhaaresign otp", "uidlastfourdigits" "1345", "signeryearofbirth" "0101", "signatures" \[ { "pageno" \[ 11, 2, 5 ], "signatureposition" \[ "topleft", "customize" ], "xcoordinate" \[ 300, 5 ], "ycoordinate" \[ 400, 5 ] }, { "pageno" \[ 1, 2, 5 ], "signatureposition" \[ "topleft", "customize" ], "xcoordinate" \[ 300, 5 ], "ycoordinate" \[ 400, 5 ] } ], "esignurl" "https //api preproduction signzy app/api/v3/contract/esign/523af19d 762f 40e1 ae00 dbc46f7ed8b1" } ], "callbackurl" "https //qa signzy xyz/callback/mohitposts", "callbackurlauthorizationheader" "test", "signercallbackurl" "https //qa signzy xyz/callback/mohitposts", "callbackextraparameter" \[], "filettl" "2 days", "estamp" { "type" "echallan", "secondpartyname" "test", "firstpartyname" "vmware", "statecode" "nl", "articlecode" "nl001", "purposeofstampduty" "sjs", "amount" 1, "location" "middlecenter", "custmondefacement" "true", "message" "stamp duty of rs 1 paid via stamp paper certificate no xdxdxcd dated 121212" }, "estamp" { "type" "estamp", "firstpartyname" "vamshi", "customdefacement" "{{certificateno}}, {{certificatedate}}, {{uniquedocref}}, {{firstpartyname}}, {{statecode}}, {{articlecode}}, {{denomination}}, {{secondpartyname}}, {{stampdutypaidby}}, {{purposeofstampduty}}", "secondpartyname" "vamshi", "stampdutypaidby" "vamshi", "stampdetails" \[ { "statecode" "ap", "articlecode" "ap10001", "stampdutyvalue" 19, "losscap" 2, "mergelimit" 2, "purposeofstampduty" "test", "dynamicstampconsumption" true } ], "transactionid" \[ "670cbb877b191de02a424067", "670cbb877b191de02a424069" ], "estampstatus" "inprogress", "transactionresult" { "certificateinfo" \[ { "certificateno" "562", "uniquedocref" "stamp 1901562" }, { "certificateno" "563", "uniquedocref" "stamp 1901563" } ], "type" "estamp" }, "dynamicstampdetails" \[ { "actualloss" 1, "stampcount" 2, "statecode" "ap", "articlecode" "ap10001", "dynamicstampconsumption" true, "stampbreakdown" \[ { "stampdutyvalue" "10", "count" 2 } ] } ] }, "x uniquereferenceid" "" } output parameters field name description mandatory/optional type emudhracustomization customization options for emudhra esp including button color, header color, and logo url optional object customerid unique identifier for the customer mandatory string username username of the customer mandatory string contractid unique identifier for the contract mandatory string pdf url to the pdf document mandatory string initialcontracthash initial hash of the contract mandatory string contractname name of the contract mandatory string contractexecutername name of the contract executor mandatory string successredirecturl url to redirect after successful contract execution mandatory string failureredirecturl url to redirect in case of contract execution failure mandatory string esignprovider name of the e sign provider (e g , emudhra) mandatory string contractttl time to live (in milliseconds) for the contract mandatory number signerdetail details of signers for the contract mandatory array of objects callbackurl url for callback upon contract completion mandatory string callbackurlauthorizationheader authorization header for the callback url optional string signercallbackurl url for individual signer callbacks optional string callbackextraparameter extra parameters for the callback optional array of strings filettl time to live for the uploaded files (e g , "2 days") mandatory string estamp electronic stamp details for the contract optional object x uniquereferenceid unique reference id for each api request it needs to be generated at client's end and passed in api it can further be used in initiate contract query api to know the status of the api call 36 characters long, uuid number which has to be unique for example, 82541a35 d494 4fbb 97f3 e2323208986e optional string signerdetail field name description mandatory/optional type signerid unique identifier for the signer mandatory string signername name of the signer mandatory string signaturetype type of signature for the signer mandatory string uidlastfourdigits last four digits of signer's uid mandatory string signeryearofbirth year of birth of the signer mandatory string signergender gender of the signer mandatory string signatures signature details for the signer mandatory array of objects esignurl url for the e sign process of the signer mandatory string signature (within signerdetail) field name description mandatory/optional type pageno page number(s) for the signature mandatory array signatureposition position(s) of the signature on the page mandatory array of strings xcoordinate x coordinate(s) of the signature optional array of numbers ycoordinate y coordinate(s) of the signature optional array of numbers estamp field name description mandatory/optional type type type of electronic stamp (e g , echallan) mandatory string secondpartyname name of the second party in the stamp mandatory string firstpartyname name of the first party in the stamp mandatory string statecode state code for the stamp mandatory string articlecode article code for the stamp mandatory string purposeofstampduty purpose of the stamp duty mandatory string amount amount of stamp duty mandatory number location location of the stamp on the document mandatory string custmondefacement customization option for defacement mandatory string message message for the stamp mandatory string sample errors 400 { "name" "error", "message" "invalid url extension", "reason" "validation error", "type" "bad request", "statuscode" 400 } 400 { "name" "error", "message" "successredirecturl is not allowed to be empty", "reason" "validation error", "type" "bad request", "statuscode" 400 } 400 { "name" "error", "message" "failureredirecturl is not allowed to be empty", "reason" "validation error", "type" "bad request", "statuscode" 400 } 400 { "name" "error", "message" "esignprovider must be one of \[nsdl, emudhra]", "reason" "validation error", "type" "bad request", "statuscode" 400 } 401 { "message" "invalid authentication credentials" } 500 { "error" { "name" "error", "message" "internal server error", "reason" "internal server error", "type" "internal server error", "statuscode" 500 } } error parameters parameter type description name string in case of errors, it will have the value "error" it represents an error message string message for the error reason string reasons for the error type string type of error statuscode string status code of the error error codes error code error message explanation 400 bad request input parameter has a missing required parameter or invalid inputs 401 authorization failed authorization token is invalid 500 internal server error internal error at signzy, please reach out to help\@signzy com callback & signer callback response callback response success { "contractid" " ", "contractcreationtime" "29/02/2024, 11 46 20", "initialsignercount" 1, "signedsignercount" 1, "deletedsignercount" 0, "contractname" "signzy", "contractexecutername" "manish", "successredirecturl" "https //signzy com", "failureredirecturl" "https //google com", "callbackurl" " ", "signercallbackurl" " ", "contractttl" 16800, "initialcontract" " ", "initialcontracthash" " ", "finalsignedcontract" " ", "finalsignedcontracthash" " ", "auditcertificateurl" " ", "auditcertificatehash" " ", "iscompleted" true, "contractcompletiontime" "thu feb 29 2024 11 49 16 gmt+0530 (india standard time)", "docsigner" \[ { "input" { "certificateid" " ", "signatureoptions" "docsignerclass2", "signingstep" "start", "logourl" " ", "signatures" \[ { "pageno" \[ 2, 3 ], "signatureposition" \[ "topleft", "topcenter" ] } ] }, "status" "success", "docsigncompletiontime" "thu feb 29 2024 11 46 22 gmt+0530 (india standard time)", "docsignedcontract" " ", "docsignedcontracthash" " " }, { "input" { "signatureoptions" "docsignerclass3", "signingstep" "end", "docsignerclass3certificatevalues" { "clientid" " 8", "keyid" " ", "accesskey" " " }, "location" "bangalore", "reason" "testing", "signatures" \[ { "pageno" \[ 3, 2 ], "signatureposition" \[ "bottomright", "bottomcenter" ] } ] }, "status" "success", "docsigncompletiontime" "thu feb 29 2024 11 49 14 gmt+0530 (india standard time)", "docsignedcontract" " ", "docsignedcontracthash" " " } ], "signerdetail" \[ { "signername" "d vamshi krishna", "signeremail" " ", "signermobile" " ", "signergender" "female", "signeryearofbirth" " ", "workflowurl" " ", "signerid" " ", "signaturetype" " ", "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "contractlastsigntime" "2024 02 29t11 48 59", "contractsendtime" "thu feb 29 2024 11 46 23 gmt+0530 (india standard time)", "status" "success", "selectedsignaturetype" "aadhaaresign otp", "errormessage" "na", "aadhaarstatus" "1", "aadhaarerrormessage" "", "namematchresult" "", "signerip" " ", "noofsuccessfulattempts" 1, "signersignedcontract" " ", "signersignedcontracthash" " ", "esignattempts" \[ { "sessionid" "de01ddd8 54c5 4a32 9bcf ef5fc9a53b23", "workflowurlopentime" "thu feb 29 2024 11 46 39 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 11 47 28 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 11 47 31 gmt+0530 (india standard time)", "transaction" { "transactiondata" { "esignprovider" "emudhra", "dscdata" { "state" " ", "pincode" " ", "dnqualifier" " ", "yob" " ", "gender" "male", "uidlastfourdigits" " ", "x500uniqueidentifier" "", "aadhaartoken" "", "pseudonym" " ", "aadhaartype" "personal", "country" "in", "name" " " }, "selectedsignaturetype" "aadhaaresign otp" } }, "signingcompletetime" "thu feb 29 2024 11 49 08 gmt+0530 (india standard time)" } ] } ], "deletedsignerdetail" \[] } signer callback response success { "signername" " ", "signeremail" " ", "signermobile" " ", "signergender" " ", "signeryearofbirth" " ", "workflowurl" " ", "signerid" "6696c60e 1102 47f1 93db d3cb2899233c", "signaturetype" "aadhaaresign otp", "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "contractlastsigntime" "2024 02 29t11 48 59", "contractsendtime" "thu feb 29 2024 11 46 23 gmt+0530 (india standard time)", "status" "success", "selectedsignaturetype" "aadhaaresign otp", "errormessage" "na", "aadhaarstatus" "1", "aadhaarerrormessage" "", "namematchresult" "", "signerip" " ", "noofsuccessfulattempts" 1, "signersignedcontract" " ", "signersignedcontracthash" " ", "esignattempts" \[ { "sessionid" "de01ddd8 54c5 4a32 9bcf ef5fc9a53b23", "workflowurlopentime" "thu feb 29 2024 11 46 39 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 11 47 28 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 11 47 31 gmt+0530 (india standard time)", "transaction" { "transactiondata" { "esignprovider" "emudhra", "dscdata" { "state" " ", "pincode" " ", "dnqualifier" " ", "yob" " ", "gender" "male", "uidlastfourdigits" " ", "x500uniqueidentifier" "", "aadhaartoken" "", "pseudonym" " ", "aadhaartype" "personal", "country" "in", "name" " " }, "selectedsignaturetype" "aadhaaresign otp" } }, "signingcompletetime" "thu feb 29 2024 11 49 08 gmt+0530 (india standard time)" } ], "contractid" "c7c584aa 998c 4e48 9701 8cae40573b4a" } uid last 4 digits mismatch { "signername" " ", "signeremail" " ", "signermobile" " ", "signergender" " ", "signeryearofbirth" " ", "workflowurl" " ", "signerid" " ", "signaturetype" "aadhaaresign otp", "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "contractlastsigntime" "2024 02 29t11 56 03", "contractsendtime" "thu feb 29 2024 11 52 56 gmt+0530 (india standard time)", "status" "fail", "selectedsignaturetype" "aadhaaresign otp", "errormessage" "uid last four digits match validation failed", "aadhaarstatus" "1", "aadhaarerrormessage" "", "namematchresult" "", "signerip" "", "noofsuccessfulattempts" 1, "signersignedcontract" "", "signersignedcontracthash" "", "esignattempts" \[ { "sessionid" "6416c55d e58b 4448 8a1c 7402d2c29136", "workflowurlopentime" "thu feb 29 2024 11 53 18 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 11 55 03 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 11 55 06 gmt+0530 (india standard time)", "transaction" { "transactiondata" { "esignprovider" "emudhra", "dscdata" { "state" " ", "pincode" " ", "dnqualifier" " ", "yob" " ", "gender" "male", "uidlastfourdigits" " ", "x500uniqueidentifier" "", "aadhaartoken" "", "pseudonym" " ", "aadhaartype" "personal", "country" "in", "name" " " }, "selectedsignaturetype" "aadhaaresign otp" } }, "errorcode" "", "errormessage" "uid last four digits match validation failed", "signingfailtime" "thu feb 29 2024 11 56 04 gmt+0530 (india standard time)" } ], "contractid" "c7c584aa 998c 4538 9206 8cae40573b4a" } yob mismatch { "signername" "", "signeremail" "", "signermobile" "", "signergender" "", "signeryearofbirth" "", "workflowurl" "", "signerid" "", "signaturetype" "aadhaaresign otp", "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "contractlastsigntime" "2024 02 29t11 30 50", "contractsendtime" "thu feb 29 2024 11 29 34 gmt+0530 (india standard time)", "status" "fail", "selectedsignaturetype" "aadhaaresign otp" "errormessage" "yob match validation failed", "aadhaarstatus" "1", "aadhaarerrormessage" "", "namematchresult" "", "signerip" "", "noofsuccessfulattempts" 1, "signersignedcontract" "", "signersignedcontracthash" "", "esignattempts" \[ { "sessionid" "e36a1297 3b73 46c2 a0c4 30cd7ac57b5b", "workflowurlopentime" "thu feb 29 2024 11 29 49 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 11 29 54 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 11 29 55 gmt+0530 (india standard time)", "transaction" { "transactiondata" { "esignprovider" "emudhra", "dscdata" { "state" "", "pincode" "", "dnqualifier" "", "yob" "", "gender" "", "uidlastfourdigits" "", "x500uniqueidentifier" "", "aadhaartoken" "", "pseudonym" "", "aadhaartype" "", "country" "in", "name" "" }, "selectedsignaturetype" "aadhaaresign otp" } }, "errorcode" "", "errormessage" "yob match validation failed", "signingfailtime" "thu feb 29 2024 11 30 50 gmt+0530 (india standard time)" } ], "contractid" "c7c584aa 998c 4e38 9201 8cve405o3b4a" } name mismatch { "signername" "", "signeremail" "", "signermobile" "", "signergender" "", "signeryearofbirth" "", "workflowurl" "", "signerid" "", "signaturetype" "aadhaaresign otp", "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "contractlastsigntime" "2024 02 29t12 34 44", "contractsendtime" "thu feb 29 2024 12 29 29 gmt+0530 (india standard time)", "status" "fail", "selectedsignaturetype" "aadhaaresign otp" "errormessage" "name match validation failed", "aadhaarstatus" "1", "aadhaarerrormessage" "", "namematchresult" "0 85", "signerip" "", "noofsuccessfulattempts" 1, "signersignedcontract" "", "signersignedcontracthash" "", "esignattempts" \[ { "sessionid" "8563cd61 cb21 4738 a70b c31b814df19f", "workflowurlopentime" "thu feb 29 2024 12 29 38 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 12 29 40 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 12 29 41 gmt+0530 (india standard time)", "transaction" {}, "errorcode" "esp 945", "errormessage" "user terminated ekyc process after otp generation", "signingfailtime" "thu feb 29 2024 12 30 21 gmt+0530 (india standard time)" }, { "sessionid" "51b71cca 54e0 4a40 a981 9011d02424e5", "workflowurlopentime" "thu feb 29 2024 12 31 26 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 12 31 27 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 12 31 29 gmt+0530 (india standard time)", "transaction" {}, "errorcode" "esp 944", "errormessage" "user terminated ekyc process", "signingfailtime" "thu feb 29 2024 12 31 37 gmt+0530 (india standard time)" }, { "sessionid" "9a5175a0 88b0 4a66 8e06 8e815dc4095e", "workflowurlopentime" "thu feb 29 2024 12 33 46 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 12 33 52 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 12 33 53 gmt+0530 (india standard time)", "transaction" { "transactiondata" { "esignprovider" "emudhra" "dscdata" { "state" "", "pincode" "", "dnqualifier" "", "yob" "", "gender" "male", "uidlastfourdigits" "", "x500uniqueidentifier" "", "aadhaartoken" "", "pseudonym" "", "aadhaartype" "personal", "country" "in", "name" "" }, "selectedsignaturetype" "aadhaaresign otp" } }, "errorcode" "", "errormessage" "name match validation failed", "signingfailtime" "thu feb 29 2024 12 34 44 gmt+0530 (india standard time)" } ], "contractid" "c7c582aa 998c 4e38 9201 8c9e40573b4a" } maximum otp limits { "signername" "", "signeremail" "", "signermobile" "", "signergender" "", "signeryearofbirth" "", "workflowurl" "", "signerid" "", "signaturetype" "aadhaaresign otp", "additionalsignaturetypes" \[ "aadhaaresign fingerprint" ], "contractlastsigntime" "2024 02 29t12 28 10", "contractsendtime" "thu feb 29 2024 12 27 13 gmt+0530 (india standard time)", "status" "fail", "selectedsignaturetype" "aadhaaresign otp" "errormessage" "user has crossed maximum authentication attempt", "aadhaarstatus" "0", "aadhaarerrormessage" "user has crossed maximum authentication attempt", "namematchresult" "", "signerip" "", "noofsuccessfulattempts" 0, "signersignedcontract" "", "signersignedcontracthash" "", "esignattempts" \[ { "sessionid" "5441c860 4f16 4f45 94d6 fbfbba8de36a", "workflowurlopentime" "thu feb 29 2024 12 27 27 gmt+0530 (india standard time)", "signatureselecttime" "thu feb 29 2024 12 27 29 gmt+0530 (india standard time)", "espinvokerequesttime" "thu feb 29 2024 12 27 31 gmt+0530 (india standard time)", "transaction" {}, "errorcode" "esp 946", "errormessage" "user has crossed maximum authentication attempt", "signingfailtime" "thu feb 29 2024 12 28 15 gmt+0530 (india standard time)" } ], "contractid" "c7c58eaa 998c 4e38 0201 8coe40573b4a" } user defined fields the purpose of user defined fields is to offer you the capability to transmit any of the customer's data for mapping within our system steps to use user defined fields you can define an object with the following structure { "userdefinedfield" { "homeloankey" "boolean", "homeloankey2" "string", "homeloankey3" "number", "homeloankey4" "string", "homeloankey5" "number" } } the keys of the object userdefinedfield has to be defined by the client and it will be part of settings for example, in above case, "homeloankey" has been defined and the type of key is set to be boolean the type of key can be either boolean, string or number once it is defined, it can be part of initiate contract api payload all of these fields will be optional at maximum, you can define 20 keys