From 772cbda593519aefdfe88e38cd1c984b071a562b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 22 Dec 2025 14:09:46 +0000 Subject: [PATCH] deploy: b0d159462a8d17077c3e722c4504c8b1145f9df0 --- 404.html | 2 +- assets/js/9640838e.1e9ae3be.js | 1 + assets/js/9640838e.25348d39.js | 1 - ...1e6eb.cace8bac.js => cfb1e6eb.60bd1b18.js} | 2 +- assets/js/d1393a72.50bfc189.js | 1 + assets/js/d1393a72.d08d9a53.js | 1 - assets/js/d8b805fb.ed63b4c9.js | 1 + assets/js/d8b805fb.fdb8fe31.js | 1 - ...n.20ba5e8d.js => runtime~main.1b81b635.js} | 2 +- blog/archive/index.html | 2 +- blog/authors/index.html | 2 +- blog/first-blog-post/index.html | 2 +- blog/index.html | 2 +- blog/long-blog-post/index.html | 2 +- blog/mdx-blog-post/index.html | 2 +- blog/tags/docusaurus/index.html | 2 +- blog/tags/facebook/index.html | 2 +- blog/tags/hello/index.html | 2 +- blog/tags/hola/index.html | 2 +- blog/tags/index.html | 2 +- blog/welcome/index.html | 2 +- docs/API-docs/api-intro/index.html | 2 +- docs/API-docs/v1.1/contactlist/index.html | 2 +- docs/API-docs/v1.1/createcontact/index.html | 2 +- docs/API-docs/v1.1/createdocument/index.html | 2 +- .../createdocumentwithtemplateid/index.html | 2 +- docs/API-docs/v1.1/createfolder/index.html | 2 +- docs/API-docs/v1.1/createtemplate/index.html | 2 +- docs/API-docs/v1.1/delete-template/index.html | 2 +- docs/API-docs/v1.1/delete-webhook/index.html | 2 +- docs/API-docs/v1.1/deletecontact/index.html | 2 +- docs/API-docs/v1.1/deletedocument/index.html | 2 +- docs/API-docs/v1.1/deletefolder/index.html | 2 +- docs/API-docs/v1.1/draftdocument/index.html | 2 +- docs/API-docs/v1.1/drafttemplate/index.html | 2 +- docs/API-docs/v1.1/folderlist/index.html | 2 +- docs/API-docs/v1.1/get-template/index.html | 2 +- docs/API-docs/v1.1/get-user/index.html | 2 +- docs/API-docs/v1.1/get-webhook/index.html | 2 +- docs/API-docs/v1.1/getcontact/index.html | 2 +- docs/API-docs/v1.1/getcredits/index.html | 2 +- docs/API-docs/v1.1/getdocument/index.html | 2 +- docs/API-docs/v1.1/getdocumentlist/index.html | 2 +- docs/API-docs/v1.1/getfolder/index.html | 2 +- docs/API-docs/v1.1/getformdata/index.html | 2 +- docs/API-docs/v1.1/getsignerips/index.html | 2 +- docs/API-docs/v1.1/gettemplatelist/index.html | 2 +- docs/API-docs/v1.1/index.html | 2 +- docs/API-docs/v1.1/intro/index.html | 2 +- .../v1.1/opensign-api-v-1-1/index.html | 2 +- docs/API-docs/v1.1/publictemplate/index.html | 2 +- .../v1.1/resendrequestmail/index.html | 2 +- docs/API-docs/v1.1/revokedocument/index.html | 2 +- .../v1.1/save-update-webhook/index.html | 2 +- docs/API-docs/v1.1/selfsign/index.html | 2 +- docs/API-docs/v1.1/update-document/index.html | 2 +- docs/API-docs/v1.1/update-template/index.html | 2 +- docs/API-docs/v1.1/updatefolder/index.html | 2 +- docs/API-docs/v1/contactlist/index.html | 2 +- docs/API-docs/v1/createcontact/index.html | 2 +- docs/API-docs/v1/createdocument/index.html | 2 +- .../createdocumentwithtemplateid/index.html | 2 +- docs/API-docs/v1/createfolder/index.html | 2 +- docs/API-docs/v1/createtemplate/index.html | 2 +- docs/API-docs/v1/delete-template/index.html | 2 +- docs/API-docs/v1/delete-webhook/index.html | 2 +- docs/API-docs/v1/deletecontact/index.html | 2 +- docs/API-docs/v1/deletedocument/index.html | 2 +- docs/API-docs/v1/deletefolder/index.html | 2 +- docs/API-docs/v1/draftdocument/index.html | 2 +- docs/API-docs/v1/drafttemplate/index.html | 2 +- docs/API-docs/v1/folderlist/index.html | 2 +- docs/API-docs/v1/get-template/index.html | 2 +- docs/API-docs/v1/get-user/index.html | 2 +- docs/API-docs/v1/get-webhook/index.html | 2 +- docs/API-docs/v1/getcontact/index.html | 2 +- docs/API-docs/v1/getdocument/index.html | 2 +- docs/API-docs/v1/getdocumentlist/index.html | 2 +- docs/API-docs/v1/getfolder/index.html | 2 +- docs/API-docs/v1/gettemplatelist/index.html | 2 +- docs/API-docs/v1/index.html | 2 +- docs/API-docs/v1/intro/index.html | 2 +- docs/API-docs/v1/opensign-api-v-1/index.html | 2 +- docs/API-docs/v1/resendrequestmail/index.html | 2 +- docs/API-docs/v1/revokedocument/index.html | 2 +- .../v1/save-update-webhook/index.html | 2 +- docs/API-docs/v1/selfsign/index.html | 2 +- docs/API-docs/v1/update-document/index.html | 2 +- docs/API-docs/v1/update-template/index.html | 2 +- docs/API-docs/v1/updatefolder/index.html | 2 +- docs/category/cloud-storage/index.html | 2 +- docs/category/console/index.html | 2 +- .../create-new-opensign-document/index.html | 2 +- docs/category/docker/index.html | 2 +- docs/category/documents/index.html | 2 +- docs/category/faqs/index.html | 2 +- docs/category/guides/index.html | 2 +- .../index.html | 2 +- docs/category/settings/index.html | 2 +- docs/category/templates/index.html | 2 +- docs/category/user-menu/index.html | 2 +- docs/contribute/CODE_OF_CONDUCT/index.html | 2 +- docs/contribute/COMMUNITY/index.html | 2 +- docs/contribute/INSTALLATION/index.html | 2 +- .../REPORTING_GUIDELINES/index.html | 2 +- docs/contribute/intro/index.html | 2 +- .../index.html | 2 +- .../help/FAQs/Max File Upload Size/index.html | 2 +- docs/help/FAQs/User Deletion/index.html | 2 +- docs/help/FAQs/index.html | 2 +- .../edit-document-before-sending/index.html | 2 +- .../enforce-email-verification/index.html | 2 +- .../request-signatures/index.html | 47 +++++++++-- .../New-Document/sign-yourself/index.html | 2 +- docs/help/New-Document/widgets/index.html | 2 +- .../create-document/index.html | 2 +- .../OpenSign™ Drive/list-grid-view/index.html | 2 +- .../organize-documents/index.html | 2 +- .../rename-document/index.html | 2 +- docs/help/Reports/completed/index.html | 2 +- docs/help/Reports/contactbook/index.html | 2 +- docs/help/Reports/declined/index.html | 2 +- docs/help/Reports/drafts/index.html | 2 +- docs/help/Reports/expired/index.html | 2 +- docs/help/Reports/in-progress/index.html | 2 +- docs/help/Reports/need-your-sign/index.html | 2 +- docs/help/Settings/APIToken/index.html | 2 +- .../Custom-email-templates/index.html | 2 +- docs/help/Settings/Preferences/index.html | 2 +- .../Settings/SecurityManagement/index.html | 2 +- docs/help/Settings/Teams/index.html | 2 +- docs/help/Settings/Webhook/index.html | 4 +- .../Settings/disabledocumentid/index.html | 2 +- docs/help/Settings/manage-users/index.html | 2 +- docs/help/Settings/my-signature/index.html | 7 +- .../help/Templates/create-template/index.html | 82 ++++++++++++------- docs/help/Templates/embed-template/index.html | 2 +- .../Templates/manage-templates/index.html | 2 +- docs/help/Templates/publicTemplate/index.html | 2 +- docs/help/Templates/quick-send/index.html | 2 +- docs/help/Templates/use-template/index.html | 2 +- .../User Menu/Console/analystics/index.html | 2 +- .../User Menu/Console/branding/index.html | 2 +- .../Console/custom_filestorage/index.html | 2 +- docs/help/User Menu/Console/emails/index.html | 2 +- .../help/User Menu/Console/general/index.html | 2 +- .../User Menu/Console/globalSMTP/index.html | 2 +- .../User Menu/Console/orgadmin/index.html | 2 +- .../Console/organizations/index.html | 2 +- .../Console/signing_certificate/index.html | 2 +- docs/help/User Menu/Profile/index.html | 2 +- docs/help/intro/index.html | 2 +- docs/intro/index.html | 2 +- .../One-click-Install/DigitalOcean/index.html | 2 +- docs/self-host/cloud-storage/s3/index.html | 2 +- docs/self-host/docker/run-locally/index.html | 2 +- .../docker/upgrade-deployment/index.html | 2 +- .../guides/azure-vm-setup/index.html | 2 +- .../self-host/guides/env-variables/index.html | 2 +- .../index.html | 2 +- .../guides/upgrade-to-v2.1.0/index.html | 2 +- docs/self-host/intro/index.html | 2 +- index.html | 2 +- markdown-page/index.html | 2 +- 164 files changed, 257 insertions(+), 197 deletions(-) create mode 100644 assets/js/9640838e.1e9ae3be.js delete mode 100644 assets/js/9640838e.25348d39.js rename assets/js/{cfb1e6eb.cace8bac.js => cfb1e6eb.60bd1b18.js} (99%) create mode 100644 assets/js/d1393a72.50bfc189.js delete mode 100644 assets/js/d1393a72.d08d9a53.js create mode 100644 assets/js/d8b805fb.ed63b4c9.js delete mode 100644 assets/js/d8b805fb.fdb8fe31.js rename assets/js/{runtime~main.20ba5e8d.js => runtime~main.1b81b635.js} (97%) diff --git a/404.html b/404.html index 5fe237021..4ceeb2191 100644 --- a/404.html +++ b/404.html @@ -5,7 +5,7 @@
Document Created",id:"-example-payload-document-created",level:3},{value:"\ud83d\udd0d Example Payload: Document Viewed",id:"-example-payload-document-viewed",level:3},{value:"\ud83d\udd0d Example Payload: Document Signed",id:"-example-payload-document-signed",level:3},{value:"\ud83d\udd0d Example Payload: Document Completed",id:"-example-payload-document-completed",level:3},{value:"\ud83d\udd0d Example Payload: Document Declined",id:"-example-payload-document-declined",level:3},{value:"\u2753 Frequently Asked Questions",id:"-frequently-asked-questions",level:2},{value:"1. What is the OpenSign Sandbox environment?",id:"1-what-is-the-opensign-sandbox-environment",level:3},{value:"2. Can I use my Live Webhook in the Sandbox?",id:"2-can-i-use-my-live-webhook-in-the-sandbox",level:3},{value:"3. Can I test all webhook events in the Sandbox?",id:"3-can-i-test-all-webhook-events-in-the-sandbox",level:3},{value:"\ud83d\udcac Need Help?",id:"-need-help",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"-webhook",children:"\ud83d\udd01 Webhook"})}),"\n",(0,i.jsx)(n.h2,{id:"-what-is-a-webhook",children:"\ud83d\udd14 What is a Webhook?"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"webhook"})," allows one system (like OpenSign) to automatically send real-time data or notifications to another system (like your server) when a specific event occurs."]}),"\n",(0,i.jsxs)(n.p,{children:["Think of it as a ",(0,i.jsx)(n.strong,{children:"push notification for your backend"})," \u2014 instead of continuously checking for updates (polling), a webhook pushes data to your endpoint ",(0,i.jsx)(n.strong,{children:"as soon as an event happens"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-simple-example",children:"\ud83e\udde0 Simple Example"}),"\n",(0,i.jsx)(n.p,{children:"Suppose you're using OpenSign to collect eSignatures:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["When someone ",(0,i.jsx)(n.strong,{children:"signs a document"}),", OpenSign triggers a ",(0,i.jsx)(n.strong,{children:"POST request"})," to your server."]}),"\n",(0,i.jsx)(n.li,{children:"The request includes data such as the document ID, signer email, and signature status."}),"\n",(0,i.jsx)(n.li,{children:"Your server can then process this information \u2014 for example, update your CRM, trigger a workflow, or send a confirmation email."}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-how-to-add-a-webhook-in-opensign",children:"\ud83e\udded How to Add a Webhook in OpenSign"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Step 1:"})," Log in to your OpenSign account using your credentials.",(0,i.jsx)(n.br,{}),"\n",(0,i.jsx)(n.strong,{children:"Step 2:"})," Navigate to ",(0,i.jsx)(n.strong,{children:"Settings \u2192 Webhook"}),"."]}),"\n",(0,i.jsx)("img",{width:"861",height:"407",alt:"Navigate to Add Webhook",src:"https://github.com/user-attachments/assets/883dc914-9316-42b0-b59c-10b168265b38"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Step 3:"})," Click ",(0,i.jsx)(n.strong,{children:"Add Webhook"}),"."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["A popup will appear. Enter your ",(0,i.jsx)(n.strong,{children:"Webhook URL"})," and click ",(0,i.jsx)(n.strong,{children:"Yes"})," to save it."]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note:"})," To enable ",(0,i.jsx)(n.strong,{children:"Live Webhook"})," support, you must upgrade to a ",(0,i.jsx)(n.strong,{children:"paid plan"})," \u2014 either the ",(0,i.jsx)(n.strong,{children:"Professional"})," or ",(0,i.jsx)(n.strong,{children:"Teams"})," plan."]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-how-to-create-a-webhook-security-key",children:"\ud83e\udded How to Create a Webhook Security Key"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"Webhook Security Key"})," (also called a webhook secret) is a shared secret used to verify that webhook requests are genuinely sent by OpenSign and have not been tampered with."]}),"\n",(0,i.jsx)(n.h3,{id:"steps-to-create-a-webhook-security-key",children:"Steps to Create a Webhook Security Key"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Log in to your ",(0,i.jsx)(n.strong,{children:"OpenSign"})," account."]}),"\n",(0,i.jsxs)(n.li,{children:["Navigate to ",(0,i.jsx)(n.strong,{children:"Settings \u2192 Webhooks"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Add or edit a webhook endpoint."}),"\n",(0,i.jsxs)(n.li,{children:["Generate a Security Key by clicking Enable Authentication, then click the Generate button.\nThe webhook security key has been generated.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Example: ",(0,i.jsx)(n.code,{children:"a50a904a2a329d761781dac27c984416a07396736ac5588b62c6fe226538fbca"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Save the webhook configuration."}),"\n"]}),"\n",(0,i.jsx)("img",{width:"861",height:"600",alt:"webhook security key",src:"https://github.com/user-attachments/assets/6f61a23e-25a1-4785-b241-657af0c1eeb1"}),"\n",(0,i.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,i.jsx)(n.strong,{children:"Important:"})," Store this key securely. Do not expose it in client-side code or public repositories."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-how-the-webhook-security-key-works",children:"\ud83d\udd10 How the Webhook Security Key Works"}),"\n",(0,i.jsx)(n.p,{children:"OpenSign signs every webhook request using your security key."}),"\n",(0,i.jsx)(n.h3,{id:"high-level-flow",children:"High-level Flow"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"An event occurs (e.g. create document, document viewed, signed, completed, and declined)."}),"\n",(0,i.jsx)(n.li,{children:"OpenSign sends a webhook request to your configured endpoint."}),"\n",(0,i.jsxs)(n.li,{children:["OpenSign generates a signature using:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.strong,{children:"raw request payload"})]}),"\n",(0,i.jsxs)(n.li,{children:["Your ",(0,i.jsx)(n.strong,{children:"webhook security key"})]}),"\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.strong,{children:"HMAC-SHA256"})," algorithm"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"The generated signature is sent in the request header:"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"x-webhook-signature\n"})}),"\n",(0,i.jsxs)(n.ol,{start:"5",children:["\n",(0,i.jsx)(n.li,{children:"Your server recomputes the signature using the same payload and secret."}),"\n",(0,i.jsx)(n.li,{children:"If both signatures match, the request is verified as authentic."}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.p,{children:"// Process webhook event"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'\n---\n\n## \ud83d\udce6 Sample Webhook Payload\n\n```json\nconst crypto = require("crypto");\n\nfunction verifySignature(req, secret) {\n const receivedSignature = req.headers["x-webhook-signature"];\n const payload = req.body;\n\n const expectedSignature = crypto\n .createHmac("sha256", secret)\n .update(JSON.stringify(payload))\n .digest("hex");\n\n return receivedSignature === expectedSignature;\n}\n\nconsole.log("Try programiz.pro", verifySignature({body: {\n "event": "created",\n "type": "request-sign",\n "objectId": "SBEbnHwfrN",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/c3f0bc11b84a87e6265de6bf28e5015e_uoeksXXU6FI5Op2B.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=DO00QAPRB3CQRWHWQ8ZB%2F20251219%2Fus-west%2Fs3%2Faws4_request&X-Amz-Date=20251219T152806Z&X-Amz-Expires=900&X-Amz-Signature=9635dfb8ee8fde933f881905a97f869578ef7e99b337d4b21a0805b8317fd70d&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",\n "name": "Sample Test Doc Line Compressed",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark@opensignlabs.com"\n },\n {\n "name": "kelvin bosch",\n "email": "kelvin.bosch@opensignlabs.com"\n }\n ],\n "createdAt": "Sat, 20 Dec 2025 00:58:20 GMT+9:30"\n}, headers:{"x-webhook-signature":"52958fd3900f19ba6485319eb2622ef0ec4cf5ddfe36509cbe95eb706ed6b8c2" }}, "0906e8cbc88da0d5a6fd78162eb8e5e57ba7bd99bdc472145dc089d7f82b0a4a"));\n'})}),"\n",(0,i.jsx)(n.p,{children:"The corresponding signature is sent in the request header:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"x-webhook-signature: bcf57b06dde0c030d9423639824bad17ab7dd09ea3bf0a743773b95254ecf78e\n"})}),"\n",(0,i.jsx)(n.p,{children:"If the script returns true, it means the webhook is valid and has not been tampered with."}),"\n",(0,i.jsx)(n.h2,{id:"-best-practices",children:"\u2705 Best Practices"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Always verify the webhook signature before processing the payload."}),"\n",(0,i.jsxs)(n.li,{children:["Use the ",(0,i.jsx)(n.strong,{children:"raw request body"})," for signature calculation (avoid modifying it)."]}),"\n",(0,i.jsx)(n.li,{children:"Rotate your webhook security key periodically."}),"\n",(0,i.jsxs)(n.li,{children:["Return a ",(0,i.jsx)(n.strong,{children:"2xx"})," HTTP status only after successful verification."]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-common-issues",children:"\ud83e\udde9 Common Issues"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Signature mismatch"}),": Ensure the payload is stringified exactly as received."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Missing header"}),": Confirm ",(0,i.jsx)(n.code,{children:"x-webhook-signature"})," is present in the request."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Wrong secret"}),": Verify the same security key is used on both sides."]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.p,{children:"This mechanism ensures webhook requests are secure, tamper-proof, and trustworthy."}),"\n",(0,i.jsx)(n.h2,{id:"-sandbox-webhook",children:"\ud83e\uddea Sandbox Webhook"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["You can also add webhook for the ",(0,i.jsx)(n.strong,{children:"Sandbox"})," environment on the same page."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Sandbox webhook"})," are available on all plans, including the ",(0,i.jsx)(n.strong,{children:"Free"})," plan, and are ideal for development and testing."]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Caution:"})," Avoid sending sensitive or confidential data to the Sandbox environment."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["\ud83d\udcd8 ",(0,i.jsx)(n.strong,{children:"API Reference:"}),(0,i.jsx)(n.br,{}),"\n","You can also manage your webhooks via our API.",(0,i.jsx)(n.br,{}),"\n","See the API documentation here: ",(0,i.jsx)(n.a,{href:"https://docs.opensignlabs.com/docs/API-docs/save-update-webhook",children:"Save/Update Webhook API"})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-supported-webhook-events",children:"\ud83d\udccb Supported Webhook Events"}),"\n",(0,i.jsx)(n.p,{children:"OpenSign sends event notifications to your configured webhook URL when any of the following actions occur:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Created"})," \u2013 A document is created."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Viewed"})," \u2013 A signer viewed the document."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Signed"})," \u2013 A signer signed the document."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Completed"})," \u2013 All required signatures are completed."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Revoked or Declined"})," \u2013 The document was revoked or declined."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Each notification is sent as a ",(0,i.jsx)(n.strong,{children:"POST request"})," with a ",(0,i.jsx)(n.strong,{children:"JSON payload"})," containing relevant event data."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-created",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Created"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "created",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/851de61f62b60a1f62e03232464fa4bf_81wV17MTebsrRoov.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n }\n ],\n "createdAt": "Fri, 16 May 2025 15:02:42 IST"\n}\n'})}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-viewed",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Viewed"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "viewed",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/851de61f62b60a1f62e03232464fa4bf_81wV17MTebsrRoov.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n }\n ],\n "viewedBy": "peter.mark1093@gmail.com",\n "viewedAt": "Fri, 16 May 2025 16:18:16 IST",\n "createdAt": "Fri, 16 May 2025 15:02:28 IST"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-signed",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Signed"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "signed",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/bc2eb56cc9d29a5f222e4a4b5dbbcfbf_signed_sample_test_doc_4858.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signer": {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n },\n "signedAt": "Fri, 16 May 2025 16:18:34 GMT+5:30",\n "createdAt": "Fri, 16 May 2025 15:02:28 GMT+5:30"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-completed",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Completed"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "completed",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/bc2eb56cc9d29a5f222e4a4b5dbbcfbf_signed_sample_test_doc_4858.pdf?...",\n "certificate": "https://legadratw3d.ams3.digitaloceanspaces.com/9c954912f529acb7e4d065ec0521a63b_certificate.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n }\n ],\n "completedAt": "Fri, 16 May 2025 16:18:35 GMT+5:30",\n "createdAt": "Fri, 16 May 2025 15:02:28 GMT+5:30"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-declined",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Declined"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "declined",\n "type": "request-sign",\n "objectId": "1gtDMBHpEY",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/e90c32a45351eb52eb00e0054ae50566_581ZmOn4CwAqnxSF.pdf?...",\n "name": "Sample Test Doc ",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "9283784545554"\n }\n ],\n "declinedBy": "peter.mark1093@gmail.com",\n "declinedReason": "Invalid date format used.",\n "declinedAt": "Fri, 16 May 2025 16:25:38 IST",\n "createdAt": "Fri, 16 May 2025 16:24:28 IST"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-frequently-asked-questions",children:"\u2753 Frequently Asked Questions"}),"\n",(0,i.jsx)(n.h3,{id:"1-what-is-the-opensign-sandbox-environment",children:"1. What is the OpenSign Sandbox environment?"}),"\n",(0,i.jsx)(n.p,{children:"The Sandbox is a testing environment designed for developers to safely experiment with OpenSign APIs and workflows. It mirrors the live environment but with testing limitations."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"2-can-i-use-my-live-webhook-in-the-sandbox",children:"2. Can I use my Live Webhook in the Sandbox?"}),"\n",(0,i.jsxs)(n.p,{children:["No. ",(0,i.jsx)(n.strong,{children:"Live Webhooks do not work"})," in the Sandbox environment. You must configure a separate webhook specifically for Sandbox testing."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"3-can-i-test-all-webhook-events-in-the-sandbox",children:"3. Can I test all webhook events in the Sandbox?"}),"\n",(0,i.jsxs)(n.p,{children:["Yes. The Sandbox environment supports all event types, including ",(0,i.jsx)(n.code,{children:"created"}),", ",(0,i.jsx)(n.code,{children:"viewed"}),", ",(0,i.jsx)(n.code,{children:"signed"}),", ",(0,i.jsx)(n.code,{children:"completed"}),", and ",(0,i.jsx)(n.code,{children:"revoked/declined"}),".",(0,i.jsx)(n.br,{}),"\n","However, some behaviors may be simulated for testing purposes."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-need-help",children:"\ud83d\udcac Need Help?"}),"\n",(0,i.jsxs)(n.p,{children:["If you need help testing your webhook or integrating it into your application, feel free to reach out to our support team at ",(0,i.jsx)(n.a,{href:"mailto:support@opensignlabs.com",children:"support@opensignlabs.com"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Happy signing with OpenSign\u2122!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[539],{28453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>a});var o=s(96540);const i={},t=o.createContext(i);function r(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(t.Provider,{value:n},e.children)}},79436:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"help/Settings/Webhook","title":"Webhook","description":"\ud83d\udd14 What is a Webhook?","source":"@site/docs/help/Settings/Webhook.md","sourceDirName":"help/Settings","slug":"/help/Settings/Webhook","permalink":"/docs/help/Settings/Webhook","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/help/Settings/Webhook.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Webhook"},"sidebar":"tutorialSidebar","previous":{"title":"API Token","permalink":"/docs/help/Settings/APIToken"},"next":{"title":"Preferences","permalink":"/docs/help/Settings/Preferences"}}');var i=s(74848),t=s(28453);const r={sidebar_position:3,title:"Webhook"},a="\ud83d\udd01 Webhook",d={},l=[{value:"\ud83d\udd14 What is a Webhook?",id:"-what-is-a-webhook",level:2},{value:"\ud83e\udde0 Simple Example",id:"-simple-example",level:2},{value:"\ud83e\udded How to Add a Webhook in OpenSign",id:"-how-to-add-a-webhook-in-opensign",level:2},{value:"\ud83e\udded How to Create a Webhook Security Key",id:"-how-to-create-a-webhook-security-key",level:2},{value:"Steps to Create a Webhook Security Key",id:"steps-to-create-a-webhook-security-key",level:3},{value:"\ud83d\udd10 How the Webhook Security Key Works",id:"-how-the-webhook-security-key-works",level:2},{value:"High-level Flow",id:"high-level-flow",level:3},{value:"\u2705 Best Practices",id:"-best-practices",level:2},{value:"\ud83e\udde9 Common Issues",id:"-common-issues",level:2},{value:"\ud83e\uddea Sandbox Webhook",id:"-sandbox-webhook",level:2},{value:"\ud83d\udccb Supported Webhook Events",id:"-supported-webhook-events",level:2},{value:"\ud83d\udd0d Example Payload: Document Created",id:"-example-payload-document-created",level:3},{value:"\ud83d\udd0d Example Payload: Document Viewed",id:"-example-payload-document-viewed",level:3},{value:"\ud83d\udd0d Example Payload: Document Signed",id:"-example-payload-document-signed",level:3},{value:"\ud83d\udd0d Example Payload: Document Completed",id:"-example-payload-document-completed",level:3},{value:"\ud83d\udd0d Example Payload: Document Declined",id:"-example-payload-document-declined",level:3},{value:"\u2753 Frequently Asked Questions",id:"-frequently-asked-questions",level:2},{value:"1. What is the OpenSign Sandbox environment?",id:"1-what-is-the-opensign-sandbox-environment",level:3},{value:"2. Can I use my Live Webhook in the Sandbox?",id:"2-can-i-use-my-live-webhook-in-the-sandbox",level:3},{value:"3. Can I test all webhook events in the Sandbox?",id:"3-can-i-test-all-webhook-events-in-the-sandbox",level:3},{value:"\ud83d\udcac Need Help?",id:"-need-help",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"-webhook",children:"\ud83d\udd01 Webhook"})}),"\n",(0,i.jsx)(n.h2,{id:"-what-is-a-webhook",children:"\ud83d\udd14 What is a Webhook?"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"webhook"})," allows one system (like OpenSign) to automatically send real-time data or notifications to another system (like your server) when a specific event occurs."]}),"\n",(0,i.jsxs)(n.p,{children:["Think of it as a ",(0,i.jsx)(n.strong,{children:"push notification for your backend"})," \u2014 instead of continuously checking for updates (polling), a webhook pushes data to your endpoint ",(0,i.jsx)(n.strong,{children:"as soon as an event happens"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-simple-example",children:"\ud83e\udde0 Simple Example"}),"\n",(0,i.jsx)(n.p,{children:"Suppose you're using OpenSign to collect eSignatures:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["When someone ",(0,i.jsx)(n.strong,{children:"signs a document"}),", OpenSign triggers a ",(0,i.jsx)(n.strong,{children:"POST request"})," to your server."]}),"\n",(0,i.jsx)(n.li,{children:"The request includes data such as the document ID, signer email, and signature status."}),"\n",(0,i.jsx)(n.li,{children:"Your server can then process this information \u2014 for example, update your CRM, trigger a workflow, or send a confirmation email."}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-how-to-add-a-webhook-in-opensign",children:"\ud83e\udded How to Add a Webhook in OpenSign"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Step 1:"})," Log in to your OpenSign account using your credentials.",(0,i.jsx)(n.br,{}),"\n",(0,i.jsx)(n.strong,{children:"Step 2:"})," Navigate to ",(0,i.jsx)(n.strong,{children:"Settings \u2192 Webhook"}),"."]}),"\n",(0,i.jsx)("img",{width:"861",height:"407",alt:"Navigate to Add Webhook",src:"https://github.com/user-attachments/assets/883dc914-9316-42b0-b59c-10b168265b38"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Step 3:"})," Click ",(0,i.jsx)(n.strong,{children:"Add Webhook"}),"."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["A popup will appear. Enter your ",(0,i.jsx)(n.strong,{children:"Webhook URL"})," and click ",(0,i.jsx)(n.strong,{children:"Yes"})," to save it."]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note:"})," To enable ",(0,i.jsx)(n.strong,{children:"Live Webhook"})," support, you must upgrade to a ",(0,i.jsx)(n.strong,{children:"paid plan"})," \u2014 either the ",(0,i.jsx)(n.strong,{children:"Professional"})," or ",(0,i.jsx)(n.strong,{children:"Teams"})," plan."]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-how-to-create-a-webhook-security-key",children:"\ud83e\udded How to Create a Webhook Security Key"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"Webhook Security Key"})," (also called a webhook secret) is a shared secret used to verify that webhook requests are genuinely sent by OpenSign and have not been tampered with."]}),"\n",(0,i.jsx)(n.h3,{id:"steps-to-create-a-webhook-security-key",children:"Steps to Create a Webhook Security Key"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Log in to your ",(0,i.jsx)(n.strong,{children:"OpenSign"})," account."]}),"\n",(0,i.jsxs)(n.li,{children:["Navigate to ",(0,i.jsx)(n.strong,{children:"Settings \u2192 Webhooks"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Add or edit a webhook endpoint."}),"\n",(0,i.jsxs)(n.li,{children:["Generate a Security Key by clicking Enable Authentication, then click the Generate button.\nThe webhook security key has been generated.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Example: ",(0,i.jsx)(n.code,{children:"a50a904a2a329d761781dac27c984416a07396736ac5588b62c6fe226538fbca"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Save the webhook configuration."}),"\n"]}),"\n",(0,i.jsx)("img",{width:"861",height:"407",alt:"webhook security key",src:"https://github.com/user-attachments/assets/6f61a23e-25a1-4785-b241-657af0c1eeb1"}),"\n",(0,i.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,i.jsx)(n.strong,{children:"Important:"})," Store this key securely. Do not expose it in client-side code or public repositories."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-how-the-webhook-security-key-works",children:"\ud83d\udd10 How the Webhook Security Key Works"}),"\n",(0,i.jsx)(n.p,{children:"OpenSign signs every webhook request using your security key."}),"\n",(0,i.jsx)(n.h3,{id:"high-level-flow",children:"High-level Flow"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"An event occurs (e.g. create document, document viewed, signed, completed, and declined)."}),"\n",(0,i.jsx)(n.li,{children:"OpenSign sends a webhook request to your configured endpoint."}),"\n",(0,i.jsxs)(n.li,{children:["OpenSign generates a signature using:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.strong,{children:"raw request payload"})]}),"\n",(0,i.jsxs)(n.li,{children:["Your ",(0,i.jsx)(n.strong,{children:"webhook security key"})]}),"\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.strong,{children:"HMAC-SHA256"})," algorithm"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"The generated signature is sent in the request header:"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"x-webhook-signature\n"})}),"\n",(0,i.jsxs)(n.ol,{start:"5",children:["\n",(0,i.jsx)(n.li,{children:"Your server recomputes the signature using the same payload and secret."}),"\n",(0,i.jsx)(n.li,{children:"If both signatures match, the request is verified as authentic."}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.p,{children:"// Process webhook event"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'\n---\n\n## \ud83d\udce6 Sample Webhook Payload\n\n```json\nconst crypto = require("crypto");\n\nfunction verifySignature(req, secret) {\n const receivedSignature = req.headers["x-webhook-signature"];\n const payload = req.body;\n\n const expectedSignature = crypto\n .createHmac("sha256", secret)\n .update(JSON.stringify(payload))\n .digest("hex");\n\n return receivedSignature === expectedSignature;\n}\n\nconsole.log("Try programiz.pro", verifySignature({body: {\n "event": "created",\n "type": "request-sign",\n "objectId": "SBEbnHwfrN",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/c3f0bc11b84a87e6265de6bf28e5015e_uoeksXXU6FI5Op2B.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=DO00QAPRB3CQRWHWQ8ZB%2F20251219%2Fus-west%2Fs3%2Faws4_request&X-Amz-Date=20251219T152806Z&X-Amz-Expires=900&X-Amz-Signature=9635dfb8ee8fde933f881905a97f869578ef7e99b337d4b21a0805b8317fd70d&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",\n "name": "Sample Test Doc Line Compressed",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark@opensignlabs.com"\n },\n {\n "name": "kelvin bosch",\n "email": "kelvin.bosch@opensignlabs.com"\n }\n ],\n "createdAt": "Sat, 20 Dec 2025 00:58:20 GMT+9:30"\n}, headers:{"x-webhook-signature":"52958fd3900f19ba6485319eb2622ef0ec4cf5ddfe36509cbe95eb706ed6b8c2" }}, "0906e8cbc88da0d5a6fd78162eb8e5e57ba7bd99bdc472145dc089d7f82b0a4a"));\n'})}),"\n",(0,i.jsx)(n.p,{children:"The corresponding signature is sent in the request header:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"x-webhook-signature: bcf57b06dde0c030d9423639824bad17ab7dd09ea3bf0a743773b95254ecf78e\n"})}),"\n",(0,i.jsx)(n.p,{children:"If the script returns true, it means the webhook is valid and has not been tampered with."}),"\n",(0,i.jsx)(n.h2,{id:"-best-practices",children:"\u2705 Best Practices"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Always verify the webhook signature before processing the payload."}),"\n",(0,i.jsxs)(n.li,{children:["Use the ",(0,i.jsx)(n.strong,{children:"raw request body"})," for signature calculation (avoid modifying it)."]}),"\n",(0,i.jsx)(n.li,{children:"Rotate your webhook security key periodically."}),"\n",(0,i.jsxs)(n.li,{children:["Return a ",(0,i.jsx)(n.strong,{children:"2xx"})," HTTP status only after successful verification."]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-common-issues",children:"\ud83e\udde9 Common Issues"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Signature mismatch"}),": Ensure the payload is stringified exactly as received."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Missing header"}),": Confirm ",(0,i.jsx)(n.code,{children:"x-webhook-signature"})," is present in the request."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Wrong secret"}),": Verify the same security key is used on both sides."]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.p,{children:"This mechanism ensures webhook requests are secure, tamper-proof, and trustworthy."}),"\n",(0,i.jsx)(n.h2,{id:"-sandbox-webhook",children:"\ud83e\uddea Sandbox Webhook"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["You can also add webhook for the ",(0,i.jsx)(n.strong,{children:"Sandbox"})," environment on the same page."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Sandbox webhook"})," are available on all plans, including the ",(0,i.jsx)(n.strong,{children:"Free"})," plan, and are ideal for development and testing."]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Caution:"})," Avoid sending sensitive or confidential data to the Sandbox environment."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["\ud83d\udcd8 ",(0,i.jsx)(n.strong,{children:"API Reference:"}),(0,i.jsx)(n.br,{}),"\n","You can also manage your webhooks via our API.",(0,i.jsx)(n.br,{}),"\n","See the API documentation here: ",(0,i.jsx)(n.a,{href:"https://docs.opensignlabs.com/docs/API-docs/save-update-webhook",children:"Save/Update Webhook API"})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-supported-webhook-events",children:"\ud83d\udccb Supported Webhook Events"}),"\n",(0,i.jsx)(n.p,{children:"OpenSign sends event notifications to your configured webhook URL when any of the following actions occur:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Created"})," \u2013 A document is created."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Viewed"})," \u2013 A signer viewed the document."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Signed"})," \u2013 A signer signed the document."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Completed"})," \u2013 All required signatures are completed."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Document Revoked or Declined"})," \u2013 The document was revoked or declined."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Each notification is sent as a ",(0,i.jsx)(n.strong,{children:"POST request"})," with a ",(0,i.jsx)(n.strong,{children:"JSON payload"})," containing relevant event data."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-created",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Created"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "created",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/851de61f62b60a1f62e03232464fa4bf_81wV17MTebsrRoov.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n }\n ],\n "createdAt": "Fri, 16 May 2025 15:02:42 IST"\n}\n'})}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-viewed",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Viewed"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "viewed",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/851de61f62b60a1f62e03232464fa4bf_81wV17MTebsrRoov.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n }\n ],\n "viewedBy": "peter.mark1093@gmail.com",\n "viewedAt": "Fri, 16 May 2025 16:18:16 IST",\n "createdAt": "Fri, 16 May 2025 15:02:28 IST"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-signed",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Signed"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "signed",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/bc2eb56cc9d29a5f222e4a4b5dbbcfbf_signed_sample_test_doc_4858.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signer": {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n },\n "signedAt": "Fri, 16 May 2025 16:18:34 GMT+5:30",\n "createdAt": "Fri, 16 May 2025 15:02:28 GMT+5:30"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-completed",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Completed"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "completed",\n "type": "request-sign",\n "objectId": "kpeg6Q2rO7",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/bc2eb56cc9d29a5f222e4a4b5dbbcfbf_signed_sample_test_doc_4858.pdf?...",\n "certificate": "https://legadratw3d.ams3.digitaloceanspaces.com/9c954912f529acb7e4d065ec0521a63b_certificate.pdf?...",\n "name": "Sample Test Doc",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "3556567789"\n }\n ],\n "completedAt": "Fri, 16 May 2025 16:18:35 GMT+5:30",\n "createdAt": "Fri, 16 May 2025 15:02:28 GMT+5:30"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h3,{id:"-example-payload-document-declined",children:["\ud83d\udd0d Example Payload: ",(0,i.jsx)(n.code,{children:"Document Declined"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "event": "declined",\n "type": "request-sign",\n "objectId": "1gtDMBHpEY",\n "file": "https://legadratw3d.ams3.digitaloceanspaces.com/e90c32a45351eb52eb00e0054ae50566_581ZmOn4CwAqnxSF.pdf?...",\n "name": "Sample Test Doc ",\n "note": "Please review and sign this document",\n "description": "",\n "signers": [\n {\n "name": "Peter Mark",\n "email": "peter.mark1093@gmail.com",\n "phone": "9283784545554"\n }\n ],\n "declinedBy": "peter.mark1093@gmail.com",\n "declinedReason": "Invalid date format used.",\n "declinedAt": "Fri, 16 May 2025 16:25:38 IST",\n "createdAt": "Fri, 16 May 2025 16:24:28 IST"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-frequently-asked-questions",children:"\u2753 Frequently Asked Questions"}),"\n",(0,i.jsx)(n.h3,{id:"1-what-is-the-opensign-sandbox-environment",children:"1. What is the OpenSign Sandbox environment?"}),"\n",(0,i.jsx)(n.p,{children:"The Sandbox is a testing environment designed for developers to safely experiment with OpenSign APIs and workflows. It mirrors the live environment but with testing limitations."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"2-can-i-use-my-live-webhook-in-the-sandbox",children:"2. Can I use my Live Webhook in the Sandbox?"}),"\n",(0,i.jsxs)(n.p,{children:["No. ",(0,i.jsx)(n.strong,{children:"Live Webhooks do not work"})," in the Sandbox environment. You must configure a separate webhook specifically for Sandbox testing."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"3-can-i-test-all-webhook-events-in-the-sandbox",children:"3. Can I test all webhook events in the Sandbox?"}),"\n",(0,i.jsxs)(n.p,{children:["Yes. The Sandbox environment supports all event types, including ",(0,i.jsx)(n.code,{children:"created"}),", ",(0,i.jsx)(n.code,{children:"viewed"}),", ",(0,i.jsx)(n.code,{children:"signed"}),", ",(0,i.jsx)(n.code,{children:"completed"}),", and ",(0,i.jsx)(n.code,{children:"revoked/declined"}),".",(0,i.jsx)(n.br,{}),"\n","However, some behaviors may be simulated for testing purposes."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"-need-help",children:"\ud83d\udcac Need Help?"}),"\n",(0,i.jsxs)(n.p,{children:["If you need help testing your webhook or integrating it into your application, feel free to reach out to our support team at ",(0,i.jsx)(n.a,{href:"mailto:support@opensignlabs.com",children:"support@opensignlabs.com"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Happy signing with OpenSign\u2122!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}}}]);
\ No newline at end of file
diff --git a/assets/js/d1393a72.50bfc189.js b/assets/js/d1393a72.50bfc189.js
new file mode 100644
index 000000000..780a648e1
--- /dev/null
+++ b/assets/js/d1393a72.50bfc189.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[841],{20412:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"help/New-Document/request-signatures","title":"Request signatures","description":"Interface Overview","source":"@site/docs/help/New-Document/request-signatures.md","sourceDirName":"help/New-Document","slug":"/help/New-Document/request-signatures","permalink":"/docs/help/New-Document/request-signatures","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/help/New-Document/request-signatures.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"Request signatures"},"sidebar":"tutorialSidebar","previous":{"title":"Sign your-self","permalink":"/docs/help/New-Document/sign-yourself"},"next":{"title":"Widgets in OpenSign","permalink":"/docs/help/New-Document/widgets"}}');var s=i(74848),l=i(28453);const r={sidebar_position:2,title:"Request signatures"},o="Request signatures using OpenSign\u2122",d={},a=[{value:"Interface Overview",id:"interface-overview",level:2},{value:"Step 1: Begin New Document Creation",id:"step-1-begin-new-document-creation",level:3},{value:"Uploading Your Document",id:"uploading-your-document",level:3},{value:"Entering Document Details And Signers",id:"entering-document-details-and-signers",level:3},{value:"Organizing Your Document",id:"organizing-your-document",level:3},{value:"Set the sending order",id:"set-the-sending-order",level:3},{value:"Setting the Time Frame",id:"setting-the-time-frame",level:3},{value:"Setting BCC",id:"setting-bcc",level:3},{value:"Auto reminder",id:"auto-reminder",level:3},{value:"Security Setting",id:"security-setting",level:3},{value:"Enable tour:",id:"enable-tour",level:3},{value:"Notify on signatures:",id:"notify-on-signatures",level:3},{value:"allow modifications:",id:"allow-modifications",level:3},{value:"Redirect url:",id:"redirect-url",level:3},{value:"Step 2: Proceed to Document Creation Panel",id:"step-2-proceed-to-document-creation-panel",level:3},{value:"Step 3: Document Creation",id:"step-3-document-creation",level:3},{value:"Prefill Widgets",id:"prefill-widgets",level:3},{value:"Add Widgets for Signers",id:"add-widgets-for-signers",level:3},{value:"\u2699\ufe0f Widget Options",id:"\ufe0f-widget-options",level:4},{value:"\ud83d\udcc4 Document Page Controls",id:"-document-page-controls",level:3},{value:"Step 4: Next:",id:"step-4-next",level:3},{value:"Step 5: Send Mail",id:"step-5-send-mail",level:3},{value:"Signers Signing Process",id:"signers-signing-process",level:2},{value:"Step 6: Email OTP verification",id:"step-6-email-otp-verification",level:3},{value:"Step 7: Finalizing the Process:",id:"step-7-finalizing-the-process",level:3},{value:"Additional Information",id:"additional-information",level:2}];function c(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"request-signatures-using-opensign",children:"Request signatures using OpenSign\u2122"})}),"\n",(0,s.jsx)(n.h2,{id:"interface-overview",children:"Interface Overview"}),"\n",(0,s.jsx)(n.p,{children:"The OpenSign\u2122 Request signatures interface is designed to streamline the process of creating, preparing, and sending documents for electronic signature."}),"\n",(0,s.jsx)(n.h1,{id:"how-to-create-and-send-a-document-for-signature-with-opensign",children:"How to Create and Send a Document for Signature with OpenSign\u2122"}),"\n",(0,s.jsx)(n.h3,{id:"step-1-begin-new-document-creation",children:"Step 1: Begin New Document Creation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Navigate to Request Signatures form"}),": Start by navigating to 'Request Signatures' from the main menu to initiate the creation of a document for signatures."]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/65087c2d-a1e4-4735-8420-759ea97b38aa"}),"\n",(0,s.jsx)(n.h3,{id:"uploading-your-document",children:"Uploading Your Document"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[1] Choose File"}),': Once the "Request signature" form opens, click "Choose file" button to select and upload the document file from your computer that needs to be signed. Currently you can upload only 1 file at a time but you can add additional documents by clicking "Add pages" in the next step.']}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[2] Choose File from Dropbox"}),": Click the dropbox icon to select the document file from your dropbox account."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"entering-document-details-and-signers",children:"Entering Document Details And Signers"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[3] Title"})," ",(0,s.jsx)(n.em,{children:"(Required)"}),": Input the title of your document. This identifier will be visible to signers and in your document management."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[4] Signers"}),": Use the dropdown to select existing signers or use the addition button to add a new signer who needs to sign the document. (Here, add the signer's details such as name, email, and phone number)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[5] Note"}),": Optionally add a note to give context or instructions regarding the document."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"organizing-your-document",children:"Organizing Your Document"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[6] Folder"}),": Select a folder where you want the document to be stored, or leave it to default to the 'Root' folder. You can browse your documents in a beautiful explorer view by navigating to \"OpenSign\u2122 Drive\"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"set-the-sending-order",children:"Set the sending order"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"[7] Send in Order"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"If you choose:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Yes"}),": Selecting this option will send the signing request to the first signer initially. Once the first signer completes their part, the next signer in the sequence will receive the request. This process continues until all signers have signed the document. This method ensures that the document is signed in a specific order."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"No"}),": Selecting this option will send the signing links to all signers simultaneously. Every signer can sign the document at their convenience, regardless of whether other signers have completed their signatures. This method is faster but does not enforce any signing order among the participants.\nSelect the option that best suits the needs of your document processing."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"setting-the-time-frame",children:"Setting the Time Frame"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[8] Time To Complete (Days)"})," ",(0,s.jsx)(n.em,{children:"(Required)"}),": Specify the number of days the signers have to complete the signatures. After that, the document will no longer be available for signing."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"setting-bcc",children:"Setting BCC"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[9] BCC"}),': The BCC (Blind Carbon Copy) feature allows users to receive document completion emails at specified email addresses.\nYou can add multiple contacts in the BCC field to notify several recipients.\nYou can either:\nClick "Add New" to enter a new email contact, or\nSelect from existing contacts using the dropdown list.']}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"auto-reminder",children:"Auto reminder"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[10]"})," Once you enable the auto reminder, a text field will appear allowing you to set the reminder for a specific number of days."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Remind once in every (Days)"}),": You can specify the reminder interval in days (e.g., every 1 or every 2 days).\nNote: You can set a maximum of 15 reminders. For example, if the document completion time is 16 days and you try to schedule a reminder every day, the system will not allow it, as the reminder limit would be exceeded.\nThis feature only available for the paid users."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"security-setting",children:"Security Setting"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"[11] Enable OTP Verification"})," :"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'If set to "Yes," the signer will be required to complete email OTP verification before viewing and signing the document.'}),"\n",(0,s.jsx)(n.li,{children:'If "Enable OTP Verification" is set to "No," the signer will not be prompted for OTP verification during the signing process.'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Note: This feature is available exclusively on paid plans."}),"\n",(0,s.jsx)(n.h3,{id:"enable-tour",children:"Enable tour:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[12]"}),' If set to "Yes," the signer will see the tour guide while signing the document. If your signer is familiar with OpenSign and you prefer not to display the tour guide, you can select "No," and the tour guide will not be shown to your signers.']}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"notify-on-signatures",children:"Notify on signatures:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[13]"}),' If set to "Yes," the document owner will receive an email notification each signer completes their signature.\nNote: This feature is available exclusively on paid plans.']}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"allow-modifications",children:"allow modifications:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[14]"})," If set to Yes, the signer will be allowed to make modifications to the document during the signing process. However, they cannot edit or remove any fields that were already placed by the document owner. They can only add basic fields such as signature, stamp, initials, text, and cells."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"If both Allow Modification and Enable OTP are set to Yes, the signer will still not be able to edit or delete existing fields, but will gain access to additional advanced fields to add during signing. These include: signature, stamp, initials, name, job title, company, text, cells, and email."}),"\n",(0,s.jsx)(n.p,{children:"Note: This feature is available exclusively on paid plans."}),"\n",(0,s.jsx)(n.h3,{id:"redirect-url",children:"Redirect url:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[15]"})," After signing the document and upon its completion, the signer will be redirected to the specified URL."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-2-proceed-to-document-creation-panel",children:"Step 2: Proceed to Document Creation Panel"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Next"}),": Once all the necessary fields are filled, click this button to proceed to create the document for signing."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cancel"}),": If you need to start over or make changes, click this button to clear the form."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-3-document-creation",children:"Step 3: Document Creation"}),"\n",(0,s.jsx)(n.h3,{id:"prefill-widgets",children:"Prefill Widgets"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Prefill Widgets"})," feature lets document creators prefill specific fields before sending a document for signature. This ensures that important details (such as date, name, email, images, checkboxes, radio buttons, or custom text) are already completed when recipients receive the document. By default, prefilled data cannot be edited by signers."]}),"\n",(0,s.jsx)("img",{width:"800",alt:"Prfill",src:"https://github.com/user-attachments/assets/4794b2a9-acc0-4ef8-8110-076f0d90cc57"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u2728 Key Benefits"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u2705 Save time by auto-filling repetitive information."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Ensure accuracy for critical fields (e.g., company name, contract number)."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Maintain consistency across multiple signers and templates."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Reduce signer effort for a smoother signing experience."}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\ud83d\udee0\ufe0f How It Works"})}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Add Widgets to the Document"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Open the right-side panel, select ",(0,s.jsx)(n.strong,{children:"Prefill Widgets"}),", then drag and drop the required widgets (Text, Date, Checkbox, Dropdown, Image, etc.) onto the document."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Enter Prefill Value"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Provide the default value (e.g., ",(0,s.jsx)(n.em,{children:'"Company: OpenSign Labs"'}),", ",(0,s.jsx)(n.em,{children:"Date: 30/09/2025"}),")."]}),"\n",(0,s.jsx)(n.li,{children:"For option-based widgets (Dropdown, Radio, Checkbox), choose the option to be prefilled."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\ud83d\udccb Supported Widgets for Prefill"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Text Field"})," \u2013 Names, job titles, company names, contract IDs"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Date Field"})," \u2013 Default signing date or contract start date"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dropdown"})," \u2013 Preselect an option"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Radio Button"})," \u2013 Prefill with a selected choice"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Checkbox"})," \u2013 Prefill as checked or unchecked"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Image"})," \u2013 Insert a default image (e.g., logo or stamp)"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"add-widgets-for-signers",children:"Add Widgets for Signers"}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/25997f4c-6fbf-4851-b8a8-a803c3343f87"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"[1] Add signature widget"}),": Once your document is loaded in the document creation panel, you'll need to add a signature widget for each signer. OpenSign provides an intuitive interface for this task. Select the signer from the right side panel, click on the signature widget, and position it where the signature is required.\nUse the option on the right side to add recipients if you need to include additional signers. You can place multiple signature widgets for each signer, as required."]}),"\n",(0,s.jsx)(n.p,{children:"After placing the Signature widget, you will see the options on the widget such as:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Add Signer/Change Signer"}),": Clicking the first icon on the signature widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Copy Signature"}),": Clicking on this option reveals the following choices.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All pages: It will copy the signature widget to all pages."}),"\n",(0,s.jsx)(n.li,{children:"All pages but last: It will copy the signature widget to all pages except the last page."}),"\n",(0,s.jsx)(n.li,{children:"All pages but first: It will copy the signature widget to all pages except the first page."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"[2] Add other widgets"}),": Depending on your needs, you can include additional widgets such as:"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stamp"}),": The stamp widget allows signers to add a stamp to the document. Signers can upload their stamp during the signing process. After placing the Stamp widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting icon: By clicking on the option, you can specify whether this widget is mandatory or optional during the document signing."}),"\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the second option on the stamp widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsxs)(n.li,{children:["Copy Stamp: Clicking on this option reveals the following choices.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All pages : It will copy the stamp widget to all pages."}),"\n",(0,s.jsx)(n.li,{children:"All pages but last: It will copy the stamp widget to all pages except the last page."}),"\n",(0,s.jsx)(n.li,{children:"All pages but first: It will copy the stamp widget to all pages except the first page."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Initials"}),": The initials widget allows signers to add their initials to the document. During the signing process, signers can draw, upload, or type their initials. After placing the Initials widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting icon: By clicking on the option, you can specify whether this widget is mandatory or optional during the document signing."}),"\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Initials widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsxs)(n.li,{children:["Copy Initials: Clicking on this option reveals the following choices.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All pages : It will copy the initials widget to all pages."}),"\n",(0,s.jsx)(n.li,{children:"All pages but last: It will copy the initials widget to all pages except the last page."}),"\n",(0,s.jsx)(n.li,{children:"All pages but first: It will copy the initials widget to all pages except the first page."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Name"}),": The name widget allows signers to add their name or any other text, functioning like a text field during the signing process. After placing the name widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Name widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the name widget."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Job title"}),": The Job title widget allows signers to add their Job title or any other text, functioning like a text field during the signing process. After placing the job title widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Job title widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the job title widget."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Company"}),": The company widget allows signers to add their company or any other text, functioning like a text field during the signing process. After placing the company widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Company widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the Company widget."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Date Widget"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Date widget"})," allows signers to enter a date while signing the document. Once the widget is placed, you can configure its behavior using the available settings in the ",(0,s.jsx)(n.strong,{children:"Widget Info"})," panel."]}),"\n",(0,s.jsx)(n.h4,{id:"\ufe0f-widget-options",children:"\u2699\ufe0f Widget Options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Date Format"}),": Choose the preferred date format (for example, ",(0,s.jsx)(n.code,{children:"MM/dd/yyyy"}),", ",(0,s.jsx)(n.code,{children:"dd-mm-yyyy"}),", or ",(0,s.jsx)(n.code,{children:"dd/mm/yyyy"}),") from the Format dropdown. This determines how the date appears to the signer."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Set Date"}),": This option allows the user to set a default date, which will be displayed while signing the document."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Signing Date"}),": When selected, the date on which the signer signs the document will be automatically displayed in the Date widget."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Clear"}),": Removes the selected date setting."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Date Range"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Min Date"}),": Sets the earliest date the signer can select."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Max Date"}),": Sets the latest date the signer can select."]}),"\n",(0,s.jsxs)(n.li,{children:["Use ",(0,s.jsx)(n.strong,{children:"Clear"})," to remove the minimum or maximum date restrictions."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Required / Optional"}),(0,s.jsx)(n.br,{}),"\n","Mark the widget as ",(0,s.jsx)(n.strong,{children:"Required"})," if the signer must fill it in before completing the signing, or ",(0,s.jsx)(n.strong,{children:"Optional"})," if it is not mandatory."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Font Settings"}),"\nCustomize the ",(0,s.jsx)(n.strong,{children:"font size"})," and ",(0,s.jsx)(n.strong,{children:"text color"})," to match the document\u2019s style."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Read Only"}),"\nEnable this option to display a date that cannot be edited by the signer."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Save"}),"\nClick ",(0,s.jsx)(n.strong,{children:"Save"})," to apply all selected settings to the Date widget."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Text Input"}),": The text input field is used to collect input from the signer. Signers can type their responses directly into this field. After placing the Text Input widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Setting : The widget settings panel provides additional customization options, including:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Choosing a ",(0,s.jsx)(n.strong,{children:"font color"})]}),"\n",(0,s.jsxs)(n.li,{children:["Setting the ",(0,s.jsx)(n.strong,{children:"font size"})]}),"\n",(0,s.jsxs)(n.li,{children:["Marking the field as ",(0,s.jsx)(n.strong,{children:"required"})," or ",(0,s.jsx)(n.strong,{children:"optional"})]}),"\n",(0,s.jsxs)(n.li,{children:["Providing a ",(0,s.jsx)(n.strong,{children:"default value"})]}),"\n",(0,s.jsxs)(n.li,{children:["Making the field ",(0,s.jsx)(n.strong,{children:"read-only"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n",(0,s.jsxs)(n.li,{children:["Adding a ",(0,s.jsx)(n.strong,{children:"hint"}),", which will be displayed on the widget for better clarity"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Custom Validations"})," are also supported, including:"]}),"\n",(0,s.jsxs)(n.li,{children:["Predefined formats like ",(0,s.jsx)(n.strong,{children:"SSN"}),", ",(0,s.jsx)(n.strong,{children:"email"}),", or ",(0,s.jsx)(n.strong,{children:"numeric values"})]}),"\n",(0,s.jsxs)(n.li,{children:["Custom JavaScript validations using regular expressions","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"For example:"}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^\\d+$"})," \u2013 allows only digits"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^[A-Z]+$"})," \u2013 allows only uppercase letters"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can enter your regex pattern in the ",(0,s.jsx)(n.strong,{children:"Validations"})," field of the widget.",(0,s.jsx)(n.br,{}),"\n",(0,s.jsxs)(n.em,{children:["(Optional reference: ",(0,s.jsx)(n.a,{href:"https://www.w3schools.com/jsref/jsref_obj_regexp.asp",children:"JavaScript RegExp guide"}),")"]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Text Input widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the Text Input widget."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Cells"}),(0,s.jsx)(n.br,{}),"\n","The ",(0,s.jsx)(n.strong,{children:"Cells widget"})," is ideal for documents that require input in a structured, table-like format, allowing the signer to fill in details within individual cells. After dragging and dropping the widget onto the document, you can adjust the number of cells by moving the ",(0,s.jsx)(n.strong,{children:"blue marker"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"Cells widget",src:"https://github.com/user-attachments/assets/2a301776-5275-4daf-b361-fd48af2878fc"}),"\n",(0,s.jsx)(n.p,{children:"The widget settings panel provides additional customization options, including:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Manually entering the ",(0,s.jsx)(n.strong,{children:"number of cells"})]}),"\n",(0,s.jsxs)(n.li,{children:["Choosing a ",(0,s.jsx)(n.strong,{children:"font color"})]}),"\n",(0,s.jsxs)(n.li,{children:["Setting the ",(0,s.jsx)(n.strong,{children:"font size"})]}),"\n",(0,s.jsxs)(n.li,{children:["Marking the field as ",(0,s.jsx)(n.strong,{children:"required"})," or ",(0,s.jsx)(n.strong,{children:"optional"})]}),"\n",(0,s.jsxs)(n.li,{children:["Providing a ",(0,s.jsx)(n.strong,{children:"default value"})]}),"\n",(0,s.jsxs)(n.li,{children:["Making the field ",(0,s.jsx)(n.strong,{children:"read-only"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n",(0,s.jsxs)(n.li,{children:["Adding a ",(0,s.jsx)(n.strong,{children:"hint"}),", which will be displayed on the widget for better clarity"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Custom Validations"})," are also supported, including:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Predefined formats like ",(0,s.jsx)(n.strong,{children:"SSN"}),", ",(0,s.jsx)(n.strong,{children:"email"}),", or ",(0,s.jsx)(n.strong,{children:"numeric values"})]}),"\n",(0,s.jsx)(n.li,{children:"Custom JavaScript validations using regular expressions"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^\\d+$"})," \u2013 allows only digits"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^[A-Z]+$"})," \u2013 allows only uppercase letters"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can enter your regex pattern in the ",(0,s.jsx)(n.strong,{children:"Validations"})," field of the widget.",(0,s.jsx)(n.br,{}),"\n",(0,s.jsxs)(n.em,{children:["(Optional reference: ",(0,s.jsx)(n.a,{href:"https://www.w3schools.com/jsref/jsref_obj_regexp.asp",children:"JavaScript RegExp guide"}),")"]})]}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/dee17fe8-243b-4113-896a-00424d12ea8a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Checkbox"}),": The checkbox widget is used to capture input in the form of a checkbox selection. Once you drop the checkbox widget, a popup will open where you can set the checkbox name and options. Additionally, there are a few options available such as setting the minimum and maximum checks, making the checkbox read-only, and hiding the label.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the CheckBox widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the Checkbox widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dropdown"}),": Once you drop the dropdown widget, a popup will open where you can set the dropdown name and options. Additionally, there are a few options available such as setting a default value and marking the dropdown as required or optional.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Dropdown widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the dropdown widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Radio button"}),": The radio button widget is used to capture input in the form of a radio button selection. Once you drop the radio button widget, a popup will open where you can set the radio button name and options. Additionally, there are a few options available such as setting a default value, making the radio button read-only, and hiding the label.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Radio button widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the radio button widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Image"}),": The image widget allows signers to upload an image during the signing process. After placing the Image widget, you will see the options on the widget such as:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting icon: By clicking on the option, you can specify whether this widget is mandatory or optional during the document signing."}),"\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Image widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the image widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Email"}),": The email widget is used to enter an email address during the signing process. It only accepts input in a valid email format. If the signer enters invalid text, a validation error will occur, and the document cannot be completed until it's corrected. After placing the email widget, you will see the options on the widget such as:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Email widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the email widget."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"-document-page-controls",children:"\ud83d\udcc4 Document Page Controls"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Navigating Between Pages in OpenSign\u2122"}),"\nTo navigate between pages of a document that you have uploaded either click on the previous page \u2227 & V next page buttons at the top or click on any of the page previews loaded on the left side."]}),"\n",(0,s.jsx)("img",{width:"918",alt:"OpenSign Page controls",src:"https://github.com/user-attachments/assets/c577e165-f8ac-45c7-bc6f-d499c710a7ed"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Add Pages"}),(0,s.jsx)(n.br,{}),"\n","In the left-side panel, users will see an ",(0,s.jsx)(n.strong,{children:'"Add" button'}),". Clicking it allows users to select and merge new documents into the current one."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Delete Page"}),(0,s.jsx)(n.br,{}),"\n","An option is available to ",(0,s.jsx)(n.strong,{children:"delete"})," any unwanted page from the document."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Reorder Pages"}),(0,s.jsx)(n.br,{}),"\n","Users can reorder pages by clicking the ",(0,s.jsx)(n.strong,{children:'"Reorder" button'}),", which opens a popup displaying all pages. Use the ",(0,s.jsx)(n.strong,{children:"Up"})," and ",(0,s.jsx)(n.strong,{children:"Down"})," arrows to change the order. Click ",(0,s.jsx)(n.strong,{children:"Save"})," to apply the new page order."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Zoom In / Zoom Out"}),(0,s.jsx)(n.br,{}),"\n","Controls are available to ",(0,s.jsx)(n.strong,{children:"zoom in"})," or ",(0,s.jsx)(n.strong,{children:"zoom out"})," of the document view."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Rotate Page"}),(0,s.jsx)(n.br,{}),"\n","Options are provided to ",(0,s.jsx)(n.strong,{children:"rotate pages"})," in both ",(0,s.jsx)(n.strong,{children:"clockwise"})," and ",(0,s.jsx)(n.strong,{children:"counterclockwise"})," directions."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-4-next",children:"Step 4: Next:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Next"}),": After adding the widgets and signatures, click the 'Next' button. The document will then be created."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-5-send-mail",children:"Step 5: Send Mail"}),"\n",(0,s.jsx)(n.p,{children:"After finishing the document creation, a 'Send Mail' popup will appear, offering options to Send Email, Customize Email, Copy Link, or Share the document."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Send Email: Click the 'Send' button to send the document for signing to all signers. If the sending order is set to 'Yes', it will send the document to the first signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Customize Email: Click the 'Customize Email' button to open the email editor. Here, you can set variables and customize the content. After clicking 'Send', the document will be sent for signing to all signers, or if the sending order is set to 'Yes', it will be sent to the first signer with the customized email."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy Link: You can copy the link to sign the document."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Share: Use this option to share the document via email, WhatsApp and other Windows apps"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/e2344479-daae-43ff-a61a-14ea98b237d6"}),"\n",(0,s.jsx)(n.h2,{id:"signers-signing-process",children:"Signers Signing Process"}),"\n",(0,s.jsx)(n.h3,{id:"step-6-email-otp-verification",children:"Step 6: Email OTP verification"}),"\n",(0,s.jsx)(n.p,{children:"Once the email is received, the signer can click the 'Sign Here' button. This will open the email verification page. After clicking the 'Get Verification Code' button, an OTP (one-time password) will be sent to the signer\u2019s email address. Enter the received OTP into the verification textbox and click the 'Verify' button."}),"\n",(0,s.jsx)("div",{children:(0,s.jsx)("img",{width:"800",alt:"OpenSign send OTP",src:"https://github.com/user-attachments/assets/b82c796a-98e3-4296-bde1-fe86b1b993ad"})}),"\n",(0,s.jsx)("div",{children:(0,s.jsx)("img",{width:"800",alt:"OpenSign verify otp",src:"https://github.com/user-attachments/assets/63cf4b75-9d47-4630-a83c-e916a5c13b3c"})}),"\n",(0,s.jsx)(n.h3,{id:"step-7-finalizing-the-process",children:"Step 7: Finalizing the Process:"}),"\n",(0,s.jsx)(n.p,{children:"After verification, the signer will be redirected to the document signing page, where he can view the document received for signing. To sign, the signer simply clicks on the signature widget, which allows them to draw, upload a digitally scanned signature, or type the signature."}),"\n",(0,s.jsx)(n.p,{children:"After filling out all assigned widgets, click the 'Finish' button. Once the document is finished,."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"The signer has the option of downloading or printing the signed document. He will also obtain the completion certificate if he is the final signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"If there are more than one signer, the document will be immediately sent to the next signer. Once all signers have finished their signatures, they can download and print the signed document as well as the completion certificate."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"OpenSignFinalStep",src:"https://github.com/user-attachments/assets/f4783aa0-2879-4ec2-9ddc-16d59f3a1fc0"}),"\n",(0,s.jsx)(n.h2,{id:"additional-information",children:"Additional Information"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All fields marked with an asterisk (*) must be completed before the document can be submitted."}),"\n",(0,s.jsx)(n.li,{children:"Ensure that the document format is supported by OpenSign before uploading."}),"\n",(0,s.jsx)(n.li,{children:"Signed documents can be accessed in the designated 'Root' folder or the one you have specified."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you require more help, feel free to reach out to our customer support on ",(0,s.jsx)(n.a,{href:"mailto:support@opensignlabs.com",children:"support@opensignlabs.com"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Happy signing with OpenSign\u2122!"})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>o});var t=i(96540);const s={},l=t.createContext(s);function r(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/d1393a72.d08d9a53.js b/assets/js/d1393a72.d08d9a53.js
deleted file mode 100644
index 7703c9238..000000000
--- a/assets/js/d1393a72.d08d9a53.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[841],{20412:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"help/New-Document/request-signatures","title":"Request signatures","description":"Interface Overview","source":"@site/docs/help/New-Document/request-signatures.md","sourceDirName":"help/New-Document","slug":"/help/New-Document/request-signatures","permalink":"/docs/help/New-Document/request-signatures","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/help/New-Document/request-signatures.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"Request signatures"},"sidebar":"tutorialSidebar","previous":{"title":"Sign your-self","permalink":"/docs/help/New-Document/sign-yourself"},"next":{"title":"Widgets in OpenSign","permalink":"/docs/help/New-Document/widgets"}}');var s=i(74848),l=i(28453);const r={sidebar_position:2,title:"Request signatures"},o="Request signatures using OpenSign\u2122",d={},a=[{value:"Interface Overview",id:"interface-overview",level:2},{value:"Step 1: Begin New Document Creation",id:"step-1-begin-new-document-creation",level:3},{value:"Uploading Your Document",id:"uploading-your-document",level:3},{value:"Entering Document Details And Signers",id:"entering-document-details-and-signers",level:3},{value:"Organizing Your Document",id:"organizing-your-document",level:3},{value:"Set the sending order",id:"set-the-sending-order",level:3},{value:"Setting the Time Frame",id:"setting-the-time-frame",level:3},{value:"Setting BCC",id:"setting-bcc",level:3},{value:"Auto reminder",id:"auto-reminder",level:3},{value:"Security Setting",id:"security-setting",level:3},{value:"Enable tour:",id:"enable-tour",level:3},{value:"Notify on signatures:",id:"notify-on-signatures",level:3},{value:"allow modifications:",id:"allow-modifications",level:3},{value:"Redirect url:",id:"redirect-url",level:3},{value:"Step 2: Proceed to Document Creation Panel",id:"step-2-proceed-to-document-creation-panel",level:3},{value:"Step 3: Document Creation",id:"step-3-document-creation",level:3},{value:"Prefill Widgets",id:"prefill-widgets",level:3},{value:"Add Widgets for Signers",id:"add-widgets-for-signers",level:3},{value:"\ud83d\udcc4 Document Page Controls",id:"-document-page-controls",level:3},{value:"Step 4: Next:",id:"step-4-next",level:3},{value:"Step 5: Send Mail",id:"step-5-send-mail",level:3},{value:"Signers Signing Process",id:"signers-signing-process",level:2},{value:"Step 6: Email OTP verification",id:"step-6-email-otp-verification",level:3},{value:"Step 7: Finalizing the Process:",id:"step-7-finalizing-the-process",level:3},{value:"Additional Information",id:"additional-information",level:2}];function c(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"request-signatures-using-opensign",children:"Request signatures using OpenSign\u2122"})}),"\n",(0,s.jsx)(n.h2,{id:"interface-overview",children:"Interface Overview"}),"\n",(0,s.jsx)(n.p,{children:"The OpenSign\u2122 Request signatures interface is designed to streamline the process of creating, preparing, and sending documents for electronic signature."}),"\n",(0,s.jsx)(n.h1,{id:"how-to-create-and-send-a-document-for-signature-with-opensign",children:"How to Create and Send a Document for Signature with OpenSign\u2122"}),"\n",(0,s.jsx)(n.h3,{id:"step-1-begin-new-document-creation",children:"Step 1: Begin New Document Creation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Navigate to Request Signatures form"}),": Start by navigating to 'Request Signatures' from the main menu to initiate the creation of a document for signatures."]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/65087c2d-a1e4-4735-8420-759ea97b38aa"}),"\n",(0,s.jsx)(n.h3,{id:"uploading-your-document",children:"Uploading Your Document"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[1] Choose File"}),': Once the "Request signature" form opens, click "Choose file" button to select and upload the document file from your computer that needs to be signed. Currently you can upload only 1 file at a time but you can add additional documents by clicking "Add pages" in the next step.']}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[2] Choose File from Dropbox"}),": Click the dropbox icon to select the document file from your dropbox account."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"entering-document-details-and-signers",children:"Entering Document Details And Signers"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[3] Title"})," ",(0,s.jsx)(n.em,{children:"(Required)"}),": Input the title of your document. This identifier will be visible to signers and in your document management."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[4] Signers"}),": Use the dropdown to select existing signers or use the addition button to add a new signer who needs to sign the document. (Here, add the signer's details such as name, email, and phone number)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[5] Note"}),": Optionally add a note to give context or instructions regarding the document."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"organizing-your-document",children:"Organizing Your Document"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[6] Folder"}),": Select a folder where you want the document to be stored, or leave it to default to the 'Root' folder. You can browse your documents in a beautiful explorer view by navigating to \"OpenSign\u2122 Drive\"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"set-the-sending-order",children:"Set the sending order"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"[7] Send in Order"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"If you choose:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Yes"}),": Selecting this option will send the signing request to the first signer initially. Once the first signer completes their part, the next signer in the sequence will receive the request. This process continues until all signers have signed the document. This method ensures that the document is signed in a specific order."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"No"}),": Selecting this option will send the signing links to all signers simultaneously. Every signer can sign the document at their convenience, regardless of whether other signers have completed their signatures. This method is faster but does not enforce any signing order among the participants.\nSelect the option that best suits the needs of your document processing."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"setting-the-time-frame",children:"Setting the Time Frame"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[8] Time To Complete (Days)"})," ",(0,s.jsx)(n.em,{children:"(Required)"}),": Specify the number of days the signers have to complete the signatures. After that, the document will no longer be available for signing."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"setting-bcc",children:"Setting BCC"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[9] BCC"}),': The BCC (Blind Carbon Copy) feature allows users to receive document completion emails at specified email addresses.\nYou can add multiple contacts in the BCC field to notify several recipients.\nYou can either:\nClick "Add New" to enter a new email contact, or\nSelect from existing contacts using the dropdown list.']}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"auto-reminder",children:"Auto reminder"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[10]"})," Once you enable the auto reminder, a text field will appear allowing you to set the reminder for a specific number of days."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Remind once in every (Days)"}),": You can specify the reminder interval in days (e.g., every 1 or every 2 days).\nNote: You can set a maximum of 15 reminders. For example, if the document completion time is 16 days and you try to schedule a reminder every day, the system will not allow it, as the reminder limit would be exceeded.\nThis feature only available for the paid users."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"security-setting",children:"Security Setting"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"[11] Enable OTP Verification"})," :"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'If set to "Yes," the signer will be required to complete email OTP verification before viewing and signing the document.'}),"\n",(0,s.jsx)(n.li,{children:'If "Enable OTP Verification" is set to "No," the signer will not be prompted for OTP verification during the signing process.'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Note: This feature is available exclusively on paid plans."}),"\n",(0,s.jsx)(n.h3,{id:"enable-tour",children:"Enable tour:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[12]"}),' If set to "Yes," the signer will see the tour guide while signing the document. If your signer is familiar with OpenSign and you prefer not to display the tour guide, you can select "No," and the tour guide will not be shown to your signers.']}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"notify-on-signatures",children:"Notify on signatures:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[13]"}),' If set to "Yes," the document owner will receive an email notification each signer completes their signature.\nNote: This feature is available exclusively on paid plans.']}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"allow-modifications",children:"allow modifications:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[14]"})," If set to Yes, the signer will be allowed to make modifications to the document during the signing process. However, they cannot edit or remove any fields that were already placed by the document owner. They can only add basic fields such as signature, stamp, initials, text, and cells."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"If both Allow Modification and Enable OTP are set to Yes, the signer will still not be able to edit or delete existing fields, but will gain access to additional advanced fields to add during signing. These include: signature, stamp, initials, name, job title, company, text, cells, and email."}),"\n",(0,s.jsx)(n.p,{children:"Note: This feature is available exclusively on paid plans."}),"\n",(0,s.jsx)(n.h3,{id:"redirect-url",children:"Redirect url:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"[15]"})," After signing the document and upon its completion, the signer will be redirected to the specified URL."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-2-proceed-to-document-creation-panel",children:"Step 2: Proceed to Document Creation Panel"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Next"}),": Once all the necessary fields are filled, click this button to proceed to create the document for signing."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cancel"}),": If you need to start over or make changes, click this button to clear the form."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-3-document-creation",children:"Step 3: Document Creation"}),"\n",(0,s.jsx)(n.h3,{id:"prefill-widgets",children:"Prefill Widgets"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Prefill Widgets"})," feature lets document creators prefill specific fields before sending a document for signature. This ensures that important details (such as date, name, email, images, checkboxes, radio buttons, or custom text) are already completed when recipients receive the document. By default, prefilled data cannot be edited by signers."]}),"\n",(0,s.jsx)("img",{width:"800",alt:"Prfill",src:"https://github.com/user-attachments/assets/4794b2a9-acc0-4ef8-8110-076f0d90cc57"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u2728 Key Benefits"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u2705 Save time by auto-filling repetitive information."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Ensure accuracy for critical fields (e.g., company name, contract number)."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Maintain consistency across multiple signers and templates."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Reduce signer effort for a smoother signing experience."}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\ud83d\udee0\ufe0f How It Works"})}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Add Widgets to the Document"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Open the right-side panel, select ",(0,s.jsx)(n.strong,{children:"Prefill Widgets"}),", then drag and drop the required widgets (Text, Date, Checkbox, Dropdown, Image, etc.) onto the document."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Enter Prefill Value"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Provide the default value (e.g., ",(0,s.jsx)(n.em,{children:'"Company: OpenSign Labs"'}),", ",(0,s.jsx)(n.em,{children:"Date: 30/09/2025"}),")."]}),"\n",(0,s.jsx)(n.li,{children:"For option-based widgets (Dropdown, Radio, Checkbox), choose the option to be prefilled."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\ud83d\udccb Supported Widgets for Prefill"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Text Field"})," \u2013 Names, job titles, company names, contract IDs"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Date Field"})," \u2013 Default signing date or contract start date"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dropdown"})," \u2013 Preselect an option"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Radio Button"})," \u2013 Prefill with a selected choice"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Checkbox"})," \u2013 Prefill as checked or unchecked"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Image"})," \u2013 Insert a default image (e.g., logo or stamp)"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"add-widgets-for-signers",children:"Add Widgets for Signers"}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/25997f4c-6fbf-4851-b8a8-a803c3343f87"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"[1] Add signature widget"}),": Once your document is loaded in the document creation panel, you'll need to add a signature widget for each signer. OpenSign provides an intuitive interface for this task. Select the signer from the right side panel, click on the signature widget, and position it where the signature is required.\nUse the option on the right side to add recipients if you need to include additional signers. You can place multiple signature widgets for each signer, as required."]}),"\n",(0,s.jsx)(n.p,{children:"After placing the Signature widget, you will see the options on the widget such as:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Add Signer/Change Signer"}),": Clicking the first icon on the signature widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Copy Signature"}),": Clicking on this option reveals the following choices.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All pages: It will copy the signature widget to all pages."}),"\n",(0,s.jsx)(n.li,{children:"All pages but last: It will copy the signature widget to all pages except the last page."}),"\n",(0,s.jsx)(n.li,{children:"All pages but first: It will copy the signature widget to all pages except the first page."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"[2] Add other widgets"}),": Depending on your needs, you can include additional widgets such as:"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stamp"}),": The stamp widget allows signers to add a stamp to the document. Signers can upload their stamp during the signing process. After placing the Stamp widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting icon: By clicking on the option, you can specify whether this widget is mandatory or optional during the document signing."}),"\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the second option on the stamp widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsxs)(n.li,{children:["Copy Stamp: Clicking on this option reveals the following choices.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All pages : It will copy the stamp widget to all pages."}),"\n",(0,s.jsx)(n.li,{children:"All pages but last: It will copy the stamp widget to all pages except the last page."}),"\n",(0,s.jsx)(n.li,{children:"All pages but first: It will copy the stamp widget to all pages except the first page."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Initials"}),": The initials widget allows signers to add their initials to the document. During the signing process, signers can draw, upload, or type their initials. After placing the Initials widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting icon: By clicking on the option, you can specify whether this widget is mandatory or optional during the document signing."}),"\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Initials widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsxs)(n.li,{children:["Copy Initials: Clicking on this option reveals the following choices.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All pages : It will copy the initials widget to all pages."}),"\n",(0,s.jsx)(n.li,{children:"All pages but last: It will copy the initials widget to all pages except the last page."}),"\n",(0,s.jsx)(n.li,{children:"All pages but first: It will copy the initials widget to all pages except the first page."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Name"}),": The name widget allows signers to add their name or any other text, functioning like a text field during the signing process. After placing the name widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Name widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the name widget."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Job title"}),": The Job title widget allows signers to add their Job title or any other text, functioning like a text field during the signing process. After placing the job title widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Job title widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the job title widget."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Company"}),": The company widget allows signers to add their company or any other text, functioning like a text field during the signing process. After placing the company widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Company widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the Company widget."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Date"}),": The date widget allows signers to add a date during the signing process. After placing the date widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting icon: By clicking on the option, you can choose from various date formats."}),"\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Date widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the date widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Text Input"}),": The text input field is used to collect input from the signer. Signers can type their responses directly into this field. After placing the Text Input widget, you will see the options on the widget such as:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Setting : The widget settings panel provides additional customization options, including:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Choosing a ",(0,s.jsx)(n.strong,{children:"font color"})]}),"\n",(0,s.jsxs)(n.li,{children:["Setting the ",(0,s.jsx)(n.strong,{children:"font size"})]}),"\n",(0,s.jsxs)(n.li,{children:["Marking the field as ",(0,s.jsx)(n.strong,{children:"required"})," or ",(0,s.jsx)(n.strong,{children:"optional"})]}),"\n",(0,s.jsxs)(n.li,{children:["Providing a ",(0,s.jsx)(n.strong,{children:"default value"})]}),"\n",(0,s.jsxs)(n.li,{children:["Making the field ",(0,s.jsx)(n.strong,{children:"read-only"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n",(0,s.jsxs)(n.li,{children:["Adding a ",(0,s.jsx)(n.strong,{children:"hint"}),", which will be displayed on the widget for better clarity"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Custom Validations"})," are also supported, including:"]}),"\n",(0,s.jsxs)(n.li,{children:["Predefined formats like ",(0,s.jsx)(n.strong,{children:"SSN"}),", ",(0,s.jsx)(n.strong,{children:"email"}),", or ",(0,s.jsx)(n.strong,{children:"numeric values"})]}),"\n",(0,s.jsxs)(n.li,{children:["Custom JavaScript validations using regular expressions","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"For example:"}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^\\d+$"})," \u2013 allows only digits"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^[A-Z]+$"})," \u2013 allows only uppercase letters"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can enter your regex pattern in the ",(0,s.jsx)(n.strong,{children:"Validations"})," field of the widget.",(0,s.jsx)(n.br,{}),"\n",(0,s.jsxs)(n.em,{children:["(Optional reference: ",(0,s.jsx)(n.a,{href:"https://www.w3schools.com/jsref/jsref_obj_regexp.asp",children:"JavaScript RegExp guide"}),")"]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Text Input widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the Text Input widget."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Cells"}),(0,s.jsx)(n.br,{}),"\n","The ",(0,s.jsx)(n.strong,{children:"Cells widget"})," is ideal for documents that require input in a structured, table-like format, allowing the signer to fill in details within individual cells. After dragging and dropping the widget onto the document, you can adjust the number of cells by moving the ",(0,s.jsx)(n.strong,{children:"blue marker"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"Cells widget",src:"https://github.com/user-attachments/assets/2a301776-5275-4daf-b361-fd48af2878fc"}),"\n",(0,s.jsx)(n.p,{children:"The widget settings panel provides additional customization options, including:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Manually entering the ",(0,s.jsx)(n.strong,{children:"number of cells"})]}),"\n",(0,s.jsxs)(n.li,{children:["Choosing a ",(0,s.jsx)(n.strong,{children:"font color"})]}),"\n",(0,s.jsxs)(n.li,{children:["Setting the ",(0,s.jsx)(n.strong,{children:"font size"})]}),"\n",(0,s.jsxs)(n.li,{children:["Marking the field as ",(0,s.jsx)(n.strong,{children:"required"})," or ",(0,s.jsx)(n.strong,{children:"optional"})]}),"\n",(0,s.jsxs)(n.li,{children:["Providing a ",(0,s.jsx)(n.strong,{children:"default value"})]}),"\n",(0,s.jsxs)(n.li,{children:["Making the field ",(0,s.jsx)(n.strong,{children:"read-only"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n",(0,s.jsxs)(n.li,{children:["Adding a ",(0,s.jsx)(n.strong,{children:"hint"}),", which will be displayed on the widget for better clarity"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Custom Validations"})," are also supported, including:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Predefined formats like ",(0,s.jsx)(n.strong,{children:"SSN"}),", ",(0,s.jsx)(n.strong,{children:"email"}),", or ",(0,s.jsx)(n.strong,{children:"numeric values"})]}),"\n",(0,s.jsx)(n.li,{children:"Custom JavaScript validations using regular expressions"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^\\d+$"})," \u2013 allows only digits"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"^[A-Z]+$"})," \u2013 allows only uppercase letters"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can enter your regex pattern in the ",(0,s.jsx)(n.strong,{children:"Validations"})," field of the widget.",(0,s.jsx)(n.br,{}),"\n",(0,s.jsxs)(n.em,{children:["(Optional reference: ",(0,s.jsx)(n.a,{href:"https://www.w3schools.com/jsref/jsref_obj_regexp.asp",children:"JavaScript RegExp guide"}),")"]})]}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/dee17fe8-243b-4113-896a-00424d12ea8a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Checkbox"}),": The checkbox widget is used to capture input in the form of a checkbox selection. Once you drop the checkbox widget, a popup will open where you can set the checkbox name and options. Additionally, there are a few options available such as setting the minimum and maximum checks, making the checkbox read-only, and hiding the label.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the CheckBox widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the Checkbox widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dropdown"}),": Once you drop the dropdown widget, a popup will open where you can set the dropdown name and options. Additionally, there are a few options available such as setting a default value and marking the dropdown as required or optional.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Dropdown widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the dropdown widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Radio button"}),": The radio button widget is used to capture input in the form of a radio button selection. Once you drop the radio button widget, a popup will open where you can set the radio button name and options. Additionally, there are a few options available such as setting a default value, making the radio button read-only, and hiding the label.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Radio button widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the radio button widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Image"}),": The image widget allows signers to upload an image during the signing process. After placing the Image widget, you will see the options on the widget such as:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting icon: By clicking on the option, you can specify whether this widget is mandatory or optional during the document signing."}),"\n",(0,s.jsx)(n.li,{children:"Add Signer/Change Signer: Clicking the first icon on the Image widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n",(0,s.jsx)(n.li,{children:"Copy : Clicking on this you can duplicate the image widget."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Email"}),": The email widget is used to enter an email address during the signing process. It only accepts input in a valid email format. If the signer enters invalid text, a validation error will occur, and the document cannot be completed until it's corrected. After placing the email widget, you will see the options on the widget such as:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Setting icon: By clicking on the option, you can set the color and font."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Hide text with asterisks"}),': **"which masks the entered text (*) to protect sensitive information while filling out the document. The final embedded document will also display the text as asterisks, keeping the actual value hidden.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add Signer/Change Signer: Clicking the first icon on the Email widget allows you to change the signer. You can choose from existing signers in the dropdown or add a new signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy : Clicking on this you can duplicate the email widget."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"-document-page-controls",children:"\ud83d\udcc4 Document Page Controls"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Navigating Between Pages in OpenSign\u2122"}),"\nTo navigate between pages of a document that you have uploaded either click on the previous page \u2227 & V next page buttons at the top or click on any of the page previews loaded on the left side."]}),"\n",(0,s.jsx)("img",{width:"918",alt:"OpenSign Page controls",src:"https://github.com/user-attachments/assets/c577e165-f8ac-45c7-bc6f-d499c710a7ed"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Add Pages"}),(0,s.jsx)(n.br,{}),"\n","In the left-side panel, users will see an ",(0,s.jsx)(n.strong,{children:'"Add" button'}),". Clicking it allows users to select and merge new documents into the current one."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Delete Page"}),(0,s.jsx)(n.br,{}),"\n","An option is available to ",(0,s.jsx)(n.strong,{children:"delete"})," any unwanted page from the document."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Reorder Pages"}),(0,s.jsx)(n.br,{}),"\n","Users can reorder pages by clicking the ",(0,s.jsx)(n.strong,{children:'"Reorder" button'}),", which opens a popup displaying all pages. Use the ",(0,s.jsx)(n.strong,{children:"Up"})," and ",(0,s.jsx)(n.strong,{children:"Down"})," arrows to change the order. Click ",(0,s.jsx)(n.strong,{children:"Save"})," to apply the new page order."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Zoom In / Zoom Out"}),(0,s.jsx)(n.br,{}),"\n","Controls are available to ",(0,s.jsx)(n.strong,{children:"zoom in"})," or ",(0,s.jsx)(n.strong,{children:"zoom out"})," of the document view."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Rotate Page"}),(0,s.jsx)(n.br,{}),"\n","Options are provided to ",(0,s.jsx)(n.strong,{children:"rotate pages"})," in both ",(0,s.jsx)(n.strong,{children:"clockwise"})," and ",(0,s.jsx)(n.strong,{children:"counterclockwise"})," directions."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-4-next",children:"Step 4: Next:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Next"}),": After adding the widgets and signatures, click the 'Next' button. The document will then be created."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"step-5-send-mail",children:"Step 5: Send Mail"}),"\n",(0,s.jsx)(n.p,{children:"After finishing the document creation, a 'Send Mail' popup will appear, offering options to Send Email, Customize Email, Copy Link, or Share the document."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Send Email: Click the 'Send' button to send the document for signing to all signers. If the sending order is set to 'Yes', it will send the document to the first signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Customize Email: Click the 'Customize Email' button to open the email editor. Here, you can set variables and customize the content. After clicking 'Send', the document will be sent for signing to all signers, or if the sending order is set to 'Yes', it will be sent to the first signer with the customized email."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy Link: You can copy the link to sign the document."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Share: Use this option to share the document via email, WhatsApp and other Windows apps"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"request signatures",src:"https://github.com/user-attachments/assets/e2344479-daae-43ff-a61a-14ea98b237d6"}),"\n",(0,s.jsx)(n.h2,{id:"signers-signing-process",children:"Signers Signing Process"}),"\n",(0,s.jsx)(n.h3,{id:"step-6-email-otp-verification",children:"Step 6: Email OTP verification"}),"\n",(0,s.jsx)(n.p,{children:"Once the email is received, the signer can click the 'Sign Here' button. This will open the email verification page. After clicking the 'Get Verification Code' button, an OTP (one-time password) will be sent to the signer\u2019s email address. Enter the received OTP into the verification textbox and click the 'Verify' button."}),"\n",(0,s.jsx)("div",{children:(0,s.jsx)("img",{width:"800",alt:"OpenSign send OTP",src:"https://github.com/user-attachments/assets/b82c796a-98e3-4296-bde1-fe86b1b993ad"})}),"\n",(0,s.jsx)("div",{children:(0,s.jsx)("img",{width:"800",alt:"OpenSign verify otp",src:"https://github.com/user-attachments/assets/63cf4b75-9d47-4630-a83c-e916a5c13b3c"})}),"\n",(0,s.jsx)(n.h3,{id:"step-7-finalizing-the-process",children:"Step 7: Finalizing the Process:"}),"\n",(0,s.jsx)(n.p,{children:"After verification, the signer will be redirected to the document signing page, where he can view the document received for signing. To sign, the signer simply clicks on the signature widget, which allows them to draw, upload a digitally scanned signature, or type the signature."}),"\n",(0,s.jsx)(n.p,{children:"After filling out all assigned widgets, click the 'Finish' button. Once the document is finished,."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"The signer has the option of downloading or printing the signed document. He will also obtain the completion certificate if he is the final signer."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"If there are more than one signer, the document will be immediately sent to the next signer. Once all signers have finished their signatures, they can download and print the signed document as well as the completion certificate."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{width:"800",alt:"OpenSignFinalStep",src:"https://github.com/user-attachments/assets/f4783aa0-2879-4ec2-9ddc-16d59f3a1fc0"}),"\n",(0,s.jsx)(n.h2,{id:"additional-information",children:"Additional Information"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All fields marked with an asterisk (*) must be completed before the document can be submitted."}),"\n",(0,s.jsx)(n.li,{children:"Ensure that the document format is supported by OpenSign before uploading."}),"\n",(0,s.jsx)(n.li,{children:"Signed documents can be accessed in the designated 'Root' folder or the one you have specified."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you require more help, feel free to reach out to our customer support on ",(0,s.jsx)(n.a,{href:"mailto:support@opensignlabs.com",children:"support@opensignlabs.com"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Happy signing with OpenSign\u2122!"})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>o});var t=i(96540);const s={},l=t.createContext(s);function r(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/d8b805fb.ed63b4c9.js b/assets/js/d8b805fb.ed63b4c9.js
new file mode 100644
index 000000000..5d608ed65
--- /dev/null
+++ b/assets/js/d8b805fb.ed63b4c9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[1924],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>o});var i=t(96540);const a={},s=i.createContext(a);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(s.Provider,{value:n},e.children)}},76225:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"help/Settings/my-signature","title":"My Signature","description":"This guide provides instructions on how to save your signature and initials using the OpenSign application. Once saved, you can use them with one click when signing documents. To create your signature, start by clicking the \\"My Signature\\" link under \\"settings\\" menu.","source":"@site/docs/help/Settings/my-signature.md","sourceDirName":"help/Settings","slug":"/help/Settings/my-signature","permalink":"/docs/help/Settings/my-signature","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/help/Settings/my-signature.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"My Signature"},"sidebar":"tutorialSidebar","previous":{"title":"Settings","permalink":"/docs/category/settings"},"next":{"title":"API Token","permalink":"/docs/help/Settings/APIToken"}}');var a=t(74848),s=t(28453);const r={sidebar_position:1,title:"My Signature"},o='Setup "My Signature" in OpenSign',d={},l=[{value:"Creating and Saving Your Signature",id:"creating-and-saving-your-signature",level:2},{value:"Uploading a Signature Image",id:"uploading-a-signature-image",level:2},{value:"Creating and Saving Your Initials",id:"creating-and-saving-your-initials",level:2},{value:"Saving Your Signature and Initials",id:"saving-your-signature-and-initials",level:2},{value:"Uploading a Stamp Image",id:"uploading-a-stamp-image",level:2},{value:"Getting Started",id:"getting-started",level:2}];function g(e){const n={a:"a",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"setup-my-signature-in-opensign",children:'Setup "My Signature" in OpenSign'})}),"\n",(0,a.jsx)(n.p,{children:'This guide provides instructions on how to save your signature and initials using the OpenSign application. Once saved, you can use them with one click when signing documents. To create your signature, start by clicking the "My Signature" link under "settings" menu.'}),"\n",(0,a.jsx)(n.h2,{id:"creating-and-saving-your-signature",children:"Creating and Saving Your Signature"}),"\n",(0,a.jsx)(n.p,{children:"The drawing box on the left is dedicated to this purpose. If you make a mistake or wish to redo your signature, simply click the Clear button below the drawing box to erase it and start over."}),"\n",(0,a.jsx)(n.h2,{id:"uploading-a-signature-image",children:"Uploading a Signature Image"}),"\n",(0,a.jsx)(n.p,{children:'Alternatively, if you prefer to use a pre-existing image of your signature, click the "Upload Image" button next to the Signature button. This will prompt you to select an image file from your device. Once uploaded, the image will be displayed in the drawing box, ready to be saved.'}),"\n",(0,a.jsx)("img",{width:"820",alt:"create signature and initials",src:"https://github.com/user-attachments/assets/6e86e3ed-48e2-47d1-a9b6-f964b13986c5"}),"\n",(0,a.jsx)(n.h2,{id:"creating-and-saving-your-initials",children:"Creating and Saving Your Initials"}),"\n",(0,a.jsx)(n.p,{children:"For creating your initials, use your mouse or a stylus to draw your initials on the drawing box on the right. As with the signature, there is a Clear button available to erase and redo the initials if necessary."}),"\n",(0,a.jsx)(n.h2,{id:"saving-your-signature-and-initials",children:"Saving Your Signature and Initials"}),"\n",(0,a.jsx)(n.p,{children:"After you have drawn your signature and initials or uploaded your signature image, the next step is to save them. Click the Save button located below the drawing areas. This will store your signature and initials in the system, making them readily available for future use."}),"\n",(0,a.jsx)("img",{width:"820",alt:"create signature",src:"https://github.com/user-attachments/assets/f999f256-038f-4e91-be7d-e1dceb0cfdec"}),"\n",(0,a.jsx)(n.p,{children:"Once saved, these can be applied with a single click whenever you need to sign a document within the OpenSign application, streamlining your workflow and ensuring consistency in your document signing process."}),"\n",(0,a.jsx)(n.h2,{id:"uploading-a-stamp-image",children:"Uploading a Stamp Image"}),"\n",(0,a.jsx)(n.p,{children:"Click the Upload Image button next to the Stamp option to upload your stamp image. Once uploaded, the image will appear in the stamp image box and is ready to be saved. The uploaded stamp will be displayed during the document signing process."}),"\n",(0,a.jsx)("img",{width:"820",alt:"upload stamp",src:"https://github.com/user-attachments/assets/232e4dfd-d305-4b62-ba69-668225287efc"}),"\n",(0,a.jsx)(n.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.strong,{children:"try OpenSign on cloud"})," at ",(0,a.jsx)(n.strong,{children:(0,a.jsx)(n.a,{href:"https://app.opensignlabs.com",children:"OpenSignLabs"})}),"."]}),"\n",(0,a.jsx)(n.p,{children:"Or"}),"\n",(0,a.jsxs)(n.p,{children:["Get started by deploying a new instance of ",(0,a.jsx)(n.strong,{children:"OpenSign"})," by following these ",(0,a.jsx)(n.a,{href:"https://docs.opensignlabs.com/docs/self-host/intro",children:"instructions"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(g,{...e})}):g(e)}}}]);
\ No newline at end of file
diff --git a/assets/js/d8b805fb.fdb8fe31.js b/assets/js/d8b805fb.fdb8fe31.js
deleted file mode 100644
index 00c6565ab..000000000
--- a/assets/js/d8b805fb.fdb8fe31.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[1924],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>o});var i=t(96540);const s={},a=i.createContext(s);function r(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(a.Provider,{value:n},e.children)}},76225:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>o,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>g});const i=JSON.parse('{"id":"help/Settings/my-signature","title":"My Signature","description":"This guide provides instructions on how to save your signature and initials using the OpenSign application. Once saved, you can use them with one click when signing documents. To create your signature, start by clicking the \\"My Signature\\" link under \\"settings\\" menu.","source":"@site/docs/help/Settings/my-signature.md","sourceDirName":"help/Settings","slug":"/help/Settings/my-signature","permalink":"/docs/help/Settings/my-signature","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/help/Settings/my-signature.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"My Signature"},"sidebar":"tutorialSidebar","previous":{"title":"Settings","permalink":"/docs/category/settings"},"next":{"title":"API Token","permalink":"/docs/help/Settings/APIToken"}}');var s=t(74848),a=t(28453);const r={sidebar_position:1,title:"My Signature"},o='Setup "My Signature" in OpenSign',u={},g=[{value:"Creating and Saving Your Signature",id:"creating-and-saving-your-signature",level:2},{value:"Uploading a Signature Image",id:"uploading-a-signature-image",level:2},{value:"Creating and Saving Your Initials",id:"creating-and-saving-your-initials",level:2},{value:"Saving Your Signature and Initials",id:"saving-your-signature-and-initials",level:2},{value:"Getting Started",id:"getting-started",level:2}];function d(e){const n={a:"a",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"setup-my-signature-in-opensign",children:'Setup "My Signature" in OpenSign'})}),"\n",(0,s.jsx)(n.p,{children:'This guide provides instructions on how to save your signature and initials using the OpenSign application. Once saved, you can use them with one click when signing documents. To create your signature, start by clicking the "My Signature" link under "settings" menu.'}),"\n",(0,s.jsx)(n.h2,{id:"creating-and-saving-your-signature",children:"Creating and Saving Your Signature"}),"\n",(0,s.jsx)(n.p,{children:"The drawing box on the left is dedicated to this purpose. If you make a mistake or wish to redo your signature, simply click the Clear button below the drawing box to erase it and start over."}),"\n",(0,s.jsx)(n.h2,{id:"uploading-a-signature-image",children:"Uploading a Signature Image"}),"\n",(0,s.jsx)(n.p,{children:'Alternatively, if you prefer to use a pre-existing image of your signature, click the "Upload Image" button next to the Signature button. This will prompt you to select an image file from your device. Once uploaded, the image will be displayed in the drawing box, ready to be saved.'}),"\n",(0,s.jsx)("img",{width:"820",alt:"create signature and initials",src:"https://github.com/user-attachments/assets/6e86e3ed-48e2-47d1-a9b6-f964b13986c5"}),"\n",(0,s.jsx)(n.h2,{id:"creating-and-saving-your-initials",children:"Creating and Saving Your Initials"}),"\n",(0,s.jsx)(n.p,{children:"For creating your initials, use your mouse or a stylus to draw your initials on the drawing box on the right. As with the signature, there is a Clear button available to erase and redo the initials if necessary."}),"\n",(0,s.jsx)(n.h2,{id:"saving-your-signature-and-initials",children:"Saving Your Signature and Initials"}),"\n",(0,s.jsx)(n.p,{children:"After you have drawn your signature and initials or uploaded your signature image, the next step is to save them. Click the Save button located below the drawing areas. This will store your signature and initials in the system, making them readily available for future use."}),"\n",(0,s.jsx)("img",{width:"820",alt:"create signature",src:"https://github.com/user-attachments/assets/f999f256-038f-4e91-be7d-e1dceb0cfdec"}),"\n",(0,s.jsx)(n.p,{children:"Once saved, these can be applied with a single click whenever you need to sign a document within the OpenSign application, streamlining your workflow and ensuring consistency in your document signing process."}),"\n",(0,s.jsx)(n.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"try OpenSign on cloud"})," at ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://app.opensignlabs.com",children:"OpenSignLabs"})}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Or"}),"\n",(0,s.jsxs)(n.p,{children:["Get started by deploying a new instance of ",(0,s.jsx)(n.strong,{children:"OpenSign"})," by following these ",(0,s.jsx)(n.a,{href:"https://docs.opensignlabs.com/docs/self-host/intro",children:"instructions"}),"."]})]})}function l(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.20ba5e8d.js b/assets/js/runtime~main.1b81b635.js
similarity index 97%
rename from assets/js/runtime~main.20ba5e8d.js
rename to assets/js/runtime~main.1b81b635.js
index 34b8bca0d..55d228389 100644
--- a/assets/js/runtime~main.20ba5e8d.js
+++ b/assets/js/runtime~main.1b81b635.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,c,f,d,b={},r={};function t(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}t.m=b,t.c=r,e=[],t.O=(a,c,f,d)=>{if(!c){var b=1/0;for(n=0;nDate: The date widget allows signers to add a date during the signing process. After placing the date widget, you will see the options on the widget such as:
-Date Widget
+The Date widget allows signers to enter a date while signing the document. Once the widget is placed, you can configure its behavior using the available settings in the Widget Info panel.
+Date Format: Choose the preferred date format (for example, MM/dd/yyyy, dd-mm-yyyy, or dd/mm/yyyy) from the Format dropdown. This determines how the date appears to the signer.
Set Date: This option allows the user to set a default date, which will be displayed while signing the document.
+Signing Date: When selected, the date on which the signer signs the document will be automatically displayed in the Date widget.
+Clear: Removes the selected date setting.
+Date Range
+Required / Optional
+Mark the widget as Required if the signer must fill it in before completing the signing, or Optional if it is not mandatory.
Font Settings +Customize the font size and text color to match the document’s style.
+Read Only +Enable this option to display a date that cannot be edited by the signer.
+Save +Click Save to apply all selected settings to the Date widget.
Text Input: The text input field is used to collect input from the signer. Signers can type their responses directly into this field. After placing the Text Input widget, you will see the options on the widget such as:
diff --git a/docs/help/New-Document/sign-yourself/index.html b/docs/help/New-Document/sign-yourself/index.html index 4f913c74a..cb6c8655b 100644 --- a/docs/help/New-Document/sign-yourself/index.html +++ b/docs/help/New-Document/sign-yourself/index.html @@ -5,7 +5,7 @@⚠️ Important: Store this key securely. Do not expose it in client-side code or public repositories.
After you have drawn your signature and initials or uploaded your signature image, the next step is to save them. Click the Save button located below the drawing areas. This will store your signature and initials in the system, making them readily available for future use.
Once saved, these can be applied with a single click whenever you need to sign a document within the OpenSign application, streamlining your workflow and ensuring consistency in your document signing process.
+Click the Upload Image button next to the Stamp option to upload your stamp image. Once uploaded, the image will appear in the stamp image box and is ready to be saved. The uploaded stamp will be displayed during the document signing process.
+try OpenSign on cloud at OpenSignLabs.
Or
-Get started by deploying a new instance of OpenSign by following these instructions.
Get started by deploying a new instance of OpenSign by following these instructions.