Pandadoc
No catalog description yet.
Authentication
| Method | Kind | Status | Details |
|---|---|---|---|
| OAuth 2.0 | oauth2 | available | — |
Call a tool
import { createClient } from "@open-connector/sdk";const oc = createClient({ baseUrl: "https://api.openconnector.dev", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await oc.executeTool({ slug: "PANDADOC_ACCESS_TOKEN", connectedAccountId: "conn_...", arguments: { /* match this tool's input schema */ },});import Composio from "@composio/client";const composio = new Composio({ baseURL: "https://api.openconnector.dev/composio", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await composio.tools.execute("PANDADOC_ACCESS_TOKEN", { connected_account_id: "conn_...", arguments: { /* match this tool's input schema */ },});oc tools execute PANDADOC_ACCESS_TOKEN --data '{ }'Tool catalog
Available tools
122 callable operations
Create/Refresh Access TokenPANDADOC_ACCESS_TOKENCreate or refresh an access token to make requests on behalf of a user. This endpoint is used to obtain an `access_token` and `refresh_token` for the first time, and to refresh the `access_token` when it expires. This endpoint is part of OAuth 2.0 implementation. You need to configure OAuth App to obtain `client_id` and `client_secret`. Read more about [OAuth 2.0 implementation](https://developers.pandadoc.com/reference/authentication-process). Make sure you're sending the header `Content-Type: application/x-www-form-urlencoded`. ## Create Access Token As a result of the OAuth 2.0 user authentication process, you should get a `code` that can be exchanged for an `access_token`. Use this endpoint to do this exchange, and to refresh the token later. > 🚧 Invalid Grant? > > If you receive an `invalid grant` response it is likely because you used the same `code` more than once from the [Authorize a PandaDoc User](ref:authorize-a-user) step above. The `code` parameter is generated for one-time use. A new `code` value must be generated if you wish to change API users, permissions, or simply generate a new `code` value for the same PandaDoc user. > 📘 expires_in > > `expires_in` is based in seconds. Currently, a token expires in 31535999 seconds = 1 year. ## Refresh Access Token Eventually, `access_token` expires and accessing an API method returns **401 unauthorized**. Your application needs to refresh the OAuth2 token with the stored `refresh_token` returned when initially creating an access token. Once refreshed, calls on behalf of the originally authorized user can resume immediately. Use the newly returned `access_token` for all future API requests. > 🚧 Invalid Grant? > > If you receive an `invalid grant` response, it is likely because your `refresh_token` is invalid.Connection
Create or refresh an access token to make requests on behalf of a user. This endpoint is used to obtain an `access_token` and `refresh_token` for the first time, and to refresh the `access_token` when it expires. This endpoint is part of OAuth 2.0 implementation. You need to configure OAuth App to obtain `client_id` and `client_secret`. Read more about [OAuth 2.0 implementation](https://developers.pandadoc.com/reference/authentication-process). Make sure you're sending the header `Content-Type: application/x-www-form-urlencoded`. ## Create Access Token As a result of the OAuth 2.0 user authentication process, you should get a `code` that can be exchanged for an `access_token`. Use this endpoint to do this exchange, and to refresh the token later. > 🚧 Invalid Grant? > > If you receive an `invalid grant` response it is likely because you used the same `code` more than once from the [Authorize a PandaDoc User](ref:authorize-a-user) step above. The `code` parameter is generated for one-time use. A new `code` value must be generated if you wish to change API users, permissions, or simply generate a new `code` value for the same PandaDoc user. > 📘 expires_in > > `expires_in` is based in seconds. Currently, a token expires in 31535999 seconds = 1 year. ## Refresh Access Token Eventually, `access_token` expires and accessing an API method returns **401 unauthorized**. Your application needs to refresh the OAuth2 token with the stored `refresh_token` returned when initially creating an access token. Once refreshed, calls on behalf of the originally authorized user can resume immediately. Use the newly returned `access_token` for all future API requests. > 🚧 Invalid Grant? > > If you receive an `invalid grant` response, it is likely because your `refresh_token` is invalid.
Authentication
Connected account requiredTags
Add Document RecipientPANDADOC_ADD_DOCUMENT_RECIPIENTAdd a CC recipient to a document. > 🚧 Before you start > > To add a CC recipient, please ensure that: > > - You have the 'Can Manage Recipients' permission. > - This recipient is already created in your contacts. If not, add them using the [Create Contact](https://developers.pandadoc.com/reference/create-contact) endpoint. To add a new CC recipient to a document, two parameters must be included in the request body: - `kind`: Set this parameter to `contact` to specify an individual contact. - `id`: Input the ID of the desired contact. To retrieve the contact's ID, use the [List Contacts](https://developers.pandadoc.com/reference/list-contacts) endpoint to access a list of all contacts, and then locate the desired contact by searching using the name or email address within the returned list. ### Document status You can add CC recipients in any document status except for the 'Expired' (`document.voided`) and 'Declined' (`document.declined`). > 📘 Email notification to access the document > > **Note**: When a document is in one of the following statuses: 'Sent' (`document.sent`), 'Viewed' (`document.viewed`), 'Completed' (`document.completed`), 'Waiting for Payment' (`document.waiting_pay`), or 'Paid' (`document.paid`), any added CC recipient will receive an instant notification at their email address, allowing them access to the document.Connection
Add a CC recipient to a document. > 🚧 Before you start > > To add a CC recipient, please ensure that: > > - You have the 'Can Manage Recipients' permission. > - This recipient is already created in your contacts. If not, add them using the [Create Contact](https://developers.pandadoc.com/reference/create-contact) endpoint. To add a new CC recipient to a document, two parameters must be included in the request body: - `kind`: Set this parameter to `contact` to specify an individual contact. - `id`: Input the ID of the desired contact. To retrieve the contact's ID, use the [List Contacts](https://developers.pandadoc.com/reference/list-contacts) endpoint to access a list of all contacts, and then locate the desired contact by searching using the name or email address within the returned list. ### Document status You can add CC recipients in any document status except for the 'Expired' (`document.voided`) and 'Declined' (`document.declined`). > 📘 Email notification to access the document > > **Note**: When a document is in one of the following statuses: 'Sent' (`document.sent`), 'Viewed' (`document.viewed`), 'Completed' (`document.completed`), 'Waiting for Payment' (`document.waiting_pay`), or 'Paid' (`document.paid`), any added CC recipient will receive an instant notification at their email address, allowing them access to the document.
Authentication
Connected account requiredTags
Add DSV Named Items to a DocumentPANDADOC_ADD_DSV_NAMED_ITEMSAdds one or more named items to the specified document by ID. These items define the document's structure and hierarchy (e.g., sections or headings) for display or navigation purposes within the Document Structure View (DSV).Connection
Adds one or more named items to the specified document by ID. These items define the document's structure and hierarchy (e.g., sections or headings) for display or navigation purposes within the Document Structure View (DSV).
Authentication
Connected account requiredTags
Add Member to WorkspacePANDADOC_ADD_MEMBERAdd an existing user to a workspace. - You must be an organization admin or a workspace admin to add members.Connection
Add an existing user to a workspace. - You must be an organization admin or a workspace admin to add members.
Authentication
Connected account requiredTags
Append Content Library Item to a documentPANDADOC_APPEND_CONTENT_LIBRARY_ITEM_TO_DOCUMENTAppends a Content Library Item (CLI) to a document and provides a name mapping for its content blocks.Connection
Appends a Content Library Item (CLI) to a document and provides a name mapping for its content blocks.
Authentication
Connected account requiredTags
[Beta] Get AI Metadata for Multiple DocumentsPANDADOC_BATCH_GET_DOCUMENT_AI_METADATAReturns AI metadata for a list of documents in a single request. The batch variant of <a href="#/operations/getDocumentAiMetadata">Get AI Metadata for a Document</a>. Use this endpoint when you need AI metadata for several documents and want to avoid issuing one request per document. Each `results[]` entry mirrors the per-document outcome of the single-document endpoint. ### Partial-success model The response is always `200 OK` when the request itself is valid and the caller is authenticated. Per-document outcomes are reported inside `results[]` via a `status` discriminator. A failure for one document (not found, access denied, isolated server-side failure) does not fail the whole request — the response still returns successful entries for the rest. Per-document `status` values mirror the HTTP semantics of the single-document endpoint: | Single-document HTTP | Batch `status` | Notes | | -------------------- | -------------------------- | ---------------------------------------------------------------------------------- | | `200` | `ok` | `ai_metadata` carries the same payload as the single-document `200` body. | | `202` | `extraction_pending` | Includes `retry_after` (seconds). Retry the whole batch or just this `document_id`.| | `204` | `extraction_failed` | Terminal. Retrying will not help — contact support. | | `409` | `extraction_not_started` | Typically because the document is not yet completed. | | `404` | `not_found` | Document does not exist or is deleted. | | `403` | `access_denied` | Caller cannot access this specific document. | | _(none — batch only)_| `internal_error` | Isolated server-side failure for this document. Retrying the affected document is safe. | Top-level non-`2xx` responses (`400`, `401`, `403`, `429`) are reserved for whole-request failures — for example, request validation, missing or invalid authentication, the caller has no read scope at all, or rate limiting. > 🚧 **Beta** > > This endpoint is currently in beta and may change without notice.Connection
Returns AI metadata for a list of documents in a single request. The batch variant of <a href="#/operations/getDocumentAiMetadata">Get AI Metadata for a Document</a>. Use this endpoint when you need AI metadata for several documents and want to avoid issuing one request per document. Each `results[]` entry mirrors the per-document outcome of the single-document endpoint. ### Partial-success model The response is always `200 OK` when the request itself is valid and the caller is authenticated. Per-document outcomes are reported inside `results[]` via a `status` discriminator. A failure for one document (not found, access denied, isolated server-side failure) does not fail the whole request — the response still returns successful entries for the rest. Per-document `status` values mirror the HTTP semantics of the single-document endpoint: | Single-document HTTP | Batch `status` | Notes | | -------------------- | -------------------------- | ---------------------------------------------------------------------------------- | | `200` | `ok` | `ai_metadata` carries the same payload as the single-document `200` body. | | `202` | `extraction_pending` | Includes `retry_after` (seconds). Retry the whole batch or just this `document_id`.| | `204` | `extraction_failed` | Terminal. Retrying will not help — contact support. | | `409` | `extraction_not_started` | Typically because the document is not yet completed. | | `404` | `not_found` | Document does not exist or is deleted. | | `403` | `access_denied` | Caller cannot access this specific document. | | _(none — batch only)_| `internal_error` | Isolated server-side failure for this document. Retrying the affected document is safe. | Top-level non-`2xx` responses (`400`, `401`, `403`, `429`) are reserved for whole-request failures — for example, request validation, missing or invalid authentication, the caller has no read scope at all, or rate limiting. > 🚧 **Beta** > > This endpoint is currently in beta and may change without notice.
Authentication
Connected account requiredTags
Delete documents (bulk)PANDADOC_BULK_DELETE_DOCUMENTSDelete multiple documents in one request by sending a JSON array. Each element must be an object with an `id` field (the document ID, same value as elsewhere in the Documents API). The caller must have permission to delete each document. Documents must belong to the authenticated workspace. This batch operation returns **200 OK** with a JSON body containing an `id` array of deleted document IDs. That differs from [Delete Document](#operation/deleteDocument) (`DELETE /public/v1/documents/{id}`), which returns **204 No Content** for a single document.Connection
Delete multiple documents in one request by sending a JSON array. Each element must be an object with an `id` field (the document ID, same value as elsewhere in the Documents API). The caller must have permission to delete each document. Documents must belong to the authenticated workspace. This batch operation returns **200 OK** with a JSON body containing an `id` array of deleted document IDs. That differs from [Delete Document](#operation/deleteDocument) (`DELETE /public/v1/documents/{id}`), which returns **204 No Content** for a single document.
Authentication
Connected account requiredTags
Document Status ChangePANDADOC_CHANGE_DOCUMENT_STATUSPandaDoc has eight document statuses, but you can manually set your document status to only four: ### Document statuses - Completed - `document.completed` - API code `2` - Expired - `document.voided` - code `11` - Paid - `document.paid` - code `10`. **Important**: You can only set it if you have a payment app connected. - Declined - `document.declined` - code `12` > 🚧 Pass a numeric code for the corresponding document status, for example, `2` for `document.completed`. Find more details in [\[Editor 2.0\] Manually change document status](https://support.pandadoc.com/en/articles/9714842-manually-change-document-status) topic. | Current Status | To Completed: | To Expired: | To Paid: | To Declined: | |----------------|---------------|-------------|----------|--------------| | Draft | YES | NO | YES | YES | | Approved | NO | NO | NO | NO | | Sent | YES | YES | NO | YES | | Viewed | YES | YES | NO | YES | | Completed (Auto) | NO | NO | NO | YES | | Waithing for payment | NO | NO | YES | YES | | Paid | NO | NO | NO | NO | | Expired | YES | NO | YES | YES | | Declined | YES | NO | YES | NO | > ✅ - from `document.voided` to `document.paid` > > ❌ - from `document.paid` to `document.voided`Connection
PandaDoc has eight document statuses, but you can manually set your document status to only four: ### Document statuses - Completed - `document.completed` - API code `2` - Expired - `document.voided` - code `11` - Paid - `document.paid` - code `10`. **Important**: You can only set it if you have a payment app connected. - Declined - `document.declined` - code `12` > 🚧 Pass a numeric code for the corresponding document status, for example, `2` for `document.completed`. Find more details in [\[Editor 2.0\] Manually change document status](https://support.pandadoc.com/en/articles/9714842-manually-change-document-status) topic. | Current Status | To Completed: | To Expired: | To Paid: | To Declined: | |----------------|---------------|-------------|----------|--------------| | Draft | YES | NO | YES | YES | | Approved | NO | NO | NO | NO | | Sent | YES | YES | NO | YES | | Viewed | YES | YES | NO | YES | | Completed (Auto) | NO | NO | NO | YES | | Waithing for payment | NO | NO | YES | YES | | Paid | NO | NO | NO | NO | | Expired | YES | NO | YES | YES | | Declined | YES | NO | YES | NO | > ✅ - from `document.voided` to `document.paid` > > ❌ - from `document.paid` to `document.voided`
Authentication
Connected account requiredTags
Change Member Role in WorkspacePANDADOC_CHANGE_MEMBER_ROLEChange the role of an existing workspace member. - You must be an organization admin, a workspace admin, or hold a role with permission to edit member roles to call this endpoint. - The `role` field accepts either a built-in role name (`Admin`, `Manager`, `Member`, `Collaborator`) or the name of a custom role defined for the workspace. - The role of the workspace owner cannot be changed. - The role of the last member with admin privileges in the workspace cannot be changed. - When a member with a `Guest` license is promoted to any non-`Collaborator` role, the user's license is automatically upgraded to `Full (Standard)`. If the organization has no free seats available, an additional seat is purchased.Connection
Change the role of an existing workspace member. - You must be an organization admin, a workspace admin, or hold a role with permission to edit member roles to call this endpoint. - The `role` field accepts either a built-in role name (`Admin`, `Manager`, `Member`, `Collaborator`) or the name of a custom role defined for the workspace. - The role of the workspace owner cannot be changed. - The role of the last member with admin privileges in the workspace cannot be changed. - When a member with a `Guest` license is promoted to any non-`Collaborator` role, the user's license is automatically upgraded to `Full (Standard)`. If the organization has no free seats available, an additional seat is purchased.
Authentication
Connected account requiredTags
Create API KeyPANDADOC_CREATE_API_KEYGenerate a new API key for the workspace. Check out [API Key Authentication article](https://developers.pandadoc.com/reference/api-key-authentication-process) for detailed API Keys description. > 📘 > - Only an **Org Admin** can generate an API keys. > - To make another user a key's owner, pass `user_id` of this user. The user should has an **Admin** role in the workspace. > - Generating a new key invalidates existing key with the same type. Using this request, you can deactivate the key you're using for the request.Connection
Generate a new API key for the workspace. Check out [API Key Authentication article](https://developers.pandadoc.com/reference/api-key-authentication-process) for detailed API Keys description. > 📘 > - Only an **Org Admin** can generate an API keys. > - To make another user a key's owner, pass `user_id` of this user. The user should has an **Admin** role in the workspace. > - Generating a new key invalidates existing key with the same type. Using this request, you can deactivate the key you're using for the request.
Authentication
Connected account requiredTags
Create Catalog ItemPANDADOC_CREATE_CATALOG_ITEMCreate a new catalog item.Connection
Create a new catalog item.
Authentication
Connected account requiredTags
Create contactPANDADOC_CREATE_CONTACTThis method adds a contact into a contacts list.Connection
This method adds a contact into a contacts list.
Authentication
Connected account requiredTags
Create Content Library ItemPANDADOC_CREATE_CONTENT_LIBRARY_ITEMThis API endpoint allows users to create an empty item in the content library. No actual content or data is required to be provided in the initial creation.Connection
This API endpoint allows users to create an empty item in the content library. No actual content or data is required to be provided in the initial creation.
Authentication
Connected account requiredTags
Create DocumentPANDADOC_CREATE_DOCUMENT## Create from a template > See the [Create document from template](https://developers.pandadoc.com/docs/create-document-from-template) tutorial for details on how to use this endpoint, as well as a sample template. ## Create from a URL > See the [Create from public PDF](https://developers.pandadoc.com/docs/create-and-send-a-document-from-a-publicly-available-pdf) guide for info about roles and fields, as well as PDF examples.Connection
## Create from a template > See the [Create document from template](https://developers.pandadoc.com/docs/create-document-from-template) tutorial for details on how to use this endpoint, as well as a sample template. ## Create from a URL > See the [Create from public PDF](https://developers.pandadoc.com/docs/create-and-send-a-document-from-a-publicly-available-pdf) guide for info about roles and fields, as well as PDF examples.
Authentication
Connected account requiredTags
Create Document AttachmentPANDADOC_CREATE_DOCUMENT_ATTACHMENTCreates an attachment for a particular documentConnection
Creates an attachment for a particular document
Authentication
Connected account requiredTags
Create Document Editing SessionPANDADOC_CREATE_DOCUMENT_EDITING_SESSIONCreates a new editing session for the Embedded Editor. The response includes an E-Token, which is required to open the document. > 🚧 **Important:** The Embedded Editor can only open documents that have a `draft` status. #### Limitations - **Single Active Session per User-Document Pair** Only one editing session can be active at a time for a specific user and document. Creating a new session for the same user-document pair will automatically invalidate the previous one. - **Weekly Session Cap** A maximum of **250** editing sessions can be created for a single document per week. Any attempt to exceed this limit will result in a `403 Forbidden` error.Connection
Creates a new editing session for the Embedded Editor. The response includes an E-Token, which is required to open the document. > 🚧 **Important:** The Embedded Editor can only open documents that have a `draft` status. #### Limitations - **Single Active Session per User-Document Pair** Only one editing session can be active at a time for a specific user and document. Creating a new session for the same user-document pair will automatically invalidate the previous one. - **Weekly Session Cap** A maximum of **250** editing sessions can be created for a single document per week. Any attempt to exceed this limit will result in a `403 Forbidden` error.
Authentication
Connected account requiredTags
Create Document FieldsPANDADOC_CREATE_DOCUMENT_FIELDSCreates fields for a particular document. For CFR11-compliant workspaces (21 CFR Part 11), signature fields must have a minimum size of 108×33.Connection
Creates fields for a particular document. For CFR11-compliant workspaces (21 CFR Part 11), signature fields must have a minimum size of 108×33.
Authentication
Connected account requiredTags
Create Documents FolderPANDADOC_CREATE_DOCUMENT_FOLDERCreate a new folder to store your documents. For the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).Connection
Create a new folder to store your documents. For the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).
Authentication
Connected account requiredTags
Create Document Session for Embedded SignPANDADOC_CREATE_DOCUMENT_LINKCreates a document session for a recipient to view and sign a document. > 📘 How to create an Embedded Sign session > For more information on how to create an Embedded Sign session, see the [Embedded Signing](https://developers.pandadoc.com/docs/embedded-signing) documentation.Connection
Creates a document session for a recipient to view and sign a document. > 📘 How to create an Embedded Sign session > For more information on how to create an Embedded Sign session, see the [Embedded Signing](https://developers.pandadoc.com/docs/embedded-signing) documentation.
Authentication
Connected account requiredTags
[Beta] Create DOCX Export TaskPANDADOC_CREATE_EXPORT_DOCX_TASK> ⏱️ Export as DOCX is a non-blocking (asynchronous) operation > The document generation process may take some time. > With a successful request, you receive a response with task ID, status **created** and document id. After process completes, usually in a few minutes, the task status moves to the **done** state. > You can download documents up to 300 pages. For documents of 301+ pages, you will receive an error “400: The number of pages more then limit 300”Connection
> ⏱️ Export as DOCX is a non-blocking (asynchronous) operation > The document generation process may take some time. > With a successful request, you receive a response with task ID, status **created** and document id. After process completes, usually in a few minutes, the task status moves to the **done** state. > You can download documents up to 300 pages. For documents of 301+ pages, you will receive an error “400: The number of pages more then limit 300”
Authentication
Connected account requiredTags
Create Linked ObjectPANDADOC_CREATE_LINKED_OBJECTCreate a linked object in the document. > 🚧 > > You can only link each document to each CRM once. This ensures the consistent functionality of the [two-way CRM sync](https://support.pandadoc.com/en/articles/9714877-hubspot-crm#h_3a3344e8-2a6e-4fd8-86be-0da8c121e4ac). > > You can, however, link one document to several external systems.Connection
Create a linked object in the document. > 🚧 > > You can only link each document to each CRM once. This ensures the consistent functionality of the [two-way CRM sync](https://support.pandadoc.com/en/articles/9714877-hubspot-crm#h_3a3344e8-2a6e-4fd8-86be-0da8c121e4ac). > > You can, however, link one document to several external systems.
Authentication
Connected account requiredTags
Send Manual ReminderPANDADOC_CREATE_MANUAL_REMINDERSends manual reminders to one or more recipients of a specified document.Connection
Sends manual reminders to one or more recipients of a specified document.
Authentication
Connected account requiredTags
Create Member TokenPANDADOC_CREATE_MEMBER_TOKEN> 🚧 > > This endpoint is only exposed upon request. Please reach out to your Account Manager to get access. > 📘 > > Make sure you're using Public API keys generated by Org Admin, otherwise you'll receive a 403 response.Connection
> 🚧 > > This endpoint is only exposed upon request. Please reach out to your Account Manager to get access. > 📘 > > Make sure you're using Public API keys generated by Org Admin, otherwise you'll receive a 403 response.
Authentication
Connected account requiredTags
Create Notarization RequestPANDADOC_CREATE_NOTARIZATION_REQUESTCreate a notarization request to connect with a notary and complete online notarizations for your signers within minutes. > 🚧 **Important:** This endpoint supports only documents in draft status. ## Prerequisites > 🚧 Before you start > > Ensure the following before creating a notarization request: > > - Install the Notary On-Demand or Notary add-on > - Create a document for notarization and get its `document_id`. To create a document, use the [Create Document from Template](https://developers.pandadoc.com/reference/create-document-from-pandadoc-template) or [Create Document from File Upload](https://developers.pandadoc.com/reference/create-document-from-pdf) endpoint. ## Request Details For the notarization request, include in the request body: - `document_id` - At least one `invitees`, specifying their `email`, `first_name`, and `last_name` - Optionally, include a `message` for your signers - Optionally, using `disable_invitees_notifications` you can disable all notifications for invitees including email with invitation for notarization. This is useful when you are using alternative delivery methods. - If in-house notary must be assigned to this request, include the `notary` object with the notary's `id`, `scheduled_at` timestamp, and an optional `message` for the notary After the API call is executed, your signers will receive an email invitation for notarization. Alternatively, you can directly share the `notarization_link` with your signers, which is available in the 201 response body. Upon successful notarization, you will receive an email with a link to the notarized document. ## Usage Tips > 📘 Best Practices > > - Ensure that signers are added as both invitees in the request body and recipients in the document to avoid inconveniences during notary sessions > - Signers will receive an email with a notary link upon a successful API call; this link is also in the 201 response > - In case if notary is not specified in the request, signers will use the link to connect with commissioned online notaries, available Mon-Fri, 9 AM - 9 PM Central Time, typically responding within 2 minutes > - If notary is specified, signers will use the link to connect with your in-house notary at the scheduled time ## Limits A maximum of 100 API calls per minute is permitted. Exceeding this limit triggers a 429 Too Many Requests error. ## Troubleshooting **Solutions for 4xx Response Codes:** - **403 Forbidden (Inactive Add-on)**: Ensure the Notary On-Demand or Notary add-on is installed - **403 Forbidden (Transactions Limit)**: Purchase additional transactions either through the Notary UI or by contacting the Sales team - **429 Too Many Requests**: If you hit the limit, hold your API calls, then send them after waiting for the retry time > 📘 To learn more about PandaDoc Notary On-Demand, visit our [website](https://notary.pandadoc.com/notary-on-demand/).Connection
Create a notarization request to connect with a notary and complete online notarizations for your signers within minutes. > 🚧 **Important:** This endpoint supports only documents in draft status. ## Prerequisites > 🚧 Before you start > > Ensure the following before creating a notarization request: > > - Install the Notary On-Demand or Notary add-on > - Create a document for notarization and get its `document_id`. To create a document, use the [Create Document from Template](https://developers.pandadoc.com/reference/create-document-from-pandadoc-template) or [Create Document from File Upload](https://developers.pandadoc.com/reference/create-document-from-pdf) endpoint. ## Request Details For the notarization request, include in the request body: - `document_id` - At least one `invitees`, specifying their `email`, `first_name`, and `last_name` - Optionally, include a `message` for your signers - Optionally, using `disable_invitees_notifications` you can disable all notifications for invitees including email with invitation for notarization. This is useful when you are using alternative delivery methods. - If in-house notary must be assigned to this request, include the `notary` object with the notary's `id`, `scheduled_at` timestamp, and an optional `message` for the notary After the API call is executed, your signers will receive an email invitation for notarization. Alternatively, you can directly share the `notarization_link` with your signers, which is available in the 201 response body. Upon successful notarization, you will receive an email with a link to the notarized document. ## Usage Tips > 📘 Best Practices > > - Ensure that signers are added as both invitees in the request body and recipients in the document to avoid inconveniences during notary sessions > - Signers will receive an email with a notary link upon a successful API call; this link is also in the 201 response > - In case if notary is not specified in the request, signers will use the link to connect with commissioned online notaries, available Mon-Fri, 9 AM - 9 PM Central Time, typically responding within 2 minutes > - If notary is specified, signers will use the link to connect with your in-house notary at the scheduled time ## Limits A maximum of 100 API calls per minute is permitted. Exceeding this limit triggers a 429 Too Many Requests error. ## Troubleshooting **Solutions for 4xx Response Codes:** - **403 Forbidden (Inactive Add-on)**: Ensure the Notary On-Demand or Notary add-on is installed - **403 Forbidden (Transactions Limit)**: Purchase additional transactions either through the Notary UI or by contacting the Sales team - **429 Too Many Requests**: If you hit the limit, hold your API calls, then send them after waiting for the retry time > 📘 To learn more about PandaDoc Notary On-Demand, visit our [website](https://notary.pandadoc.com/notary-on-demand/).
Authentication
Connected account requiredTags
Create TemplatePANDADOC_CREATE_TEMPLATEThis operation allows you to create a new template by providing the necessary template details.Connection
This operation allows you to create a new template by providing the necessary template details.
Authentication
Connected account requiredTags
Create Template Editing SessionPANDADOC_CREATE_TEMPLATE_EDITING_SESSIONCreates a new editing session for the Embedded Editor. The response includes an E-Token, which is required to open the template. #### Limitations - **Single Active Session per User-Template Pair** Only one editing session can be active at a time for a specific user and template. Creating a new session for the same user-template pair will automatically invalidate the previous one. - **Weekly Session Cap** A maximum of **250** editing sessions can be created for a single template per week. Any attempt to exceed this limit will result in a `403 Forbidden` error.Connection
Creates a new editing session for the Embedded Editor. The response includes an E-Token, which is required to open the template. #### Limitations - **Single Active Session per User-Template Pair** Only one editing session can be active at a time for a specific user and template. Creating a new session for the same user-template pair will automatically invalidate the previous one. - **Weekly Session Cap** A maximum of **250** editing sessions can be created for a single template per week. Any attempt to exceed this limit will result in a `403 Forbidden` error.
Authentication
Connected account requiredTags
Create Templates FolderPANDADOC_CREATE_TEMPLATE_FOLDERCreate a new folder to store your templates. For the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).Connection
Create a new folder to store your templates. For the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).
Authentication
Connected account requiredTags
Create UserPANDADOC_CREATE_USERCreate users, and assign them roles, licenses, and workspaces. - You must be an organization admin to create users. - We check that the user email domain matches your organization domain. - We check that the user email and phone number have a valid format.Connection
Create users, and assign them roles, licenses, and workspaces. - You must be an organization admin to create users. - We check that the user email domain matches your organization domain. - We check that the user email and phone number have a valid format.
Authentication
Connected account requiredTags
Create Webhook SubscriptionPANDADOC_CREATE_WEBHOOK_SUBSCRIPTIONThis operation creates a new webhook subscription by specifying its details.Connection
This operation creates a new webhook subscription by specifying its details.
Authentication
Connected account requiredTags
Create WorkspacePANDADOC_CREATE_WORKSPACECreate a workspace in your organization. - You need to be an Org Admin to create a workspace. - You will be added to the new workspace with an Admin role.Connection
Create a workspace in your organization. - You need to be an Org Admin to create a workspace. - You will be added to the new workspace with an Admin role.
Authentication
Connected account requiredTags
Deactivate WorkspacePANDADOC_DEACTIVATE_WORKSPACEDeactivate the workspace, remove all the members from it and make it unavailable.Connection
Deactivate the workspace, remove all the members from it and make it unavailable.
Authentication
Connected account requiredTags
Delete Catalog ItemPANDADOC_DELETE_CATALOG_ITEMDelete catalog item.Connection
Delete catalog item.
Authentication
Connected account requiredTags
Delete ContactPANDADOC_DELETE_CONTACTThis method deletes a contact.Connection
This method deletes a contact.
Authentication
Connected account requiredTags
Delete DocumentPANDADOC_DELETE_DOCUMENTDelete a document by ID.Connection
Delete a document by ID.
Authentication
Connected account requiredTags
Delete Document AttachmentPANDADOC_DELETE_DOCUMENT_ATTACHMENTDeletes an attachment from the document.Connection
Deletes an attachment from the document.
Authentication
Connected account requiredTags
Delete Document RecipientPANDADOC_DELETE_DOCUMENT_RECIPIENTRemove a recipient from a document. > 🚧 Before you start > > Please ensure that you have the 'Can Manage Recipients' permission. To remove a recipient from a document, you must specify their ID in the path parameter (note that this is different from their contact's ID). The recipient's ID can be retrieved via the [Document Details](https://developers.pandadoc.com/reference/document-details) endpoint. ### Document status - Removing a signer is only possible when the document is in the 'Draft' (`document.draft`) status and this action will unassign all fields associated with that signer. - Removing a CC recipient is allowed in any document status except for the 'Expired' (`document.voided`) and 'Declined' (`document.declined`). If a CC recipient is removed, their access will be revoked.Connection
Remove a recipient from a document. > 🚧 Before you start > > Please ensure that you have the 'Can Manage Recipients' permission. To remove a recipient from a document, you must specify their ID in the path parameter (note that this is different from their contact's ID). The recipient's ID can be retrieved via the [Document Details](https://developers.pandadoc.com/reference/document-details) endpoint. ### Document status - Removing a signer is only possible when the document is in the 'Draft' (`document.draft`) status and this action will unassign all fields associated with that signer. - Removing a CC recipient is allowed in any document status except for the 'Expired' (`document.voided`) and 'Declined' (`document.declined`). If a CC recipient is removed, their access will be revoked.
Authentication
Connected account requiredTags
Delete Linked ObjectPANDADOC_DELETE_LINKED_OBJECTDelete a linked object associated with a document.Connection
Delete a linked object associated with a document.
Authentication
Connected account requiredTags
Delete Notarization RequestPANDADOC_DELETE_NOTARIZATION_REQUESTUse this method to delete a notarization request. Once notarization request is deleted it cannot be restored. > 🚧 Notarization Request status > > You can only delete a notarization request in status 'SENT', 'WAITING_FOR_NOTARY' or 'INCOMPLETE'. > If the notarization request is in any other status, the request will return a 400 Bad Request error. By default all invitees will receive email notification about deletion of the notarization request. If you want to disable this notification, you can use the `disable_invitees_notifications` parameter when creating request (see [Create Notarization Request](https://developers.pandadoc.com/reference/create-notarization-request)).Connection
Use this method to delete a notarization request. Once notarization request is deleted it cannot be restored. > 🚧 Notarization Request status > > You can only delete a notarization request in status 'SENT', 'WAITING_FOR_NOTARY' or 'INCOMPLETE'. > If the notarization request is in any other status, the request will return a 400 Bad Request error. By default all invitees will receive email notification about deletion of the notarization request. If you want to disable this notification, you can use the `disable_invitees_notifications` parameter when creating request (see [Create Notarization Request](https://developers.pandadoc.com/reference/create-notarization-request)).
Authentication
Connected account requiredTags
Delete Document SectionPANDADOC_DELETE_SECTIONRemoves selected section from the document.Connection
Removes selected section from the document.
Authentication
Connected account requiredTags
Delete TemplatePANDADOC_DELETE_TEMPLATEDelete a templateConnection
Delete a template
Authentication
Connected account requiredTags
Delete Webhook SubscriptionPANDADOC_DELETE_WEBHOOK_SUBSCRIPTIONThis operation deletes a specific webhook subscription identified by its UUID.Connection
This operation deletes a specific webhook subscription identified by its UUID.
Authentication
Connected account requiredTags
Contact DetailsPANDADOC_DETAILS_CONTACTReturns contact details by its ID.Connection
Returns contact details by its ID.
Authentication
Connected account requiredTags
Content Library Item DetailsPANDADOC_DETAILS_CONTENT_LIBRARY_ITEMRetrieve detailed information about a specific content library item using its ID. The details include: - **Roles** - **All fields with values** - **All tokens with values** - **Pricing information (pricing tables, products, etc)** - **Metadata** - **Tags** - **Modification Timestamps**: note that `date_modified` means any changes associated with the CLI, while `content_date_modified` logs any changes in CLI content.Connection
Retrieve detailed information about a specific content library item using its ID. The details include: - **Roles** - **All fields with values** - **All tokens with values** - **Pricing information (pricing tables, products, etc)** - **Metadata** - **Tags** - **Modification Timestamps**: note that `date_modified` means any changes associated with the CLI, while `content_date_modified` logs any changes in CLI content.
Authentication
Connected account requiredTags
Current Member DetailsPANDADOC_DETAILS_CURRENT_MEMBERReturns the member details of the current user (the owner of the API key). **User** - is an account with a license in the Organization. **Member** - is a User with a predefined Role in the Workspace. | Parameter | Description | |---|---| | `user_id` | A unique identifier of the `user` in the **organization** | | `membership_id` | A unique identifier of the `user` in the **workspace** | | `email` | A user email address | | `first_name` | A user's first name | | `last_name` | A user's last name | | `is_active` | A boolean value that identifies if a member is active and not blocked | | `workspace` | A unique identifier of the user's current active workspace | | `workspace_name` | A name of the user's current active workspace | | `email_verified` | A boolean value that identifies if the email is verified | | `role` | A member's role in the workspace | | `user_license` | A user license in the organization: <br/>`Full (Standard)`; <br/>`Read-only`; <br/>`eSignature`; <br/>`Guest`; <br/>`Creator` | | `date_created` | A date when a member was added to the workspace | | `date_modified` | Last modified date of a member |Connection
Returns the member details of the current user (the owner of the API key). **User** - is an account with a license in the Organization. **Member** - is a User with a predefined Role in the Workspace. | Parameter | Description | |---|---| | `user_id` | A unique identifier of the `user` in the **organization** | | `membership_id` | A unique identifier of the `user` in the **workspace** | | `email` | A user email address | | `first_name` | A user's first name | | `last_name` | A user's last name | | `is_active` | A boolean value that identifies if a member is active and not blocked | | `workspace` | A unique identifier of the user's current active workspace | | `workspace_name` | A name of the user's current active workspace | | `email_verified` | A boolean value that identifies if the email is verified | | `role` | A member's role in the workspace | | `user_license` | A user license in the organization: <br/>`Full (Standard)`; <br/>`Read-only`; <br/>`eSignature`; <br/>`Guest`; <br/>`Creator` | | `date_created` | A date when a member was added to the workspace | | `date_modified` | Last modified date of a member |
Authentication
Connected account requiredTags
Document DetailsPANDADOC_DETAILS_DOCUMENTReturn detailed data about a document. Use Document Status for getting just a basic info and status. Get details about a document by its `id`. Details include: - Basic document information (name, document state, owner, sender, grand total, etc.) - Recipients (completion status, signing order, etc.) - Fields with values (incl. Collect Files field) - Tokens (variables) with values - Pricing information (pricing tables, products, quotes, etc.) - Content block names for table, image, and text blocks (tables, images, texts) - Metadata - Tags - Linked objects - [Approval flow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) (if present) - Active editing lock (holder and expiry), when the document is locked - Timestamps associated with a document. Note that `date_modified` means any changes associated with the recipients and document status, while `content_date_modified` reflects any changes in the document content.Connection
Return detailed data about a document. Use Document Status for getting just a basic info and status. Get details about a document by its `id`. Details include: - Basic document information (name, document state, owner, sender, grand total, etc.) - Recipients (completion status, signing order, etc.) - Fields with values (incl. Collect Files field) - Tokens (variables) with values - Pricing information (pricing tables, products, quotes, etc.) - Content block names for table, image, and text blocks (tables, images, texts) - Metadata - Tags - Linked objects - [Approval flow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) (if present) - Active editing lock (holder and expiry), when the document is locked - Timestamps associated with a document. Note that `date_modified` means any changes associated with the recipients and document status, while `content_date_modified` reflects any changes in the document content.
Authentication
Connected account requiredTags
Document Attachment DetailsPANDADOC_DETAILS_DOCUMENT_ATTACHMENTReturns details of the specific document's attachment.Connection
Returns details of the specific document's attachment.
Authentication
Connected account requiredTags
API Log DetailsPANDADOC_DETAILS_LOGReturns details of the specific API log event.Connection
Returns details of the specific API log event.
Authentication
Connected account requiredTags
API Log DetailsPANDADOC_DETAILS_LOG_V2Returns details of the specific API log event.Connection
Returns details of the specific API log event.
Authentication
Connected account requiredTags
Member DetailsPANDADOC_DETAILS_MEMBERA method to retrieve a member's details by ID. **User** - is an account with a license in the Organization. **Member** - is a User with a predefined Role in the Workspace. | Parameter | Description | |---|---| | `user_id` | A unique identifier of the `user` in the **organization** | | `membership_id` | A unique identifier of the `user` in the **workspace** | | `email` | A user email address | | `first_name` | A user's first name | | `last_name` | A user's last name | | `is_active` | A boolean value that identifies if a member is active and not blocked | | `workspace` | A unique identifier of the user's current active workspace | | `workspace_name` | A name of the user's current active workspace | | `email_verified` | A boolean value that identifies if the email is verified | | `role` | A member's role in the workspace | | `user_license` | A user license in the organization: <br/>`Full (Standard)`; <br/>`Read-only`; <br/>`eSignature`; <br/>`Guest`; <br/>`Creator` | | `date_created` | A date when a member was added to the workspace | | `date_modified` | Last modified date of a member |Connection
A method to retrieve a member's details by ID. **User** - is an account with a license in the Organization. **Member** - is a User with a predefined Role in the Workspace. | Parameter | Description | |---|---| | `user_id` | A unique identifier of the `user` in the **organization** | | `membership_id` | A unique identifier of the `user` in the **workspace** | | `email` | A user email address | | `first_name` | A user's first name | | `last_name` | A user's last name | | `is_active` | A boolean value that identifies if a member is active and not blocked | | `workspace` | A unique identifier of the user's current active workspace | | `workspace_name` | A name of the user's current active workspace | | `email_verified` | A boolean value that identifies if the email is verified | | `role` | A member's role in the workspace | | `user_license` | A user license in the organization: <br/>`Full (Standard)`; <br/>`Read-only`; <br/>`eSignature`; <br/>`Guest`; <br/>`Creator` | | `date_created` | A date when a member was added to the workspace | | `date_modified` | Last modified date of a member |
Authentication
Connected account requiredTags
Template DetailsPANDADOC_DETAILS_TEMPLATEGet details about a template by `id`. Details include: - Basic template information (name, author, etc) - Roles - All fields with values - All tokens with values - Pricing information (pricing tables, products, quotes) - Template metadata - Template tags - Content placeholders - Modification timestamps. Note that `date_modified` means any changes associated with the template roles, while `content_date_modified` logs any changes in the template content.Connection
Get details about a template by `id`. Details include: - Basic template information (name, author, etc) - Roles - All fields with values - All tokens with values - Pricing information (pricing tables, products, quotes) - Template metadata - Template tags - Content placeholders - Modification timestamps. Note that `date_modified` means any changes associated with the template roles, while `content_date_modified` logs any changes in the template content.
Authentication
Connected account requiredTags
Get User Details by IDPANDADOC_DETAILS_USERGet detailed information about a specific user by their ID, including contact information, license type, and workspace roles. You must be an organization admin to get user details.Connection
Get detailed information about a specific user by their ID, including contact information, license type, and workspace roles. You must be an organization admin to get user details.
Authentication
Connected account requiredTags
Webhook Event DetailsPANDADOC_DETAILS_WEBHOOK_EVENTThis operation fetches detailed information about a specific webhook event using its unique identifier.Connection
This operation fetches detailed information about a specific webhook event using its unique identifier.
Authentication
Connected account requiredTags
Webhook Subscription DetailsPANDADOC_DETAILS_WEBHOOK_SUBSCRIPTIONGet webhook subscription by uuidConnection
Get webhook subscription by uuid
Authentication
Connected account requiredTags
Document eSign disclosurePANDADOC_DOCUMENT_ESIGN_DISCLOSURERetrieves the current version of eSign disclosure text for a specified document.Connection
Retrieves the current version of eSign disclosure text for a specified document.
Authentication
Connected account requiredTags
Document move to folderPANDADOC_DOCUMENT_MOVE_TO_FOLDERThis operation allows you to move a document to a folder by specifying the document ID and folder ID.Connection
This operation allows you to move a document to a folder by specifying the document ID and folder ID.
Authentication
Connected account requiredTags
Move Document to DraftPANDADOC_DOCUMENT_REVERT_TO_DRAFTRevert your document back to draft to continue editing it. > 📘 Returning to Draft works for any document status except Removed. ## After you move your document to the Draft status - `Signature` and `Initials` fields are cleared. All other fields stay filled in. - Recipients are **not** notified that the document is back in Draft. - You'll need to resend the document so that recipients can sign the updated version.Connection
Revert your document back to draft to continue editing it. > 📘 Returning to Draft works for any document status except Removed. ## After you move your document to the Draft status - `Signature` and `Initials` fields are cleared. All other fields stay filled in. - Recipients are **not** notified that the document is back in Draft. - You'll need to resend the document so that recipients can sign the updated version.
Authentication
Connected account requiredTags
Get document settingsPANDADOC_DOCUMENT_SETTINGS_GETRetrieves the settings for a specified document.Connection
Retrieves the settings for a specified document.
Authentication
Connected account requiredTags
Update document settingsPANDADOC_DOCUMENT_SETTINGS_UPDATEUpdates the settings for a specified document.Connection
Updates the settings for a specified document.
Authentication
Connected account requiredTags
Document DownloadPANDADOC_DOWNLOAD_DOCUMENTDownload documents as a PDF. > ❗️ Downloading completed and signed documents > > To download completed and signed documents, you should use the [Download Protected Document](https://developers.pandadoc.com/reference/download-protected-document) endpoint instead. See the [How to download a completed document](https://developers.pandadoc.com/docs/how-to-download-completed-document) guide for details.Connection
Download documents as a PDF. > ❗️ Downloading completed and signed documents > > To download completed and signed documents, you should use the [Download Protected Document](https://developers.pandadoc.com/reference/download-protected-document) endpoint instead. See the [How to download a completed document](https://developers.pandadoc.com/docs/how-to-download-completed-document) guide for details.
Authentication
Connected account requiredTags
Download Document AttachmentPANDADOC_DOWNLOAD_DOCUMENT_ATTACHMENTDownload an attachment by ID.Connection
Download an attachment by ID.
Authentication
Connected account requiredTags
Download Completed DocumentPANDADOC_DOWNLOAD_PROTECTED_DOCUMENTDownload a completed document as a verifiable PDF (Download Protected Document) > 🚧 Production key only > > This endpoint only works with a Production key. You'll get a 401 Unauthorized error when trying to use a Sandbox key. Download a signed PDF of a completed documentConnection
Download a completed document as a verifiable PDF (Download Protected Document) > 🚧 Production key only > > This endpoint only works with a Production key. You'll get a 401 Unauthorized error when trying to use a Sandbox key. Download a signed PDF of a completed document
Authentication
Connected account requiredTags
Duplicate TemplatePANDADOC_DUPLICATE_TEMPLATE## Duplicate Template Creates a copy of a template within the same workspace. > 📘 **Permissions** > > Requires `can_read_templates` and `can_duplicate_templates` permissions. Duplicating templates owned by other users additionally requires `can_duplicate_any_template`.Connection
## Duplicate Template Creates a copy of a template within the same workspace. > 📘 **Permissions** > > Requires `can_read_templates` and `can_duplicate_templates` permissions. Duplicating templates owned by other users additionally requires `can_duplicate_any_template`.
Authentication
Connected account requiredTags
Update Document RecipientPANDADOC_EDIT_DOCUMENT_RECIPIENTModify a recipient's personal details, or update a recipient group's name and members. > 🚧 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. ### Editing a recipient group When the `recipient_id` points to a recipient group, you can rename the group and/or change its members: - Send `name` to rename the group. - Send `members` to replace the group's membership. The list you send becomes the group's new full membership: members you omit are removed, and new entries are added. Members are matched by `email`; for a retained member, only the contact fields you include (`first_name`, `last_name`) are updated, and omitted fields keep their existing values. - At least one of `name` or `members` must be provided, and `members` (when sent) must contain at least one member. On a sent document, newly added members are notified and receive their access link, while removed members lose access. Both individual recipient and recipient group edits return `204 No Content`. > 📘 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. ### Recipient communication preferences PandaDoc honors recipient opt-outs when re-notifying a recipient on a sent document. The request will return `400 Bad Request` in the following cases: - **Email** — when changing a recipient's email or enabling email delivery, if the new email address has been marked as opted-out for your organization (for example, the recipient previously reported a PandaDoc email from your organization as spam). - **SMS** — when changing a recipient's phone number or enabling SMS delivery, if the recipient has opted out of receiving SMS messages (for example, by replying STOP). To remove a recipient from the opt-out list, contact PandaDoc Support.Connection
Modify a recipient's personal details, or update a recipient group's name and members. > 🚧 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. ### Editing a recipient group When the `recipient_id` points to a recipient group, you can rename the group and/or change its members: - Send `name` to rename the group. - Send `members` to replace the group's membership. The list you send becomes the group's new full membership: members you omit are removed, and new entries are added. Members are matched by `email`; for a retained member, only the contact fields you include (`first_name`, `last_name`) are updated, and omitted fields keep their existing values. - At least one of `name` or `members` must be provided, and `members` (when sent) must contain at least one member. On a sent document, newly added members are notified and receive their access link, while removed members lose access. Both individual recipient and recipient group edits return `204 No Content`. > 📘 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. ### Recipient communication preferences PandaDoc honors recipient opt-outs when re-notifying a recipient on a sent document. The request will return `400 Bad Request` in the following cases: - **Email** — when changing a recipient's email or enabling email delivery, if the new email address has been marked as opted-out for your organization (for example, the recipient previously reported a PandaDoc email from your organization as spam). - **SMS** — when changing a recipient's phone number or enabling SMS delivery, if the recipient has opted out of receiving SMS messages (for example, by replying STOP). To remove a recipient from the opt-out list, contact PandaDoc Support.
Authentication
Connected account requiredTags
Catalog Item DetailsPANDADOC_GET_CATALOG_ITEMGet catalog item.Connection
Get catalog item.
Authentication
Connected account requiredTags
[Beta] Get AI Metadata for a DocumentPANDADOC_GET_DOCUMENT_AI_METADATAReturns the AI metadata fields populated for the document. Each result combines the field definition (`id`, `key`, `field_type`, `settings`) with the extracted value (`value`, `acceptance_status`). Only fields that have an extracted value for the document are returned. The endpoint signals AI extraction state via the HTTP status code: - `202 extraction_pending` — extraction is in progress. Clients should retry after the number of seconds indicated in the `Retry-After` header. - `204 No Content` — extraction has terminally failed for this document. No body is returned; retrying will not help — contact support. - `409 not_started` — extraction has not been triggered for this document (typically because the document is not yet completed).Connection
Returns the AI metadata fields populated for the document. Each result combines the field definition (`id`, `key`, `field_type`, `settings`) with the extracted value (`value`, `acceptance_status`). Only fields that have an extracted value for the document are returned. The endpoint signals AI extraction state via the HTTP status code: - `202 extraction_pending` — extraction is in progress. Clients should retry after the number of seconds indicated in the `Retry-After` header. - `204 No Content` — extraction has terminally failed for this document. No body is returned; retrying will not help — contact support. - `409 not_started` — extraction has not been triggered for this document (typically because the document is not yet completed).
Authentication
Connected account requiredTags
Document Auto Reminder SettingsPANDADOC_GET_DOCUMENT_AUTO_REMINDER_SETTINGSRetrieves the current auto reminder configuration for a specified document.Connection
Retrieves the current auto reminder configuration for a specified document.
Authentication
Connected account requiredTags
[Beta] Document ContentPANDADOC_GET_DOCUMENT_CONTENTReturns the document content for the specified document. Use query parameter `format` to select the content format.Connection
Returns the document content for the specified document. Use query parameter `format` to select the content format.
Authentication
Connected account requiredTags
[Beta] Document SummaryPANDADOC_GET_DOCUMENT_SUMMARYReturns a summary for the specified document. Use query parameter `type` to select summary granularity.Connection
Returns a summary for the specified document. Use query parameter `type` to select summary granularity.
Authentication
Connected account requiredTags
[Beta] DOCX Export TaskPANDADOC_GET_DOCX_EXPORT_TASK> 📘 This endpoint returns the current state of a DOCX export task for a document. > The endpoint supports downloading only multiple files if the document contains several sections. Downloading as a single file in this case is not possible.Connection
> 📘 This endpoint returns the current state of a DOCX export task for a document. > The endpoint supports downloading only multiple files if the document contains several sections. Downloading as a single file in this case is not possible.
Authentication
Connected account requiredTags
Get Template Sharing SettingsPANDADOC_GET_TEMPLATE_SHARESRetrieves template sharing settings.Connection
Retrieves template sharing settings.
Authentication
Connected account requiredTags
List WorkspacesPANDADOC_GET_WORKSPACES_LISTGet a list of all the active workspaces in the organization.Connection
Get a list of all the active workspaces in the organization.
Authentication
Connected account requiredTags
List contactsPANDADOC_LIST_CONTACTSThis method returns a list of contacts associated with a workspace.Connection
This method returns a list of contacts associated with a workspace.
Authentication
Connected account requiredTags
List Content Library ItemPANDADOC_LIST_CONTENT_LIBRARY_ITEMSThe endpoint retrieves items from the content library in PandaDoc. This endpoint supports filtering options to narrow down the results, allowing users to search by query, tags, folder, and more. > ### ⚠️ Please avoid empty values for the parameters > API returns "400" error when any of the parameters has an empty value. Please remove such a parameter from the request or add a value.Connection
The endpoint retrieves items from the content library in PandaDoc. This endpoint supports filtering options to narrow down the results, allowing users to search by query, tags, folder, and more. > ### ⚠️ Please avoid empty values for the parameters > API returns "400" error when any of the parameters has an empty value. Please remove such a parameter from the request or add a value.
Authentication
Connected account requiredTags
List Document AttachmentsPANDADOC_LIST_DOCUMENT_ATTACHMENTSReturns a list of attachments associated with a specified document.Connection
Returns a list of attachments associated with a specified document.
Authentication
Connected account requiredTags
List Document Audit TrailPANDADOC_LIST_DOCUMENT_AUDIT_TRAILRetrieves the full audit trail for a specified document. The audit trail includes detailed user actions such as sending, viewing, signing, and editing, along with metadata like timestamps, IP addresses, and user identity. This endpoint is accessible to authorized workspace administrators only.Connection
Retrieves the full audit trail for a specified document. The audit trail includes detailed user actions such as sending, viewing, signing, and editing, along with metadata like timestamps, IP addresses, and user identity. This endpoint is accessible to authorized workspace administrators only.
Authentication
Connected account requiredTags
List Document FieldsPANDADOC_LIST_DOCUMENT_FIELDSReturn the list of fields for a particular document.Connection
Return the list of fields for a particular document.
Authentication
Connected account requiredTags
List Documents FoldersPANDADOC_LIST_DOCUMENT_FOLDERSGet the list of folders which contain Documents in your account. > 📘 > > The root folder is not listed in the response. For the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).Connection
Get the list of folders which contain Documents in your account. > 📘 > > The root folder is not listed in the response. For the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).
Authentication
Connected account requiredTags
List DocumentsPANDADOC_LIST_DOCUMENTSThis endpoint will let you list and search for the documents. ### [Here](https://developers.pandadoc.com/docs/list-search-documents-api) you can find how to filter, search and order documents.Connection
This endpoint will let you list and search for the documents. ### [Here](https://developers.pandadoc.com/docs/list-search-documents-api) you can find how to filter, search and order documents.
Authentication
Connected account requiredTags
List Documents by Linked ObjectPANDADOC_LIST_DOCUMENTS_BY_LINKED_OBJECTGet a list of documents connected to a linked object - an entity from an integration.Connection
Get a list of documents connected to a linked object - an entity from an integration.
Authentication
Connected account requiredTags
List FormsPANDADOC_LIST_FORMRetrieve a paginated list of forms with optional filtering and sorting options.Connection
Retrieve a paginated list of forms with optional filtering and sorting options.
Authentication
Connected account requiredTags
List Linked ObjectsPANDADOC_LIST_LINKED_OBJECTSGet a list of linked objects for the document.Connection
Get a list of linked objects for the document.
Authentication
Connected account requiredTags
List API LogPANDADOC_LIST_LOGSGet the list of all logs within the selected workspace.\ Optionally filter by date, page, and `#` of items per page.Connection
Get the list of all logs within the selected workspace.\ Optionally filter by date, page, and `#` of items per page.
Authentication
Connected account requiredTags
List API LogPANDADOC_LIST_LOGS_V2Get the list of all logs within the selected workspace.\ Optionally filter by date, page, and `#` of items per page.Connection
Get the list of all logs within the selected workspace.\ Optionally filter by date, page, and `#` of items per page.
Authentication
Connected account requiredTags
List MembersPANDADOC_LIST_MEMBERSRetrieve all members details of the workspace implied by the OAuth token or API key.\ For each member, the `workspace` parameter shows their active workspace, that is the workspace they are currently working in.\ This means the `workspace` value can differ from the workspace implied by your API key.Connection
Retrieve all members details of the workspace implied by the OAuth token or API key.\ For each member, the `workspace` parameter shows their active workspace, that is the workspace they are currently working in.\ This means the `workspace` value can differ from the workspace implied by your API key.
Authentication
Connected account requiredTags
List NotariesPANDADOC_LIST_NOTARIESRetrieve a list of notaries associated with your organization. ## Important Notes - At the moment, notaries can be added to organization only manually through the PandaDoc Notary UI. - Organization must have Notary addon enabled to use this endpointConnection
Retrieve a list of notaries associated with your organization. ## Important Notes - At the moment, notaries can be added to organization only manually through the PandaDoc Notary UI. - Organization must have Notary addon enabled to use this endpoint
Authentication
Connected account requiredTags
List Notarization RequestsPANDADOC_LIST_NOTARIZATION_REQUESTSRetrieve a paginated list of notarization requests for your organization. Results can be filtered by status, creator, or document, and sorted by status or by the request's creation or completion dates. ## Permissions > 🔒 **Requirements** > > - The **Notary On-Demand** or **Notary** add-on must be enabled for your organization. Without an active add-on, the endpoint returns `403 Forbidden`. > - The request is executed with the permissions of the API key owner. By default, the response only includes notarization requests created by the API key owner. To list notarization requests created by any user in the organization, the API key owner must have the **Can view any notarization request** permission. ## Limits A maximum of 100 API calls per minute is permitted. Exceeding this limit triggers a 429 Too Many Requests error.Connection
Retrieve a paginated list of notarization requests for your organization. Results can be filtered by status, creator, or document, and sorted by status or by the request's creation or completion dates. ## Permissions > 🔒 **Requirements** > > - The **Notary On-Demand** or **Notary** add-on must be enabled for your organization. Without an active add-on, the endpoint returns `403 Forbidden`. > - The request is executed with the permissions of the API key owner. By default, the response only includes notarization requests created by the API key owner. To list notarization requests created by any user in the organization, the API key owner must have the **Can view any notarization request** permission. ## Limits A maximum of 100 API calls per minute is permitted. Exceeding this limit triggers a 429 Too Many Requests error.
Authentication
Connected account requiredTags
Recent SMS Opt-outPANDADOC_LIST_RECENT_SMS_OPT_OUTSRetrieves a list of the most recent SMS opt-out changes for each phone numbers used in your workspace. > 📘 You can filter results by time range using `timestamp_from` and `timestamp_to`.Connection
Retrieves a list of the most recent SMS opt-out changes for each phone numbers used in your workspace. > 📘 You can filter results by time range using `timestamp_from` and `timestamp_to`.
Authentication
Connected account requiredTags
List Document SectionsPANDADOC_LIST_SECTIONSRetrieve information about the sections within a document.Connection
Retrieve information about the sections within a document.
Authentication
Connected account requiredTags
List Templates FoldersPANDADOC_LIST_TEMPLATE_FOLDERSGet the list of folders that contain Templates in your account. > 📘 > > The root folder is not listed in the response. For the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).Connection
Get the list of folders that contain Templates in your account. > 📘 > > The root folder is not listed in the response. For the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).
Authentication
Connected account requiredTags
List TemplatesPANDADOC_LIST_TEMPLATESRetrieves a list of templates. You can filter results by a search query, tags, or fields.Connection
Retrieves a list of templates. You can filter results by a search query, tags, or fields.
Authentication
Connected account requiredTags
List UsersPANDADOC_LIST_USERSGet a list of all users with membership in your organization, with their contact information, license type, and workspace roles. You must be an organization admin to list users.Connection
Get a list of all users with membership in your organization, with their contact information, license type, and workspace roles. You must be an organization admin to list users.
Authentication
Connected account requiredTags
List Webhook EventsPANDADOC_LIST_WEBHOOK_EVENTThis operation retrieves a paginated list of all webhook events.Connection
This operation retrieves a paginated list of all webhook events.
Authentication
Connected account requiredTags
List Webhook SubscriptionsPANDADOC_LIST_WEBHOOK_SUBSCRIPTIONSThis operation fetches a paginated list of webhook subscriptions.Connection
This operation fetches a paginated list of webhook subscriptions.
Authentication
Connected account requiredTags
Notarization Request DetailsPANDADOC_NOTARIZATION_REQUEST_DETAILSGet details about a notarization request by its `id`. Details include: - Basic notarization request information (status, creator, invitees). - Signed documents information with links for downloading. - Notarization session recording information with link for downloading. - Timestamps associated with a notarization request. - Termination reason and details when the notarization session was not completed successfully. ## Available Notarization Request Statuses The following is a complete list of all possible notarization request statuses returned: | Notarization Request Status | Status Description | | :-------------------------- | :----------------------------------------------------------------------------------------------------------------- | | SENT | Notarization request has been created. Invitees are notified and can start the process of finding a notary. | | WAITING_FOR_NOTARY | One of the invitees initialised the process of finding a notary. | | ACCEPTED | Notarization request has been accepted by the notary. At this time nobody has joined the notarization session yet. | | LIVE | Notarization session has started. | | COMPLETED | Notarization session is finished. Documents have been successfully signed and ready for downloading. | | INCOMPLETE | Notarization session has started but was not completed successfully. | ## Signed documents Signed documents are the documents that were successfully signed during the notarization session. The signed document's info is available only if the notarization request has `COMPLETED` status, otherwise the returned list will be empty. In case you uploaded several documents for notarization then the `signed_documents` list will contain links for downloading for each document separately (with `SINGLE` document type) and link for the combined document (with `COMBINED` document type accordingly). ## Recording Recording is the video of the notarization session. The recording info is available only if the notarization request has `COMPLETED` status and recording is available, otherwise the returned object will be empty. > 📘 Links expire in 1 hour > > **Note**: The signed document and recording links expire in 1 hour. After this time it will be not possible to download files using the returned urls. In this case you need to call endpoint again since each request generates a new link. ## Limits A maximum of 100 API calls per minute is permitted. Exceeding this limit triggers a 429 Too Many Requests error.Connection
Get details about a notarization request by its `id`. Details include: - Basic notarization request information (status, creator, invitees). - Signed documents information with links for downloading. - Notarization session recording information with link for downloading. - Timestamps associated with a notarization request. - Termination reason and details when the notarization session was not completed successfully. ## Available Notarization Request Statuses The following is a complete list of all possible notarization request statuses returned: | Notarization Request Status | Status Description | | :-------------------------- | :----------------------------------------------------------------------------------------------------------------- | | SENT | Notarization request has been created. Invitees are notified and can start the process of finding a notary. | | WAITING_FOR_NOTARY | One of the invitees initialised the process of finding a notary. | | ACCEPTED | Notarization request has been accepted by the notary. At this time nobody has joined the notarization session yet. | | LIVE | Notarization session has started. | | COMPLETED | Notarization session is finished. Documents have been successfully signed and ready for downloading. | | INCOMPLETE | Notarization session has started but was not completed successfully. | ## Signed documents Signed documents are the documents that were successfully signed during the notarization session. The signed document's info is available only if the notarization request has `COMPLETED` status, otherwise the returned list will be empty. In case you uploaded several documents for notarization then the `signed_documents` list will contain links for downloading for each document separately (with `SINGLE` document type) and link for the combined document (with `COMBINED` document type accordingly). ## Recording Recording is the video of the notarization session. The recording info is available only if the notarization request has `COMPLETED` status and recording is available, otherwise the returned object will be empty. > 📘 Links expire in 1 hour > > **Note**: The signed document and recording links expire in 1 hour. After this time it will be not possible to download files using the returned urls. In this case you need to call endpoint again since each request generates a new link. ## Limits A maximum of 100 API calls per minute is permitted. Exceeding this limit triggers a 429 Too Many Requests error.
Authentication
Connected account requiredTags
Quote updatePANDADOC_QUOTE_UPDATEThis operation updates the details of a specific quote within a document by specifying the document ID and quote ID.Connection
This operation updates the details of a specific quote within a document by specifying the document ID and quote ID.
Authentication
Connected account requiredTags
Change Signer (Reassign Document Recipient)PANDADOC_REASSIGN_DOCUMENT_RECIPIENTReassign fields to another signer. > 🚧 Before you start > > To change a signer in a document, please ensure that: > > - You have the 'Can Manage Recipients' permission. > - New signer is already created in your contacts. If not, add them using the [Create Contact](https://developers.pandadoc.com/reference/create-contact) endpoint. You can reassign fields to another signer before the original signer has signed the document. You can choose any person except those recipients who have already signed the document. The endpoint path includes the `recipient_id` of the original signer and the request body must include the following two parameters: - `kind`: Set this parameter to `contact` to specify an individual contact. - `id`: Input the ID of the contact you want to use as a replacement for the original signer. To retrieve the contact's ID, use the [List Contacts](https://developers.pandadoc.com/reference/list-contacts) endpoint to access a list of all contacts, and then locate the desired contact by searching using the name or email address within the returned list. Once you execute the call to change the signer, the original signer will be entirely removed from the document. If you wish to retain the original signer as a CC recipient, you can re-add them using the [Add CC Recipient](https://developers.pandadoc.com/reference/add-new-recipient-cc) endpoint. > 🚧 Pre-filled fields > > If you change the signer in a document that has already been sent, the signer's pre-filled fields will be completely reset. In the 'Draft' (`document.draft`) status, pre-filled fields will remain.Connection
Reassign fields to another signer. > 🚧 Before you start > > To change a signer in a document, please ensure that: > > - You have the 'Can Manage Recipients' permission. > - New signer is already created in your contacts. If not, add them using the [Create Contact](https://developers.pandadoc.com/reference/create-contact) endpoint. You can reassign fields to another signer before the original signer has signed the document. You can choose any person except those recipients who have already signed the document. The endpoint path includes the `recipient_id` of the original signer and the request body must include the following two parameters: - `kind`: Set this parameter to `contact` to specify an individual contact. - `id`: Input the ID of the contact you want to use as a replacement for the original signer. To retrieve the contact's ID, use the [List Contacts](https://developers.pandadoc.com/reference/list-contacts) endpoint to access a list of all contacts, and then locate the desired contact by searching using the name or email address within the returned list. Once you execute the call to change the signer, the original signer will be entirely removed from the document. If you wish to retain the original signer as a CC recipient, you can re-add them using the [Add CC Recipient](https://developers.pandadoc.com/reference/add-new-recipient-cc) endpoint. > 🚧 Pre-filled fields > > If you change the signer in a document that has already been sent, the signer's pre-filled fields will be completely reset. In the 'Draft' (`document.draft`) status, pre-filled fields will remain.
Authentication
Connected account requiredTags
Remove Member from WorkspacePANDADOC_REMOVE_MEMBERThis operation removes a specified member from a workspace by providing the workspace ID and member ID.Connection
This operation removes a specified member from a workspace by providing the workspace ID and member ID.
Authentication
Connected account requiredTags
Rename Documents FolderPANDADOC_RENAME_DOCUMENT_FOLDERRename Documents Folder. For the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).Connection
Rename Documents Folder. For the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).
Authentication
Connected account requiredTags
Rename Templates FolderPANDADOC_RENAME_TEMPLATE_FOLDERRename a templates folder. For the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).Connection
Rename a templates folder. For the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).
Authentication
Connected account requiredTags
List Catalog Items SearchPANDADOC_SEARCH_CATALOG_ITEMSThis method searches for items in your [product catalog](https://support.pandadoc.com/en/articles/9714691-product-catalog). Use the `query` parameter to search in title, SKU, description, category name, custom fields name and value. You can also search for items by their type, billing type, and category id. Order search results, in both ascending and descending order, by these item properties: - SKU - Name - Price - Modification date Use the `exclude_uuids` parameter to exclude particular uuids from the search request.Connection
This method searches for items in your [product catalog](https://support.pandadoc.com/en/articles/9714691-product-catalog). Use the `query` parameter to search in title, SKU, description, category name, custom fields name and value. You can also search for items by their type, billing type, and category id. Order search results, in both ascending and descending order, by these item properties: - SKU - Name - Price - Modification date Use the `exclude_uuids` parameter to exclude particular uuids from the search request.
Authentication
Connected account requiredTags
[Beta] List Documents SearchPANDADOC_SEARCH_DOCUMENTS_AIFind documents from a natural-language query. PandaDoc AI interprets the query and returns the matching documents. PandaDoc offers two document search tools: this AI-powered search and the structured <a href="#/operations/listDocuments">List Documents</a> endpoint. <details><summary><strong>Document Search Tools Guide</strong> — click to expand</summary> #### When to use AI Search (this endpoint) - The query is in natural language (e.g., "show me all completed documents from Q2 2026") - The query mentions people by name (e.g., "contracts shared with John Smith") - The query uses relative date expressions (e.g., "last week", "this quarter") - You want the system to automatically determine the best filtering strategy - You want follow-up suggestions to help refine the search #### When to use List Documents - You already have exact, structured filter parameters (specific status codes, precise ISO-8601 date ranges) - You need to paginate through a large result set (explicit page/count control) - You need faster, more predictable response times - You need deterministic, repeatable queries for automation workflows #### Comparison | Feature | AI Search | List Documents | | ------------------------ | --------------------------------------------------- | ------------------------------------------------ | | **Input** | Single natural-language query | Search query + optional structured filters | | **Date handling** | Understands relative dates ("last week", "Q2 2026") | Requires explicit ISO-8601 date range | | **Status filtering** | Interprets from query ("completed", "sent") | Requires numeric status codes | | **Contact/owner search** | Resolves people by name | Not supported | | **Pagination** | Returns top 100 results | Supports explicit page and page size (up to 100) | | **Suggestions** | Returns follow-up suggestions for refinement | No suggestions | | **Best for** | Conversational, exploratory search | Precise, structured, repeatable queries | </details> The response may return fewer items than the total matches. The search caps the returned list based on query complexity: `count` shows the number of items returned in `results`. When the query matches more documents than returned, use one of the returned `suggestions` as a stricter follow-up query to narrow the results. > 🚧 **Beta** > > This endpoint is currently in beta and may change without notice.Connection
Find documents from a natural-language query. PandaDoc AI interprets the query and returns the matching documents. PandaDoc offers two document search tools: this AI-powered search and the structured <a href="#/operations/listDocuments">List Documents</a> endpoint. <details><summary><strong>Document Search Tools Guide</strong> — click to expand</summary> #### When to use AI Search (this endpoint) - The query is in natural language (e.g., "show me all completed documents from Q2 2026") - The query mentions people by name (e.g., "contracts shared with John Smith") - The query uses relative date expressions (e.g., "last week", "this quarter") - You want the system to automatically determine the best filtering strategy - You want follow-up suggestions to help refine the search #### When to use List Documents - You already have exact, structured filter parameters (specific status codes, precise ISO-8601 date ranges) - You need to paginate through a large result set (explicit page/count control) - You need faster, more predictable response times - You need deterministic, repeatable queries for automation workflows #### Comparison | Feature | AI Search | List Documents | | ------------------------ | --------------------------------------------------- | ------------------------------------------------ | | **Input** | Single natural-language query | Search query + optional structured filters | | **Date handling** | Understands relative dates ("last week", "Q2 2026") | Requires explicit ISO-8601 date range | | **Status filtering** | Interprets from query ("completed", "sent") | Requires numeric status codes | | **Contact/owner search** | Resolves people by name | Not supported | | **Pagination** | Returns top 100 results | Supports explicit page and page size (up to 100) | | **Suggestions** | Returns follow-up suggestions for refinement | No suggestions | | **Best for** | Conversational, exploratory search | Precise, structured, repeatable queries | </details> The response may return fewer items than the total matches. The search caps the returned list based on query complexity: `count` shows the number of items returned in `results`. When the query matches more documents than returned, use one of the returned `suggestions` as a stricter follow-up query to narrow the results. > 🚧 **Beta** > > This endpoint is currently in beta and may change without notice.
Authentication
Connected account requiredTags
Document Section Upload StatusPANDADOC_SECTION_DETAILSReceive the upload status of the document and sections by their `upload_id`. Requesting document section upload status is useful to ensure a document section upload is in the expected state before calling additional API methods. In response, you receive an array with `sections_uuid`. You can receive information about each section using the [Document Section Info](https://developers.pandadoc.com/reference/document-section-info) endpoint. ```json "section_uuids": [ "H8T8CJofGY6JwTsWsPuDEF", "8MwLaU4SaZywqLiDk26mDF" ] ``` ## Available Document Section Upload Statuses The following is a complete list of all possible document statuses returned: | Document Status | Status Description | | :----------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `document_sections_upload.UPLOADED` | The document section upload process has just been created. It is in processing and will be in `document_sections_upload.PROCESSED` state momentarily. | | `document_sections_upload.PROCESSED` | The document sections upload is processed and the sections are already created in the document. All aspects of the document sections can be edited in this state. | | `document_sections_upload.ERROR` | Document section upload procces has been failed. For more information check error details in the response. |Connection
Receive the upload status of the document and sections by their `upload_id`. Requesting document section upload status is useful to ensure a document section upload is in the expected state before calling additional API methods. In response, you receive an array with `sections_uuid`. You can receive information about each section using the [Document Section Info](https://developers.pandadoc.com/reference/document-section-info) endpoint. ```json "section_uuids": [ "H8T8CJofGY6JwTsWsPuDEF", "8MwLaU4SaZywqLiDk26mDF" ] ``` ## Available Document Section Upload Statuses The following is a complete list of all possible document statuses returned: | Document Status | Status Description | | :----------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `document_sections_upload.UPLOADED` | The document section upload process has just been created. It is in processing and will be in `document_sections_upload.PROCESSED` state momentarily. | | `document_sections_upload.PROCESSED` | The document sections upload is processed and the sections are already created in the document. All aspects of the document sections can be edited in this state. | | `document_sections_upload.ERROR` | Document section upload procces has been failed. For more information check error details in the response. |
Authentication
Connected account requiredTags
Document Section DetailsPANDADOC_SECTION_INFOReceive information about each section.Connection
Receive information about each section.
Authentication
Connected account requiredTags
Send DocumentPANDADOC_SEND_DOCUMENT> 🚧 Using the Sandbox Key > > When you use a [sandbox API key](https://developers.pandadoc.com/reference/sandbox-key) during the free trial period, the sender and recipient email addresses must be from the same organisation (email domain). ## Document State - You can only send a document in the `document.draft` status. - After creating a new document, it usually retains a `document.uploaded` status for 3-5 seconds while the document syncs across PandaDoc servers. When the document is available for further API calls, it moves to the `document.draft` state. Use [Document Status](/reference/document-status) or [Webhooks](/reference/on-document-status-change) to check document status. - Moving a document to the `document.sent` status finalizes the document structure, before recipients can complete it. - If a template used for the document creation has an approval workflow turned on, the sent document moves to the `document.waiting_approval` status. Once the document is approved, you need to make the call again to move the document to `document.sent` status. ## Send and Silence Notifications - By default, PandaDoc sends a notification email to the recipient, as well as notifications the sender has configured. You may disable all notifications for recipients by passing `silent: true`. This is useful when you are using alternative delivery methods such as linking to the document or embedding the document. - The `silent: true` parameter disables sent, viewed, comment and completed document email notifications. "Document Approval" notification won't be affected by this parameter. - If you pass `silent: false`, the document is going to be delivered by email and/or SMS.  ## Select Approver from Group If you have previously set up an approval workflow with selectable groups on the UI, you can select a particular approver from this group. Learn more about [selectable groups](https://support.pandadoc.com/en/articles/9714799-approval-workflow#h_01H4GNY5GSGG38BPYY46XV7GB4). To set an approver, we recommend to follow these steps: 1. Run the [Document Details](https://developers.pandadoc.com/reference/document-details) request. 2. Copy the `steps` part from the `approval_execution` section of the response into the `selected_approvers` field of the Send Document payload. 3. Modify your payload according to business needs: set `is_selected` to true for one approver. > 📘 **Note**: You can change the selected approver only if you revert your document back to the `document.draft` status.Connection
> 🚧 Using the Sandbox Key > > When you use a [sandbox API key](https://developers.pandadoc.com/reference/sandbox-key) during the free trial period, the sender and recipient email addresses must be from the same organisation (email domain). ## Document State - You can only send a document in the `document.draft` status. - After creating a new document, it usually retains a `document.uploaded` status for 3-5 seconds while the document syncs across PandaDoc servers. When the document is available for further API calls, it moves to the `document.draft` state. Use [Document Status](/reference/document-status) or [Webhooks](/reference/on-document-status-change) to check document status. - Moving a document to the `document.sent` status finalizes the document structure, before recipients can complete it. - If a template used for the document creation has an approval workflow turned on, the sent document moves to the `document.waiting_approval` status. Once the document is approved, you need to make the call again to move the document to `document.sent` status. ## Send and Silence Notifications - By default, PandaDoc sends a notification email to the recipient, as well as notifications the sender has configured. You may disable all notifications for recipients by passing `silent: true`. This is useful when you are using alternative delivery methods such as linking to the document or embedding the document. - The `silent: true` parameter disables sent, viewed, comment and completed document email notifications. "Document Approval" notification won't be affected by this parameter. - If you pass `silent: false`, the document is going to be delivered by email and/or SMS.  ## Select Approver from Group If you have previously set up an approval workflow with selectable groups on the UI, you can select a particular approver from this group. Learn more about [selectable groups](https://support.pandadoc.com/en/articles/9714799-approval-workflow#h_01H4GNY5GSGG38BPYY46XV7GB4). To set an approver, we recommend to follow these steps: 1. Run the [Document Details](https://developers.pandadoc.com/reference/document-details) request. 2. Copy the `steps` part from the `approval_execution` section of the response into the `selected_approvers` field of the Send Document payload. 3. Modify your payload according to business needs: set `is_selected` to true for one approver. > 📘 **Note**: You can change the selected approver only if you revert your document back to the `document.draft` status.
Authentication
Connected account requiredTags
Content Library Item StatusPANDADOC_STATUS_CONTENT_LIBRARY_ITEMRequesting the CLI status helps verify that a CLI is in the expected state before invoking additional API methods. ## Available CLI Statuses The following is a complete list of all possible CLI statuses returned: | CLI Status | Status Description | |-----------------|--------------------| | `cli.UPLOADED` | The CLI upload process has been initiated and is currently in progress. It will soon transition to the `cli.PROCESSED` state. | | `cli.PROCESSED` | The CLI has been successfully uploaded and created. At this stage, all aspects of the CLI are editable. | | `cli.ERROR` | The CLI upload process has failed. Please refer to the error details in the response for more information. |Connection
Requesting the CLI status helps verify that a CLI is in the expected state before invoking additional API methods. ## Available CLI Statuses The following is a complete list of all possible CLI statuses returned: | CLI Status | Status Description | |-----------------|--------------------| | `cli.UPLOADED` | The CLI upload process has been initiated and is currently in progress. It will soon transition to the `cli.PROCESSED` state. | | `cli.PROCESSED` | The CLI has been successfully uploaded and created. At this stage, all aspects of the CLI are editable. | | `cli.ERROR` | The CLI upload process has failed. Please refer to the error details in the response for more information. |
Authentication
Connected account requiredTags
Document StatusPANDADOC_STATUS_DOCUMENTIt is useful to request document status to ensure a document is in the expected state before calling additional API methods. ### Required Document Statuses Here are some common methods and the `document.status` required to proceed: | API Method | Required Document State | | :------------------- | :---------------------- | | Send A Document | `document.draft` | | Get Document Details | `document.draft` | | Embed A Document | `document.sent` | | Download A Document | `document.completed` | > 📘 Polling vs Webhooks > > If you are using the `GET` document status endpoint for [**polling**](https://en.wikipedia.org/wiki/Polling_(computer_science)), we also support and recommend using **webhooks** for event-driven needs: <https://developers.pandadoc.com/docs/listen-document-status-changes#/> ### Available Document Statuses The following is a complete list of all possible document statuses returned: | Document Status | Status Description | | :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `document.uploaded` | The document has just been created or uploaded. It is in processing and will be in `document.draft` state soon. | | `document.error` | The document creation has failed. This status is terminal, you should stop polling after getting it. | `document.draft` | The document is in a draft state. All aspects of the document can be edited in this state. Our API does not support edits after the document has been created, but it can still be edited manually on <https://app.pandadoc.com> | | `document.sent` | The document has been "sealed" and optionally sent. No further document edits can occur except for document recipient(s) filling out or signing the document. | | `document.viewed` | Document recipient(s) have viewed the sent document. | | `document.waiting_approval` | The document has an [automatic approval workflow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) and has not yet been approved. | | `document.rejected` | The document has an [automatic approval workflow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) and was rejected. | | `document.approved` | The document has an [automatic approval workflow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) and was approved. | | `document.waiting_pay` | The document has a [Stripe payment](https://support.pandadoc.com/en/articles/9714942-stripe-checkout-payments) option and is awaiting payment. | | `document.paid` | The document has a [Stripe payment](https://support.pandadoc.com/en/articles/9714942-stripe-checkout-payments) option and was paid. | | `document.completed` | The document has been completed by all recipients. | | `document.voided` | The document expired and is no longer available for completion or signature. | | `document.declined` | The document was [manually marked](https://support.pandadoc.com/en/articles/9714842-manually-change-document-status) as "Declined" | | `document.external_review` | The document is reviewed by it's recipient using Suggest Edit feature | | `document.scheduled` | The document is a draft scheduled to be sent automatically at a future time. |Connection
It is useful to request document status to ensure a document is in the expected state before calling additional API methods. ### Required Document Statuses Here are some common methods and the `document.status` required to proceed: | API Method | Required Document State | | :------------------- | :---------------------- | | Send A Document | `document.draft` | | Get Document Details | `document.draft` | | Embed A Document | `document.sent` | | Download A Document | `document.completed` | > 📘 Polling vs Webhooks > > If you are using the `GET` document status endpoint for [**polling**](https://en.wikipedia.org/wiki/Polling_(computer_science)), we also support and recommend using **webhooks** for event-driven needs: <https://developers.pandadoc.com/docs/listen-document-status-changes#/> ### Available Document Statuses The following is a complete list of all possible document statuses returned: | Document Status | Status Description | | :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `document.uploaded` | The document has just been created or uploaded. It is in processing and will be in `document.draft` state soon. | | `document.error` | The document creation has failed. This status is terminal, you should stop polling after getting it. | `document.draft` | The document is in a draft state. All aspects of the document can be edited in this state. Our API does not support edits after the document has been created, but it can still be edited manually on <https://app.pandadoc.com> | | `document.sent` | The document has been "sealed" and optionally sent. No further document edits can occur except for document recipient(s) filling out or signing the document. | | `document.viewed` | Document recipient(s) have viewed the sent document. | | `document.waiting_approval` | The document has an [automatic approval workflow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) and has not yet been approved. | | `document.rejected` | The document has an [automatic approval workflow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) and was rejected. | | `document.approved` | The document has an [automatic approval workflow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) and was approved. | | `document.waiting_pay` | The document has a [Stripe payment](https://support.pandadoc.com/en/articles/9714942-stripe-checkout-payments) option and is awaiting payment. | | `document.paid` | The document has a [Stripe payment](https://support.pandadoc.com/en/articles/9714942-stripe-checkout-payments) option and was paid. | | `document.completed` | The document has been completed by all recipients. | | `document.voided` | The document expired and is no longer available for completion or signature. | | `document.declined` | The document was [manually marked](https://support.pandadoc.com/en/articles/9714842-manually-change-document-status) as "Declined" | | `document.external_review` | The document is reviewed by it's recipient using Suggest Edit feature | | `document.scheduled` | The document is a draft scheduled to be sent automatically at a future time. |
Authentication
Connected account requiredTags
Document Auto Reminder StatusPANDADOC_STATUS_DOCUMENT_AUTO_REMINDERRetrieves the current auto reminder status per recipient for a specified document. Recipients who could not receive reminders due to validations (recipient groups, non-signers, etc.) will be skipped and not included in the response.Connection
Retrieves the current auto reminder status per recipient for a specified document. Recipients who could not receive reminders due to validations (recipient groups, non-signers, etc.) will be skipped and not included in the response.
Authentication
Connected account requiredTags
Template StatusPANDADOC_STATUS_TEMPLATE## Available Template Statuses The following is a complete list of all possible template statuses returned: | Template Status | Status Description | | :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- | | `template.UPLOADED` | The template upload process has been initiated and is currently in progress. It will soon transition to the `template.PROCESSED` state. | | `template.PROCESSED` | The template has been successfully uploaded and created. At this stage, all aspects of the template are editable. | | `template.ERROR` | The template upload process has failed. Please refer to the error details in the response for more information. |Connection
## Available Template Statuses The following is a complete list of all possible template statuses returned: | Template Status | Status Description | | :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- | | `template.UPLOADED` | The template upload process has been initiated and is currently in progress. It will soon transition to the `template.PROCESSED` state. | | `template.PROCESSED` | The template has been successfully uploaded and created. At this stage, all aspects of the template are editable. | | `template.ERROR` | The template upload process has failed. Please refer to the error details in the response for more information. |
Authentication
Connected account requiredTags
Get template settingsPANDADOC_TEMPLATE_SETTINGS_GETRetrieves the settings for a specified template. Only the language field is currently supported.Connection
Retrieves the settings for a specified template. Only the language field is currently supported.
Authentication
Connected account requiredTags
Update template settingsPANDADOC_TEMPLATE_SETTINGS_UPDATEUpdates the settings for a specified template. Only the language field is currently supported.Connection
Updates the settings for a specified template. Only the language field is currently supported.
Authentication
Connected account requiredTags
Transfer all documents ownershipPANDADOC_TRANSFER_ALL_DOCUMENTS_OWNERSHIPThis method transfers ownership of all documents from one member to another.Connection
This method transfers ownership of all documents from one member to another.
Authentication
Connected account requiredTags
Update document ownershipPANDADOC_TRANSFER_DOCUMENT_OWNERSHIPThis operation allows transferring the ownership of a document to another user by specifying the document ID and membership ID.Connection
This operation allows transferring the ownership of a document to another user by specifying the document ID and membership ID.
Authentication
Connected account requiredTags
Update Catalog ItemPANDADOC_UPDATE_CATALOG_ITEMUpdate catalog item.Connection
Update catalog item.
Authentication
Connected account requiredTags
Update ContactPANDADOC_UPDATE_CONTACTThis method updates a contact details.Connection
This method updates a contact details.
Authentication
Connected account requiredTags
Update DocumentPANDADOC_UPDATE_DOCUMENTUse the PATCH method to update a PandaDoc document. > 🚧 Document status > > You can only update a document in the Draft status (`document.draft`). > > After creating a new document, it usually retains a `document.uploaded` status for 3-5 seconds while the document syncs across PandaDoc servers. When the document is available for further API calls, the document moves to the `document.draft` state. Use [Document Status](https://developers.pandadoc.com/reference/document-status) or Webhooks to check document status.Connection
Use the PATCH method to update a PandaDoc document. > 🚧 Document status > > You can only update a document in the Draft status (`document.draft`). > > After creating a new document, it usually retains a `document.uploaded` status for 3-5 seconds while the document syncs across PandaDoc servers. When the document is available for further API calls, the document moves to the `document.draft` state. Use [Document Status](https://developers.pandadoc.com/reference/document-status) or Webhooks to check document status.
Authentication
Connected account requiredTags
Update Document Auto Reminder SettingsPANDADOC_UPDATE_DOCUMENT_AUTO_REMINDER_SETTINGSConfigures automatic reminders for document recipients. These reminders are sent after the document's initial dispatch. Settings include enabling reminders, delivery method (email/SMS), initial delay, and recurrence frequency.Connection
Configures automatic reminders for document recipients. These reminders are sent after the document's initial dispatch. Settings include enabling reminders, delivery method (email/SMS), initial delay, and recurrence frequency.
Authentication
Connected account requiredTags
Update Document Fields AssignmentPANDADOC_UPDATE_DOCUMENT_FIELDS_ASSIGNMENTAssign, reassign, or unassign document fields to recipients. Supports bulk operations by accepting multiple field assignment items in a single request. > 🚧 Before you start > > - The document must be in the 'Draft' (`document.draft`) status. > - You must have the 'Can Edit Document' permission.Connection
Assign, reassign, or unassign document fields to recipients. Supports bulk operations by accepting multiple field assignment items in a single request. > 🚧 Before you start > > - The document must be in the 'Draft' (`document.draft`) status. > - You must have the 'Can Edit Document' permission.
Authentication
Connected account requiredTags
Template UpdatePANDADOC_UPDATE_TEMPLATEUpdate a template. Currently supports updating template variables (`tokens`) and managing template roles. > 🚧 Template status > > You can only update a template in the PROCESSED status (`template.PROCESSED`). > > After creating a new template, it usually retains a `template.uploaded` status for 3-5 seconds while the template syncs across PandaDoc servers. When the template is available for further API calls, the template moves to the `template.PROCESSED` state. Use [Template Status](https://developers.pandadoc.com/reference/template-status) or Webhooks to check template status. ## Managing template roles Pass a `roles` array to replace the full set of template roles in a single request: - Items with an existing `id` update that role (`name`, `signing_order`). - Items without an `id` create a new role. - Existing roles whose `id` is not in the array are deleted. Role names must be unique within a template. Preassigned contacts and contact groups attached to roles in the template editor are preserved on updates and removed together with their role on deletion — they are not managed by this endpoint.Connection
Update a template. Currently supports updating template variables (`tokens`) and managing template roles. > 🚧 Template status > > You can only update a template in the PROCESSED status (`template.PROCESSED`). > > After creating a new template, it usually retains a `template.uploaded` status for 3-5 seconds while the template syncs across PandaDoc servers. When the template is available for further API calls, the template moves to the `template.PROCESSED` state. Use [Template Status](https://developers.pandadoc.com/reference/template-status) or Webhooks to check template status. ## Managing template roles Pass a `roles` array to replace the full set of template roles in a single request: - Items with an existing `id` update that role (`name`, `signing_order`). - Items without an `id` create a new role. - Existing roles whose `id` is not in the array are deleted. Role names must be unique within a template. Preassigned contacts and contact groups attached to roles in the template editor are preserved on updates and removed together with their role on deletion — they are not managed by this endpoint.
Authentication
Connected account requiredTags
Update Template Sharing SettingsPANDADOC_UPDATE_TEMPLATE_SHARING_SETTINGSReplaces the full list of Workspaces this Template is shared with. The caller must be a member of every Workspace being newly shared by this call. Unsharing a Workspace only requires permission to edit the Template.Connection
Replaces the full list of Workspaces this Template is shared with. The caller must be a member of every Workspace being newly shared by this call. Unsharing a Workspace only requires permission to edit the Template.
Authentication
Connected account requiredTags
Update Webhook SubscriptionPANDADOC_UPDATE_WEBHOOK_SUBSCRIPTIONThis operation updates the details of a webhook subscription.Connection
This operation updates the details of a webhook subscription.
Authentication
Connected account requiredTags
Update Webhook Subscription Shared KeyPANDADOC_UPDATE_WEBHOOK_SUBSCRIPTION_SHARED_KEYThis operation regenerates the shared key for a specific webhook subscription identified by its UUID.Connection
This operation regenerates the shared key for a specific webhook subscription identified by its UUID.
Authentication
Connected account requiredTags
Create Document SectionPANDADOC_UPLOAD_SECTIONWith this endpoint, you can add a new section to an existing PandaDoc document (create a bundle). You can upload a section to the document using a PandaDoc template or a file by URL. > ⏱️ Document Section creation is a non-blocking (asynchronous) operation > > The document creation process may take some time. > > With a successful request, you receive a response with the created upload ID and status `document_sections_upload.uploaded`. After processing completes on our servers, usually a few seconds, the document moves to the `document_sections_upload.PROCESSED` status. ## Using a PandaDoc template <details> > 🚧 Current Version Limitations > > Images in sections are currently not supported. > 📘 Pricing tables note > > Each pricing table must have a unique name to populate it with data correctly. A PandaDoc template is a document template created and edited in the PandaDoc web application. Our [help center](https://support.pandadoc.com/en/articles/9714616-save-time-with-a-reusable-template) has further information on PandaDoc templates. If you don't have any PandaDoc Template yet, you can easily create one by clicking [Copy a Sample PandaDoc template](https://app.pandadoc.com/get-this-template/?pt=public_template&pub=eiC3a6qBVfEfbw7VCYgaeN). This will open the PandaDoc application in a new tab, copy the sample template into your account, and create a new document from the template. </details> ## Using a File by URL <details> Using this endpoint you can add a section to the existing document. The section is created from a file you upload. The file can be a PDF, DocX, or RTF. > 📘 We've prepared two samples that you can use to test the request. > Download them here: > > - [Download a Sample PDF with Form Fields](https://cdn2.hubspot.net/hubfs/2127247/public-templates/SamplePandaDocPdf_FormFields.pdf) > - [Download a Sample PDF with Field Tags](https://5132871.fs1.hubspotusercontent-na1.net/hubfs/5132871/SamplePandaDocPdf_FieldTags_updated.pdf) > ❗️ Limitations > > * This method does not support multiple documents. > * The maximum supported file size is 50 MB. API returns "413 Request entity too large" in case of bigger files. > * PandaDoc does not support creating document from a PDF with encrypted files (to check whether a file is encrypted or not, try Get info -> Secure: Password Encrypted). ### PDF Form Fields PandaDoc recognizes PDF form fields. To enable this feature, pass the optional `parse_form_fields` value as `true` when making a create document section API call. We support Text fields, Dropdowns, and Signature fields. If you would like to pass additional parameters to configure PDF form fields, use the PDF field name as an optId. You can use a PDF editor such as Adobe Acrobat, Foxit to get and edit field names in your PDF. [**Download a Sample PDF with Form Fields**](https://cdn2.hubspot.net/hubfs/2127247/public-templates/SamplePandaDocPdf_FormFields.pdf) ### PDF/DocX/RTF Field Tags This parsing format allows a word processor such as [Microsoft Word](https://support.office.com/en-us/article/Save-as-PDF-d85416c5-7d77-4fd6-a216-6f4bf7c7c110?ui=en-US&rs=en-US&ad=US) or [Google Docs](https://support.google.com/drive/answer/2423534?co=GENIE.Platform%3DDesktop&hl=en) to prepare a document and save it in PDF, DocX or RTF format. Within the text, PandaDoc parses field tags. A field tag starts and ends with brackets. The field tag includes basic information on how to create a form field in the PandaDoc document. The request JSON object `optId` can also extend this information for even greater control. Here is an example of how the field tag in a PDF/DocX/RTF is converted to a text field in the PandaDoc document:  [**Download a Sample PDF with Field Tags**](https://cdn2.hubspot.net/hubfs/2127247/public-templates/SamplePandaDocPdf_FieldTags.pdf) #### PDF Field Tag Key  | Number | Key | Description | Example | | :----- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------- | | 1 | `fieldType` | Field type from the table documented below | `signature`, or `s` for shorthand | | 2 | `*` | Optional `*` denotes the field is not required | `*` | | 3 | `role` | Role name. Associate the field tag with a recipient role. Roles must be assigned to recipients in the request body. In this case we are using role `s1` to keep the length short and denote the concept of "signer 1". `s1` would be the value passed as role in a recipient JSON object. | `s1` | | 4 | `optId` | Optional field Id. Specify more information about the field tag within the post request by using this id. | `sigBox17` | | 5 | `_____` | Use underscores to widen the field if desired. The form fields in PandaDoc will scale to the length and size of your field tag. | `_____` | > 🚧 Role names restrictions > > Underscores are not supported in role names for a file with a Field Tag. #### PDF/DocX/RTF Field Tag Supported Types | Field Type | Short Notation | Is PandaDoc Field | | :---------- | :------------- | :---------------- | | `textfield` | `t` | Field | | `checkbox` | `c` | Field | | `signature` | `s` | Field | | `date` | `d` | Field | | `initials` | `i` | Field | | `dropdown` | `dd` | Field | ```json Field Tags Example "fields": { "textfield": { "value": "Jane", "role": "user" }, "dropdown": { "value": "opt1", "role": "user", "options":[ "opt1", "opt2", "opt3" ] }, "checkbox": { "value": true, "role": "user" }, "date":{ "value": "2022-05-20", "role": "user" }, "signature": { "value": "", "role": "user" } } ``` > 📘 Fields in PandaDoc > > The following article explains how to use Fields: [Everything you need to know about Fields](https://support.pandadoc.com/en/articles/9714583-fields) ### Signing order Set a signing order for document section sections created from a file. ```json "recipients": [ { "email": "josh@example.com", "first_name": "Josh", "last_name": "Ron", "role": "user", "signing_order": 1 } ] ``` > 📘 Signing order in PandaDoc > > The following article explains how to use signing order: [How to use signing order](https://support.pandadoc.com/en/articles/9714771-signing-order) ### Error handling | Error description | Type | Root cause | |---|---|---| | Document version 1 is not supported. | Validation errors: Form fields | The creation document section is supported only for document version 2 | | PDF content hasn't been processed: document is broken or locked | Processing errors: Failed to process document content | Document converter service can’t process PDF. This may be caused by locked PDF or if it’s broken. | | Error occurred while parsing PDF field tags. Please try PDF flattening or reach out to support | Processing errors: Field tag / Form field validation error | Doc converter managed to parse PDF and extract tags, but at least 1 of them is invalid (having negative position, for example). Usually we recommend PDF flattening and it helps | | No role='{role}' for field tag specified in `recipients` found, roles passed were {roles} | Validation errors: Field tags | Role is invalid. When the role specified in field tag is empty or wasn’t provided in a payload for any recipient | | All field tags within PDF must be declared within `fields` object of the JSON Payload. No field with optId='{optid}' found in fields object, fields passed were {optids} | Validation errors: Field tags | Label is invalid. Occurs when **optId** specified in field tag is empty or no field with **name = optId** was provided in a payload | | One of field tags in PDF with type='{field}' doesn't have a role | Validation errors: Field tags | Field tag in PDF has no role. One of field tags in PDF with type=% doesn't have a role. | | Role for form field with name='{role}' is not provided in payload | Validation errors: Form fields | Role for form field with ‘name’ is not provided. Occurs when `role` for form field with name=%s is not provided in payload | | Field for form field with name='{name}' is not specified in payload, available names are {names} | Validation errors: Form fields | Field ‘name’ is not specified in payload. Occurs when no field with name = form field name was provided in a payload | | No role='{role}' for form field specified in 'recipients' found, roles passed were {roles}" | Validation errors: Form fields | Failed to resolve field actor for `role` in form field with ‘name’. Occurs when role from the form field is not found in recipient’s from payload | | Failed to download file from link {url}. | Source errors | Error on attempt to download file. An error has occurred on an attempt to download file using the provided ‘url’ in payload | | Failed to download file from link {url} (status code: {status code}) | Source errors | Error with HTTP status code on attempt to download file. An error has occurred on an attempt to download file using the provided ‘url’ in payload - remote server responded with the HTTP status code | | Content type='{type}' is not supported, available types are {types} | Source errors | Content type is not supported. Content type should be one of the following: PDF, ZIP, doc, docx, RTF | | The maximum file size is exceeded, limit is {limit} MB | Source errors | The file size has exceeded the allowed limits. An error occurred while trying to download a file that is too large (limit is 50M) | </details>Connection
With this endpoint, you can add a new section to an existing PandaDoc document (create a bundle). You can upload a section to the document using a PandaDoc template or a file by URL. > ⏱️ Document Section creation is a non-blocking (asynchronous) operation > > The document creation process may take some time. > > With a successful request, you receive a response with the created upload ID and status `document_sections_upload.uploaded`. After processing completes on our servers, usually a few seconds, the document moves to the `document_sections_upload.PROCESSED` status. ## Using a PandaDoc template <details> > 🚧 Current Version Limitations > > Images in sections are currently not supported. > 📘 Pricing tables note > > Each pricing table must have a unique name to populate it with data correctly. A PandaDoc template is a document template created and edited in the PandaDoc web application. Our [help center](https://support.pandadoc.com/en/articles/9714616-save-time-with-a-reusable-template) has further information on PandaDoc templates. If you don't have any PandaDoc Template yet, you can easily create one by clicking [Copy a Sample PandaDoc template](https://app.pandadoc.com/get-this-template/?pt=public_template&pub=eiC3a6qBVfEfbw7VCYgaeN). This will open the PandaDoc application in a new tab, copy the sample template into your account, and create a new document from the template. </details> ## Using a File by URL <details> Using this endpoint you can add a section to the existing document. The section is created from a file you upload. The file can be a PDF, DocX, or RTF. > 📘 We've prepared two samples that you can use to test the request. > Download them here: > > - [Download a Sample PDF with Form Fields](https://cdn2.hubspot.net/hubfs/2127247/public-templates/SamplePandaDocPdf_FormFields.pdf) > - [Download a Sample PDF with Field Tags](https://5132871.fs1.hubspotusercontent-na1.net/hubfs/5132871/SamplePandaDocPdf_FieldTags_updated.pdf) > ❗️ Limitations > > * This method does not support multiple documents. > * The maximum supported file size is 50 MB. API returns "413 Request entity too large" in case of bigger files. > * PandaDoc does not support creating document from a PDF with encrypted files (to check whether a file is encrypted or not, try Get info -> Secure: Password Encrypted). ### PDF Form Fields PandaDoc recognizes PDF form fields. To enable this feature, pass the optional `parse_form_fields` value as `true` when making a create document section API call. We support Text fields, Dropdowns, and Signature fields. If you would like to pass additional parameters to configure PDF form fields, use the PDF field name as an optId. You can use a PDF editor such as Adobe Acrobat, Foxit to get and edit field names in your PDF. [**Download a Sample PDF with Form Fields**](https://cdn2.hubspot.net/hubfs/2127247/public-templates/SamplePandaDocPdf_FormFields.pdf) ### PDF/DocX/RTF Field Tags This parsing format allows a word processor such as [Microsoft Word](https://support.office.com/en-us/article/Save-as-PDF-d85416c5-7d77-4fd6-a216-6f4bf7c7c110?ui=en-US&rs=en-US&ad=US) or [Google Docs](https://support.google.com/drive/answer/2423534?co=GENIE.Platform%3DDesktop&hl=en) to prepare a document and save it in PDF, DocX or RTF format. Within the text, PandaDoc parses field tags. A field tag starts and ends with brackets. The field tag includes basic information on how to create a form field in the PandaDoc document. The request JSON object `optId` can also extend this information for even greater control. Here is an example of how the field tag in a PDF/DocX/RTF is converted to a text field in the PandaDoc document:  [**Download a Sample PDF with Field Tags**](https://cdn2.hubspot.net/hubfs/2127247/public-templates/SamplePandaDocPdf_FieldTags.pdf) #### PDF Field Tag Key  | Number | Key | Description | Example | | :----- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------- | | 1 | `fieldType` | Field type from the table documented below | `signature`, or `s` for shorthand | | 2 | `*` | Optional `*` denotes the field is not required | `*` | | 3 | `role` | Role name. Associate the field tag with a recipient role. Roles must be assigned to recipients in the request body. In this case we are using role `s1` to keep the length short and denote the concept of "signer 1". `s1` would be the value passed as role in a recipient JSON object. | `s1` | | 4 | `optId` | Optional field Id. Specify more information about the field tag within the post request by using this id. | `sigBox17` | | 5 | `_____` | Use underscores to widen the field if desired. The form fields in PandaDoc will scale to the length and size of your field tag. | `_____` | > 🚧 Role names restrictions > > Underscores are not supported in role names for a file with a Field Tag. #### PDF/DocX/RTF Field Tag Supported Types | Field Type | Short Notation | Is PandaDoc Field | | :---------- | :------------- | :---------------- | | `textfield` | `t` | Field | | `checkbox` | `c` | Field | | `signature` | `s` | Field | | `date` | `d` | Field | | `initials` | `i` | Field | | `dropdown` | `dd` | Field | ```json Field Tags Example "fields": { "textfield": { "value": "Jane", "role": "user" }, "dropdown": { "value": "opt1", "role": "user", "options":[ "opt1", "opt2", "opt3" ] }, "checkbox": { "value": true, "role": "user" }, "date":{ "value": "2022-05-20", "role": "user" }, "signature": { "value": "", "role": "user" } } ``` > 📘 Fields in PandaDoc > > The following article explains how to use Fields: [Everything you need to know about Fields](https://support.pandadoc.com/en/articles/9714583-fields) ### Signing order Set a signing order for document section sections created from a file. ```json "recipients": [ { "email": "josh@example.com", "first_name": "Josh", "last_name": "Ron", "role": "user", "signing_order": 1 } ] ``` > 📘 Signing order in PandaDoc > > The following article explains how to use signing order: [How to use signing order](https://support.pandadoc.com/en/articles/9714771-signing-order) ### Error handling | Error description | Type | Root cause | |---|---|---| | Document version 1 is not supported. | Validation errors: Form fields | The creation document section is supported only for document version 2 | | PDF content hasn't been processed: document is broken or locked | Processing errors: Failed to process document content | Document converter service can’t process PDF. This may be caused by locked PDF or if it’s broken. | | Error occurred while parsing PDF field tags. Please try PDF flattening or reach out to support | Processing errors: Field tag / Form field validation error | Doc converter managed to parse PDF and extract tags, but at least 1 of them is invalid (having negative position, for example). Usually we recommend PDF flattening and it helps | | No role='{role}' for field tag specified in `recipients` found, roles passed were {roles} | Validation errors: Field tags | Role is invalid. When the role specified in field tag is empty or wasn’t provided in a payload for any recipient | | All field tags within PDF must be declared within `fields` object of the JSON Payload. No field with optId='{optid}' found in fields object, fields passed were {optids} | Validation errors: Field tags | Label is invalid. Occurs when **optId** specified in field tag is empty or no field with **name = optId** was provided in a payload | | One of field tags in PDF with type='{field}' doesn't have a role | Validation errors: Field tags | Field tag in PDF has no role. One of field tags in PDF with type=% doesn't have a role. | | Role for form field with name='{role}' is not provided in payload | Validation errors: Form fields | Role for form field with ‘name’ is not provided. Occurs when `role` for form field with name=%s is not provided in payload | | Field for form field with name='{name}' is not specified in payload, available names are {names} | Validation errors: Form fields | Field ‘name’ is not specified in payload. Occurs when no field with name = form field name was provided in a payload | | No role='{role}' for form field specified in 'recipients' found, roles passed were {roles}" | Validation errors: Form fields | Failed to resolve field actor for `role` in form field with ‘name’. Occurs when role from the form field is not found in recipient’s from payload | | Failed to download file from link {url}. | Source errors | Error on attempt to download file. An error has occurred on an attempt to download file using the provided ‘url’ in payload | | Failed to download file from link {url} (status code: {status code}) | Source errors | Error with HTTP status code on attempt to download file. An error has occurred on an attempt to download file using the provided ‘url’ in payload - remote server responded with the HTTP status code | | Content type='{type}' is not supported, available types are {types} | Source errors | Content type is not supported. Content type should be one of the following: PDF, ZIP, doc, docx, RTF | | The maximum file size is exceeded, limit is {limit} MB | Source errors | The file size has exceeded the allowed limits. An error occurred while trying to download a file that is too large (limit is 50M) | </details>
Authentication
Connected account requiredTags