# Update Document Recipient Modify recipient's personal details. > ๐Ÿšง Before you start > > To edit a recipient, please ensure that you have the 'Can Edit Document' permission. Use this endpoint to easily fix typos in a recipient's name or email, or to change any other recipient information in a sent document. > ๐Ÿ“˜ Please note that changes made to a recipient within a document will also update their `Contact` information. However, these changes will not update information about this recipient in other documents where they have already been added. ### Document status - You can edit a signer in the following document statuses: - 'Draft' (`document.draft`), - 'Waiting Approval' (`document.waiting_approval`), - 'Approved' (`document.approved`), - 'Rejected' (`document.rejected`), - 'Sent' (`document.sent`), - 'Viewed' (`document.viewed`), but only until they have signed the document. - You can edit a CC recipient in any document status **except**: - 'Expired' (`document.voided`), - 'Declined' (`document.declined`). > ๐Ÿ“˜ Updating a recipient's email after sending a document > > **Note**: If you update a recipient's email address after sending a document, they will receive an instant notification at the new email address, allowing them access to the document. Access via the previous email will be revoked. ### Restrictions for updating a recipient's email - You cannot change emails of PandaDoc users. - You cannot use the email addresses of existing contacts. If you need to use an email from an existing contact, use the [Change Signer](https://developers.pandadoc.com/reference/change-signer) endpoint to replace a signer with this contact. # OpenAPI definition ```json { "openapi": "3.0.3", "info": { "title": "PandaDoc Public API", "description": "PandaDoc API spans a broad range of functionality to help you build incredible documents automation experiences inside your product.\n\nPandaDoc API is organized around REST. Our API has predictable resource-oriented URLs and uses standard HTTP response codes, authentication, and verbs.\n\n## Getting started\n\nYou can start testing PandaDoc API with a sandbox key on our [Enterprise](https://www.pandadoc.com/pricing/) plan, either active or in trial.\n\nGenerate your [sandbox key](https://developers.pandadoc.com/reference/sandbox-key) on the Developer Dashboard with predefined [rate limits](https://developers.pandadoc.com/reference/limits). Or contact our solutions expert if you work with high-transaction volumes.\n\n## Guides\n\nIf youโ€™re just getting started with PandaDoc, you may want to jump straight into one of our [getting started guides](https://developers.pandadoc.com/docs/getting-started) for the feature youโ€™re most interested in, whether thatโ€™s:\n\n- [Create from template](https://developers.pandadoc.com/docs/create-send-document),\n- [Upload and send a local PDF](https://developers.pandadoc.com/docs/upload-and-send-a-local-pdf),\n- or [Listening for changes in document status](https://developers.pandadoc.com/docs/listen-document-status-changes).\n\nWe also recommend you to discover our dynamic content generation on a fly: [Create from a template with content placeholder](https://developers.pandadoc.com/docs/create-with-content-placeholders-from-template).\n", "termsOfService": "https://www.pandadoc.com/master-services-agreement/", "contact": { "name": "PandaDoc API Support", "url": "https://developers.pandadoc.com/", "email": "api-track@pandadoc.com" }, "license": { "name": "MIT", "url": "https://github.com/PandaDoc/pandadoc-openapi-specification/blob/main/LICENSE" }, "version": "7.18.2" }, "servers": [ { "url": "https://api.pandadoc.com", "description": "Public API" } ], "security": [ { "apiKey": [] }, { "oauth2": [] } ], "tags": [ { "name": "Document Recipients", "description": "Operations for managing recipients in documents, including adding, editing, reassigning, and deleting recipients." } ], "paths": { "/public/v1/documents/{id}/recipients/recipient/{recipient_id}": { "patch": { "summary": "Update Document Recipient", "description": "Modify recipient's personal details.\n\n> ๐Ÿšง Before you start\n> \n> To edit a recipient, please ensure that you have the 'Can Edit Document' permission.\n\nUse this endpoint to easily fix typos in a recipient's name or email, or to change any other recipient information in a sent document. \n\n> ๐Ÿ“˜ Please note that changes made to a recipient within a document will also update their `Contact` information. However, these changes will not update information about this recipient in other documents where they have already been added.\n\n### Document status\n\n- You can edit a signer in the following document statuses:\n - 'Draft' (`document.draft`),\n - 'Waiting Approval' (`document.waiting_approval`),\n - 'Approved' (`document.approved`),\n - 'Rejected' (`document.rejected`),\n - 'Sent' (`document.sent`),\n - 'Viewed' (`document.viewed`), but only until they have signed the document.\n- You can edit a CC recipient in any document status **except**:\n - 'Expired' (`document.voided`),\n - 'Declined' (`document.declined`).\n\n> ๐Ÿ“˜ Updating a recipient's email after sending a document\n> \n> **Note**: If you update a recipient's email address after sending a document, they will receive an instant notification at the new email address, allowing them access to the document. Access via the previous email will be revoked.\n\n### Restrictions for updating a recipient's email\n\n- You cannot change emails of PandaDoc users.\n- You cannot use the email addresses of existing contacts. If you need to use an email from an existing contact, use the [Change Signer](https://developers.pandadoc.com/reference/change-signer) endpoint to replace a signer with this contact.\n", "operationId": "editDocumentRecipient", "tags": [ "Document Recipients" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "recipient_id", "in": "path", "description": "Recipient UUID.", "schema": { "type": "string" }, "required": true, "example": "tf5dGS3Tmu3cj228ao6fnc" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentRecipientEditRequest" }, "examples": { "Update Document Recipient": { "value": { "first_name": "New First Name", "last_name": "New Last Name", "phone": "+3511111111111", "company": "PandaDoc", "title": "", "street_address": "", "city": "", "state": "", "postal_code": "", "country": "" } } } } } }, "responses": { "204": { "description": "No content" }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } } }, "components": { "securitySchemes": { "apiKey": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "The `Authorization` header must contain the API key. The value should be prefixed with `API-Key` followed by a space and the actual API key.\n", "x-default": "API-Key 3039ba033eb1410caa0a2227158d63c9d6502cd8" }, "oauth2": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://app.pandadoc.com/oauth2/authorize", "tokenUrl": "https://api.pandadoc.com/oauth2/access_token", "refreshUrl": "https://api.pandadoc.com/oauth2/access_token", "scopes": { "read+write": "Use `read+write` to create, send, delete, and download documents, and `read` to view templates and document details." } } }, "description": "Send the authenticating user to the PandaDoc OAuth2 request URL. We recommend a button or a link titled\n\"Connect to PandaDoc\" if you are connecting users from a custom application. Users will see the \"Authorize Application\" screen.\nWhen the user clicks \"Authorize\", PandaDoc redirects the user back to your site with an authorization code inside the URL.\n\nhttps://app.pandadoc.com/oauth2/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope=read+write&response_type=code\n\n`client_id` and `redirect_uri` values should match your application settings.\n" } }, "schemas": { "RecipientDeliveryMethods": { "type": "object", "nullable": true, "properties": { "email": { "type": "boolean" }, "sms": { "type": "boolean" } } }, "RecipientRedirect": { "type": "object", "properties": { "is_enabled": { "type": "boolean", "default": false }, "url": { "type": "string", "nullable": true, "default": null, "example": "https://example.com", "description": "A URL to redirect to after the document is signed." } }, "required": [ "is_enabled", "url" ] }, "RecipientVerificationPlaceEnum": { "description": "Specifies when a recipient must complete the verification process:\n- `before_open` (before opening the document),\n- `before_sign` (before signing the document).\n", "type": "string", "enum": [ "before_open", "before_sign" ] }, "RecipientVerificationSettings": { "type": "object", "nullable": true, "description": "To set up recipient verification, fill in verification_place and specify the type: passcode_verification, phone_verification, kba_verification or id_verification.\n- For passcode_verification, provide the passcode.\n- For phone_verification, provide the phone_number.\n- For kba_verification and id_verification, set the enabled parameter to true.\n", "properties": { "verification_place": { "$ref": "#/components/schemas/RecipientVerificationPlaceEnum" }, "passcode_verification": { "type": "object", "description": "Sets the passcode.", "properties": { "passcode": { "type": "string", "pattern": "^(?=(?:.*[a-zA-Z]){1,})(?=(?:.*[0-9]){1,})^[\\S]{6,100}$", "example": "SimpleCode1", "description": "Document passcode." } }, "required": [ "passcode" ], "nullable": true }, "phone_verification": { "type": "object", "description": "Sets the phone number to send a passcode to.", "properties": { "phone_number": { "type": "string", "pattern": "^\\+[1-9]\\d{0,4}\\d{2,14}$", "example": "+1234567890", "description": "A phone number to send a passcode to." } }, "required": [ "phone_number" ] }, "kba_verification": { "type": "object", "description": "Sets the KBA verification.", "properties": { "time_limit_sec": { "type": "integer", "example": 120 }, "score_threshold": { "type": "integer", "example": 80 }, "max_attempts_count": { "type": "integer", "example": 2 } } }, "id_verification": { "type": "object", "description": "Sets the ID verification.", "properties": { "enabled": { "type": "boolean", "example": true } } } } }, "DocumentRecipientEditRequest": { "type": "object", "properties": { "email": { "type": "string", "nullable": true, "example": "user01@pandadoc.com", "description": "You cannot use the email of another contact when updating a recipient contact." }, "phone": { "type": "string", "nullable": true, "example": "+14842634627" }, "delivery_methods": { "$ref": "#/components/schemas/RecipientDeliveryMethods" }, "first_name": { "type": "string", "nullable": true, "example": "John" }, "last_name": { "type": "string", "nullable": true, "example": "Doe" }, "company": { "type": "string", "nullable": true, "example": "John Doe Inc." }, "job_title": { "type": "string", "nullable": true, "example": "CTO" }, "state": { "type": "string", "nullable": true, "example": "Texas" }, "street_address": { "type": "string", "nullable": true, "example": "1313 Mockingbird Lane" }, "city": { "type": "string", "nullable": true, "example": "Austin" }, "postal_code": { "type": "string", "nullable": true, "example": "75001" }, "verification_settings": { "$ref": "#/components/schemas/RecipientVerificationSettings" }, "redirect": { "$ref": "#/components/schemas/RecipientRedirect" } } } }, "responses": { "401": { "description": "Authentication error", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "authentication_error" }, "detail": { "type": "string", "example": "Authentication credentials were not provided." } } } } } }, "403": { "description": "Permission error", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "permission_error" }, "detail": { "type": "string", "example": "You do not have permission to perform this action." }, "info_message": { "type": "string", "description": "Human-readable explanation of the permission error.", "example": "You are not allowed to send documents outside of your organization" }, "links": { "type": "array", "description": "Optional links related to the error (e.g. a status endpoint).", "items": { "type": "object", "properties": { "rel": { "type": "string", "example": "status" }, "href": { "type": "string", "example": "https://api.pandadoc.com/public/v1/documents/RsXrKarV524iCpjci9CMGa" }, "type": { "type": "string", "example": "POST" } } } } } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "string", "example": "Not found" } } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "throttled" }, "detail": { "type": "string", "example": "Request was throttled." } } } } } }, "400RequestError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "object", "example": { "count": [ "A valid integer is required." ], "order_by": [ "value is not a valid choice." ] } } } } } } } } } } ```