diff --git a/docs/API-Documentation/E-Sign.md b/docs/API-Documentation/E-Sign.md index b369148..5c10b3b 100644 --- a/docs/API-Documentation/E-Sign.md +++ b/docs/API-Documentation/E-Sign.md @@ -1,12 +1,39 @@ -## **Authorization Management API** +# **How to Generate an API Key** -The **Auth Management API** is used to handle authentication and authorization processes within the system. It ensures secure access to resources by verifying user identity and controlling permissions. +The **API Keys** feature in Doculan allows users to create and manage secure API keys for integrating external applications and services. Each API key is generated with a validity period and can be managed directly from the Settings page. -**Base URL:** -https://api.doculan.ai/client-docs +## Step 1: Log In to Your Account + - Open the Doculan application. + - Enter your login credentials and sign in to your account. +**Login URL:** https://demo.doculandemo.com/login -## ๐Ÿ”น 1 Register User +## Step 2: Open Profile Settings + - After logging in, navigate to the Profile section from the dashboard. + - Click the Settings icon available in the top-right corner of the profile page. + +Screenshot for Document + +## Step 3: Manage and Generate API Keys + - In the **Settings page**, select the **API Keys** tab. + - The API Keys section displays all previously generated API keys, including their **creation date, expiration date, and status.** + - To generate a new key, click the **Generate API Key** button. + - A new API key will be created automatically for your account and added to the list. + +Screenshot for Document + +--- + +# **Client Management APIs** + +The **Client Management APIs** provide endpoints to create, update, retrieve, search, and manage client information efficiently. They enable secure and structured handling of client data throughout the complete client lifecycle. + + +**Base URL:** https://api.doculandemo.com/client-docs + +--- + + -### **Request Body Example** + -### **Tags** + -### **Request Body Example** + -### **Tags** + -### **Request Body Example** + -### **Tags** + -## ๐Ÿ”น 4 Resend Verification Email + -### **Request Body Example** + -### **Tags** + -## ๐Ÿ”น 5 Create Api Key + -### **Request Body Example** + -### **Tags** + ## **Files Operation APIs** @@ -332,15 +359,16 @@ The Files Operation **APIs allow you to retrieve individual files or list all av --- -## ๐Ÿ”น 1 Get Document +## ๐Ÿ”น 1 Create Folder + +Create a new folder in the document management system. +Optionally, you can specify parent folder details, custom metadata, or access permissions while creating the folder. -Retrieve a specific file using its document ID. -Optionally, you can return the actual PDF file or just the file metadata. ### **Endpoint** ```` -GET api/v1/documents/ +POST /api/v1/documents/folder/ ```` - +### **Request Body** + +```` +json + +{ + "new_folder": "string", + "folder_mapping_id": "string" +} + +```` ### **Response Body Example** @@ -369,17 +406,9 @@ GET api/v1/documents/ json { - "document_id": "682c5804-f860-4p08-802f-d5538j5aabd8", - "file_path": "example.com/files/dev/OnePageContract.pdf", - "metadata_path": "example.com/metadata/682c5804.json", - "fileName": "OnePageContract.pdf", - "size": 35599, - "last_modified": "2025-12-26T16:19:53.484243+00:00", - "created_by": { - "name": "Jane Smith", - "email": "jane.smith@example.com" - } + "status": "'Acme Technologies' folder created successfully." } + ```` -### **Path Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `document_id` | string | โœ… Yes | Unique identifier of the document | - + -### **Request Body** -> _Not required_ --> -### **Response Body Example** +### **Query Parameters** +| Name | Type | Required | Description | +| ------------------- | ------------------ | -------- | ---------------------------------------------------------- | + +| `folder_mapping_id`|string \| (string \| null) | โœ… Yes | Specifies the destination folder | + + + + + +### **Response Body Example** + ```` +json + +{ + "status": 200, + "detail": "Folder 'Documents' deleted successfully", + "folder_name": "Documents" +} +```` -### **Response Format** -- Content-Type: `application/json` -- Returns an array of file objects with associated metadata. - ### Tags `Files Operation` --- -Got it โ€” hereโ€™s the **corrected Markdown section** based on your actual API and response. You can directly append this to your doc: - ---- - -## ๐Ÿ”น 5 Redirect URL (PDF Editor) +## ๐Ÿ”น 3 Upload Documents -The **Redirect URL API** is used to securely generate a session for accessing the third-party PDF editor. -This API uses **API Key authentication only (no login required)** and returns a scoped bearer token along with the editor UI URL. - ---- +Upload a document for storage and management. ### **Endpoint** -``` - -POST /api/v1/documents/auth/redirect +```` +POST /api/v1/documents/upload/ +```` -``` ---- - ---- --> + ### **Request Body** -> _Not required_ - ---- - -### **Response Body Example** - -``` - -json - -{ - "client_id": "client_xxxxxxxxxxx1bb23c0a105316", - "email": "sample@example.com", - "role": "admin", - "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.samplePayload.signature", - "ui_url": "https://demo.doculandemo.com/pdf-editor", - "token_type": "bearer" -} - -``` - ---- - -### **Response Fields** - -| Field | Type | Description | -|---------------|--------|----------------------------------------------------------| -| client_id | string | Unique identifier for the client | -| email | string | Associated client email | -| role | string | Role assigned to the client (e.g., admin) | -| access_token | string | Bearer token used for authentication in editor session | -| ui_url | string | Third-party PDF editor URL | -| token_type | string | Token type (always `bearer`) | - ---- - -### **Usage Flow** - -1. Call the API using your **X-API-Key** -2. Receive: - - `access_token` - - `ui_url` -3. Load `ui_url` inside an iframe or browser -4. Pass the following data to the editor via `postMessage` +| Name | Type | Required | Description | +| ------------------- | ------------------ | -------- | ---------------------------------------------------------- | +| `files` | array | โœ… Yes | Chose the recured file | +| `folder_mapping_id`|string \| (string \| null) | โŒ No | Specifies the destination folder | + ---- + -``` +### **Response Body Example** +```` json +id="m8x4rz" { - "type": "INIT_DATA", - "payload": { - "document_id": "string", - "access_token": "string" - } + "uploaded_files": [ + { + "document_id": "987f6543-e21c-45b6-a789-123456789abc", + "filename": "Acme Technologies/Employee Handbook Acknowledgment.pdf", + "status": "uploaded" + } + ] } -``` - ---- - -### **Important Notes** - -- No user login is required โ€” authentication is handled via API Key -- The `access_token` is **short-lived and scoped to the client** -- Ensure secure communication by restricting `postMessage` origin in production - -Example: - -``` - -postMessage(data, "https://demo.doculandemo.com"); - -``` - ---- - -### **Error Handling** -- If the API call fails, retry with a valid API key -- Ensure the iframe is fully loaded before sending data -- Handle cases where `access_token` is not yet available +```` ---- -### **Required Parameters** + -| Parameter | Required | Description | -|--------------|----------|----------------------------| -| document_id | โœ… Yes | Document to be edited | -| access_token | โœ… Yes | Bearer token for authenticating the session | ---- + -### Tags +### Tags `Files Operation` --- -## ๐Ÿ”น 4 Get Folders Structure +## ๐Ÿ”น 3 List Documents -The Get **Folders Structure API** is used to retrieve the hierarchical structure of folders, including subfolders and associated files. +Retrieve a list of all available documents. ### **Endpoint** ``` -GET /api/v1/documents/folder-structure -``` +GET /api/v1/documents/ +``` ### **Query Parameters** -> _None_ +| Name | Type | Required | Description | +| ------------------- | ------------------ | -------- | ---------------------------------------------------------- | +| `folder_mapping_id`|string \| (string \| null) | โŒ No | Specifies the destination folder | | +| `Page` | intiger | โŒ No | Valid page values are integers starting from 1 | +| `Limit` | intiger | โŒ No | Limit must be a positive integer within the range of 1โ€“500 | -### **Request Body** -> _Not required_ --> + + ### **Response Body Example** @@ -643,59 +612,22 @@ GET /api/v1/documents/folder-structure json { - "items": [ + "total_records": 23, + "limit": 10, + "page": 1, + "files": [ { - "index": 1, - "type": "folder", - "name": "Root Files", - "items": [ - { - "index": 1, - "type": "folder", - "name": "Project Alpha", - "items": [ - { - "index": 1, - "type": "folder", - "name": "Project Alpha - Docs", - "items": [ - { - "index": 1, - "type": "file", - "name": "Requirement_Spec.pdf", - "document_id": "doc-001", - "created_by_name": "User One", - "created_by_email": "userone@example.com", - "created_at": "2026-02-10T10:30:00Z" - }, - { - "index": 2, - "type": "file", - "name": "Weekly_Review_Report.pdf", - "document_id": "doc-002", - "created_by_name": "User Two", - "created_by_email": "usertwo@example.com", - "created_at": "2026-03-09T09:45:00Z" - } - ], - "created_by_name": "User Three", - "created_by_email": "userthree@example.com", - "created_at": "2026-03-08T08:00:00Z" - } - ], - "created_by_name": "User Two", - "created_by_email": "usertwo@example.com", - "created_at": "2026-03-01T12:00:00Z" - } - ], - "created_by_name": "User One", - "created_by_email": "userone@example.com", - "created_at": "2026-02-01T09:00:00Z" + "document_id": "a12b34c5-d678-4e90-9f12-3456789abcde", + "file_path": "files/Sample Company/Employee Handbook Acknowledgment.pdf", + "fileName": "Employee Handbook Acknowledgment.pdf", + "size": 482112, + "last_modified": "2026-05-22T10:15:23.054741+00:00" } ] } ``` + ### **Query Parameters** -> _None_ --> - +| Parameter | Required | Description | +|--------------|----------|----------------------------| +| `document id` | โœ… Yes | Get document information from the repository | -### **Request Body** + ### **Response Body Example** -``` -json +This API returns the **requested document file**, allowing you to access the document associated with the specified document ID. -{ - "uploaded_files": [ - { - "document_id": "doc-001", - "filename": "Project Alpha/User One/Test/Confidentiality_Agreement.pdf", - "status": "uploaded" - } - ] -} -``` +A sample document response is attached below for reference. + +You may **download** the sample file to review the document content and structure. + +

+ + ๐Ÿ“„ Download Sample PDF + +

- - ### **Query Parameters** -| Name | Type | Required | Default | Description | -|-----|------|----------|-------------|-------------| -| `Scope` | string | โŒ No | `Myself` | Filter for a specific document scope | - +| Name | Type | Required | Description | +| ------------------- | ------------------ | -------- | ---------------------------------------------------------- | +| `folder_mapping_id`|string \| (string \| null) | โŒ No | Specifies the destination folder | | +| `Content type`|string \| (string \| null) | โŒ No | Specifies the destination folder | +| `Page` | intiger | โŒ No | Valid page values are integers starting from 1 | +| `Limit` | intiger | โŒ No | Limit must be a positive integer within the range of 1โ€“500 | - ### **Response Body Example** -```` +``` json { - "local": { - "ATTESTATION AND AGREEMENT": { - "fields": [ - { - "id": "1766830885432-signature", - "type": "signature", - "x": 429, - "y": 902, - "width": 362, - "height": 36, - "page": 1, - "color": "hsl(196, 100%, 90%)", - "style": "both", - "partyId": "1", - "required": false, - "record": false, - "timestamp": false, - "options": [] - }, - { - "id": "1766830532236-text", - "type": "text", - "x": 501, - "y": 980, - "width": 310, - "height": 28, - "page": 1, - "color": "hsl(196, 100%, 90%)", - "style": "", - "partyId": "1", - "required": false, - "record": false, - "timestamp": false, - "options": [] - } ], - "parties": [ - { - "id": "1", - "name": "Party 1", - "email": "user@example.com", - "color": "hsl(196, 100%, 90%)", - "priority": 0 - } - ], - "document_id": "e1j8k49c-b726-4c9e-b168-m487cfaf6bcc" - } - }, - "global": { - "Demo2-Temp": { - "fields": [ - { - "id": "1765457294716-text", - "type": "text", - "x": 252, - "y": 188, - "width": 100, - "height": 25, - "page": 1, - "color": "hsl(196, 100%, 90%)", - "style": "both", - "partyId": "1", - "required": false, - "record": false, - "timestamp": false, - "options": [] - }, - { - "id": "1765457303824-date", - "type": "date", - "x": 555, - "y": 245, - "width": 100, - "height": 25, - "page": 1, - "color": "hsl(196, 100%, 90%)", - "style": "both", - "partyId": "1", - "required": false, - "record": false, - "timestamp": false, - "options": [] - } - ], - "parties": [ - { - "id": "1", - "name": "Party 1", - "email": "user@example.com", - "color": "hsl(196, 100%, 90%)", - "priority": 0 - } - ], - "document_id": "daac0bba-130b-4eeb-83fd-bi794882e972" - } - } + "files": { + "offset": 0, + "limit": 10, + "total_records": 6, + "next_offset": null, + "data": [ + { + "index": 6, + "type": "folder", + "name": "Sample Company", + "folderMappingId": "FMpX9aQz1K", + "items": [], + "created_by_name": "John Doe", + "created_by_email": "john.doe@sample.com", + "created_at": "2026-05-22T10:15:11.278619+00:00" + }, + { + "index": 5, + "type": "file", + "name": "I-9 Employment Verification.pdf", + "document_id": "11111111-aaaa-4fc4-bb96-a1503f9b9a1b", + "created_by_name": "John Doe", + "created_by_email": "john.doe@sample.com", + "created_at": "2026-05-21T12:23:16.767928+00:00" + }, + { + "index": 4, + "type": "folder", + "name": "HR Documents", + "folderMappingId": "HRxC7UM7xZ", + "items": [], + "created_by_name": "Jane Smith", + "created_by_email": "jane.smith@sample.com", + "created_at": "2026-05-19T14:00:37.429864+00:00" + }, + { + "index": 3, + "type": "file", + "name": "Tax_Form_1040.pdf", + "document_id": "22222222-bbbb-4d87-bc8c-7a1a5b5ae559", + "created_by_name": "Jane Smith", + "created_by_email": "jane.smith@sample.com", + "created_at": "2026-05-05T07:52:36.017015+00:00" + }, + { + "index": 2, + "type": "folder", + "name": "API Integration Docs", + "folderMappingId": "APIb9UxBQQ", + "items": [], + "created_by_name": "Alex Johnson", + "created_by_email": "alex.j@sample.com", + "created_at": "2026-04-29T15:04:00.116660+00:00" + }, + { + "index": 1, + "type": "folder", + "name": "Demo Workspace", + "folderMappingId": "DMoK7oQSB7B", + "items": [], + "created_by_name": "Admin User", + "created_by_email": "admin@sample.com", + "created_at": "2026-03-19T16:09:19.326984Z" + } + ] + } } -```` - - - +``` + +### Tags +`Files Operation` - +--- -### **Tags** -`Document Template` +# **ESign Editor APIs** + +Use ESign Editor APIs to create, edit, and manage electronic signature documents and workflows. --- -## ๐Ÿ”น2 Get Specific Document Template +## ๐Ÿ”น 1 Redirect URL (E-sign Editor) -Retrieve a specific template from the list of available document templates. +The **Redirect URL API** is used to securely generate a session for accessing the third-party PDF editor. +This API uses **API Key authentication only (no login required)** and returns a scoped bearer token along with the editor UI URL. + +--- ### **Endpoint** -```` -GET api/v1/documents/templates/{template_name} -```` - +GET /api/v1/documents/auth/redirect -### **Path Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `template_name` | string | โœ… Yes | Specifies the template name | +``` -### **Query Parameters** -| Name | Type | Required | Default | Description | -|-----|------|----------|-------------|-------------| -| `Scope` | string | โŒ No | `Myself` | Filter for a specific document scope | +--- + -> _Not required_ --> +### **Request Body** +> _Not required_ +--- ### **Response Body Example** -```` +``` + json { - "document_id": "doc-12345-demo", + "client_id": "client_xxxxxxxxxxx1bb23c0a105316", + "email": "sample@example.com", + "role": "admin", + "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.samplePayload.signature", + "ui_url": "https://demo.doculandemo.com/esign-editor", + "token_type": "bearer" +} - "parties": [ - { - "id": "party-1", - "name": "User One", - "email": "userone@example.com", - "color": "hsl(200, 80%, 85%)", - "priority": 1 - }, - { - "id": "party-2", - "name": "User Two", - "email": "usertwo@example.com", - "color": "hsl(120, 70%, 85%)", - "priority": 2 - } - ], +``` - "fields": [ - { - "id": "field-full-name", - "label": "Full Name", - "type": "text", - "value": "User One", - "position": { "x": 600, "y": 880 }, - "size": { "width": 350, "height": 40 }, - "page": 4, - "style": {}, - "assignedTo": "party-1", - "required": true - }, - { - "id": "field-address", - "label": "Address", - "type": "text", - "value": "123 Demo Street", - "position": { "x": 510, "y": 960 }, - "size": { "width": 520, "height": 40 }, - "page": 4, - "style": {}, - "assignedTo": "party-1", - "required": true - }, - { - "id": "field-date", - "label": "Date", - "type": "date", - "value": "2026-03-29", - "position": { "x": 520, "y": 1215 }, - "size": { "width": 490, "height": 40 }, - "page": 4, - "style": {}, - "assignedTo": "party-1", - "required": true - }, - { - "id": "field-email", - "label": "Email", - "type": "email", - "value": "userone@example.com", - "position": { "x": 580, "y": 1050 }, - "size": { "width": 370, "height": 45 }, - "page": 4, - "style": {}, - "assignedTo": "party-1", - "required": true - }, - { - "id": "field-signature", - "label": "Signature", - "type": "signature", - "value": "signature-placeholder", - "position": { "x": 570, "y": 1130 }, - "size": { "width": 390, "height": 65 }, - "page": 4, - "style": { - "mode": "draw-and-type" - }, - "assignedTo": "party-1", - "required": true - }, - { - "id": "field-initial-page-1", - "label": "Initial", - "type": "initial", - "value": "U1", - "position": { "x": 1080, "y": 1630 }, - "size": { "width": 100, "height": 30 }, - "page": 1, - "assignedTo": "party-1", - "required": true - }, - { - "id": "field-initial-page-2", - "label": "Initial", - "type": "initial", - "value": "U1", - "position": { "x": 1080, "y": 1620 }, - "size": { "width": 100, "height": 30 }, - "page": 2, - "assignedTo": "party-1", - "required": true - }, - { - "id": "field-initial-page-3", - "label": "Initial", - "type": "initial", - "value": "U1", - "position": { "x": 1070, "y": 1620 }, - "size": { "width": 100, "height": 30 }, - "page": 3, - "assignedTo": "party-1", - "required": true - } - ] +--- + +### **Response Fields** + +| Field | Type | Description | +|---------------|--------|----------------------------------------------------------| +| client_id | string | Unique identifier for the client | +| email | string | Associated client email | +| role | string | Role assigned to the client (e.g., admin) | +| access_token | string | Bearer token used for authentication in editor session | +| ui_url | string | Third-party PDF editor URL | +| token_type | string | Token type (always `bearer`) | + +--- + +### **Usage Flow** + +1. Call the API using your **X-API-Key** +2. Receive: + - `access_token` + - `ui_url` +3. Load `ui_url` inside an iframe or browser +4. Pass the following data to the editor via `postMessage` + +--- + +### **PostMessage Payload** + +``` + +json + +{ + "type": "INIT_DATA", + "payload": { + "document_id": "string", + "access_token": "string" + } } -```` - +--- -### **Tags** -`Document Template` +### **Important Notes** + +- No user login is required โ€” authentication is handled via API Key +- The `access_token` is **short-lived and scoped to the client** +- Ensure secure communication by restricting `postMessage` origin in production + +Example: + +``` + +postMessage(data, "https://demo.doculandemo.com"); + +``` + +--- + +### **Error Handling** + +- If the API call fails, retry with a valid API key +- Ensure the iframe is fully loaded before sending data +- Handle cases where `access_token` is not yet available + +--- + +### **Required Parameters** + +| Parameter | Required | Description | +|--------------|----------|----------------------------| +| document_id | โœ… Yes | Document to be edited | +| access_token | โœ… Yes | Bearer token for authenticating the session | +--- + +### Tags +`Files Operation` --- -## ๐Ÿ”น 3 Create Template + +## **Document Template APIs** + +This section describes the APIs used to retrieve document templates from the system. + +--- + +## ๐Ÿ”น 1 Create Template The Create Template API is used to create a reusable document template for workflows such as E-Sign and document generation. ### **Endpoint** ```` -GET api/v1/documents/status +POST /api/v1/documents/templates/ ```` --- @@ -1209,17 +1060,122 @@ json --- -## ๐Ÿ”น 4 Delete Template +## ๐Ÿ”น 2 Get All Templates -The **Delete Template API** is used to permanently remove a document template from the system. +Retrieve a list of all available document templates. ### **Endpoint** + ```` -DELETE /api/v1/documents/templates/{template_name} +GET /api/v1/documents/templates/all/ +```` + + + + + +### **Query Parameters** +| Name | Type | Required | Default | Description | +|-----|------|----------|-------------|-------------| +| `Scope` | string | โŒ No | `Myself` | Filter for a specific document scope | +| `Page` | intiger | โŒ No | Valid page values are integers starting from 1 | +| `Limit` | intiger | โŒ No | Limit must be a positive integer within the range of 1โ€“500 | +| `search`|string \| (string \| null) | โŒ No | Specifies the template name | + + + + + +### **Response Body Example** + +```` +json + +{ + "total": 7, + "page": 1, + "limit": 10, + "count": 7, + "data": [ + { + "template_name": "Employee Onboarding Agreement", + "document_id": "a1111111-8104-4c13-b292-c522096644ea" + }, + { + "template_name": "Vendor Contract Template", + "document_id": "b2222222-8104-4c13-b292-c522096644ea" + }, + { + "template_name": "Attestation & Compliance Form", + "document_id": "c3333333-ac77-4348-b952-8c2d3ad0ef17" + }, + { + "template_name": "Tax Form 1040", + "document_id": "d4444444-72f1-4d87-bc8c-7a1a5b5ae559" + }, + { + "template_name": "Dual Party Agreement", + "document_id": "e5555555-72f1-4d87-bc8c-7a1a5b5ae559" + }, + { + "template_name": "Internal Policy Template", + "document_id": "f6666666-72f1-4d87-bc8c-7a1a5b5ae559" + }, + { + "template_name": "F1040 Standard Template", + "document_id": "g7777777-72f1-4d87-bc8c-7a1a5b5ae559" + } + ] +} + +```` + + + + + + + + + + +### **Tags** +`Document Template` + +--- + +## ๐Ÿ”น3 Get Specific Template + +Retrieve a specific template from the list of available document templates. + +### **Endpoint** +```` +GET api/v1/documents/templates/{template_name} ```` + ### **Response Body Example** -``` +```` json { - "message": "Template 'Name of the Template' deleted." + "fields": [ + { + "id": "2000000000001-signature", + "type": "signature", + "x": 320, + "y": 880, + "width": 210, + "height": 60, + "page": 1, + "color": "hsl(210, 100%, 90%)", + "style": "both", + "label": null, + "partyId": "1", + "required": true, + "record": false, + "timestamp": true, + "imageMode": null, + "value": null, + "options": [], + "variable_registry": null + }, + { + "id": "2000000000002-text", + "type": "text", + "x": 410, + "y": 960, + "width": 180, + "height": 40, + "page": 1, + "color": "hsl(210, 100%, 90%)", + "style": "", + "label": null, + "partyId": "1", + "required": false, + "record": false, + "timestamp": true, + "imageMode": null, + "value": null, + "options": [], + "variable_registry": null + }, + { + "id": "2000000000003-date", + "type": "date", + "x": 370, + "y": 1040, + "width": 110, + "height": 32, + "page": 1, + "color": "hsl(210, 100%, 90%)", + "style": "", + "label": null, + "partyId": "1", + "required": false, + "record": false, + "timestamp": true, + "imageMode": null, + "value": null, + "options": [ + "MM/DD/YYYY", + "true" + ], + "variable_registry": null + } + ], + "parties": [ + { + "id": "1", + "name": "Signer One", + "email": "signer.one@example.com", + "color": "hsl(210, 100%, 90%)", + "priority": 0 + } + ], + "document_id": "c1111111-ac77-4348-b952-8c2d3ad0ef17" } -``` +```` + +### **Path Parameters** +| Name | Type | Required | Description | +|-----|------|----------|-------------| +| `template_name` | string | โœ… Yes | Specifies the template name | + +### **Query Parameters** +| Name | Type | Required | Default | Description | +|-----|------|----------|-------------|-------------| +| `Scope` | string | โŒ No | `Myself` | Filter for a specific document scope | + + + + +### **Response Body Example** + +``` +json + +{ + "message": "Template 'Name of the Template' deleted." +} + +``` + + +### **Tags** +`Document Template` + +--- + + ## **Variable Registry APIs** The **Variable Registry APIs** are used to manage dynamic variables that can be applied to documents, templates, and E-Sign workflows. --- -## ๐Ÿ”น 1 Create Variable Registry +## ๐Ÿ”น 1 Create Variable The **Create Variable Registry API** is used to create and store variables that can be dynamically applied to documents, templates, and E-Sign workflows. @@ -1394,7 +1483,7 @@ json { "variable": "string", - "scope": "Current", + "scope": "Globla", "fields": [ { "type": "string", @@ -1416,7 +1505,7 @@ json { "message": "variables saved successfully", "variable": "string", - "scope": "Current" + "scope": "Global" } ``` -### **Path Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `variable` | string | โœ… Yes | Specifies the variable name | - ### **Query Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `Scope` | string | โœ… Yes | Filter for a specific document scope | -| `template_name` | string \| null | โŒ No | templateName is required only if scope=local | +| Name | Type | Required | Description | +| ------------------- | ------------------ | -------- | ---------------------------------------------------------- | +| `Scope`|string | โœ… Yes | Available values : Global, Local, Current | +| `variable`|string \| (string \| null) | โŒ No | If provided, only the matching field will be displayed. | +| `Page` | intiger | โŒ No | Valid page values are integers starting from 1 | +| `Limit` | intiger | โŒ No | Limit must be a positive integer within the range of 1โ€“500 | @@ -1474,17 +1560,78 @@ POST /api/v1/documents/variable-registry/{variable} json { - "variable": "Organization", - "scope": "Global", - "fields": [ + "total": 1, + "page": 1, + "limit": 10, + "variable_registry": [ { - "type": "Text", - "style": "string", - "label": "Name", - "value": "Virtualan Software" + "variable": "Organization", + "fields": [ + { + "type": "text", + "style": "", + "label": "Full-Name", + "value": "Acme Technologies Inc" + }, + { + "type": "text", + "style": "", + "label": "Address", + "value": "San Francisco, CA" + }, + { + "type": "text", + "style": "", + "label": "Address-1", + "value": "456 Market Street" + }, + { + "type": "text", + "style": "", + "label": "Address-2", + "value": "Suite 800, CA 94105" + }, + { + "type": "date", + "style": "", + "label": "Lease Start Date:", + "value": "January 1, 2026" + }, + { + "type": "date", + "style": "", + "label": "Lease End Date:", + "value": "December 31, 2026" + }, + { + "type": "text", + "style": "", + "label": "Monthly Rent:", + "value": "$3,500" + }, + { + "type": "text", + "style": "", + "label": "Security Deposit:", + "value": "$3,500" + }, + { + "type": "text", + "style": "", + "label": "Utilities:", + "value": "Internet, Electricity" + }, + { + "type": "text", + "style": "", + "label": "Name", + "value": "Acme Technologies LLC" + } + ] } ] } + ``` +### **Query Parameters** +| Name | Type | Required | Description | +|-----|------|----------|-------------| +| `Scope` | string | โœ… Yes | Filter for a specific document scope | +| `template_name` | string \| null | โŒ No | templateName is required only if scope=local | + -### **Request Body** +### **Response Body Example** ``` json { - "variable": "string", + "variable": "Organization", "scope": "Global", "fields": [ { - "type": "string", + "type": "Text", "style": "string", - "label": "string", - "value": "string" + "label": "Name", + "value": "Acme Technologies" } - ], - "template_name": "string" -} -``` - -### **Response Body Example** - -``` -json - -{ - "message": "Variable fields replaced successfully", - "variable": "Organization Name", - "scope": "Global", - "replaced_fields": 1, - "total_fields": 1 + ] } ``` @@ -1581,14 +1718,14 @@ json --- -## ๐Ÿ”น 4 Delete Variable Registry +## ๐Ÿ”น 4 Update Variable -This API is used to **delete** an existing variable registry from the system. Once deleted, the variable and its associated data will no longer be available. +The **Update Variable Registry API** is used to modify existing variables in the registry, such as updating their name, value, or scope. ### **Endpoint** ```` -DELETE /api/v1/documents/variable-registry/{variable} +PUT /api/v1/documents/variable-registry/{variable} ```` --- @@ -1603,14 +1740,29 @@ DELETE /api/v1/documents/variable-registry/{variable} |-----|------|----------|-------------| | `variable` | string | โœ… Yes | Specifies the variable name | -### **Query Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `scope` | string | โœ… Yes | Filter for a specific document scope | -| `leable` | string \| null | โŒ No | entire variable registry file will be deleted. | + - + +### **Request Body** + +``` +json + +{ + "variable": "string", + "scope": "Global", + "fields": [ + { + "type": "string", + "style": "string", + "label": "string", + "value": "string" + } + ], + "template_name": "string" +} +``` ### **Response Body Example** @@ -1618,9 +1770,11 @@ DELETE /api/v1/documents/variable-registry/{variable} json { - "message": "variable field deleted", + "message": "Variable fields replaced successfully", "variable": "Organization Name", - "scope": "Global" + "scope": "Global", + "replaced_fields": 1, + "total_fields": 1 } ``` @@ -1641,14 +1795,14 @@ json --- -## ๐Ÿ”น 5 Get All Variable Registry +## ๐Ÿ”น 5 Delete Variable -This API retrieves a **list of all variable registries** available in the system. It can be used to view, manage, and reference variables across templates or workflows. +This API is used to **delete** an existing variable registry from the system. Once deleted, the variable and its associated data will no longer be available. ### **Endpoint** ```` -GET /api/v1/documents/variable-registry +DELETE /api/v1/documents/variable-registry/{variable} ```` --- @@ -1658,11 +1812,16 @@ GET /api/v1/documents/variable-registry | `x-api-key` | string | โœ… Yes | API key used to authenticate the request | | `Content type` | application/json | โœ… Yes | Specifies that the API response is returned in JSON format | --> +### **Path Parameters** +| Name | Type | Required | Description | +|-----|------|----------|-------------| +| `variable` | string | โœ… Yes | Specifies the variable name | + ### **Query Parameters** | Name | Type | Required | Description | |-----|------|----------|-------------| | `scope` | string | โœ… Yes | Filter for a specific document scope | -| `variable` | string \| null | โŒ No | entire variable registry file will be deleted. | +| `leable` | string \| null | โŒ No | entire variable registry file will be deleted. | @@ -1673,111 +1832,9 @@ GET /api/v1/documents/variable-registry json { - "variable_registry": [ - { - "variable": "Company Details", - "fields": [ - { - "type": "text", - "style": "", - "label": "Name", - "value": "User Company One" - }, - { - "type": "email", - "style": "", - "label": "Email", - "value": "contact@companyone.com" - }, - { - "type": "text", - "style": "", - "label": "Company Name", - "value": "Company One Pvt Ltd" - } - ] - }, - { - "variable": "Company Details 2", - "fields": [ - { - "type": "text", - "style": "", - "label": "Company Name", - "value": "Company Two Pvt Ltd" - } - ] - }, - { - "variable": "Company Details 3", - "fields": [ - { - "type": "text", - "style": "", - "label": "Company Name", - "value": "Company Three LLC" - } - ] - }, - { - "variable": "Company", - "fields": [ - { - "type": "dropdown", - "style": "", - "label": "Global Dropdown", - "value": "Option One" - }, - { - "type": "date", - "style": "", - "label": "Global Date", - "value": "2026-12-12" - }, - { - "type": "email", - "style": "", - "label": "Global Personal Email", - "value": "userone@example.com" - }, - { - "type": "number", - "style": "", - "label": "Global Phone Number", - "value": "9876543210" - } - ] - }, - { - "variable": "Employee Info", - "fields": [ - { - "type": "text", - "style": "", - "label": "Name", - "value": "User One" - }, - { - "type": "email", - "style": "", - "label": "Official Email ID", - "value": "userone@companyone.com" - }, - { - "type": "date", - "style": "", - "label": "Start Date", - "value": "2025-12-25" - }, - { - "type": "dropdown", - "style": "", - "label": "Gender", - "value": "Option One" - } - ] - } - ] + "message": "variable field deleted", + "variable": "Organization Name", + "scope": "Global" } ``` @@ -1798,7 +1855,10 @@ json --- -## ๐Ÿ”น 6 Get Variable Registry Values + +--- + + -### **Path Parameters** + -### **Response Body Example** + -### **Tags** + ## **Document Tracker APIs** This API allows clients to retrieve the current status of a document using its tracking and document identifiers. --- +## ๐Ÿ”น 1 Send Document -## ๐Ÿ”น 1 Get Over All Status - -Retrieves a list of all document statuses. +Send a document to one or more parties for review or signing. ### **Endpoint** -```` -GET api/v1/documents/status + +```` +POST api/v1/documents/send ```` ---- + - -### **Response Body Example** +### **Request Body Example** ```` json { - "total_documents": 7, - "status_counts": { - "completed": 1, - "cancelled": 1, - "expired": 1, - "in_progress": 1, - "declined": 1, - "shared": 1, - "scheduled": 1 + "document_id": "string", + "fields": [ + { + "id": "string", + "type": "string", + "x": 0, + "y": 0, + "width": 0, + "height": 0, + "page": 0, + "color": "string", + "style": "string", + "label": "string", + "partyId": "string", + "required": false, + "record": false, + "timestamp": false, + "options": [ + "string" + ], + "variable_registry": { + "variable": "", + "label": "string", + "scope": "string", + "type": "string", + "value": "" + } + } + ], + "pages": [ + { + "page_number": 0, + "page_width": 0, + "page_height": 0 + } + ], + "parties": [ + { + "id": "string", + "name": "string", + "email": "string", + "color": "string", + "priority": 0 + } + ], + "holder": { + "name": "string", + "email": "string" }, - "documents": [ + "cc_emails": [ + "user@example.com" + ], + "client_info": { + "ip": "string", + "city": "string", + "region": "string", + "country": "string", + "timezone": "string", + "timestamp": "string", + "browser": "string", + "device": "string", + "os": "string" + }, + "email_response": [ { - "document_id": "00f3435b-460a-40e0-a2a9-5547450b82f1", - "tracking_id": "0254861d-bc0c-463f-9ab5-76007a852811", - "validity_date": "2025-12-12T18:29:59.000Z", - "status": "completed", - "datetime": "2025-12-12T16:12:49.689499+00:00", - "parties": [ - { - "id": "1", - "name": "User One", - "email": "user.one@example.test", - "color": "hsl(196, 100%, 90%)", - "status": { - "sent": [ - { - "isSent": true, - "dateTime": "2025-12-12T16:00:50.797238+00:00", - "party_name": "User One", - "party_email": "user.one@example.test", - "ip": "34.201.55.91", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "New York", - "region": "New York", - "country": "US", - "timestamp": "2025-12-12T16:00:31.616Z", - "timezone": "America/New_York" - } - } - ], - "opened": [ - { - "isOpened": true, - "dateTime": "2025-12-12T16:11:04.313365+00:00", - "party_name": "User One", - "party_email": "user.one@example.test", - "ip": "34.201.45.91", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "New York", - "region": "New York", - "country": "US", - "timestamp": "2025-12-12T16:10:46.089Z", - "timezone": "America/New_York" - } - } - ], - "signed": [ - { - "isSigned": true, - "dateTime": "2025-12-12T16:12:49.689499+00:00", - "party_name": "User One", - "party_email": "user.one@example.test", - "ip": "34.201.45.91", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "New York", - "region": "New York", - "country": "US", - "timestamp": "2025-12-12T16:12:29.632Z", - "timezone": "America/New_York" - } - } - ] - } - } - ] - }, - { - "document_id": "011baa59-f55b-4fed-b15c-d1653fb72e46", - "tracking_id": "0e3bc8c4-b7b2-4471-bcf4-03756c17dae7", - "validity_date": "2026-02-28T18:29:59.000Z", - "status": "cancelled", - "datetime": "2025-12-31T21:48:44.275476+00:00", - "parties": [ - { - "id": "1", - "name": "User Two", - "email": "user.two@example.test", - "color": null, - "status": { - "cancelled": [ - { - "isCancelled": true, - "reason": "Invalid document format", - "dateTime": "2025-12-31T21:48:44.275476+00:00", - "party_name": "User Two", - "party_email": "user.two@example.test", - "ip": "18.211.90.44", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "Austin", - "region": "Texas", - "country": "US", - "timestamp": "2025-12-31T21:48:38.999Z", - "timezone": "America/Chicago" - } - } - ] - } - } - ] - }, - { - "document_id": "92c79f09-76c5-4cf8-bab6-9b98721ncefc", - "tracking_id": "ac532311-6c71-4f65-aea6-a6chnj77faefa", - "validity_date": "2026-12-12T18:29:59.000Z", - "status": "scheduled", - "datetime": "2026-01-06T13:42:49.000600+00:00", - "parties": [ - { - "id": "1", - "name": "Signer One", - "email": "signer.one@example.test", - "color": "hsl(196, 100%, 90%)", - "status": { - "scheduled": [ - { - "isScheduled": true, - "dateTime": "2026-01-06T13:42:49.000600+00:00", - "party_name": "Signer One", - "party_email": "signer.one@example.test", - "ip": "34.228.4.221", - "browser": "HeadlessChrome", - "os": "Linux", - "device": "PC/Laptop", - "location": { - "city": "Ashburn", - "region": "Virginia", - "country": "US", - "timestamp": "2026-01-06T13:42:48.584Z", - "timezone": "America/New_York" - } - } - ] - } - }, - { - "id": "2", - "name": "Signer Two", - "email": "signer.two@example.test", - "color": "hsl(80, 70%, 90%)", - "status": {} - } - ] - }, - { - "document_id": "021fc34b-b267-43ba-a7af-455286ebe90b", - "tracking_id": "0e8aa699-9114-4cbb-a479-m50cf693f988", - "validity_date": "2025-12-10T23:59:59.000Z", - "status": "in_progress", - "datetime": "2025-12-10T16:42:15.133172+00:00", - "parties": [ - { - "id": "1", - "name": "User Three", - "email": "user.three@example.test", - "color": "hsl(196, 100%, 90%)", - "status": {} - } - ] - }, - { - "document_id": "92c79f09-76c5-4cf8-bab6-9b9523565acefc", - "tracking_id": "05433b6b-3f7e-4d7f-a333-8c4b258gf598a8", - "validity_date": "2026-03-01T18:29:59.000Z", - "status": "shared", - "datetime": "2026-01-06T13:15:29.208286+00:00", - "parties": [ - { - "id": "1", - "name": "User Four", - "email": "user.four@example.test", - "color": "#ccf1ffff", - "status": { - "shared": [ - { - "isShared": true, - "dateTime": "2026-01-06T13:15:29.208286+00:00", - "party_name": "User Four", - "party_email": "user.four@example.test", - "ip": "44.193.15.98", - "browser": "Chrome", - "os": "Linux", - "device": "PC/Laptop", - "location": { - "city": "Ashburn", - "region": "Virginia", - "country": "US", - "timestamp": "2026-01-06T13:15:25.699Z", - "timezone": "America/New_York" - } - } - ] - } - } - ] + "email_subject": "Request for Electronic Signature โ€“ Action Required", + "email_body": "\nDear [Fullname],\n\nYou have received a document that requires your electronic signature.\n\nPlease review the attached document carefully and complete the e-signature process at your earliest convenience. The electronic signature is legally valid and securely recorded in compliance with applicable regulations.\n[Document Link]\nIf you have any questions or require clarification, please contact the sender directly.\n\nThank you for your prompt attention to this matter.\n\nBest regards,\nYour Organization Name\n" } - ] + ], + "signing_order": "ordered", + "otp_enabled": true, + "certificate_enabled": true, + "wet_sign": false, + "validityDate": "string", + "scheduled_datetime": "2026-05-22T18:38:34.753Z", + "remainder": 0, + "is_variable_registry": false } +```` + +### **Response Body Example** + +```` +json + +{ + "tracking_id": "036589d1-45c7-4c7f-b83c-cde17bg5yhj72c", + "status": "sent" +} ```` - - - - ### **Tags** + `Document Tracker` --- -## ๐Ÿ”น 2 Get Document Status By Party +## ๐Ÿ”น 2 Sign Document -Retrieve the document status for an individual party using tracking, document, and party identifiers. +Submit **signed field values** for a document by a specific party. -### **Endpoint** +### **Endpoint** ```` -GET api/v1/documents/party-status +POST /api/v1/documents/sign ```` - - +| `Content type` | application/json | โœ… Yes | Specifies that the API response is returned in JSON format | ### **Query Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `tracking_id` | string | โœ… Yes | Unique tracking identifier of the document | -| `document_id` | string | โœ… Yes | Unique identifier of the document | -| `party_id` | string | โœ… Yes | Unique identifier of the party | +> _None_ --> +### **Request Body Example** +```` +json +{ + "document_id": "string", + "tracking_id": "string", + "party_id": "string", + "fields": [ + { + "fields_ids": [ + { + "field_id": "string", + "font": "string", + "style": "string", + "value": "string" + } + ] + } + ], + "client_info": { + "ip": "string", + "city": "string", + "region": "string", + "country": "string", + "timezone": "string", + "timestamp": "string", + "browser": "string", + "device": "string", + "os": "string" + } +} - +```` ### **Response Body Example** @@ -2179,137 +2126,17 @@ GET api/v1/documents/party-status json { - "tracking_id": "09aa3a64-fd50-4afa-a79e-e70ek5cea2a6", - "document_id": "form-doc-dded726c-a117-42e3-9df9-a3a3c5hg91b2", - "validity_date": "2025-12-11T18:29:59.000Z", - "tracking_status": { "status": "completed", - "dateTime": "2025-12-11T14:29:10.596474+00:00", - "ip": "34.102.136.180", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "San Francisco", - "region": "California", - "country": "US", - "timestamp": "2025-12-11T14:29:09.599Z", - "timezone": "America/Los_Angeles" - } - }, - "party_id": "1", - "party_info": { - "id": "1", - "name": "John Doe", - "email": "john.doe@example.com", - "color": "hsl(196, 100%, 90%)", - "status": { - "sent": [ - { - "isSent": true, - "dateTime": "2025-12-11T14:26:25.598788+00:00", - "party_name": "John Doe", - "party_email": "john.doe@example.com", - "ip": "34.102.136.180", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "San Francisco", - "region": "California", - "country": "US", - "timestamp": "2025-12-11T14:26:22.091Z", - "timezone": "America/Los_Angeles" - } - } - ], - "opened": [ - { - "isOpened": true, - "dateTime": "2025-12-11T14:28:46.051332+00:00", - "party_name": "John Doe", - "party_email": "john.doe@example.com", - "ip": "34.102.136.180", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "San Francisco", - "region": "California", - "country": "US", - "timestamp": "2025-12-11T14:28:46.738Z", - "timezone": "America/Los_Angeles" - } - } - ], - "signed": [ - { - "isSigned": true, - "dateTime": "2025-12-11T14:29:10.596474+00:00", - "party_name": "John Doe", - "party_email": "john.doe@example.com", - "ip": "34.102.136.180", - "browser": "Chrome", - "os": "Windows 11", - "device": "PC/Laptop", - "location": { - "city": "San Francisco", - "region": "California", - "country": "US", - "timestamp": "2025-12-11T14:29:09.599Z", - "timezone": "America/Los_Angeles" - } - } - ] - } - }, - "fields": [ - { - "id": "176544595874381-date", - "type": "date", - "x": 545, - "y": 852, - "width": 100, - "height": 25, - "page": 0, - "color": "hsl(196, 100%, 90%)", - "style": "both", - "partyId": "1", - "required": false, - "record": false, - "timestamp": false, - "options": [], - "signed": true, - "value": "12/11/2025", - "signed_at": "2025-12-11T14:29:08.922733+00:00" - }, - { - "id": "1765446872111-date", - "type": "date", - "x": 625, - "y": 297, - "width": 100, - "height": 25, - "page": 0, - "color": "hsl(196, 100%, 90%)", - "style": "both", - "partyId": "1", - "required": false, - "record": false, - "timestamp": false, - "options": [], - "signed": true, - "value": "12/11/2025", - "signed_at": "2025-12-11T14:29:08.922758+00:00" - } - ], - "otp_enabled": null, - "wet_sign": false + "message": "Signature processed and metadata updated", + "document_id": "nhy67e1e-5d05-4cf8-99ba-e62994f3ceb0", + "tracking_id": "u7y6b7c1-c683-4299-8eb6-7806e8ac59a0", + "signed": true } ```` - - -### **Example** - -> tracking_id=13c34dd9-7f31-4s3d-9b1c-b006ehy587f - -> document_id=e1bfqwe9-a677-43ad-b211-0b4afbj55a77 - -> party_id=1 - ### **Tags** -`Document Tracker` +`Document Tracker` --- -## ๐Ÿ”น 3 Resend E-Sign +## ๐Ÿ”น 3 Resend Document Link Resend the document access or signing link for an existing document using its document and tracking identifiers. @@ -2352,10 +2169,10 @@ POST api/v1/documents/resend | `Content type` | application/json | โœ… Yes | Specifies that the API response is returned in JSON format | --> -### **Query Parameters** + ### **Request Body Example** @@ -2406,9 +2223,9 @@ json | 200 | Successful response | | 422 | Validation error | --> -### **Example** + ### **Tags** @@ -2417,80 +2234,16 @@ json --- -## ๐Ÿ”น 4 Download Signed Document - -Retrieve the final signed PDF document. - -### **Endpoint** - -```` -GET api/v1/documents/signed-pdf -```` - - - -### **Query Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `tracking_id` | string | โœ… Yes | Unique tracking identifier of the document | -| `document_id` | string | โœ… Yes | Unique identifier of the document | - - - - -### **Response Example** - -This API returns the **signed document** in **PDF format.** - - A **sample signed document** is provided below for reference. - - You may **download** the sample PDF for structure and content of the response. - - -

- - ๐Ÿ“„ Download Sample PDF - -

- - - - -### **Example** - - -> tracking_id=a2bfeeb9-a677-43ad-b211-0b4afby76a77 - -> document_id=fyo50e1e-5d05-4cf8-99ba-e62994y7ceb0 - -### **Tags** - -`Document Tracker` - ---- +## ๐Ÿ”น 4 Log Action API -## ๐Ÿ”น 5 Download Certificate +Log document-related actions such as Cancel, Decline, and other workflow events for tracking and audit purposes. -Retrieve the completion certificate for a fully processed document. +### Log Action Cancel ### **Endpoint** ```` -GET api/v1/documents/complete-certificates +POST api/v1/documents/log-action ```` + +### **Request Body Example** -### **Query Parameters** -| Name | Type | Required | Description | -|-----|------|----------|-------------| -| `document_id` | string | โœ… Yes | Unique identifier of the document | -| `tracking_id` | string | โœ… Yes | Unique tracking identifier of the document | - +```` +json +{ + "document_id": "687u5804-d360-4e98-802f-d5531htyrf675abd8", + "tracking_id": "7054eab3-c0f2-40e2-9b9e-731c1444df6d", + "action": "CANCELLED", + "party_id": "1", + "reason": "User requested cancellation", + "client_info": { + "ip": "3.128.94.52", + "city": "Lisle", + "region": "Illinois", + "country": "US", + "timezone": "America/Chicago", + "timestamp": "2025-12-21T04:14:01.699Z", + "browser": "Chrome", + "device": "PC/Laptop", + "os": "Windows 10" + }, + "holder": { + "name": "John Doe", + "email": "johndoe@virtualansoftware.com", + "address": { + "address_line_1": "3333 Warrenville Road", + "address_line_2": "Suite 200", + "city": "Lisle", + "country": "USA", + "state": "IL", + "zipcode": "60532" + } + } +} - -### **Response Example** +```` - This API returns **Certificate of Completion** in **PDF** format, serving as proof of the completed signing process. - - A sample certificate is attached below for reference. +### **Response Body Example** - You may **download** the sample PDF for detailed information. +```` +json - -

- - ๐Ÿ“„ Download Sample PDF - -

+{ + "message": "Action 'CANCELLED' logged successfully." +} +```` - - -### **Example** - -> document_id=fce50e1e-5d05-4cf8-99ba-b6797y6tceb0 - -> tracking_id=e1bfeeb9-a677-43ad-f411-0b4afbj71a77 + ### **Tags** @@ -2552,9 +2323,7 @@ GET api/v1/documents/complete-certificates --- -## ๐Ÿ”น 6 Log Action - -Log a document-related action such as cancellation, rejection, or other workflow events. +### Log Action Decline ### **Endpoint** @@ -2579,7 +2348,7 @@ json { "document_id": "687u5804-d360-4e98-802f-d5531htyrf675abd8", "tracking_id": "7054eab3-c0f2-40e2-9b9e-731c1444df6d", - "action": "CANCELLED", + "action": "DECLINED", "party_id": "1", "reason": "User requested cancellation", "client_info": { @@ -2616,7 +2385,7 @@ json json { - "message": "Action 'CANCELLED' logged successfully." + "message": "Action 'DECLINED' logged successfully." } ```` @@ -2639,102 +2408,520 @@ json --- -## ๐Ÿ”น 7 Send E-Sign - -Send a document to one or more parties for review or signing. +## ๐Ÿ”น 5 Get Tracking Ids -### **Endpoint** +Use the **Tracking ID** to fetch the current status of a document and track its progress through the E-Sign workflow. +### **Endpoint** ```` -POST api/v1/documents/send +GET api/v1/documents/tracking-ids/ ```` ### **Query Parameters** -| Name | Type | Required | Default | Description | -|-----|------|----------|---------|-------------| -| `store_as_default` | boolean | โŒ No | `false` | Store configuration as default | +| Name | Type | Required | Description | +|-----|------|----------|-------------| +| `document_id` | string | โœ… Yes | Unique identifier of the document | +| `status`|string \| (string \| null) | โŒ No | Retrieve document tracking IDs based on the specified status | +| `page` | intiger | โŒ No | Specifies the page number | +| `limit` | intiger | โŒ No | Specifies the number of records per page | -### **Request Body Example** +### **Response Body Example** -```` +``` json { - "document_id": "fct60e1e-5d05-4cf8-99ja-e65258f3ceb0", - "validityDate": "2025-12-31T18:29:59.000Z", - "remainder": 0, - "parties": - [ - { - "id": "1", - "name": "Sarah Williams", - "email": "sarah.williams@virtualansoftware.com" - } - ], - "email_response": [ + "page": 1, + "limit": 10, + "total": 4, + + "tracking_ids": [ { - "email_subject": ": Summary of Your API Integration Check", - "email_body": "Hi [Fullname], We have completed the...[Documnet Link]" - } - ], - "cc_emails": [ - "jason.brown@virtualansoftware.com" - ], - "client_info": { - "ip": "3.156.94.85", - "city": "Lisle", - "region": "Illinois", - "country": "US", - "timezone": "America/Chicago", - "timestamp": "2025-12-21T04:14:01.699Z", - "aws_region": "us-east-2", - "browser": "Chrome", - "device": "PC/Laptop", - "os": "Windows 10" - }, - "holder": { - "name": "John Doe", - "email": "johndoe@virtualansoftware.com", - "address": { - "address_line_1": "3333 Warrenville Road", - "address_line_2": "Suite 200", - "city": "Lisle", - "country": "USA", - "state": "IL", - "zipcode": "60532" + "tracking_id": "track-001", + "status": "expired", + "updated_at": "2026-01-06T15:08:28Z", + "parties": [ + { + "party_id": "party-1", + "name": "User One", + "email": "userone@example.com" + } + ] + }, + { + "tracking_id": "track-002", + "status": "expired", + "updated_at": "2026-01-06T15:08:28Z", + "parties": [ + { + "party_id": "party-2", + "name": "User Two", + "email": "usertwo@example.com" + } + ] + }, + { + "tracking_id": "track-003", + "status": "cancelled", + "updated_at": "2025-10-14T14:26:49Z", + "parties": [ + { + "party_id": "party-3", + "name": "User Three", + "email": "userthree@example.com" + } + ] + }, + { + "tracking_id": "track-004", + "status": "expired", + "updated_at": "2025-10-18T04:59:59Z", + "parties": [ + { + "party_id": "party-4", + "name": "User Four", + "email": "userfour@example.com" + } + ] } + ] +} + +``` + + + + +### **Tags** + +`Document Tracker` + +--- + +## ๐Ÿ”น 6 Get Document Status + +Retrieves a list of all document statuses. + +### **Endpoint** + +```` +GET api/v1/documents/status/ +```` +--- + + + +### **Query Parameters** +| Name | Type | Required | Description | +|-----|------|----------|-------------| +| `document_id` | string | โœ… Yes | Unique identifier of the document | +| `tracking_id` | string | โœ… Yes | Unique tracking identifier of the document | + + + +### **Response Body Example** + +```` +json + +{ + "total_documents": 7, + "status_counts": { + "completed": 1, + "cancelled": 1, + "expired": 1, + "in_progress": 1, + "declined": 1, + "shared": 1, + "scheduled": 1 }, - "otp_enabled": false, - "template_info": { - "template_type": "Myself", - "template_name": "Testing-template" - } + "documents": [ + { + "document_id": "00f3435b-460a-40e0-a2a9-5547450b82f1", + "tracking_id": "0254861d-bc0c-463f-9ab5-76007a852811", + "validity_date": "2025-12-12T18:29:59.000Z", + "status": "completed", + "datetime": "2025-12-12T16:12:49.689499+00:00", + "parties": [ + { + "id": "1", + "name": "User One", + "email": "user.one@example.test", + "color": "hsl(196, 100%, 90%)", + "status": { + "sent": [ + { + "isSent": true, + "dateTime": "2025-12-12T16:00:50.797238+00:00", + "party_name": "User One", + "party_email": "user.one@example.test", + "ip": "34.201.55.91", + "browser": "Chrome", + "os": "Windows 11", + "device": "PC/Laptop", + "location": { + "city": "New York", + "region": "New York", + "country": "US", + "timestamp": "2025-12-12T16:00:31.616Z", + "timezone": "America/New_York" + } + } + ], + "opened": [ + { + "isOpened": true, + "dateTime": "2025-12-12T16:11:04.313365+00:00", + "party_name": "User One", + "party_email": "user.one@example.test", + "ip": "34.201.45.91", + "browser": "Chrome", + "os": "Windows 11", + "device": "PC/Laptop", + "location": { + "city": "New York", + "region": "New York", + "country": "US", + "timestamp": "2025-12-12T16:10:46.089Z", + "timezone": "America/New_York" + } + } + ], + "signed": [ + { + "isSigned": true, + "dateTime": "2025-12-12T16:12:49.689499+00:00", + "party_name": "User One", + "party_email": "user.one@example.test", + "ip": "34.201.45.91", + "browser": "Chrome", + "os": "Windows 11", + "device": "PC/Laptop", + "location": { + "city": "New York", + "region": "New York", + "country": "US", + "timestamp": "2025-12-12T16:12:29.632Z", + "timezone": "America/New_York" + } + } + ] + } + } + ] + }, + { + "document_id": "011baa59-f55b-4fed-b15c-d1653fb72e46", + "tracking_id": "0e3bc8c4-b7b2-4471-bcf4-03756c17dae7", + "validity_date": "2026-02-28T18:29:59.000Z", + "status": "cancelled", + "datetime": "2025-12-31T21:48:44.275476+00:00", + "parties": [ + { + "id": "1", + "name": "User Two", + "email": "user.two@example.test", + "color": null, + "status": { + "cancelled": [ + { + "isCancelled": true, + "reason": "Invalid document format", + "dateTime": "2025-12-31T21:48:44.275476+00:00", + "party_name": "User Two", + "party_email": "user.two@example.test", + "ip": "18.211.90.44", + "browser": "Chrome", + "os": "Windows 11", + "device": "PC/Laptop", + "location": { + "city": "Austin", + "region": "Texas", + "country": "US", + "timestamp": "2025-12-31T21:48:38.999Z", + "timezone": "America/Chicago" + } + } + ] + } + } + ] + }, + { + "document_id": "92c79f09-76c5-4cf8-bab6-9b98721ncefc", + "tracking_id": "ac532311-6c71-4f65-aea6-a6chnj77faefa", + "validity_date": "2026-12-12T18:29:59.000Z", + "status": "scheduled", + "datetime": "2026-01-06T13:42:49.000600+00:00", + "parties": [ + { + "id": "1", + "name": "Signer One", + "email": "signer.one@example.test", + "color": "hsl(196, 100%, 90%)", + "status": { + "scheduled": [ + { + "isScheduled": true, + "dateTime": "2026-01-06T13:42:49.000600+00:00", + "party_name": "Signer One", + "party_email": "signer.one@example.test", + "ip": "34.228.4.221", + "browser": "HeadlessChrome", + "os": "Linux", + "device": "PC/Laptop", + "location": { + "city": "Ashburn", + "region": "Virginia", + "country": "US", + "timestamp": "2026-01-06T13:42:48.584Z", + "timezone": "America/New_York" + } + } + ] + } + }, + { + "id": "2", + "name": "Signer Two", + "email": "signer.two@example.test", + "color": "hsl(80, 70%, 90%)", + "status": {} + } + ] + }, + { + "document_id": "021fc34b-b267-43ba-a7af-455286ebe90b", + "tracking_id": "0e8aa699-9114-4cbb-a479-m50cf693f988", + "validity_date": "2025-12-10T23:59:59.000Z", + "status": "in_progress", + "datetime": "2025-12-10T16:42:15.133172+00:00", + "parties": [ + { + "id": "1", + "name": "User Three", + "email": "user.three@example.test", + "color": "hsl(196, 100%, 90%)", + "status": {} + } + ] + }, + { + "document_id": "92c79f09-76c5-4cf8-bab6-9b9523565acefc", + "tracking_id": "05433b6b-3f7e-4d7f-a333-8c4b258gf598a8", + "validity_date": "2026-03-01T18:29:59.000Z", + "status": "shared", + "datetime": "2026-01-06T13:15:29.208286+00:00", + "parties": [ + { + "id": "1", + "name": "User Four", + "email": "user.four@example.test", + "color": "#ccf1ffff", + "status": { + "shared": [ + { + "isShared": true, + "dateTime": "2026-01-06T13:15:29.208286+00:00", + "party_name": "User Four", + "party_email": "user.four@example.test", + "ip": "44.193.15.98", + "browser": "Chrome", + "os": "Linux", + "device": "PC/Laptop", + "location": { + "city": "Ashburn", + "region": "Virginia", + "country": "US", + "timestamp": "2026-01-06T13:15:25.699Z", + "timezone": "America/New_York" + } + } + ] + } + } + ] + } + ] } + +```` + + + + +**Example** + + +> tracking_id=e1ewaec4-a667-43dd-b221-0b4qwbh54a77 + +> document_id=13n25bd9-70p1-4c8d-9b1c-a9066eda140f + + +### **Tags** +`Document Tracker` + +--- + +## ๐Ÿ”น 7 Get Party Status + +Retrieve the document status for an individual party using tracking, document, and party identifiers. + +### **Endpoint** + +```` +GET api/v1/documents/party-status/ ```` + + + + +### **Query Parameters** +| Name | Type | Required | Description | +|-----|------|----------|-------------| +| `tracking_id` | string | โœ… Yes | Unique tracking identifier of the document | +| `document_id` | string | โœ… Yes | Unique identifier of the document | +| `party_id` | string | โœ… Yes | Unique identifier of the party | + + + + + + + ### **Response Body Example** ```` json { - "tracking_id": "036589d1-45c7-4c7f-b83c-cde17bg5yhj72c", - "status": "sent" + "tracking_id": "f1234567-abcd-4e89-9123-456789abcdef", + "document_id": "d9876543-1234-4abc-8def-1234567890ab", + "validity_date": "2027-12-31T23:59:59.000Z", + "tracking_status": { + "status": "completed", + "dateTime": "2026-06-15T10:45:12.123456+00:00", + "ip": "203.0.113.45", + "browser": "Chrome", + "os": "Windows 11", + "device": "PC/Laptop", + "location": { + "city": "Chicago", + "region": "Illinois", + "country": "US", + "timestamp": "2026-06-15T10:45:08.000Z", + "timezone": "America/Chicago" + } + }, + "party_info": { + "id": "1", + "name": "Jane Smith", + "email": "jane.smith@example.com", + "color": "hsl(210, 100%, 90%)", + "priority": 1, + "status": { + "sent": [ + { + "isSent": true, + "dateTime": "2026-06-15T10:30:00.000000+00:00", + "party_name": "Jane Smith", + "party_email": "jane.smith@example.com", + "ip": "203.0.113.40", + "browser": "Chrome", + "os": "Windows 11", + "device": "PC/Laptop", + "location": { + "city": "Chicago", + "region": "Illinois", + "country": "US", + "timestamp": "2026-06-15T10:29:55.000Z", + "timezone": "America/Chicago" + } + } + ], + "opened": [ + { + "isOpened": true, + "dateTime": "2026-06-15T10:35:15.000000+00:00", + "party_name": "Jane Smith", + "party_email": "jane.smith@example.com", + "ip": "203.0.113.45", + "browser": "Chrome", + "os": "Windows 11", + "device": "PC/Laptop", + "location": { + "city": "Chicago", + "region": "Illinois", + "country": "US", + "timestamp": "2026-06-15T10:35:10.000Z", + "timezone": "America/Chicago" + } + } + ], + "signed": [ + { + "isSigned": true, + "dateTime": "2026-06-15T10:40:30.000000+00:00", + "ip": "203.0.113.45", + "browser": "Chrome", + "os": "Windows 11", + "location": { + "city": "Chicago", + "region": "Illinois", + "country": "US", + "timestamp": "2026-06-15T10:40:25.000Z", + "timezone": "America/Chicago" + }, + "party_name": "Jane Smith", + "party_email": "jane.smith@example.com", + "device": "PC/Laptop" + } + ] + } + } } ```` -### **Tags** + +### **Example** + +> tracking_id=13c34dd9-7f31-4s3d-9b1c-b006ehy587f + +> document_id=e1bfqwe9-a677-43ad-b211-0b4afbj55a77 + +> party_id=1 + +### **Tags** `Document Tracker` ---- -## ๐Ÿ”น 8 Sign API +--- -Submit **signed field values** for a document by a specific party. +## ๐Ÿ”น 8 Get Signed Pdf +Retrieve the final signed PDF document. ### **Endpoint** + ```` -POST api/v1/documents/sign +GET api/v1/documents/signed-pdf/ ```` - - -### **Request Body Example** +| `Content type` | application/json | โœ… Yes | Specifies that the API response is returned in JSON format | --> -```` -json -{ - "tracking_id": "98258l97c-56f6-4ffa-9c6e-62efbae24b36", - "document_id": "fchgt56yhje1e-5d05-4cf8-99ba-e62994f3ceb0", - "party_id": "1", - "fields": [ - { - "fields_ids": [ - { - "field_id": "1766751979232-text", - "value": "Maxin", - "font": "", - "style": "" - } - ] - } - ], - "client_info": { - "ip": "3.128.94.52", - "city": "Lisle", - "region": "Illinois", - "country": "US", - "timezone": "America/Chicago", - "timestamp": "2025-12-27T04:02:59.239Z", - "aws_region": "us-east-2", - "browser": "Chrome", - "device": "PC/Laptop", - "os": "Windows 10" - } -} +### **Query Parameters** +| Name | Type | Required | Description | +|-----|------|----------|-------------| +| `tracking_id` | string | โœ… Yes | Unique tracking identifier of the document | +| `document_id` | string | โœ… Yes | Unique identifier of the document | -```` + -### **Response Body Example** +### **Response Example** -```` -json +This API returns the **signed document** in **PDF format.** -{ - "status": "completed", - "message": "Signature processed and metadata updated", - "document_id": "nhy67e1e-5d05-4cf8-99ba-e62994f3ceb0", - "tracking_id": "u7y6b7c1-c683-4299-8eb6-7806e8ac59a0", - "signed": true -} + A **sample signed document** is provided below for reference. + + You may **download** the sample PDF for structure and content of the response. -```` + +

+ + ๐Ÿ“„ Download Sample PDF + +

+ +### **Example** + + +> tracking_id=a2bfeeb9-a677-43ad-b211-0b4afby76a77 + +> document_id=fyo50e1e-5d05-4cf8-99ba-e62994y7ceb0 + ### **Tags** `Document Tracker` --- -## ๐Ÿ”น 9 Tracking IDs API - -Use the **Tracking ID** to fetch the current status of a document and track its progress through the E-Sign workflow. +## ๐Ÿ”น 9 Get Completed Certificate +Retrieve the completion certificate for a fully processed document. ### **Endpoint** + ```` -POST api/v1/documents/tracking-ids/ +GET api/v1/documents/complete-certificates/ ```` + + ### **Query Parameters** | Name | Type | Required | Description | |-----|------|----------|-------------| | `document_id` | string | โœ… Yes | Unique identifier of the document | -| `page` | intiger | โœ… Yes | Specifies the page number | -| `limit` | intiger | โœ… Yes | Specifies the number of records per page | +| `tracking_id` | string | โœ… Yes | Unique tracking identifier of the document | -### **Response Body Example** -``` -json + -{ - "page": 1, - "limit": 10, - "total": 4, +### **Response Example** - "tracking_ids": [ - { - "tracking_id": "track-001", - "status": "expired", - "updated_at": "2026-01-06T15:08:28Z", - "parties": [ - { - "party_id": "party-1", - "name": "User One", - "email": "userone@example.com" - } - ] - }, - { - "tracking_id": "track-002", - "status": "expired", - "updated_at": "2026-01-06T15:08:28Z", - "parties": [ - { - "party_id": "party-2", - "name": "User Two", - "email": "usertwo@example.com" - } - ] - }, - { - "tracking_id": "track-003", - "status": "cancelled", - "updated_at": "2025-10-14T14:26:49Z", - "parties": [ - { - "party_id": "party-3", - "name": "User Three", - "email": "userthree@example.com" - } - ] - }, - { - "tracking_id": "track-004", - "status": "expired", - "updated_at": "2025-10-18T04:59:59Z", - "parties": [ - { - "party_id": "party-4", - "name": "User Four", - "email": "userfour@example.com" - } - ] - } - ] -} + This API returns **Certificate of Completion** in **PDF** format, serving as proof of the completed signing process. + + A sample certificate is attached below for reference. -``` + You may **download** the sample PDF for detailed information. + + +

+ + ๐Ÿ“„ Download Sample PDF + +

+ +### **Example** + +> document_id=fce50e1e-5d05-4cf8-99ba-b6797y6tceb0 + +> tracking_id=e1bfeeb9-a677-43ad-f411-0b4afbj71a77 + ### **Tags** `Document Tracker` @@ -2948,3 +3083,6 @@ json --- + + + diff --git a/docs/E_Sign/Contract-Lifecycle.md b/docs/E_Sign/Contract-Lifecycle.md new file mode 100644 index 0000000..e85a9ea --- /dev/null +++ b/docs/E_Sign/Contract-Lifecycle.md @@ -0,0 +1,218 @@ +# How to use contract Lifecycle Management? + +**Contract Lifecycle Management (CLM)** helps organizations create, review, approve, sign, store, and manage contracts throughout their entire lifecycle. It streamlines contract processes, improves visibility, and ensures compliance by keeping all contract-related activities in a centralized system. + +--- + +## Step 1: Open the Signed Document + +1. Navigate to the appropriate folder containing the signed document. +2. Locate the required document. +3. Click the **Action** Menu (โ‹ฎ) associated with the document. +4. Select **View** to open and review the signed document. + +Screenshot for Document + +--- + +## Step 2: Configure the Contract Document + +1. From the left-side navigation menu, click Contracts. +2. Select the signed document that you want to convert into a contract record. +3. The AI-powered contract engine automatically extracts key information from the document and generates the contract details. +4. Review the extracted information before proceeding to the next step. + +Screenshot for Document + +--- + +## Step 3: Review and Validate Contract Details + +Once the AI completes the contract extraction process, review all generated information carefully before final approval. Ensure the extracted details are accurate, complete, and aligned with organizational and legal requirements. + +Screenshot for Document + +## Review Party Information + +Verify the details of all parties involved in the contract. +Ensure the following information is accurate: +* Party names +* Roles and responsibilities +* Contact details +* Organization or company information + +Screenshot for Document + +Update any incorrect or missing information before proceeding. + +--- + +## Review Financial Information + +Validate all financial details extracted from the contract. +Review and confirm: +* Total contract value +* Payment terms and conditions +* Pricing and rate information +* Billing schedules and invoicing obligations +* Currency and frequency details + +Screenshot for Document + +Ensure all financial calculations and payment structures are correct. + +--- + +## Review Signatories + +Verify that all required parties are properly assigned in the Signatories section before approving the contract. + +### Steps + +1. Navigate to the **Signatories** tab. +2. Review all listed signatories. +3. Confirm the accuracy of: + * Signer names + * Roles and assignments + * Signing status + * Signature dates + * Execution details +4. Ensure all mandatory signatories are included. +5. Update or correct any missing or inaccurate information. + +Screenshot for Document + +--- + +## Configure Contract Alerts and Expiry Notifications + +Set up reminders and expiration alerts to ensure important contract milestones are not missed. + +### Steps + +1. Verify the **Contract Expiry Date**. +2. Review the automatically generated reminder schedule. +3. Configure reminder notifications based on business requirements. + +### Recommended Reminder Intervals + +* 30 Days Before Expiry +* 14 Days Before Expiry +* 7 Days Before Expiry +* 3 Days Before Expiry +* 1 Day Before Expiry + +### Additional Actions + +* Add new reminder intervals if required. +* Modify or remove existing reminders. +* Save alert configurations to enable automated notifications. + +Screenshot for Document + +Ensure all required reminders are configured before contract approval. + +--- + +## Review Red Lines and Risk Analysis + +Review AI-generated clause analysis and risk indicators to identify contractual concerns or missing legal protections. + +### Steps + +1. Navigate to the **Red Lines** tab. +2. Review highlighted clauses and associated risk levels: + * Low Risk + * Medium Risk + * High Risk +3. Verify the inclusion of critical legal provisions, including: + * Limitation of Liability + * Termination Clauses + * Indemnification Clauses + * Confidentiality Obligations + * Other required legal protections +4. Review AI-generated recommendations and risk explanations. +5. Modify, add, or update clauses as needed to comply with organizational policies and legal standards. +6. Resolve all high-risk or missing clauses before approval. + +Screenshot for Document + +--- + +## Approve and Save the Contract + +After completing the review and validation process: +1. Make any necessary updates to the contract information. +2. Click **Approve & Save**. +3. The contract will be successfully created and added to the **Contracts Dashboard** for future tracking, management, and reporting. + +Screenshot for Document + +--- + +## Step 4: Manage Contract Renewals + +1. Navigate to the **Contracts Dashboard**. + +Screenshot for Document + +2. Select the contract you want to manage. +3. Click **Renewals** to open the Renewal Tracking page. + +Screenshot for Document + +4. Review upcoming renewal dates and reminder schedules. +5. Update renewal information and reminder dates as needed. +6. Save the changes to keep renewal tracking up to date. + +Screenshot for Document + +7. Use this option to cancel the selected contract permanently. + +Screenshot for Document + +--- + +## Key Benefits of CLM + +- Centralized contract repository +- Automated data extraction using AI +- Simplified contract review and approval process +- Renewal and expiration tracking +- Automated reminders and alerts +- Improved compliance and contract visibility +- Secure storage and lifecycle management + +--- + +**Demo Video:** + + + +
+ + +
+ + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) \ No newline at end of file diff --git a/docs/E_Sign/Image-and-Underline.md b/docs/E_Sign/Image-and-Underline.md new file mode 100644 index 0000000..0b5b125 --- /dev/null +++ b/docs/E_Sign/Image-and-Underline.md @@ -0,0 +1,150 @@ +# How to use Images & Underlines Fields? + +The **Images & Underlines Fields** feature in the E-Sign module allows both senders and recipients to add images and apply underline formatting directly within documents during the signing process. This functionality improves document clarity, enhances collaboration, and ensures a more interactive signing experience. + +--- + +## Step 1: Open the Document + +- Navigate to the **Documents** section from the main menu. +- Locate the document you want to prepare for e-signing. +- Click **Open** or **Edit** to launch the document in the E-Sign editor. + +Screenshot for Document + +--- + +## Step 2: Add an Image Field + +- Select the **Image Field** option from the toolbar or field panel on the right. +- Drag and place the image field in the required section of the document. +- Open the **Field Settings** to configure who is responsible for uploading the image (sender or a specific recipient). +- Resize and reposition the field as needed by dragging its corners or edges. +- Both the sender and recipients can access the **Images & Underlines Fields** feature based on their assigned permissions. + +Screenshot for Document + + +--- + +## Step 3: Upload an Image + +- Click on the inserted image field to activate it. +- Click the **Upload** icon or button that appears within the field. +- Browse and select the required image from your device (supported formats: PNG, JPG, JPEG, GIF). +- The image will be embedded directly into the document at the designated position. +- Users can add **logos**, **signatures**, **stamps**, or other supporting visuals directly into the document. + +Screenshot for Document
+ + +Screenshot for Document + +> **Tip:** Ensure the image is clear and properly sized before uploading for the best visual result in the final signed document. + +--- + +## Step 4: Add an Underline Field + +- Select the **Underline Field** option from the toolbar or field panel. +- Drag and place the underline field in the required section of the document. +- Adjust the width of the underline field to match the area where the recipient needs to sign or annotate. +- Open the **Field Settings** to assign the underline field to the appropriate recipient. +- You can add a label or placeholder text to guide the recipient on what is expected in that field. + +Screenshot for Document + +--- + +## Step 5: Assign Fields to Recipients + +- After placing the image field, assign each field to the appropriate recipient. +- Click on the field and use the **Assign To** dropdown to select the intended recipient. +- This ensures each party fills in only the fields assigned to them during the signing workflow. + +Screenshot for Document + +--- + +## Step 6: Save and Send the Document + +- Once all image and underline fields are placed and assigned, click **Save** to preserve your configuration. +- Click **Send** to dispatch the document to the recipients for their action. +- Recipients will receive an email notification with a link to access and complete the document. + + + +--- + +## Step 7: Recipient Fills in the Fields + +- The recipient opens the document via the link provided in the email. +- They click on the **Image Field** to upload their image (e.g., signature or stamp). +- Once all required fields are completed, the recipient clicks **Submit** or **Sign** to finalize their action. + +Screenshot for Document
+ + +Screenshot for Document
+ + +Screenshot for Document + +## Step 8: Review the Completed Document +- Click **View Document** to review the completed document and verify all signatures, fields, and information before downloading or sharing it. + +Screenshot for Document + +--- + +## Key Benefits + +| Feature | Benefit | +|---|---| +| Image Field | Allows embedding of logos, stamps, and visual signatures | +| Underline Field | Provides a structured area for written signatures or annotations | +| Permission-Based Access | Controls who can add or edit fields based on role | +| Multi-Recipient Support | Assign different fields to different signers in a single workflow | + +--- + +## Notes + +- Only users with appropriate permissions can add or modify image and underline fields. +- Uploaded images are securely stored and associated with the document. +- The underline field supports both typed and drawn input depending on the configuration. +- All changes are tracked and logged for audit purposes. + +--- + +**Demo Video:** + + + +
+ + +
+ + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) \ No newline at end of file diff --git a/docs/E_Sign/inbox.md b/docs/E_Sign/inbox.md new file mode 100644 index 0000000..23fb7d8 --- /dev/null +++ b/docs/E_Sign/inbox.md @@ -0,0 +1,150 @@ +# How to Use Inbox + +**Inbox** provides a centralized place where users can view and manage all eSign requests and received documents from a single screen. This makes it easy to monitor document activity and quickly identify whether a document is pending, completed, or shared. By bringing everything into one location, the Inbox reduces the need to navigate across multiple sections and improves overall efficiency in handling eSign workflows. + +--- + +## Step 1: Open the Inbox + +1. Navigate to the left sidebar. +2. Click on Inbox. + +Screenshot for Document + +--- + +## Step 2: Verify the Inbox Table Columns + +1. The Inbox page displays a table with the following columns. + - Name + - Party Details + - Last Modified + - Status + - Actions + +Screenshot for Document + +--- + +## Step 3: Review Document Records +Documents are organized by the originating organization or sender. +Click the expand arrow (โ–พ) beside an organization name to display the associated documents. +Each document entry includes: +Document ID / File Name +Recipient Information +Last Modified Date and Time +Current Status + +This hierarchical view makes it easier to manage multiple documents from the same sender. + +Screenshot for Document + + + +--- + +## Step 4: Filter Documents by Status + +To locate specific documents more efficiently: + +1. Click the Status: All dropdown menu in the upper-right corner. +2. Select one of the available status filters: + - Pending + - Completed + - Cancelled + - Expired + - Declined + - Shared +3. Click Filter to apply the selected criteria. + +Screenshot for Document + +> Filtering allows users to focus on documents that require immediate attention or review. + +## Sign Pending Documents + +Users can complete signing requests directly from the Inbox without navigating to another module. + +- Locate a document with the Pending status. +- Open the Actions menu for the document. +- Click Sign. +- The system redirects you to the signing page where you can review and complete the signing process. + +Screenshot for Document + +Screenshot for Document + +## View and Download Completed Documents + +Completed documents remain accessible through the Inbox for future reference and record keeping. + +- Locate a document with the Completed status. +- Open the Actions menu. +- Select View to review the finalized document. +- Select Download to save a copy of the document to your local device. + +Screenshot for Document + +Screenshot for Document + +## View and Download Shared Documents + +Documents shared with you can be accessed directly from the Inbox at any time. + +- Locate a document with the Shared status. +- Open the Actions menu. +- Click View to open and review the shared document. +- Click Download to save a copy of the document for offline access. + +Screenshot for Document + +Screenshot for Document + +> This functionality ensures quick and convenient access to shared documents whenever required. + +--- + +**Demo Video:** + + + +
+ + +
+ + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) + + + + diff --git a/docs/E_Sign/self-sign-mode.md b/docs/E_Sign/self-sign-mode.md new file mode 100644 index 0000000..b7555d7 --- /dev/null +++ b/docs/E_Sign/self-sign-mode.md @@ -0,0 +1,113 @@ +# How to Use Self Sign Mode? + +Self Sign Mode allows a single user (document owner or sender) to complete and sign a document without requiring additional recipients. It is typically used for internal approvals, personal acknowledgements, or single-party signing workflows. + +--- + +## Step 1: Navigate to Documents + +* Go to the **Documents** section in the system. +* Select the appropriate folder containing your document. +* Open the file you want to self-sign. + +Screenshot for Document + +--- + +## Step 2: Add Required Fields + +* Drag and drop required signing fields into the document. +* Common fields include: + + * Signature + * Date + * Name / Initials +* Place each field at the appropriate location. + +Screenshot for Document + +--- + +## Step 3: Enable Self Sign Mode + +* Click the **Actions Window** of the document. +* Select **E-Sign / Self Sign** option. +* The document will open in the signing editor. + +Screenshot for Document + +--- + +## Step 4: Fill and Review Fields + +* Complete all required fields assigned for self-signing. +* Verify that all information is accurate and properly placed. +* Ensure no mandatory fields are left empty. + +Screenshot for Document + +--- + +## Step 5: Complete Self Signing + +* Click **Finish / Submit / Complete Signing**. +* The system will process and lock the signed document. +* A confirmation message will appear once signing is successful. + +Screenshot for Document + +--- + +## Step 6: View Completed Document + +* Navigate to **Completed Documents** section. +* Open the signed file to review the final version. +* You can download or share the document if required. + +Screenshot for Document + +--- + +## Key Notes + +* Self Sign Mode is intended for single-user signing only. +* Once completed, the document becomes read-only. +* Ensure all fields are correctly filled before submission, as edits may not be allowed afterward. + +--- + +**Demo Video:** + + + +
+ + +
+ + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) + + + + diff --git a/docs/E_Sign/variable_mapping.md b/docs/E_Sign/variable_mapping.md index da3799f..3aa06f6 100644 --- a/docs/E_Sign/variable_mapping.md +++ b/docs/E_Sign/variable_mapping.md @@ -51,6 +51,8 @@ Uploading a CSV file is the most efficient method for large-scale distribution. 3. Each row will be treated as a unique recipient. 4. Click Validate to verify email format and data structure. + + #### CSV File Format Example - CSV File Format Example diff --git a/docs/Forms/Anonymous_Form.md b/docs/Forms/Anonymous_Form.md new file mode 100644 index 0000000..ce84766 --- /dev/null +++ b/docs/Forms/Anonymous_Form.md @@ -0,0 +1,219 @@ +# How to Use Anonymous Forms? + +This guide explains the complete process of creating an anonymous form, generating a public link, collecting responses without login, and reviewing submitted data within the system.Anonymous Forms allow anyone with the public link to access and submit the form without authentication.
+Follow the step-by-step instructions below to create, share, manage, and review anonymous form submissions in Doculan. +--- + +## Step 1: Create a New Anonymous Form + +- Navigate to the **Doculan Dashboard** and open the **Forms** module from the main menu. +- Click **Create New Form** to start designing the anonymous form. +**Enter the following details:**
+- Form Title
+- Form Description (optional)
+- Upload Destination folder +- From the left-side panel, drag and drop the required form fields into the form builder area. +**Available field categories include:** + +|Category | Available Fields| +|---------|-----------------| +|BASIC |Text, Number, Email, Date, Textarea| +|CHOICE |Radio Button, Dropdown, Checkbox| +|ADVANCED | File Upload| + +- Enable the Public option to allow users to access the form without login. + +Step 1 โ€” Create the Form + +> After configuring the form, click Generate Link to continue. + +--- + +## Step 2: Configure Public Access Settings + +- After clicking **Generate Link**, the system automatically opens the anonymous form management page. +- Navigate to the **Manage Link** tab available in the top section of the page. +- If no expiry date is configured, the form link remains active indefinitely. +- Click **Generate Public Link** to create the anonymous form URL. + +### Configure the following options: + +| Option | Description | +|--------|-------------| +| Expiry Date | Set the date and time when the form link should expire | +| Never Expire | Keeps the form link active permanently | +| Allow Resubmit | Allows the same email address to submit multiple responses | +| Redirect URL | Redirects users to another page after submission | + +Step 2 โ€” Configure Public Access + + >โ€œAnyone with this link can fill and submit the form without logging in.โ€ + +--- + +## Step 3: Generate and Share the Public Link + +- Once the link is generated, the system displays: + - Public Form URL + - Link Status *(Active / Inactive)* + - Expiry Date and Time *(if configured)* + +- Users can: + - Open the form directly + - Copy the public link + - Share the form through email, chat, or social media + - Activate or deactivate the form link anytime + +Step 3 โ€” Public Link Management + +> The above screenshot represents how to manage and share the generated anonymous form link. + +--- + +## Step 4: Share the Form Using QR Code + +- Navigate to the **QR Code** tab. +- A QR code is automatically generated for the anonymous form. +- Users can scan the QR code using mobile devices to directly open the form. +- Click **Download QR Code** to save the QR image for sharing. + +Step 4 โ€” QR Code Sharing + +> The above screenshot represents how to generate and share the anonymous form QR code. + +--- + +## Step 5: Fill and Submit the Anonymous Form + +- The users opens the public form link or scans the QR code. +- The anonymous form page displays all configured fields. + +### The respondent: +- Enters their email address +- Fills all required fields +- Completes the reCAPTCHA verification +- Clicks **Submit Form** + +Step 5 โ€” Fill Anonymous Form + +> The above screenshot represents how users fill and submit anonymous forms. + +--- + +## Step 6: Successful Submission + +- After clicking **Submit Form**, the system processes the submission successfully. +- If a **Redirect URL** is configured, the respondent is redirected automatically. +- A success confirmation message is displayed after submission. + +Step 6 โ€” Submission Success + +> The above screenshot represents a successful anonymous form submission. + +--- + +## Step 7: Review Form Submissions + +- Navigate to the **Forms** section and open the required anonymous form. +- Click the **Submissions** tab. +- Click **Refresh** to load the latest responses. + +### The submissions table displays: + +| Column | Description | +|--------|-------------| +| Email | Submitter email address | +| Last Submission | Latest submission date and time | +| Submissions | Number of submissions from the same email | + +Step 7 โ€” Review Submissions
+ +Step 7 โ€” Review Submissions + +> The above screenshot represents how to review anonymous form submissions inside the system. + +--- +## Step 8: Access Anonymous Form Management Options + +- After creating a anonymous form, the form will appear in the **Forms List** with an **Anonymous** label beside the form name. +- Click the **Actions (โ‹ฎ)** menu of the anonymous form. + +### The Actions menu contains: +- **View** โ†’ Open the form details +- **Clone** โ†’ Create a duplicate copy of the form +- **Public Link** โ†’ Access public form management options + +Step 3 โ€” Anonymous Form List + +- Click **Public Link** to access: + - Public Form Link + - QR Code + - Submissions + - Integration Settings + + Step 3 โ€” Anonymous Form List
+ + Step 3 โ€” Anonymous Form List + +> The above screenshot represents how anonymous forms are displayed in the Forms List and how to access public form management options from the Actions menu. + +--- +## Step 9: Integration via API (Optional) + +- Navigate to the **Integration** tab. +- Developers can integrate anonymous forms into external systems using API support. + +### Integration Details + +| Item | Value | +|------|------| +| FORM ID | 278c39b0-07a3-44c7-adcf-65325bc6a0f0 | +| API ENDPOINT | POST https://api.doculan.ai/v1/external/forms/submit | + +### API Usage +- Use the **FORM ID** to identify the anonymous form. +- Submit form responses using the provided API endpoint. +- Send data through a **POST request**. +- Submitted responses will appear in the **Submissions** section. + +Step 8 โ€” API Integration
+ +Step 8 โ€” API Integration + +> The above screenshot represents how to integrate anonymous forms using API support. + +--- + + **Demo Video:** + + + +
+ + +
+ + +> The above **Video** represent that how to **Use Anonymous Forms**. + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) diff --git a/docs/PDF_Editor/Merge_pdf.md b/docs/PDF_Editor/Merge_pdf.md new file mode 100644 index 0000000..d134d77 --- /dev/null +++ b/docs/PDF_Editor/Merge_pdf.md @@ -0,0 +1,159 @@ +# How to Merge PDF Files? + +PDF merging allows you to combine multiple PDF documents into a single file for easier management, sharing, and storage. + +--- + +## Step 1: Navigate to the PDF Merge Tool + +* Go to the **Documents** section. +* Select the appropriate folder and choose the required file. +* Open the **File Action** menu. +* Click **PDF Editor**. +* A popup will appear to select the **Merge PDF** tool. + +**Screenshot 1** + +Screenshot for Document + +**Screenshot 2** + +Screenshot for Document + +--- + +## Step 2: Upload PDF Files + +* Click **Upload Files** or drag and drop PDFs into the upload area. +* Select multiple PDF files from your device. +* Ensure the files are in the correct order if sequencing is required. + +**Screenshot 3** + +Screenshot for Document + +**Screenshot 4** + +Screenshot for Document + +--- + +## Step 3: Configure Merge PDF Files + +The Merge PDF process provides two methods to combine PDF documents based on your requirements. + +### Option 1: Full Document Merge + +* Use this option to merge complete PDF documents into a single file. +* All pages from the selected documents will be combined in the uploaded order. + +**Screenshot 5** + +Screenshot for Document + + + +### Option 2: Selected Page-wise Merge + +* Use this option to merge only specific pages from multiple PDF files. +* Select the required pages and arrange them in your preferred order before merging. + +**Screenshot 6** + +Screenshot for Document + +--- + +## Step 4: Merge PDF Files + +* Click the **Merge PDF** button. +* The system will process and combine all selected files into a single document. +* Wait for the processing to complete. + +**Screenshot 7** + +Screenshot for Document + +--- + +## Step 5: Preview and Download + +* Click **Download** to save the final PDF to your device. +* Open the file to preview the merged document. + +**Screenshot 8** + +Screenshot for Document + +--- + +## Step 6: Upload Doculan Feature + +* Click **Upload** to save the file in the Doculan folder. +* Select the destination folder where you want to store it. + +**Screenshot 9** + +Screenshot for Document + +**Screenshot 10** + +Screenshot for Document + +## Step 7: View the Merge Document in Doculan + +* Open the file action menu. +* Click the **View** option to preview the document. +* You can also use the **Merge option** during the **view** process from the left side menu to merge documents again. + +**Screenshot 11** + +Screenshot for Document + +**Screenshot 12** + +Screenshot for Document + +--- + +## Key Notes + +* Ensure all PDFs are valid and not corrupted before merging. +* Large files may take additional processing time. +* File order cannot be changed after mergingโ€”verify before execution. + +--- + +**Demo Video:** + + + +
+ + +
+ + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) \ No newline at end of file diff --git a/docs/PDF_Editor/Split_pdf.md b/docs/PDF_Editor/Split_pdf.md new file mode 100644 index 0000000..7be12d1 --- /dev/null +++ b/docs/PDF_Editor/Split_pdf.md @@ -0,0 +1,188 @@ +# How to Split PDF Files? + +PDF splitting allows you to divide a single PDF document into multiple smaller files based on pages or selected ranges. This is useful for organizing, sharing, or extracting specific content. + +--- + +## Step 1: Open PDF Split Tool + +* Go to the **Documents** section. +* Select the appropriate folder and choose the required file. +* Open the **File Action** menu. +* Click **PDF Editor**. +* A popup will appear to select the **Split PDF** tool. + +**Screenshot 1** + +Screenshot for Document + +**Screenshot 2** + +Screenshot for Document + +--- + +## Step 2: Select the Split Option + +The Split PDF tool provides multiple methods to split PDF documents based on your requirements. + + +### Option 1: By Individual Pages + +* Use this option to split each page of the PDF into separate individual files. +* Every page will be generated as an individual PDF documents. + +**Screenshot 3** + +Screenshot for Document + +### Option 2: Custom Ranges + +* Use this option to create multiple PDF files from a single document using custom page ranges. +* Define multiple page ranges based on your required document structure. +* Enter page numbers or ranges (e.g., 1โ€“3,5,6โ€“10). + +**Screenshot 4** + +Screenshot for Document + +**Screenshot 5** + +Screenshot for Document + +### Option 3: Select Page-wise + +* Use this option to select specific pages from the PDF document. +* Arrange the selected pages in the required order before splitting or creating the new PDF structure. +* The system will process the document and generate separate files based on your configuration. + +**Screenshot 6** + +Screenshot for Document + +**Screenshot 7** + +Screenshot for Document + +--- + + + + + + + + + + + +## Step 4: Preview and Download + +* Click **Download** to save individual PDF files to your device. +* Review the downloaded split document. + +**Screenshot 8** + +Screenshot for Document + +--- + +## Step 5: Upload Doculan Feature + +* Click **Upload** to save the file in the Doculan folder. +* Select the destination folder where you want to store it. + +**Screenshot 9** + +Screenshot for Document + +**Screenshot 10** + +Screenshot for Document + +--- + +## Step 6: View the Split Document in Doculan + +* Open the file action menu. +* Click the **View** option to preview the document. +* You can also use the **Split option** during the **view** process from the left side menu to merge documents again. + +**Screenshot 11** + +Screenshot for Document + +**Screenshot 12** + +Screenshot for Document + +--- + +## Key Notes + +* Ensure the uploaded PDF is not corrupted or password-protected. +* Large documents may take additional processing time. +* Always verify page ranges before splitting to avoid data loss. + +--- + +**Demo Video:** + + + +
+ + +
+ + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) + + + diff --git a/docs/Settings/Subdomain.md b/docs/Settings/Subdomain.md new file mode 100644 index 0000000..bfd2521 --- /dev/null +++ b/docs/Settings/Subdomain.md @@ -0,0 +1,150 @@ +# How to Create a Subdomain? + +This guide explains how to create an organization-specific **subdomain** and access its dedicated login portal. It enables organizations to establish a branded and secure workspace using a custom subdomain, providing streamlined and seamless access for authorized users. The subdomain-based portal ensures a centralized entry point for organizational operations, improving identity control, security, and user experience within a unified environment. + +--- + +## What is the Organization Subdomain Feature? + +The Organization Subdomain feature allows administrators to: + +- Create a dedicated workspace URL for their organization +- Provide branded access for internal users +- Improve security and workspace separation +- Enable easier user access through a custom login portal +- Restrict portal access to authorized domain users only + +--- + +## Step 1: Navigate to Settings + +- From the left-side navigation menu, click on **Settings**. +- Select the **Subdomain** configuration section. + +Screenshot for Document + +The Subdomain Settings page will appear. + +--- + +## Step 2: Create the Organization Subdomain + +- Locate the **Create New Subdomain** section. + +Screenshot for Document + +- Enter your preferred subdomain name in the input field. + +**Example:** + +``` +organization-name +``` + +- Review the generated URL preview shown below the input field. +- Click **Save Changes** to confirm and activate the subdomain. + + +### Subdomain URL Structure + +The platform automatically generates a dedicated URL in the following format: + +``` +https://.doculan.com +``` + +**Example:** + +``` +https://virtualteams.doculan.com +``` + +Screenshot for Document + +--- + +## Step 3: Access the Dedicated Login Page + +- Copy the generated subdomain URL. +- Open the URL in a browser. +- The organization-specific login page will be displayed. +- Enter your user credentials: + - **Email Address** โ€” use your organization email + - **Password** + - Complete the **CAPTCHA** verification if prompted. +- Click **Sign In**. + +Screenshot for Document + +--- + +## Step 4: Successful Login + +After successful authentication: + +- Users will be redirected to the **organization dashboard**. +- Organization-specific data and workflows will become accessible. +- Workspace access will remain isolated to the configured organization. + +Screenshot for Document + +--- + +## Additional Information + +Screenshot for Document + + +> **Important:** Only users with an email address belonging to the configured organization domain can access this portal. External domain users (e.g., Gmail or other organization emails) will not be granted access. + + +| Aspect | Details | +|---|---| +| Access Restriction | Only authorized organization domain users can log in | +| URL Format | `https://.doculan.com` | +| CAPTCHA | May be prompted for additional security verification | +| Dashboard | Redirects to organization-specific workspace upon login | + +--- + +## Notes + +- Only administrators have permission to create or modify subdomain settings. +- Once a subdomain is saved, it becomes the official login entry point for the organization. +- Ensure the subdomain name is unique and reflects your organization's identity. +- Contact your platform administrator if you encounter access issues after subdomain creation. + + +--- + +**Demo Video:** + + + +
+ + +
+ + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) \ No newline at end of file diff --git a/docs/VDR/virtual_data_room.md b/docs/VDR/virtual_data_room.md new file mode 100644 index 0000000..df21614 --- /dev/null +++ b/docs/VDR/virtual_data_room.md @@ -0,0 +1,161 @@ +# How to Use Viruala Dotd Room (VDR)? + +The **Virtual Data Room (VDR)** provides a secure and centralized environment for storing, organizing, sharing, and managing confidential documents. It enables teams, clients, investors, and stakeholders to collaborate efficiently while maintaining strict access controls and document security. VDR is commonly used for due diligence, mergers and acquisitions, audits, legal reviews, fundraising, and other document-intensive business processes. + +--- + +## Step 1: Select the folder you want to share. + +- Navigate to the documents and select the appropriate folder. +- Open the folder action menu and click *Share Folder*. + +Screenshot for Document + +- The **Folder Added to VDR** popup will appear; click **Go to VDR** to continue. + +Screenshot for Document + +> You will be redirected automatically to the VDR User List page. + +--- + +## Step 2: Add the user to the VDR. + +- Click the dropdown and select the folder you want to share. +- Then click the **Add User** button in the top-right corner of the page. + +Screenshot for Document + +--- + +## Step 3: Configure sharing details: + +Once you click Share, a popup or side panel will appear with fields for: + +- **Recipient Name** +- **Recipient Email Address** + +Screenshot for Document + +- **Expiry Date:** Specify how long the shared link should remain active. +- **Reminder:** Optionally schedule an email reminder before the link expires. + +Screenshot for Document + +- **Email body:** Add a personalized message to provide context for the recipient. +- Optionally, click **AI Assist** to generate a professional and well-structured email message automatically. + +Screenshot for Document + + +- Click **Send** to deliver the document. + +--- + +## Step 4: Recipient Access via Email + +After the folder is shared: + +* The recipient will receive an email containing the **folder access link**. + +* An OTP verification popup will appear; the OTP will be sent via emailโ€”copy the code and enter it to complete the verification. + +Screenshot for Document + + +* Click the link to open and view the shared folder (no login required). + +Screenshot for Document + +* Access is subject to the defined **permissions** and **expiry period** set by the sender. +* The recipient can view and download all shared files within the folder, based on the assigned access permissions. + +**View** the files within the Folder. + +Screenshot for Document + +**Download** the files within the Folder. + +Screenshot for Document
+ +Screenshot for Document + +--- + +## Step 5: The sender can monitor and track user activities. + +- The sender can open the VDR page and view the number of folders available in the Room Explorer section. + + + +- The Analytics option is used to view user activities in graphical chart formats. + +Screenshot for Document + +- The User page also displays user activities in a detailed format. + +- The VDR page tracks detailed user activities, including the number of times each document is viewed and downloaded, providing clear usage insights. + +Screenshot for Document + +## step 6: Revoke and Unshare Folder Access + +You can revoke access or unshare the folder at any time from the folder settings. + +### Click **Revoke** to remove folder access. + +- In the User page, open the folder action menu and click **Revoke** to remove access. +- A confirmation popup will appear; click *Revoke Access* to confirm. + +Screenshot for Document
+ +Screenshot for Document + +### Unshare Folder from VDR Page + +Unshare the folder from the VDR page to remove it from the room. + +- Go to the Shared folder, open the folder action menu. +- Enter the folder name and click **Confirm**. + +Screenshot for Document
+ +Screenshot for Document + +--- + +**Demo Video:** + + + +
+ + +
+ +> The above **Video** represent that how to **Share Folder**. + +ยฉ Doculan by [Virtualan Software](https://www.virtualan.io) + + + diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 1a281cd..f9d1e02 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -11,6 +11,7 @@ - [How to resend eSign document?](E_Sign/resend-esign-document.md) - [How to use the default E-Sign Document?](E_Sign/default_e-sign-document.md) - [How to use self sign feature?](E_Sign/self-sign-document.md) + - [How to Use Self Sign Mode?](E_Sign/self-sign-mode.md) - [How to use Variable field?](E_Sign/variable-fields.md) - [How to Use Variable Mapping in a CSV File?](E_Sign/variable_mapping.md) - [How to use Delegate Email?](E_Sign/delegate-email.md) @@ -18,6 +19,9 @@ - [How to Rename the File?](E_Sign/rename-file.md) - [How to Use the Co-Signer Option?](E_Sign/Co-Signer.md) - [How to Use the Comment Section in E-Sign?](E_Sign/comment_section.md) + - [How to Use Inbox?](E_Sign/inbox.md) + - [How to use contract Lifecycle Management?](E_Sign/Contract-Lifecycle.md) + - [How to use Images & Underlines Fields?](E_Sign/Image-and-Underline.md) - **Wet Signature** - [How to use Wet-Signature?](Wet-Signature/WetSign.md) @@ -41,6 +45,11 @@ - [How to cancel shared document?](E_Sign/cancel-shared-document.md) - [How to Share a folder?](E_Sign/share_folder.md) +--- + +- **VDR** + [How to Use Viruala Dotd Room (VDR)?](VDR/virtual_data_room.md) + --- - **Form Management** - [How to Create and Send Forms?](Forms/Form_Create.md) @@ -50,6 +59,7 @@ - [How to Delete Form?](Forms/Form-Delete.md) - [How to Resend Form?](Forms/Form_Resend.md) - [How to Save Forms?](Forms/Form_Save.md) + - [How to Use Anonymous Forms?](Forms/Anonymous_Form.md) - **Embedded Esign** - [How to use Embedded Esign?](Embedded-Esign/EmbdedEsign.md) @@ -71,6 +81,12 @@ --- +- **PDF Editor** + - [How to Merge PDF Files?](PDF_Editor/Merge_pdf.md) + - [How to Split PDF Files?](PDF_Editor/Split_pdf.md) + +--- + - **Note Taker** - [How to Use the Note Taker Option?](Notes_Taker/notes_taker.md) @@ -81,6 +97,10 @@ --- +- **Settings** + - [How to Create a Subdomain?](Settings/Subdomain.md) +--- + - **Security** - [Two-Factor Authentication[2FA]](Security/Security.md) @@ -106,4 +126,5 @@ - [Version 0.9.0](releaseNotes/version_0.9.0.md) - [Version 0.9.1](releaseNotes/version_0.9.1.md) - [Version 0.10.0](releaseNotes/version_0.10.0.md) + - [Version 0.11.0](releaseNotes/version_0.11.0.md) --- \ No newline at end of file diff --git a/docs/releaseNotes/version_0.10.0.md b/docs/releaseNotes/version_0.10.0.md index cad1ca1..603c0fd 100644 --- a/docs/releaseNotes/version_0.10.0.md +++ b/docs/releaseNotes/version_0.10.0.md @@ -1,4 +1,4 @@ -# ๐Ÿš€ **New Features & Enhancements** +# ๐Ÿš€ Version 0.10.0 โ€“ New Enhancements ## 1๏ธโƒฃ **Dark Mode & Light Mode** Switch seamlessly between **dark and light themes** to align with your working environment and minimize eye strain. This feature enables users to select the most suitable display mode, ensuring optimal comfort and improved productivity across different lighting conditions. diff --git a/docs/releaseNotes/version_0.11.0.md b/docs/releaseNotes/version_0.11.0.md new file mode 100644 index 0000000..cc322a5 --- /dev/null +++ b/docs/releaseNotes/version_0.11.0.md @@ -0,0 +1,77 @@ +# ๐Ÿš€ Version 0.11.0 โ€“ New Enhancements + +## 1๏ธโƒฃ **Self-Sign Mode** + +**Self Sign Mode** enables a single user โ€” typically the document owner or sender โ€” to independently review, complete, and sign a document without involving additional recipients or external signers. This mode is ideal for internal approvals, self-acknowledgements, policy confirmations, and other single-party signing workflows that require a fast and simplified signing process. + +๐Ÿ”— **Learn more:** [How to Use Self Sign Mode?](E_Sign/self-sign-mode.md) + +--- + +## 2๏ธโƒฃ **Merge Pdf Tool** + +**PDF Merge** allows you to combine multiple PDF documents into a single consolidated file, making document management, sharing, organization, and storage more efficient and convenient. It helps streamline workflows by keeping related documents together in one easily accessible PDF. + +๐Ÿ”— **Learn more:** [How to Merge PDF Files?](PDF_Editor/Merge_pdf.md) + +--- + +## 3๏ธโƒฃ **Split Pdf Tool** + +**PDF Split** allows you to divide a single PDF document into multiple smaller files based on specific pages or selected page ranges. This feature is useful for organizing documents, extracting important sections, sharing only relevant content, and managing large PDF files more efficiently. + +๐Ÿ”— **Learn more:** [How to Split PDF Files?](PDF_Editor/Split_pdf.md) + +--- + +## 4๏ธโƒฃ **Inbox** + +**Inbox** provides a centralized place where users can view and manage all eSign requests and received documents from a single screen. This makes it easy to monitor document activity and quickly identify whether a document is pending, completed, or shared. By bringing everything into one location, the Inbox reduces the need to navigate across multiple sections and improves overall efficiency in handling eSign workflows. + + + +๐Ÿ”— **Learn more:** [How to Use Inbox?](E_Sign/inbox.md) + +--- + + +## 5๏ธโƒฃ **Anonymous Form** + +**Anonymous Form** allows users to create forms that collect responses without revealing the identity of the respondents. This feature encourages honest feedback and enables the collection of sensitive or confidential information with greater trust. It is especially useful for surveys, feedback forms, and situations where privacy is important. + + + +๐Ÿ”— **Learn more:** [How to Use Anonymous Forms?](Forms/Anonymous_Form.md) + +--- + + +## 6๏ธโƒฃ **Custom Domain** + +**Custom Domain** allows users to access Doculan using their own domain instead of the default application URL. This feature provides a personalized and branded signing experience for recipients. It also helps build trust and professionalism by presenting documents through an organizationโ€™s official domain. + + + +๐Ÿ”— **Learn more:** [How to Create a Subdomain?](Settings/Subdomain.md) + +--- + +## 7๏ธโƒฃ **Images & Underlines Fields** + +The **Images & Underlines Fields** feature in the E-Sign module allows both senders and recipients to add images and apply underline formatting directly within documents during the signing process. This functionality improves document clarity, enhances collaboration, and ensures a more interactive signing experience. + +๐Ÿ”— **Learn more:** [How to use Images & Underlines Fields?](E_Sign/Image-and-Underline.md) + +--- diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-Intagaration1.png b/docs/screenshots/Anonymous-form/Anonymous-Form-Intagaration1.png new file mode 100644 index 0000000..1439e3e Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-Intagaration1.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-Intagaration2.png b/docs/screenshots/Anonymous-form/Anonymous-Form-Intagaration2.png new file mode 100644 index 0000000..cf04e1f Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-Intagaration2.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-QR.png b/docs/screenshots/Anonymous-form/Anonymous-Form-QR.png new file mode 100644 index 0000000..af57147 Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-QR.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-gnerate-link.png b/docs/screenshots/Anonymous-form/Anonymous-Form-gnerate-link.png new file mode 100644 index 0000000..9e1950d Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-gnerate-link.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-list.png b/docs/screenshots/Anonymous-form/Anonymous-Form-list.png new file mode 100644 index 0000000..be50743 Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-list.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-open-link.png b/docs/screenshots/Anonymous-form/Anonymous-Form-open-link.png new file mode 100644 index 0000000..eef3d9e Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-open-link.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-public-link-2.png b/docs/screenshots/Anonymous-form/Anonymous-Form-public-link-2.png new file mode 100644 index 0000000..8350150 Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-public-link-2.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-public-link.png b/docs/screenshots/Anonymous-form/Anonymous-Form-public-link.png new file mode 100644 index 0000000..f86b90a Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-public-link.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-recapcha.png b/docs/screenshots/Anonymous-form/Anonymous-Form-recapcha.png new file mode 100644 index 0000000..2bfe2f7 Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-recapcha.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list-1.png b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list-1.png new file mode 100644 index 0000000..9e3b5d2 Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list-1.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list-2.png b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list-2.png new file mode 100644 index 0000000..ba0b839 Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list-2.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list1.png b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list1.png new file mode 100644 index 0000000..10bc4bb Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list1.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list2.png b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list2.png new file mode 100644 index 0000000..8e92fee Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-submission-list2.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form-submission.png b/docs/screenshots/Anonymous-form/Anonymous-Form-submission.png new file mode 100644 index 0000000..9f0bf32 Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form-submission.png differ diff --git a/docs/screenshots/Anonymous-form/Anonymous-Form.png b/docs/screenshots/Anonymous-form/Anonymous-Form.png new file mode 100644 index 0000000..bda93ca Binary files /dev/null and b/docs/screenshots/Anonymous-form/Anonymous-Form.png differ diff --git a/docs/screenshots/CLM/CLM-1.png b/docs/screenshots/CLM/CLM-1.png new file mode 100644 index 0000000..b25575c Binary files /dev/null and b/docs/screenshots/CLM/CLM-1.png differ diff --git a/docs/screenshots/CLM/CLM-Action.png b/docs/screenshots/CLM/CLM-Action.png new file mode 100644 index 0000000..fa9ce45 Binary files /dev/null and b/docs/screenshots/CLM/CLM-Action.png differ diff --git a/docs/screenshots/CLM/CLM-Alerts.png b/docs/screenshots/CLM/CLM-Alerts.png new file mode 100644 index 0000000..3a9a9b4 Binary files /dev/null and b/docs/screenshots/CLM/CLM-Alerts.png differ diff --git a/docs/screenshots/CLM/CLM-Cancel.png b/docs/screenshots/CLM/CLM-Cancel.png new file mode 100644 index 0000000..4b38219 Binary files /dev/null and b/docs/screenshots/CLM/CLM-Cancel.png differ diff --git a/docs/screenshots/CLM/CLM-Contract.png b/docs/screenshots/CLM/CLM-Contract.png new file mode 100644 index 0000000..dd4363d Binary files /dev/null and b/docs/screenshots/CLM/CLM-Contract.png differ diff --git a/docs/screenshots/CLM/CLM-Contract_List.png b/docs/screenshots/CLM/CLM-Contract_List.png new file mode 100644 index 0000000..7744c08 Binary files /dev/null and b/docs/screenshots/CLM/CLM-Contract_List.png differ diff --git a/docs/screenshots/CLM/CLM-Dashboard.png b/docs/screenshots/CLM/CLM-Dashboard.png new file mode 100644 index 0000000..67f40e5 Binary files /dev/null and b/docs/screenshots/CLM/CLM-Dashboard.png differ diff --git a/docs/screenshots/CLM/CLM-Financial.png b/docs/screenshots/CLM/CLM-Financial.png new file mode 100644 index 0000000..48bd15f Binary files /dev/null and b/docs/screenshots/CLM/CLM-Financial.png differ diff --git a/docs/screenshots/CLM/CLM-Overview.png b/docs/screenshots/CLM/CLM-Overview.png new file mode 100644 index 0000000..3ec1dea Binary files /dev/null and b/docs/screenshots/CLM/CLM-Overview.png differ diff --git a/docs/screenshots/CLM/CLM-Parties.png b/docs/screenshots/CLM/CLM-Parties.png new file mode 100644 index 0000000..98f544d Binary files /dev/null and b/docs/screenshots/CLM/CLM-Parties.png differ diff --git a/docs/screenshots/CLM/CLM-Red_Line.png b/docs/screenshots/CLM/CLM-Red_Line.png new file mode 100644 index 0000000..b76ad37 Binary files /dev/null and b/docs/screenshots/CLM/CLM-Red_Line.png differ diff --git a/docs/screenshots/CLM/CLM-Remender.png b/docs/screenshots/CLM/CLM-Remender.png new file mode 100644 index 0000000..0b09029 Binary files /dev/null and b/docs/screenshots/CLM/CLM-Remender.png differ diff --git a/docs/screenshots/CLM/CLM-Signature.png b/docs/screenshots/CLM/CLM-Signature.png new file mode 100644 index 0000000..69470ea Binary files /dev/null and b/docs/screenshots/CLM/CLM-Signature.png differ diff --git a/docs/screenshots/CLM/CLM-View.png b/docs/screenshots/CLM/CLM-View.png new file mode 100644 index 0000000..9c0bfd5 Binary files /dev/null and b/docs/screenshots/CLM/CLM-View.png differ diff --git a/docs/screenshots/Image-Field/Upload-Image-1.png b/docs/screenshots/Image-Field/Upload-Image-1.png new file mode 100644 index 0000000..ef13a4f Binary files /dev/null and b/docs/screenshots/Image-Field/Upload-Image-1.png differ diff --git a/docs/screenshots/Image-Field/image-field-open.png b/docs/screenshots/Image-Field/image-field-open.png new file mode 100644 index 0000000..e515a60 Binary files /dev/null and b/docs/screenshots/Image-Field/image-field-open.png differ diff --git a/docs/screenshots/Image-Field/image-field-recipient.png b/docs/screenshots/Image-Field/image-field-recipient.png new file mode 100644 index 0000000..861605e Binary files /dev/null and b/docs/screenshots/Image-Field/image-field-recipient.png differ diff --git a/docs/screenshots/Image-Field/image-field-underline.png b/docs/screenshots/Image-Field/image-field-underline.png new file mode 100644 index 0000000..51b1a1d Binary files /dev/null and b/docs/screenshots/Image-Field/image-field-underline.png differ diff --git a/docs/screenshots/Image-Field/image-field.png b/docs/screenshots/Image-Field/image-field.png new file mode 100644 index 0000000..54cc292 Binary files /dev/null and b/docs/screenshots/Image-Field/image-field.png differ diff --git a/docs/screenshots/Image-Field/image-field1.png b/docs/screenshots/Image-Field/image-field1.png new file mode 100644 index 0000000..50c8785 Binary files /dev/null and b/docs/screenshots/Image-Field/image-field1.png differ diff --git a/docs/screenshots/Image-Field/image-field2.png b/docs/screenshots/Image-Field/image-field2.png new file mode 100644 index 0000000..63c77db Binary files /dev/null and b/docs/screenshots/Image-Field/image-field2.png differ diff --git a/docs/screenshots/Image-Field/image-field3.png b/docs/screenshots/Image-Field/image-field3.png new file mode 100644 index 0000000..c241e11 Binary files /dev/null and b/docs/screenshots/Image-Field/image-field3.png differ diff --git a/docs/screenshots/Image-Field/image-field4.png b/docs/screenshots/Image-Field/image-field4.png new file mode 100644 index 0000000..e9e29c3 Binary files /dev/null and b/docs/screenshots/Image-Field/image-field4.png differ diff --git a/docs/screenshots/Image-Field/image-field6.png b/docs/screenshots/Image-Field/image-field6.png new file mode 100644 index 0000000..dcf76ca Binary files /dev/null and b/docs/screenshots/Image-Field/image-field6.png differ diff --git a/docs/screenshots/Image-Field/image-upload2.png b/docs/screenshots/Image-Field/image-upload2.png new file mode 100644 index 0000000..c1363c7 Binary files /dev/null and b/docs/screenshots/Image-Field/image-upload2.png differ diff --git a/docs/screenshots/Inbox/Inbox1.png b/docs/screenshots/Inbox/Inbox1.png new file mode 100644 index 0000000..628cd51 Binary files /dev/null and b/docs/screenshots/Inbox/Inbox1.png differ diff --git a/docs/screenshots/Inbox/Inbox10.png b/docs/screenshots/Inbox/Inbox10.png new file mode 100644 index 0000000..cf906ab Binary files /dev/null and b/docs/screenshots/Inbox/Inbox10.png differ diff --git a/docs/screenshots/Inbox/Inbox2.png b/docs/screenshots/Inbox/Inbox2.png new file mode 100644 index 0000000..11825ca Binary files /dev/null and b/docs/screenshots/Inbox/Inbox2.png differ diff --git a/docs/screenshots/Inbox/Inbox3.png b/docs/screenshots/Inbox/Inbox3.png new file mode 100644 index 0000000..3124c43 Binary files /dev/null and b/docs/screenshots/Inbox/Inbox3.png differ diff --git a/docs/screenshots/Inbox/Inbox4.png b/docs/screenshots/Inbox/Inbox4.png new file mode 100644 index 0000000..e85ef30 Binary files /dev/null and b/docs/screenshots/Inbox/Inbox4.png differ diff --git a/docs/screenshots/Inbox/Inbox5.png b/docs/screenshots/Inbox/Inbox5.png new file mode 100644 index 0000000..4d8e5bc Binary files /dev/null and b/docs/screenshots/Inbox/Inbox5.png differ diff --git a/docs/screenshots/Inbox/Inbox6.png b/docs/screenshots/Inbox/Inbox6.png new file mode 100644 index 0000000..dfba341 Binary files /dev/null and b/docs/screenshots/Inbox/Inbox6.png differ diff --git a/docs/screenshots/Inbox/Inbox7.png b/docs/screenshots/Inbox/Inbox7.png new file mode 100644 index 0000000..42e8f31 Binary files /dev/null and b/docs/screenshots/Inbox/Inbox7.png differ diff --git a/docs/screenshots/Inbox/Inbox8.png b/docs/screenshots/Inbox/Inbox8.png new file mode 100644 index 0000000..b13400e Binary files /dev/null and b/docs/screenshots/Inbox/Inbox8.png differ diff --git a/docs/screenshots/Inbox/Inbox9.png b/docs/screenshots/Inbox/Inbox9.png new file mode 100644 index 0000000..87bb6bb Binary files /dev/null and b/docs/screenshots/Inbox/Inbox9.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf1.png b/docs/screenshots/Pdf-Editor/Merge-pdf1.png new file mode 100644 index 0000000..19baf36 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf1.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf10.png b/docs/screenshots/Pdf-Editor/Merge-pdf10.png new file mode 100644 index 0000000..ca937b5 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf10.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf11.png b/docs/screenshots/Pdf-Editor/Merge-pdf11.png new file mode 100644 index 0000000..9031817 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf11.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf12.png b/docs/screenshots/Pdf-Editor/Merge-pdf12.png new file mode 100644 index 0000000..a1e363b Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf12.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf13.png b/docs/screenshots/Pdf-Editor/Merge-pdf13.png new file mode 100644 index 0000000..bd2353f Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf13.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf14.png b/docs/screenshots/Pdf-Editor/Merge-pdf14.png new file mode 100644 index 0000000..c6452da Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf14.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf15.png b/docs/screenshots/Pdf-Editor/Merge-pdf15.png new file mode 100644 index 0000000..5e5c12e Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf15.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf16.png b/docs/screenshots/Pdf-Editor/Merge-pdf16.png new file mode 100644 index 0000000..bf68d71 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf16.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf2.png b/docs/screenshots/Pdf-Editor/Merge-pdf2.png new file mode 100644 index 0000000..5016933 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf2.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf3.png b/docs/screenshots/Pdf-Editor/Merge-pdf3.png new file mode 100644 index 0000000..74a18af Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf3.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf4.png b/docs/screenshots/Pdf-Editor/Merge-pdf4.png new file mode 100644 index 0000000..6b6dffd Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf4.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf5.png b/docs/screenshots/Pdf-Editor/Merge-pdf5.png new file mode 100644 index 0000000..bf17fec Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf5.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf6.png b/docs/screenshots/Pdf-Editor/Merge-pdf6.png new file mode 100644 index 0000000..bdcad44 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf6.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf7.png b/docs/screenshots/Pdf-Editor/Merge-pdf7.png new file mode 100644 index 0000000..9a9bb7d Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf7.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf8.png b/docs/screenshots/Pdf-Editor/Merge-pdf8.png new file mode 100644 index 0000000..b5237e5 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf8.png differ diff --git a/docs/screenshots/Pdf-Editor/Merge-pdf9.png b/docs/screenshots/Pdf-Editor/Merge-pdf9.png new file mode 100644 index 0000000..70ceb60 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Merge-pdf9.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf1.png b/docs/screenshots/Pdf-Editor/Split-pdf1.png new file mode 100644 index 0000000..2e4a97c Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf1.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf10.png b/docs/screenshots/Pdf-Editor/Split-pdf10.png new file mode 100644 index 0000000..48d546a Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf10.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf11.png b/docs/screenshots/Pdf-Editor/Split-pdf11.png new file mode 100644 index 0000000..7709f0f Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf11.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf12.png b/docs/screenshots/Pdf-Editor/Split-pdf12.png new file mode 100644 index 0000000..fd783a1 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf12.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf13.png b/docs/screenshots/Pdf-Editor/Split-pdf13.png new file mode 100644 index 0000000..ab7d70c Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf13.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf14.png b/docs/screenshots/Pdf-Editor/Split-pdf14.png new file mode 100644 index 0000000..df6a1a7 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf14.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf2.png b/docs/screenshots/Pdf-Editor/Split-pdf2.png new file mode 100644 index 0000000..c8b5d02 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf2.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf3.png b/docs/screenshots/Pdf-Editor/Split-pdf3.png new file mode 100644 index 0000000..03489b8 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf3.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf4.png b/docs/screenshots/Pdf-Editor/Split-pdf4.png new file mode 100644 index 0000000..77a7edd Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf4.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf5.png b/docs/screenshots/Pdf-Editor/Split-pdf5.png new file mode 100644 index 0000000..076c0c6 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf5.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf6.png b/docs/screenshots/Pdf-Editor/Split-pdf6.png new file mode 100644 index 0000000..5134abc Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf6.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf7.png b/docs/screenshots/Pdf-Editor/Split-pdf7.png new file mode 100644 index 0000000..45f556c Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf7.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf8.png b/docs/screenshots/Pdf-Editor/Split-pdf8.png new file mode 100644 index 0000000..9a1e735 Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf8.png differ diff --git a/docs/screenshots/Pdf-Editor/Split-pdf9.png b/docs/screenshots/Pdf-Editor/Split-pdf9.png new file mode 100644 index 0000000..d15bd3c Binary files /dev/null and b/docs/screenshots/Pdf-Editor/Split-pdf9.png differ diff --git a/docs/screenshots/Subdomain/Subdomain.png b/docs/screenshots/Subdomain/Subdomain.png new file mode 100644 index 0000000..1553628 Binary files /dev/null and b/docs/screenshots/Subdomain/Subdomain.png differ diff --git a/docs/screenshots/Subdomain/Subdomain1.png b/docs/screenshots/Subdomain/Subdomain1.png new file mode 100644 index 0000000..ef29d13 Binary files /dev/null and b/docs/screenshots/Subdomain/Subdomain1.png differ diff --git a/docs/screenshots/Subdomain/Subdomain2.png b/docs/screenshots/Subdomain/Subdomain2.png new file mode 100644 index 0000000..3344a13 Binary files /dev/null and b/docs/screenshots/Subdomain/Subdomain2.png differ diff --git a/docs/screenshots/Subdomain/Subdomain3.png b/docs/screenshots/Subdomain/Subdomain3.png new file mode 100644 index 0000000..9dca559 Binary files /dev/null and b/docs/screenshots/Subdomain/Subdomain3.png differ diff --git a/docs/screenshots/Subdomain/Subdomain4.png b/docs/screenshots/Subdomain/Subdomain4.png new file mode 100644 index 0000000..b2fd92b Binary files /dev/null and b/docs/screenshots/Subdomain/Subdomain4.png differ diff --git a/docs/screenshots/Subdomain/Subdomain5.png b/docs/screenshots/Subdomain/Subdomain5.png new file mode 100644 index 0000000..1a06ca0 Binary files /dev/null and b/docs/screenshots/Subdomain/Subdomain5.png differ diff --git a/docs/screenshots/Subdomain/Subdomain6.png b/docs/screenshots/Subdomain/Subdomain6.png new file mode 100644 index 0000000..b86454a Binary files /dev/null and b/docs/screenshots/Subdomain/Subdomain6.png differ diff --git a/docs/screenshots/VDR/VDR10.png b/docs/screenshots/VDR/VDR10.png new file mode 100644 index 0000000..009c702 Binary files /dev/null and b/docs/screenshots/VDR/VDR10.png differ diff --git a/docs/screenshots/VDR/VDR11.png b/docs/screenshots/VDR/VDR11.png new file mode 100644 index 0000000..f76a7f4 Binary files /dev/null and b/docs/screenshots/VDR/VDR11.png differ diff --git a/docs/screenshots/VDR/VDR12.png b/docs/screenshots/VDR/VDR12.png new file mode 100644 index 0000000..f1fb39b Binary files /dev/null and b/docs/screenshots/VDR/VDR12.png differ diff --git a/docs/screenshots/VDR/VDR13.png b/docs/screenshots/VDR/VDR13.png new file mode 100644 index 0000000..5899737 Binary files /dev/null and b/docs/screenshots/VDR/VDR13.png differ diff --git a/docs/screenshots/VDR/VDR14.png b/docs/screenshots/VDR/VDR14.png new file mode 100644 index 0000000..274f6e3 Binary files /dev/null and b/docs/screenshots/VDR/VDR14.png differ diff --git a/docs/screenshots/VDR/VDR15.png b/docs/screenshots/VDR/VDR15.png new file mode 100644 index 0000000..ea75a56 Binary files /dev/null and b/docs/screenshots/VDR/VDR15.png differ diff --git a/docs/screenshots/VDR/VDR16.png b/docs/screenshots/VDR/VDR16.png new file mode 100644 index 0000000..2079c27 Binary files /dev/null and b/docs/screenshots/VDR/VDR16.png differ diff --git a/docs/screenshots/VDR/VDR17.png b/docs/screenshots/VDR/VDR17.png new file mode 100644 index 0000000..3767675 Binary files /dev/null and b/docs/screenshots/VDR/VDR17.png differ diff --git a/docs/screenshots/VDR/VDR18.png b/docs/screenshots/VDR/VDR18.png new file mode 100644 index 0000000..86731ac Binary files /dev/null and b/docs/screenshots/VDR/VDR18.png differ diff --git a/docs/screenshots/VDR/VDR19.png b/docs/screenshots/VDR/VDR19.png new file mode 100644 index 0000000..e9337f7 Binary files /dev/null and b/docs/screenshots/VDR/VDR19.png differ diff --git a/docs/screenshots/VDR/VDR2.png b/docs/screenshots/VDR/VDR2.png new file mode 100644 index 0000000..8dc98cd Binary files /dev/null and b/docs/screenshots/VDR/VDR2.png differ diff --git a/docs/screenshots/VDR/VDR20.png b/docs/screenshots/VDR/VDR20.png new file mode 100644 index 0000000..f976f78 Binary files /dev/null and b/docs/screenshots/VDR/VDR20.png differ diff --git a/docs/screenshots/VDR/VDR21.png b/docs/screenshots/VDR/VDR21.png new file mode 100644 index 0000000..0380097 Binary files /dev/null and b/docs/screenshots/VDR/VDR21.png differ diff --git a/docs/screenshots/VDR/VDR22.png b/docs/screenshots/VDR/VDR22.png new file mode 100644 index 0000000..45cb394 Binary files /dev/null and b/docs/screenshots/VDR/VDR22.png differ diff --git a/docs/screenshots/VDR/VDR3.png b/docs/screenshots/VDR/VDR3.png new file mode 100644 index 0000000..a773c95 Binary files /dev/null and b/docs/screenshots/VDR/VDR3.png differ diff --git a/docs/screenshots/VDR/VDR4.png b/docs/screenshots/VDR/VDR4.png new file mode 100644 index 0000000..780c201 Binary files /dev/null and b/docs/screenshots/VDR/VDR4.png differ diff --git a/docs/screenshots/VDR/VDR5.png b/docs/screenshots/VDR/VDR5.png new file mode 100644 index 0000000..42f1aac Binary files /dev/null and b/docs/screenshots/VDR/VDR5.png differ diff --git a/docs/screenshots/VDR/VDR6.png b/docs/screenshots/VDR/VDR6.png new file mode 100644 index 0000000..dd66298 Binary files /dev/null and b/docs/screenshots/VDR/VDR6.png differ diff --git a/docs/screenshots/VDR/VDR7.png b/docs/screenshots/VDR/VDR7.png new file mode 100644 index 0000000..d1812e2 Binary files /dev/null and b/docs/screenshots/VDR/VDR7.png differ diff --git a/docs/screenshots/VDR/VDR8.png b/docs/screenshots/VDR/VDR8.png new file mode 100644 index 0000000..afa57dc Binary files /dev/null and b/docs/screenshots/VDR/VDR8.png differ diff --git a/docs/screenshots/VDR/VDR9.png b/docs/screenshots/VDR/VDR9.png new file mode 100644 index 0000000..e28f7f9 Binary files /dev/null and b/docs/screenshots/VDR/VDR9.png differ diff --git a/docs/screenshots/releaseNotes/API-1.png b/docs/screenshots/releaseNotes/API-1.png new file mode 100644 index 0000000..edd5062 Binary files /dev/null and b/docs/screenshots/releaseNotes/API-1.png differ diff --git a/docs/screenshots/releaseNotes/API-2.png b/docs/screenshots/releaseNotes/API-2.png new file mode 100644 index 0000000..a51fa12 Binary files /dev/null and b/docs/screenshots/releaseNotes/API-2.png differ diff --git a/docs/screenshots/releaseNotes/Anonymous_Form.png b/docs/screenshots/releaseNotes/Anonymous_Form.png new file mode 100644 index 0000000..b3faf0a Binary files /dev/null and b/docs/screenshots/releaseNotes/Anonymous_Form.png differ diff --git a/docs/screenshots/releaseNotes/Inbox.png b/docs/screenshots/releaseNotes/Inbox.png new file mode 100644 index 0000000..19ff83f Binary files /dev/null and b/docs/screenshots/releaseNotes/Inbox.png differ diff --git a/docs/screenshots/releaseNotes/sub_domain.png b/docs/screenshots/releaseNotes/sub_domain.png new file mode 100644 index 0000000..8f1a318 Binary files /dev/null and b/docs/screenshots/releaseNotes/sub_domain.png differ diff --git a/docs/screenshots/self-sign-mode/self-sign-mode.png b/docs/screenshots/self-sign-mode/self-sign-mode.png new file mode 100644 index 0000000..bbb5403 Binary files /dev/null and b/docs/screenshots/self-sign-mode/self-sign-mode.png differ diff --git a/docs/screenshots/self-sign-mode/self-sign-mode1.png b/docs/screenshots/self-sign-mode/self-sign-mode1.png new file mode 100644 index 0000000..29a59dc Binary files /dev/null and b/docs/screenshots/self-sign-mode/self-sign-mode1.png differ diff --git a/docs/screenshots/self-sign-mode/self-sign-mode2.png b/docs/screenshots/self-sign-mode/self-sign-mode2.png new file mode 100644 index 0000000..3de1dc9 Binary files /dev/null and b/docs/screenshots/self-sign-mode/self-sign-mode2.png differ diff --git a/docs/screenshots/self-sign-mode/self-sign-mode3.png b/docs/screenshots/self-sign-mode/self-sign-mode3.png new file mode 100644 index 0000000..e4ac128 Binary files /dev/null and b/docs/screenshots/self-sign-mode/self-sign-mode3.png differ diff --git a/docs/screenshots/self-sign-mode/self-sign-mode4.png b/docs/screenshots/self-sign-mode/self-sign-mode4.png new file mode 100644 index 0000000..2cba346 Binary files /dev/null and b/docs/screenshots/self-sign-mode/self-sign-mode4.png differ diff --git a/docs/screenshots/self-sign-mode/self-sign-mode5.png b/docs/screenshots/self-sign-mode/self-sign-mode5.png new file mode 100644 index 0000000..4ae526c Binary files /dev/null and b/docs/screenshots/self-sign-mode/self-sign-mode5.png differ