https://www.helprange.com/api/v2/signature-requests/{envelope_id}/voidCancels a sent request: nobody can sign it any more and the waiting recipients are told. Cannot be undone.
Plans: Max, Unlimited, Deal Room Pass, trial. Auth: Authorization: Bearer hr_live_… (team key), X-API-Key, Authorization: Api-Key <key> or an OAuth Bearer token. Scope: documents:write. Operation id: voidSignatureRequest
| Name | In | Type | Description |
|---|---|---|---|
envelope_id required | path | string | E-signature request id (from List e-signature requests). |
Content types: application/json, application/x-www-form-urlencoded.
| Field | Type | Description |
|---|---|---|
reason | string | Optional, shown to the waiting recipients. |
curl -X POST https://www.helprange.com/api/v2/signature-requests/9f1c2e7a4b/void \
-H "X-API-Key: $HELPRANGE_API_KEY" \
-H 'Content-Type: application/json' \
--data-binary '{"reason": "Wrong version"}'
const res = await fetch('https://www.helprange.com/api/v2/signature-requests/9f1c2e7a4b/void', {
method: 'POST',
headers: {'X-API-Key': process.env.HELPRANGE_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({
"reason": "Wrong version"
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${res.status}: ${data.error || data.message || data.reason}`);
console.log(data);
import os
import requests
r = requests.post(
'https://www.helprange.com/api/v2/signature-requests/9f1c2e7a4b/void',
headers={'X-API-Key': os.environ['HELPRANGE_API_KEY']},
json={
"reason": "Wrong version",
},
timeout=60,
)
r.raise_for_status()
print(r.json())
The samples read the key from the HELPRANGE_API_KEY environment variable.
| Status | Description |
|---|---|
200 | OK |
400 | Invalid input – the message says which parameter. |
401 | Missing or invalid API key / OAuth token. Team keys: code invalid_key, key_revoked, key_expired or key_owner_removed. |
402 | Your plan does not include the REST API (or this feature). |
403 | The team API key lacks the scope this endpoint needs. |
404 | Not found – or not yours (the API never says which). |
405 | Wrong HTTP method for this endpoint. |
429 | A usage limit was reached – wait Retry-After seconds. |
{
"id": "9f1c2e7a4b",
"title": "Mutual NDA",
"status": "voided",
"status_label": "Voided",
"sender": "Ann Admin",
"document_id": 250,
"data_room": null,
"created_at": "2026-11-10T08:00:00+00:00",
"sent_at": "2026-11-10T08:00:02+00:00",
"expires_at": "2026-12-10T22:59:59+00:00",
"completed_at": null,
"ended_at": "2026-11-11T10:00:00+00:00",
"signed": 0,
"recipients_count": 2,
"url": "https://www.helprange.com/user/signature-doc?signatureId=9f1c2e7a4b"
}
Uses your real account. The request goes from your browser straight to www.helprange.com with your API key and acts as you – this POST changes data. The key stays in this page (in this tab's session storage only if you tick the box), is never put in a URL and is not sent to analytics. Do not paste a key on a shared computer.