The Short Answer: Use EnvelopeRecipients:update With resend_envelope=true
There is no dedicated POST /recipients/{recipientId}/resend endpoint in the DocuSign eSignature REST API v2.1. Some third-party blog posts and AI-generated snippets reference one, but it does not appear in the official EnvelopeRecipients resource documentation — verify any endpoint against the official API reference or your sandbox before you build on it. The documented way to resend an envelope notification to a specific signer is the recipient-update call with a query parameter:
```
PUT /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/recipients?resend_envelope=true
```
The request body lists the signer you want to notify again — identified by recipientId — and DocuSign sends a fresh notification to that recipient, provided the envelope is still in progress and the recipient has not completed their work. If you want to nudge every pending recipient at once, DocuSign documents a simpler alternative: call Envelopes:update on the envelope with resend_envelope=true and an empty body. Both patterns below come straight from DocuSign's own developer materials.
How resend_envelope Routes Notifications to Specific Recipients
The resend_envelope query parameter is a boolean flag available on two endpoints, and its documented meaning is consistent across both: when set to true, the envelope is resent to recipients that have not completed their work. What controls which recipients hear from you is the request body.
With EnvelopeRecipients:update (PUT .../envelopes/{envelopeId}/recipients?resend_envelope=true), you submit a recipients object — most commonly a signers array — where each entry names a recipientId together with the name and email DocuSign expects on an update. Only the recipients you list are targeted. This is the call to use when one signer lost the email, went quiet, or needs to see a corrected document, while everyone else in the routing order should not be spammed again.
With Envelopes:update (PUT .../envelopes/{envelopeId}?resend_envelope=true and an empty {} body), DocuSign resends to all pending recipients — everyone who has not yet acted and is in line for the envelope. DocuSign's developer blog on resending email notifications after updates recommends this variant precisely because it is simpler when you do not need per-recipient targeting.
Two access rules frame both calls. You can only resend an envelope your integration has access to — one you sent yourself or that was shared with you through Shared Access, as DocuSign's common API tasks guide notes. And the resend reaches recipients who are next in line to act; it re-sends the same email (and SMS, if that channel was configured) as the original notification.
Finding the Signer's recipientId Before You Resend
Targeting a specific signer means knowing that signer's recipientId — a caller-defined identifier, unique within the envelope, that you assigned when the envelope was created. It is not the signer's email or DocuSign's internal userId. Tabs and fields are anchored to it as well, which is why recipient-scoped data operations — like extracting tab and form data from a signed document — also key off recipientId.
If you did not persist the IDs when the envelope was sent, retrieve them with EnvelopeRecipients:list:
```bash
curl -s "{baseUrl}/restapi/v2.1/accounts/{$ACCOUNT_ID}/envelopes/{$ENVELOPE_ID}/recipients" \
--header "Authorization: Bearer {$ACCESS_TOKEN}" \
--header "Accept: application/json"
```
The response groups recipients by type (signers, carbonCopies, and so on). For each signer, read recipientId, routingOrder, status, name, and email. Three fields matter for a resend decision:
- recipientId — the identifier you will echo back in the resend body.
- status — a signer who already
completedwill not benefit from a resend; you are looking forsentordeliveredrecipients who have not finished. - routingOrder — signers whose turn has not come yet have not received the envelope in the first place, so a targeted resend is aimed at the current active order.
Resending to One Signer, Then to All Pending Recipients
Here is the targeted resend, following DocuSign's documented example. The body updates the named signer and, because resend_envelope=true, triggers a new notification to them:
```bash
curl -s --request PUT \
"{baseUrl}/restapi/v2.1/accounts/{$ACCOUNT_ID}/envelopes/{$ENVELOPE_ID}/recipients?resend_envelope=true" \
--header "Authorization: Bearer {$ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"signers": [
{
"recipientId": "1",
"name": "Bob Zhang",
"email": "bob.zhang@example.com",
"note": "The document was updated — please review and sign."
}
]
}'
```
The note property is worth knowing about. DocuSign's developer blog points out that the email subject and body cannot be changed once the envelope is sent, but you can leave a private message per recipient via note, and the recipient sees that message in the email notification. It is the only practical way to customize what a resend says. Recipient-level visibility rules are subtle in multi-recipient envelopes — the same reason CC recipients and private fields deserve their own review — so test notes in the sandbox before relying on them in production.
And the broadcast variant, when every pending recipient should be nudged:
```bash
curl -s --request PUT \
"{baseUrl}/restapi/v2.1/accounts/{$ACCOUNT_ID}/envelopes/{$ENVELOPE_ID}?resend_envelope=true" \
--header "Authorization: Bearer {$ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data '{}'
```
DocuSign's developer FAQ confirms this exact pattern — the envelopes endpoint with resend_envelope=true and an empty body — as the standard way to resend programmatically. Treat any non-2xx response as a signal to re-check envelope status and permissions before retrying; specific error behavior varies with account configuration, so confirm it in your sandbox.
What a Resend Cannot Change: Status, Content, and Delivery Rules
The resend mechanism is deliberately narrow. Knowing its edges saves debugging time:
- Envelope status gates everything. You cannot resend envelopes in
draft,voided, orcompletedstatus. The envelope must be in progress, awaiting its next set of recipients. - Completed signers are out of scope. A resend informs recipients who still need to act. If a signer already finished, their evidence lives in the completion record — see the DocuSign Certificate of Completion for what is captured there.
- Email subject and body are frozen. Only the per-recipient
noteadds new visible text. - The original email still works. Recipients can reach the envelope through the original notification; a resend simply reminds them it is waiting. After a document correction, the resend is the explicit trigger — correcting an envelope does not automatically notify anyone, even with the "sender corrects an envelope" account setting enabled.
- Embedded signers are a different path. Recipients created with
clientUserIdfor embedded signing do not receive email notifications by design; resending is a remote-signing concept.
If envelopes carry documents that change after sending, remember that DocuSign's documented workflow for updating a sent envelope is: lock the envelope, update the document or tabs, unlock, then resend the notification. Skipping the lock risks concurrent-edit conflicts between your integration, the sender, and the recipient.
Resend or Remind? A Decision Table for Follow-Up Workflows
Ad-hoc resends are one tool among three. Picking the wrong one is how teams end up either spamming signers or silently waiting forever:
The reminders row hides the gotcha most teams hit: envelopes created through the API without a notification object get the API default — a 120-day expiration and no reminders at all, regardless of the account's web UI settings. DocuSign's default API reminder and expiration settings explainer is blunt about it: to get anything other than the default, you must specify it in the API call, either per-envelope (reminderEnabled, reminderDelay, reminderFrequency) or by setting useAccountDefaults: true. A follow-up feature that resends API envelopes is not "extra" — for many integrations it is the only reminder mechanism that will ever fire.
Volume is the other planning input. Every resend is an API call against your plan's limits, and follow-up automation multiplies call counts faster than sends alone — the same dynamic behind API rate-limit and pricing comparisons. Budget resends into your rate model instead of discovering them at peak.
Follow-Up That Scales With Your Sends, Not Your Seats: Nota Sign
What changes when reminder logic moves from an occasional script to a core part of your product? The platform stops being a vendor choice and becomes part of your architecture — its pricing model, its compliance reach, its API behavior at your volume.
Nota Sign, FaDaDa's global e-signature platform, is built for that shift. FaDaDa has topped IDC's China e-signature software rankings for years running, and the platform's strengths map onto automated sending one by one: legal validity in 100+ countries and regions means a resent notification carries the same weight in every market; APAC compliance depth — Singpass, iAM Smart, SES/AES/QES, regional data centers — covers the identity layers cross-border products bolt on late; and with no per-seat fees, every automated nudge scales with document volume, not headcount — friendly for small teams, with tailored plans for mid-market and enterprise.
Our developer guide to API-driven signing workflows shows the integration surface. When you are ready to test reminder and resend behavior at your volumes, talk to us.








