> **Source:** https://knowledge.leegality.com/document-execution/api/reactivate-document > **Site:** Leegality Knowledge Base — https://knowledge.leegality.com > **About:** Leegality is a document execution platform covering eSigning, stamps, NeSL, workflows, and REST API integration. > **Navigation:** Every article on this site has a plain-text version at `.txt` (this format). To get an index of all articles with their `.txt` links, read: https://knowledge.leegality.com/llms.txt > **AI Guide:** For instructions on how to navigate this knowledge base as an AI agent, read: https://knowledge.leegality.com/ai-readable.txt --- # POST /v3.0/sign/request/reactivate — Reactivate document Reactivates an expired document by resetting the expiry period, allowing invitees to sign again. **Authentication:** `X-Auth-Token` header required on every request. ## Request URL ``` POST https://app1.leegality.com/api/v3.0/sign/request/reactivate ``` **Environments:** - Production: `https://app1.leegality.com/api/v3.0/sign/request/reactivate` - Sandbox: `https://sandbox.leegality.com/api/v3.0/sign/request/reactivate` --- ## Request Body **Content-Type:** `application/json` Request body for reactivating an expired document. Pass either `expiryDays` or `expiryTime` to set the new expiry period. If neither is provided, the API uses the default expiry from the workflow configuration. | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `documentId` | string | Yes | Unique identifier of the expired document to reactivate. **Format:** Alphanumeric string. The document must have at least one invitation with `expired: true` status. | `01KJCHYRSQGA24YDZ044BS6MTS` | | `expiryDays` | integer | No | New expiry period as a relative number of days. **Range:** `-1` to `365` \| Value \| Meaning \| \|---\|---\| \| `-1` \| Expires in 45 minutes \| \| `0` \| Expires same day at 11:59 PM \| \| `1` \| Expires next day at 11:59 PM \| \| `2`–`365` \| Expires in N days at 11:59 PM \| Use this for simple relative expiry. For a specific date/time, use `expiryTime` instead. | `5` | | `expiryTime` | integer | No | This is used to define the new timeout time after which an uncompleted transaction get cancelled and reversed. Maximum value can be equal to 365 days. Value in this parameter to be passed as long format of date. | `1773576000000` | ### Sample Request ```json { "documentId": "01KJCHYRSQGA24YDZ044BS6MTS", "expiryDays": 5, "expiryTime": 1773576000000 } ``` --- ## Responses ### 200 — Reactivation response. Check `status` field: `1` = success, `0` = failure. Response wrapper for the Reactivate Document API. On success (`status: 1`), `data` contains the document ID, IRN, and updated invitee statuses. On failure (`status: 0`), `data` is an empty object and `messages` contains the error details. | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `status` | integer | No | API response status. `1` = success, `0` = failure. Allowed: `0`, `1`. | `1` | | `messages` | array\ | No | Array of response messages. **Success codes:** - `signinvitation.activate.success` — Invitation activated successfully **Error codes:** - `no.expired.invitation.found` — No expired invitation exists (document is completed, rejected, active, or already reactivated) - `no.document.found` — Document ID does not exist - `invalid.expiry.days.value` — expiryDays is outside the valid range (-1 to 365) - `invalid.expiry.time` — expiryTime is in the past or negative - `invalid.expiry.time.maxerror` — expiryTime exceeds 365 days from now See **Message** below. | — | | `data` | ReactivateData | No | Reactivation result data. On success, contains the document details and updated invitee statuses with the new expiry. On failure, this is an empty object `{}`. See **ReactivateData** below. | — | #### Message Message object containing a machine-readable code and a human-readable description. Used for success confirmations, errors, and warnings. | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `code` | string | No | Response message code. | `simpleWorkFlow.success` | | `message` | string | No | Human-readable success or error message. | `Invitations sent successfully.` | #### ReactivateData Reactivation result data. On success, contains the document details and updated invitee statuses with the new expiry. On failure, this is an empty object `{}`. | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `documentId` | string | No | Unique identifier of the reactivated document. | `01KJCHYRSQGA24YDZ044BS6MTS` | | `irn` | string | No | Invitation Reference Number set during document creation. Returns `null` if no IRN was set. | `INV-2026-001` | | `requests` | array\ | No | Array of invitee status objects with updated expiry. After reactivation, `expired` resets to `false` and `expiryDate` reflects the new expiry period. The `signUrl` remains the same as the original invitation. See **TransactionStatusRequest** below. | — | ##### TransactionStatusRequest Signing status of an individual invitee. Uses boolean fields (`signed`, `rejected`, `expired`) to indicate the invitee's current state. | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `name` | string | No | Full name of the invitee. | `Abhishek Sharma` | | `email` | string | No | Email address of the invitee. | `signer@example.com` | | `phone` | string | No | Mobile number of the invitee. - **Format:** 10-digit Indian mobile number. | `9876543210` | | `signUrl` | string | No | Unique signing URL for this invitee. The invitee uses this URL to access the signing page. | `https://sandbox.leegality.com/sign/2bdcc3ef-661f-440c-b059-8` | | `signed` | boolean | No | Whether the invitee has signed the document. - `true` — signed - `false` — not yet signed | `true` | | `rejected` | boolean | No | Whether the invitee has rejected the document. - `true` — explicitly rejected by the invitee - `false` — not rejected | `false` | | `expired` | boolean | No | Whether the invitee's signing invitation has expired. - `true` — expired (time-based expiry or verification failure) - `false` — not expired - **Note:** Also set to `true` when certificate verification fails during signing (e.g., Aadhaar details mismatch, DSC details mismatch). | `false` | | `expiryDate` | string | No | Expiry date and time for the signing invitation. - **Format:** `dd-MM-yyyy HH:mm:ss` | `08-03-2026 23:59:59` | | `signType` | string | No | Type of signature used by the invitee. Returns `null` if the invitee has not signed yet. - **Possible values:** `AADHAAR`, `VIRTUAL`, `DSC` Allowed: `AADHAAR`, `VIRTUAL`, `DSC`. | `AADHAAR` | | `active` | boolean | No | Whether it is currently the invitee's turn to act. - `true` — the invitee can currently sign or approve the document | `true` | ### Sample Response (200) ```json { "status": 1, "messages": [ { "code": "simpleWorkFlow.success", "message": "Invitations sent successfully." } ], "data": { "documentId": "01KJCHYRSQGA24YDZ044BS6MTS", "irn": "INV-2026-001", "requests": [ { "name": "Abhishek Sharma", "email": "signer@example.com", "phone": "9876543210", "signUrl": "https://sandbox.leegality.com/sign/2bdcc3ef-661f-440c-b059-82c0ff6ce4d8", "signed": true, "rejected": false, "expired": false, "expiryDate": "08-03-2026 23:59:59", "signType": "AADHAAR", "active": true } ] } } ```