By signing this document electronically, you consent to use\nelectronic records and signatures. Your electronic signature\nis the legal equivalent of your\nhandwritten signature.
\n" } } }, "ESign disclosure feature is disabled": { "value": { "result": { "is_enabled": false, "company_name": null, "esign_disclosure_text": null } } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/status": { "patch": { "tags": [ "Documents" ], "summary": "Document Status Change", "operationId": "changeDocumentStatus", "description": "PandaDoc has eight document statuses, but you can manually set your document status to only four:\n\n### Document statuses\n\n- Completed - `document.completed` - API code `2`\n- Expired - `document.voided` - code `11`\n- Paid - `document.paid` - code `10`. **Important**: You can only set it if you have a payment app connected.\n- Declined - `document.declined` - code `12`\n\n> π§ Pass a numeric code for the corresponding document status, for example, `2` for `document.completed`.\n\nFind more details in [\\[Editor 2.0\\] Manually change document status](https://support.pandadoc.com/en/articles/9714842-manually-change-document-status) topic.\n\n| Current Status | To Completed: | To Expired: | To Paid: | To Declined: |\n|----------------|---------------|-------------|----------|--------------|\n| Draft | YES | NO | YES | YES |\n| Approved | NO | NO | NO | NO |\n| Sent | YES | YES | NO | YES |\n| Viewed | YES | YES | NO | YES |\n| Completed (Auto) | NO | NO | NO | YES |\n| Waithing for payment | NO | NO | YES | YES |\n| Paid | NO | NO | NO | NO |\n| Expired | YES | NO | YES | YES |\n| Declined | YES | NO | YES | NO |\n\n> β - from `document.voided` to `document.paid`\n>\n> β - from `document.paid` to `document.voided`\n", "parameters": [ { "examples": { "Mark as Decline": { "value": "iGsFiaV2hEEvQdhr2WAkMk" }, "Mark as Completed": { "value": "iGsFiaV2hEEvQdhr2WAkMk" }, "Mark as Expired": { "value": "iGsFiaV2hEEvQdhr2WAkMk" }, "Mark as Paid": { "value": "iGsFiaV2hEEvQdhr2WAkMk" } }, "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentStatusChangeRequest" }, "examples": { "Mark as Decline": { "value": { "status": 12, "note": "Change status to Decline", "notify_recipients": false } }, "Mark as Completed": { "value": { "status": 2, "note": "Change status to Completed", "notify_recipients": false } }, "Mark as Expired": { "value": { "status": 11, "note": "Change status to Expired", "notify_recipients": false } }, "Mark as Paid": { "value": { "status": 10, "note": "Change status to Paid", "notify_recipients": false } } } } } }, "responses": { "204": { "description": "No content" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/status?upload": { "patch": { "tags": [ "Documents" ], "summary": "Document Status Change with Upload", "operationId": "changeDocumentStatusWithUpload", "description": "PandaDoc has eight document statuses, but you can manually set your document status to only four:\n\n### Document statuses\n\n- Completed - `document.completed` - API code `2`\n- Expired - `document.voided` - code `11`\n- Paid - `document.paid` - code `10`. **Important**: You can only set it if you have a payment app connected.\n- Declined - `document.declined` - code `12`\n\n> π§ Pass a numeric code for the corresponding document status, for example, `2` for `document.completed`.\n\nFind more details in [\\[Editor 2.0\\] Manually change document status](https://support.pandadoc.com/en/articles/9714842-manually-change-document-status) topic.\n\n| Current Status | To Completed: | To Expired: | To Paid: | To Declined: |\n|----------------|---------------|-------------|----------|--------------|\n| Draft | YES | NO | YES | YES |\n| Approved | NO | NO | NO | NO |\n| Sent | YES | YES | NO | YES |\n| Viewed | YES | YES | NO | YES |\n| Completed (Auto) | NO | NO | NO | YES |\n| Waithing for payment | NO | NO | YES | YES |\n| Paid | NO | NO | NO | NO |\n| Expired | YES | NO | YES | YES |\n| Declined | YES | NO | YES | NO |\n\n> β - from `document.voided` to `document.paid`\n>\n> β - from `document.paid` to `document.voided`\n", "parameters": [ { "examples": { "Mark as Decline": { "value": "iGsFiaV2hEEvQdhr2WAkMk" }, "Mark as Completed": { "value": "iGsFiaV2hEEvQdhr2WAkMk" }, "Mark as Expired": { "value": "iGsFiaV2hEEvQdhr2WAkMk" }, "Mark as Paid": { "value": "iGsFiaV2hEEvQdhr2WAkMk" } }, "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID." } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "Binary attachment file" }, "data": { "allOf": [ { "$ref": "#/components/schemas/DocumentStatusChangeRequest" }, { "description": "JSON as a multipart/form-data string." } ] } } } } } }, "responses": { "204": { "description": "No content" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/draft": { "post": { "tags": [ "Documents" ], "summary": "Move Document to Draft", "operationId": "documentRevertToDraft", "description": "Revert your document back to draft to continue editing it.\n\n> π Returning to Draft works for any document status except Removed.\n\n## After you move your document to the Draft status\n\n- `Signature` and `Initials` fields are cleared. All other fields stay filled in.\n- Recipients are **not** notified that the document is back in Draft.\n- You'll need to resend the document so that recipients can sign the updated version.\n", "parameters": [ { "examples": { "Move to Draft": { "value": "iGsFiaV2hEEvQdhr2WAkMk" } }, "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID." } ], "responses": { "200": { "description": "Success response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentRevertToDraftResponse" }, "examples": { "Move to Draft": { "value": { "id": "msFYActMfJHqNTKH8YSvF1", "name": "Document", "status": "document.draft", "date_created": "2017-08-06T08:42:13.836022Z", "date_modified": "2017-09-04T02:21:13.963750Z", "expiration_date": null, "version": "2" } } } } } }, "423": { "$ref": "#/components/responses/423" } } } }, "/public/v1/documents/{id}/details": { "get": { "tags": [ "Documents" ], "summary": "Document Details", "operationId": "detailsDocument", "description": "Return detailed data about a document. Use Document Status for getting just a basic info and status.\n\nGet details about a document by its `id`. Details include:\n\n- Basic document information (name, document state, owner, sender, grand total, etc.)\n- Recipients (completion status, signing order, etc.)\n- Fields with values (incl. Collect Files field)\n- Tokens (variables) with values\n- Pricing information (pricing tables, products, quotes, etc.)\n- Content block names for table, image, and text blocks (tables, images, texts)\n- Metadata\n- Tags\n- Linked objects\n- [Approval flow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) (if present)\n- Active editing lock (holder and expiry), when the document is locked\n- 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.\n", "parameters": [ { "examples": { "Document from empty template": { "value": "BhVzRcxH9Z2LgfPPGXFUBa" }, "API Sample Document from PandaDoc template": { "value": "PeePkgJLFT2UittjVdEyYG" }, "Completed Document Details": { "value": "f9CbJKS4ZAs6nU629cuowb" } }, "name": "id", "description": "Document ID", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentDetailsResponse" }, "examples": { "Completed Document Details": { "value": { "approval_execution": null, "content_date_modified": "2024-07-08T15:43:54.194562Z", "linked_objects": [], "date_completed": "2024-07-08T15:43:53.877522Z", "id": "f9CbJKS4ZAs6nU629cuowb", "name": "Digital Marketing Proposal", "autonumbering_sequence_name_prefix": null, "date_created": "2024-07-08T15:36:09.600947Z", "date_modified": "2024-07-08T15:43:53.918819Z", "date_sent": "2024-07-08T15:41:23.351853Z", "ref_number": "MTMJR-FEUQB-ECEWW-3WVZP", "created_by": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "pandaDoc@pandadoc.com", "first_name": "Panda", "last_name": "Doc", "avatar": null, "membership_id": "RyMNXBjBPRppw56TfYBrXi" }, "template": { "id": "gZRVmyHiQV5riXSCMKsku2", "name": "Sample Template" }, "expiration_date": "2024-09-06T15:43:36.297737Z", "metadata": { "document__created_via_public_api": "true", "document__creation_source": "public api" }, "tokens": [], "fields": [ { "uuid": "f03e22f3-b3a8-4783-8b26-e43880ef87bf", "name": "Signature", "title": "", "value": {}, "placeholder": "Signature", "assigned_to": { "id": "8KAZvGRL3W4u44a4fyDoeH", "first_name": "Recipient First Name", "last_name": "Recipient Last Name", "email": "test@pandadoc.com", "phone": "", "recipient_type": "signer", "has_completed": true, "role": "Client", "roles": [ "Client" ], "signing_order": null, "delivery_methods": { "sms": false, "email": true }, "redirect": { "is_enabled": false, "url": null }, "type": "recipient" }, "field_id": "signature_f03e22f3-b3a8-4783-8b26-e43880ef87bf", "type": "signature" } ], "pricing": {}, "tables": [ { "name": "Table_1" } ], "images": [ { "name": "Image_1" } ], "texts": [ { "name": "Legal Terms Section" } ], "tags": [ "tag1" ], "status": "document.completed", "qes_status": "pending", "recipients": [ { "id": "8KAZvGRL3W4u44a4fyDoeH", "first_name": "Recipient First Name", "last_name": "Recipient Last Name", "email": "test@pandadoc.com", "phone": "", "recipient_type": "signer", "has_completed": true, "role": "Client", "roles": [ "Client" ], "signing_order": null, "delivery_methods": { "sms": false, "email": true }, "redirect": { "is_enabled": false, "url": null }, "contact_id": "HzXnuyNraSXMhXchYjUmHJ", "shared_link": "https://app.pandadoc.com/document/15d4b481384b652a298530ddc7023bfc07a67d59", "signature_date": "2024-07-08T15:43:53.800135Z", "verification_settings": { "verification_place": "before_open", "kba_verification": null, "passcode_verification": null, "phone_verification": null, "id_verification": { "enabled": true } }, "type": "recipient" } ], "sent_by": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "pandadoc@pandadoc.com", "first_name": "Panda", "last_name": "Doc", "avatar": null }, "grand_total": { "amount": "0", "currency": "EUR" }, "version": "2", "lock": null } }, "Document from empty template": { "value": { "approval_execution": null, "content_date_modified": "2024-07-05T07:21:42.429978Z", "linked_objects": [], "date_completed": null, "id": "VFU2v7oq3ZiKCHD936eoHg", "name": "Document from empty Template", "autonumbering_sequence_name_prefix": null, "date_created": "2024-07-05T07:21:41.984654Z", "date_modified": "2024-07-05T07:21:42.409797Z", "date_sent": null, "ref_number": "MTMJR-FEUQB-ECEWW-3WVZP", "created_by": { "id": "bgx5MR7LiR3f9MQtt4MWYM", "email": "siarhei.soroka@pandadoc.com", "first_name": "Siarhei", "last_name": "Soroka", "avatar": "https://avatars.pandadoc-static.com/users/bgx5MR7LiR3f9MQtt4MWYM/avatar.jpeg", "membership_id": "nYNQTypQfNEnrcVR7VAzWQ" }, "template": { "id": "bonjUYEwp8TtHmEnrEy7kZ", "name": "Sample Template" }, "expiration_date": null, "metadata": { "document__creation_source": "public api", "document__created_via_public_api": "true" }, "tokens": [], "fields": [], "tables": [], "images": [], "pricing": {}, "tags": [], "status": "document.draft", "recipients": [], "sent_by": null, "grand_total": { "amount": "0", "currency": "USD" }, "version": "2", "lock": null } }, "API Sample Document from PandaDoc template": { "value": { "id": "7kqXgjFejB2toXxjcC5jfZ", "name": "API Sample Document from PandaDoc Template", "autonumbering_sequence_name_prefix": null, "date_created": "2021-10-23T21:07:04.147Z", "date_modified": "2021-10-23T21:07:04.147Z", "date_completed": "2021-10-23T21:07:04.147Z", "content_date_modified": "2021-10-23T21:07:04.147Z", "date_sent": null, "ref_number": "MTMJR-FEUQB-ECEWW-3WVZP", "created_by": { "id": "7kqXgjFejB2toXxjcC5jfZ", "membership_id": "7kqXgjFejB2toXxjcC5jfZ", "email": "teset@test.test", "first_name": "Jhon", "last_name": "Dow", "avatar": "https://pd-live-media.s3.amazonaws.com/users/000GTSGwJw000L2KZqc000/avatar.jpg" }, "template": { "id": "hryJY9mqYZHjQCYQuSjRQg", "name": "Upload test" }, "expiration_date": null, "metadata": { "document__created_via_public_api": "true", "my_favorite_pet": "Panda", "opp_id": "1234567" }, "tokens": [ { "name": "Document.GrandTotal", "value": "$29.99" }, { "name": "Favorite.Pet", "value": "Panda" } ], "fields": [ { "uuid": "f9574c3b-5b1e-4479-b2c9-c3ccd92748f3", "name": "Click to upload a file", "title": "", "placeholder": "Click to upload a file", "value": { "name": "file_name.pdf", "url": "https://uploadfields.pandadoc-static.com/collect_files/e7b082c2-395b-43c7-a24c-66bd1bbb5d2f/65af1f23-9d26-4622-8ff0-f406b3be27b8-file_name.pdf" }, "assigned_to": { "id": "Fx7CgaVgpGbJBgZ4i5oTx8", "first_name": "John", "last_name": "Roe", "email": "john@example.com", "recipient_type": "signer", "has_completed": false, "role": "", "roles": [ "singer" ], "type": "recipient" }, "field_id": "CollectFile1", "type": "collect_file" }, { "uuid": "f9574c3b-5b1e-4479-b2c9-c3ccd92748f3", "name": "Favorite.Color", "merge_field": "Favorite.Color", "title": "Textfield", "value": "value", "assigned_to": { "id": "Fx7CgaVgpGbJBgZ4i5oTx8", "first_name": "John", "last_name": "Roe", "email": "john@example.com", "recipient_type": "signer", "has_completed": false, "role": "", "roles": [], "type": "recipient" }, "field_id": "text1", "type": "text" }, { "uuid": "f9574c3b-5b1e-4479-b2c9-c3ccd92748f3", "name": "Like", "merge_field": "Like", "title": "Checkbox", "value": true, "assigned_to": { "id": "Fx7CgaVgpGbJBgZ4i5oTx8", "first_name": "John", "last_name": "Roe", "email": "john@example.com", "recipient_type": "signer", "has_completed": false, "role": "", "roles": [ "signer" ], "type": "recipient" }, "field_id": "checkbox1", "type": "checkbox" } ], "pricing": { "tables": [ { "name": "Pricing Table", "id": "065c5cbc-a065-4843-ba17-028e63779605", "total": "11500", "is_included_in_total": true, "summary": { "subtotal": "11500", "total": "11500", "discount": "0", "tax": "0", "fee": "0" }, "items": [ { "id": "string", "sku": "string", "qty": "10", "name": "Annual license", "cost": "string", "price": "100", "description": "1 year subscription", "custom_fields": {}, "custom_columns": { "Images": "", "Cost": "", "Subtotal": "" }, "discount": { "value": "string", "type": "string" }, "tax_first": { "value": "string", "type": "string" }, "tax_second": { "value": "string", "type": "string" }, "subtotal": "10000", "options": {}, "sale_price": "1000", "taxes": {}, "discounts": {}, "fees": {}, "merged_data": { "custom_name": "SomeName", "custom_description": "SomeCustomDescription", "custom_price": "10.99", "custom_qty": "1.00", "custom_sku": "Test", "custom_tax": { "value": "10", "type": "percent" }, "custom_fee": { "value": "10", "type": "percent" }, "custom_discount": { "value": "10", "type": "percent" }, "custom_text": "Some other", "Cost": null, "Subtotal": "26.38", "fluffiness": "Fluffiness", "Other_field": "SomeText" } } ], "currency": "USD" } ], "quotes": [ { "id": "4b011d86-286b-4f86-b697-90a6ad3f1489", "currency": "USD", "total": "900", "summary": { "total": "900", "subtotal": "1000", "one_time_subtotal": "500", "recurring_subtotal": [ { "billing_cycle": "monthly", "value": "500" } ], "total_qty": "string", "discounts": { "property1": { "type": "string", "value": "string" }, "property2": { "type": "string", "value": "string" } }, "taxes": {}, "fees": {}, "custom_fields": { "property1": "string", "property2": "string" }, "total_discount": "100", "total_tax": "string", "total_fee": "string", "total_savings": "string", "total_contract_value": "1900" }, "sections": [ { "id": "string", "name": "string", "summary": { "total": "1000", "subtotal": "1000", "one_time_subtotal": "500", "recurring_subtotal": [ { "billing_cycle": "monthly", "value": "500" } ], "total_qty": "string", "discounts": {}, "taxes": {}, "fees": {}, "custom_fields": { "property1": "string", "property2": "string" }, "total_section_value": "1900" }, "columns": [ { "header": "string", "name": "string", "merge_name": "string", "hidden": false } ], "items": [ { "id": "string", "sku": "string", "name": "string", "description": "string", "qty": "1", "price": "500", "cost": "string", "billing_frequency": "string", "contract_term": "string", "pricing_method": "string", "type": "string", "reference_type": "string", "options": { "selected": true, "qty_editable": true }, "custom_columns": { "property1": "string", "property2": "string" }, "discounts": { "property1": { "type": "string", "value": "string" }, "property2": { "type": "string", "value": "string" } }, "taxes": { "property1": { "type": "string", "value": "string" }, "property2": { "type": "string", "value": "string" } }, "fees": { "property1": { "type": "string", "value": "string" }, "property2": { "type": "string", "value": "string" } }, "multipliers": { "property1": "string", "property2": "string" }, "total": "string", "overall_total": "1000" } ], "total": "1000", "settings": { "optional": true, "selected": true, "selection_type": "custom" } } ], "merge_rules": [ { "id": "string", "enabled": true, "action": { "type": "string", "section_id": "string" }, "condition": { "field_name": "string", "type": "string", "comparison": [ { "type": "string", "value": "string" } ] } } ], "settings": { "selection_type": "custom" } } ], "total": "11500" }, "tables": [ { "name": "Table 1" } ], "images": [ { "name": "Image 1" } ], "version": "2", "tags": [ "tag1", "tag2" ], "sent_by": null, "recipients": [ { "recipient_type": "CC", "role": "", "roles": [ "user" ], "last_name": "Dow", "signing_order": null, "id": "7kqXgjFejB2toXxjcC5jfZ", "contact_id": "7kqXgjFejB2toXxjcC5jfZ", "first_name": "Jhon", "email": "test@test.com", "has_completed": true, "shared_link": "https://app.pandadoc.com/document/b7f11ea3c09d1c11208cc122457d4f3a2829d364", "verification_settings": { "verification_place": "before_open", "passcode_verification": { "passcode": "SimpleCode1" }, "kba_verification": null, "id_verification": "null,", "phone_verification": null, "email_otp_verification": null }, "signature_date": "2021-10-23T21:07:04.147Z" } ], "grand_total": { "amount": "29.99", "currency": "USD" }, "lock": null, "linked_objects": [ { "provider": "hubspot", "entity_type": "deal", "entity_id": "18640", "id": "ea88ed1dc8094dd3a57754aa643a1954" } ], "status": "document.draft" } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/send": { "post": { "tags": [ "Documents" ], "summary": "Send Document", "operationId": "sendDocument", "description": "> π§ Using the Sandbox Key\n> \n> 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).\n\n## Document State\n\n- You can only send a document in the `document.draft` status.\n- 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.\n- Moving a document to the `document.sent` status finalizes the document structure, before recipients can complete it.\n- 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.\n\n## Send and Silence Notifications\n\n- 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.\n- The `silent: true` parameter disables sent, viewed, comment and completed document email notifications. \"Document Approval\" notification won't be affected by this parameter.\n- If you pass `silent: false`, the document is going to be delivered by email and/or SMS. \n\n\n\n## Select Approver from Group\n\nIf 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). \nTo set an approver, we recommend to follow these steps:\n\n1. Run the [Document Details](https://developers.pandadoc.com/reference/document-details) request.\n2. Copy the `steps` part from the `approval_execution` section of the response into the `selected_approvers` field of the Send Document payload.\n3. Modify your payload according to business needs: set `is_selected` to true for one approver.\n\n> π **Note**: You can change the selected approver only if you revert your document back to the `document.draft` status.\n", "parameters": [ { "name": "id", "description": "Document ID", "in": "path", "schema": { "type": "string" }, "required": true, "example": "ZPeAfcpzr9aiVs5vqUf6jg" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSendRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSendResponse" }, "examples": { "default": { "value": { "id": "qhHUDZkpyTwqoxjfsJdeVP", "name": "Purchase Order", "status": "document.sent", "date_created": "2026-07-31T12:34:39.545645Z", "date_modified": "2026-07-31T12:38:15.189891Z", "date_completed": null, "expiration_date": "2026-09-29T12:38:14.689656Z", "version": "2", "uuid": "qhHUDZkpyTwqoxjfsJdeVP", "recipients": [ { "id": "JQVqawXtDdsDzaaSxWQvff", "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "phone": "", "recipient_type": "signer", "signing_order": 1, "shared_link": "https://app.pandadoc.com/document/v2?token=a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2", "delivery_methods": { "sms": false, "email": true }, "type": "recipient" }, { "id": "4oZSyccEDbK3DEeJFWaHpS", "first_name": "Alex", "last_name": "Nowak", "email": "alex.nowak@example.com", "phone": "+1 800 555 0199", "recipient_type": "signer", "signing_order": 2, "shared_link": "https://app.pandadoc.com/document/v2?token=b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3", "delivery_methods": { "sms": false, "email": true }, "type": "recipient" } ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/editing-sessions": { "post": { "summary": "Create Document Editing Session\n", "description": "Creates a new editing session for the Embedded Editor. The response includes an E-Token, which is required to open the document.\n\n> π§ **Important:** The Embedded Editor can only open documents that have a `draft` status.\n\n#### Limitations\n\n- **Single Active Session per User-Document Pair** \n 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.\n\n- **Weekly Session Cap** \n 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.\n", "operationId": "createDocumentEditingSession", "tags": [ "Documents" ], "parameters": [ { "name": "id", "in": "path", "description": "Document ID", "schema": { "type": "string" }, "required": true, "example": "pSgK5XYZjyg3zXYZxsoUWg" } ], "requestBody": { "required": true, "content": { "application/json": { "examples": { "Default": { "value": { "email": "john.doe@pandadoc.com", "lifetime": 100 } } }, "schema": { "$ref": "#/components/schemas/EditingSessionRequest" } } } }, "responses": { "201": { "description": "Document Editing Session created", "content": { "application/json": { "examples": { "Default": { "value": { "id": "ce9825e5-3210-4a8f-1230-f32b643295d2", "email": "john.doe@pandadoc.com", "expires_at": "2025-01-10T00:09:09.612651Z", "token": "985b695b56eaaa571e9bb8e522afd5bd335c32d7", "document_id": "pSgK5XYZjyg3zXYZxsoUWg" } } }, "schema": { "allOf": [ { "$ref": "#/components/schemas/BaseEditingSessionResponse" }, { "type": "object", "properties": { "document_id": { "type": "string", "description": "ID of the document", "example": "pSgK5XYZjyg3zXYZxsoUWg" } } } ] } } } }, "400": { "description": "Bad request", "content": { "application/json": { "examples": { "Default": { "value": { "type": "request_error", "detail": { "lifetime": [ "Ensure this value is greater than or equal to 60." ] } } } }, "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "object", "example": { "count": [ "A valid integer is required." ], "order_by": [ "value is not a valid choice." ] } } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/session": { "post": { "tags": [ "Documents" ], "summary": "Create Document Session for Embedded Sign", "operationId": "createDocumentLink", "description": "Creates a document session for a recipient to view and sign a document.\n\n> π How to create an Embedded Sign session\n> For more information on how to create an Embedded Sign session, see the [Embedded Signing](https://developers.pandadoc.com/docs/embedded-signing) documentation.\n", "parameters": [ { "examples": { "Signing session": { "value": "ZPeAfcpzr9aiVs5vqUf6jg" } }, "name": "id", "description": "Document ID", "in": "path", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentCreateLinkRequest" }, "examples": { "Signing session": { "value": { "recipient": "test@mail.com", "lifetime": 900 } } } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentCreateLinkResponse" }, "examples": { "Signing session": { "value": { "id": "nPh2PDhFdDqAES9k64h9qX", "expires_at": "2024-07-01T08:03:57.536427Z" } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/download": { "get": { "tags": [ "Documents" ], "summary": "Document Download", "operationId": "downloadDocument", "description": "Download documents as a PDF.\n> βοΈ Downloading completed and signed documents\n>\n> 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.\n", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "watermark_color", "in": "query", "schema": { "type": "string" }, "description": "HEX code (for example `#FF5733`).", "example": "#FF5733" }, { "name": "watermark_font_size", "in": "query", "schema": { "type": "integer" }, "description": "Font size of the watermark.", "example": 12 }, { "name": "watermark_opacity", "in": "query", "schema": { "type": "number", "format": "float" }, "description": "In range 0.0-1.0", "example": 0.5 }, { "name": "watermark_text", "in": "query", "schema": { "type": "string" }, "description": "Specify watermark text.", "example": "John Doe inc." }, { "name": "separate_files", "in": "query", "schema": { "type": "boolean", "default": false }, "description": "Download document bundle as a zip-archive of separate PDFs (1 file per section).", "example": false } ], "responses": { "200": { "description": "OK", "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "The signed document file is not ready yet (for example, a bundle overall PDF or ZIP is still being produced). Retry after the indicated number of seconds. No response body is returned.\n", "headers": { "Retry-After": { "$ref": "#/components/headers/RetryAfter" } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/download-protected": { "get": { "tags": [ "Documents" ], "summary": "Download Completed Document", "description": "Download a completed document as a verifiable PDF (Download Protected Document)\n> π§ Production key only\n> \n> This endpoint only works with a Production key. You'll get a 401 Unauthorized error when trying to use a Sandbox key.\n\nDownload a signed PDF of a completed document\n", "operationId": "downloadProtectedDocument", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID.", "example": "Mebvyy3NGsGBnY2rPLkH84" }, { "name": "separate_files", "in": "query", "schema": { "type": "boolean", "default": false }, "description": "Download document bundle as a zip-archive of separate PDFs (1 file per section).", "example": false } ], "responses": { "200": { "description": "OK", "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } } }, "202": { "description": "The signed document file is not ready yet (for example, a bundle overall PDF or ZIP is still being produced). Retry after the indicated number of seconds. No response body is returned.\n", "headers": { "Retry-After": { "$ref": "#/components/headers/RetryAfter" } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/linked-objects": { "get": { "summary": "List Documents by Linked Object", "description": "Get a list of documents connected to a linked object - an entity from an integration.", "operationId": "listDocumentsByLinkedObject", "tags": [ "Document Link to CRM" ], "parameters": [ { "name": "entity_id", "in": "query", "description": "You can get entity id from your integration, for example, from a url of a HubSpot deal.", "required": true, "schema": { "type": "string" }, "example": "12345" }, { "name": "entity_type", "in": "query", "description": "See the available entity types:\nhttps://developers.pandadoc.com/reference/link-service#examples-of-the-most-popular-crms\n", "required": true, "schema": { "type": "string" }, "example": "deal" }, { "name": "provider", "in": "query", "description": "See the available providers:\nhttps://developers.pandadoc.com/reference/link-service#examples-of-the-most-popular-crms\n", "required": true, "schema": { "type": "string" }, "example": "hubspot" }, { "name": "order_by", "in": "query", "schema": { "type": "string", "default": "-date_created" }, "example": "-date_created" }, { "name": "owner_ids", "in": "query", "schema": { "type": "array", "items": { "type": "string" }, "default": [ "[]" ] }, "example": [ "owner1", "owner2" ] } ], "responses": { "200": { "description": "200", "content": { "application/json": { "examples": { "Result": { "value": [ { "id": "PG4YBFvSp9zW8nQf7zfmqb", "status": "document.draft", "date_created": "2023-11-27T14:11:13.198496Z", "template_id": "5bAoesA6MDF97BG6wfhfZE" } ] } }, "schema": { "$ref": "#/components/schemas/ListDocumentsByLinkedObjectsResponse" } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/linked-objects": { "get": { "tags": [ "Document Link to CRM" ], "summary": "List Linked Objects", "operationId": "listLinkedObjects", "description": "Get a list of linked objects for the document.\n", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID.", "example": "ZPeAfcpzr9aiVs5vqUf6jg" } ], "responses": { "200": { "description": "Success response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkedObjectListResponse" }, "examples": { "List Linked Objects": { "value": { "linked_objects": [ { "id": "abb4d3fc-919b-491e-9e08-775036660c0b", "provider": "pipedrive", "entity_type": "deal", "entity_id": "134" } ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "tags": [ "Document Link to CRM" ], "summary": "Create Linked Object", "operationId": "createLinkedObject", "description": "Create a linked object in the document.\n\n> π§ \n> \n> 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).\n> \n> You can, however, link one document to several external systems.\n", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID.", "example": "ZPeAfcpzr9aiVs5vqUf6jg" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkedObjectCreateRequest" }, "examples": { "Create Linked Object": { "value": { "provider": "pipedrive", "entity_type": "deal", "entity_id": "134" } } } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkedObjectCreateResponse" }, "examples": { "Create Linked Object": { "value": { "provider": "pipedrive", "entity_type": "deal", "entity_id": "134", "id": "abb4d3fc-919b-491e-9e08-775036660c0b" } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/linked-objects/{linked_object_id}": { "delete": { "tags": [ "Document Link to CRM" ], "summary": "Delete Linked Object", "operationId": "deleteLinkedObject", "description": "Delete a linked object associated with a document.", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID.", "example": "ZPeAfcpzr9aiVs5vqUf6jg" }, { "name": "linked_object_id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify linked object ID.", "example": "deb0d530-d759-4189-a422-8d2265e01b2e" } ], "responses": { "204": { "description": "No content" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/attachments": { "get": { "summary": "List Document Attachments", "description": "Returns a list of attachments associated with a specified document.", "operationId": "listDocumentAttachments", "tags": [ "Document Attachments" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID", "schema": { "type": "string" }, "required": true, "examples": { "List Document Attachments": { "value": "BhVzRcxH9Z2LgfPPGXFUBa" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentAttachmentResponse" } }, "examples": { "List Document Attachments": { "value": [ { "uuid": "076797cd-dca6-4083-a3pi-6960714209d9", "date_created": "2024-07-15T21:14:39.973077Z", "created_by": { "id": "bSfiuAJNokERwsBxynKjwA", "email": "sergio@pandadoc.com", "first_name": "Sergio", "last_name": "", "avatar": null }, "name": "document.pdf", "type": "general" } ] } } } } }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "summary": "Create Document Attachment", "description": "Creates an attachment for a particular document", "operationId": "createDocumentAttachment", "tags": [ "Document Attachments" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentAttachmentRequest" }, "examples": { "Create Document Attachments": { "value": { "source": "https://upload.wikimedia.org/wikipedia/en/thumb/8/80/Wikipedia-logo-v2.svg/1920px-Wikipedia-logo-v2.svg.png", "name": "Wikipedia logo" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentAttachmentResponse" }, "examples": { "Create Document Attachment": { "value": { "uuid": "1111bc85-b0f0-42a8-97e7-9265cd9a12a4", "date_created": "2025-01-31T14:02:59.667160Z", "created_by": { "id": "bSfiuAJNokERwsBxynKjwA", "email": "sergio@pandadoc.com", "first_name": "Sergio", "last_name": "", "avatar": null }, "name": "Wikipedia logo", "type": "general" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/attachments?upload": { "post": { "summary": "Create Document Attachment From Upload", "description": "Creates an attachment for a particular document", "operationId": "createDocumentAttachmentFromFileUpload", "tags": [ "Document Attachments" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "description": "Uploads attachment to document by using Multipart Form Data", "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/DocumentAttachmentCreateFromFile" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentAttachmentResponse" } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/attachments/{attachment_id}": { "get": { "summary": "Document Attachment Details", "description": "Returns details of the specific document's attachment.", "operationId": "detailsDocumentAttachment", "tags": [ "Document Attachments" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "attachment_id", "in": "path", "description": "Attachment UUID.", "schema": { "type": "string" }, "required": true, "example": "89ce2f49-10fb-4e9b-b5f3-e28be2a5c042" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentAttachmentResponse" }, "examples": { "Document Attachment Details": { "value": { "uuid": "076797cd-dca6-4083-a3pi-6960714209d9", "date_created": "2024-07-15T21:14:39.973077Z", "created_by": { "id": "bSfiuAJNokERwsBxynKjwA", "email": "sergio@pandadoc.com", "first_name": "Sergio", "last_name": "", "avatar": null }, "name": "document.pdf", "type": "general" } } } } } }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } }, "delete": { "summary": "Delete Document Attachment", "description": "Deletes an attachment from the document.", "operationId": "deleteDocumentAttachment", "tags": [ "Document Attachments" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "attachment_id", "in": "path", "description": "Attachment UUID.", "schema": { "type": "string" }, "required": true, "example": "89ce2f49-10fb-4e9b-b5f3-e28be2a5c042" } ], "responses": { "204": { "description": "No Content" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/attachments/{attachment_id}/download": { "get": { "summary": "Download Document Attachment", "description": "Download an attachment by ID.", "operationId": "downloadDocumentAttachment", "tags": [ "Document Attachments" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "attachment_id", "in": "path", "description": "Attachment UUID.", "schema": { "type": "string" }, "required": true, "example": "89ce2f49-10fb-4e9b-b5f3-e28be2a5c042" } ], "responses": { "200": { "description": "OK", "content": { "application/*": { "schema": { "type": "string", "format": "binary" } } } }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/fields": { "get": { "summary": "List Document Fields", "description": "Return the list of fields for a particular document.", "operationId": "listDocumentFields", "tags": [ "Document Fields" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListDocumentFieldsResponse" }, "examples": { "List Document Fields": { "value": { "fields": [ { "uuid": "d6948f39-612a-4626-a439-ca9e0cbbda7c", "name": "Text", "title": "", "value": "", "assigned_to": { "id": "", "first_name": "", "last_name": "", "email": "", "phone": "", "recipient_type": "", "has_completed": false, "signing_order": null, "delivery_methods": {}, "redirect": {}, "type": "recipient" }, "field_id": "text_d6948f39-612a-4626-a439-ca9e0cbbda7c", "type": "text", "settings": { "required": true, "placeholder": "Enter value", "masked": false, "multiline": true }, "layout": { "page": 1, "position": { "offset_x": 1, "offset_y": 1, "anchor_point": "topleft" }, "style": { "width": 1, "height": 1 } }, "merge_field": null } ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "429": { "$ref": "#/components/responses/429" } } }, "patch": { "summary": "Update Document Fields Assignment", "description": "Assign, reassign, or unassign document fields to recipients.\nSupports bulk operations by accepting multiple field assignment items in a single request.\n\n> π§ Before you start\n>\n> - The document must be in the 'Draft' (`document.draft`) status.\n> - You must have the 'Can Edit Document' permission.\n", "operationId": "updateDocumentFieldsAssignment", "tags": [ "Document Fields" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "description": "A list of field assignment operations to apply to the document.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateDocumentFieldsAssignmentRequest" }, "examples": { "Assign field to recipient": { "value": { "fields": [ { "field_id": "d6948f39-612a-4626-a439-ca9e0cbbda7c", "assigned_to": "tf5dGS3Tmu3cj228ao6fnc" } ] } }, "Reassign field to another recipient": { "value": { "fields": [ { "field_id": "d6948f39-612a-4626-a439-ca9e0cbbda7c", "assigned_to": "pGkLnJUAx99JpXJy5DVD30" } ] } }, "Unassign field": { "value": { "fields": [ { "field_id": "d6948f39-612a-4626-a439-ca9e0cbbda7c", "assigned_to": null } ] } }, "Bulk mixed operations": { "value": { "fields": [ { "field_id": "d6948f39-612a-4626-a439-ca9e0cbbda7c", "assigned_to": "tf5dGS3Tmu3cj228ao6fnc" }, { "field_id": "a1234567-89ab-cdef-0123-456789abcdef", "assigned_to": "tf5dGS3Tmu3cj228ao6fnc" }, { "field_id": "b9876543-21fe-dcba-9876-543210fedcba", "assigned_to": null } ] } } } } } }, "responses": { "204": { "description": "No content" }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "summary": "Create Document Fields", "description": "Creates fields for a particular document.\nFor CFR11-compliant workspaces (21 CFR Part 11), \nsignature fields must have a minimum size of 108Γ33.\n", "operationId": "createDocumentFields", "tags": [ "Document Fields" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDocumentFieldsRequest" }, "examples": { "Create Document Fields": { "value": { "fields": [ { "type": "text", "layout": { "page": 1, "position": { "offset_x": 1, "offset_y": 1, "anchor_point": "topleft" }, "style": { "width": 1, "height": 1 } } } ] } }, "Create radio buttons without visible values": { "value": { "fields": [ { "type": "radio_buttons", "layout": { "page": 1, "position": { "offset_x": 100, "offset_y": 200, "anchor_point": "topleft" }, "style": { "width": 16, "height": 16 } }, "settings": { "show_values": false, "required": false, "options": [ { "text": "Yes", "position": { "offset_x": 0, "offset_y": 0 } }, { "text": "No", "position": { "offset_x": 0, "offset_y": 38 } } ] } } ] } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDocumentFieldsResponse" }, "examples": { "Create Document Fields": { "value": { "fields": [ { "uuid": "d6948f39-612a-4626-a439-ca9e0cbbda7c", "name": "Text", "title": "", "value": "", "assigned_to": { "id": "", "first_name": "", "last_name": "", "email": "", "phone": "", "recipient_type": "", "has_completed": false, "signing_order": null, "delivery_methods": {}, "redirect": {}, "type": "recipient" }, "field_id": "text_d6948f39-612a-4626-a439-ca9e0cbbda7c", "type": "text", "settings": { "required": true, "placeholder": "Enter value", "masked": false, "multiline": true }, "layout": { "page": 1, "position": { "offset_x": 1, "offset_y": 1, "anchor_point": "topleft" }, "style": { "width": 1, "height": 1 } }, "merge_field": null } ] } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v2/documents/{document_id}/audit-trail": { "get": { "tags": [ "Document Audit Trail" ], "summary": "List Document Audit Trail", "description": "Retrieves the full audit trail for a specified document. The audit trail includes detailed user actions\nsuch as sending, viewing, signing, and editing, along with metadata like timestamps, IP addresses, and user identity.\nThis endpoint is accessible to authorized workspace administrators only.\n", "operationId": "listDocumentAuditTrail", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the document to retrieve the audit trail for.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100, "default": 20 }, "description": "Maximum number of items to return.", "example": 20 }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0 }, "description": "Number of items to skip before starting to collect the result set.", "example": 0 } ], "responses": { "200": { "description": "Successfully retrieved audit trail.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentAuditTrailResponse" }, "examples": { "List Audit Trail": { "summary": "A paginated audit trail list", "value": { "count": 3, "results": [ { "id": "V9aG9KSREgTE8GnMqxWyzf", "user": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "pandadoc@pandadoc.com" }, "action": 1, "reason": null, "date_created": "2025-05-22T09:03:19Z", "ip_address": "8.8.8.8" }, { "id": "bWuXeU2bsToNyheeXfENAQ", "user": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "pandadoc@pandadoc.com" }, "action": 6, "reason": "", "date_created": "2025-05-22T09:03:49Z", "ip_address": "8.8.8.8" }, { "id": "TkgpWurccyfAZv9kazRs3D", "user": { "id": "6A3gGiRY7TQp4PHBqCpEjG", "email": "astronaut@nasa.com" }, "action": 8, "reason": null, "date_created": "2025-05-22T09:06:42Z", "ip_address": "128.156.0.0" } ] } } } } } } } } }, "/public/v2/documents/{document_id}/settings": { "get": { "tags": [ "Document Settings" ], "summary": "Get document settings", "description": "Retrieves the settings for a specified document.\n", "operationId": "documentSettingsGet", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the document to retrieve settings for.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "responses": { "200": { "description": "Successfully retrieved document settings.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSettingsResponse" }, "examples": { "example-1": { "summary": "Document settings", "value": { "language": "en-US", "qualified_electronic_signature": true, "expires_in": 30, "suggest_edits": false } } } } } } } }, "patch": { "tags": [ "Document Settings" ], "summary": "Update document settings", "description": "Updates the settings for a specified document.\n", "operationId": "documentSettingsUpdate", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the document to update settings for.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateDocumentSettingsRequest" }, "examples": { "example-1": { "summary": "Update document settings", "value": { "language": "fr-FR", "qualified_electronic_signature": true, "expires_in": 60, "suggest_edits": true } } } } } }, "responses": { "200": { "description": "Successfully updated document settings.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSettingsResponse" }, "examples": { "example-1": { "summary": "Updated document settings", "value": { "language": "fr-FR", "qualified_electronic_signature": true, "expires_in": 60, "suggest_edits": true } } } } } } } } }, "/public/v1/documents/{id}/ownership": { "patch": { "tags": [ "Documents" ], "summary": "Update document ownership", "description": "This operation allows transferring the ownership of a document to another user by specifying the document ID and membership ID.", "operationId": "transferDocumentOwnership", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentTransferOwnershipRequest" } } } }, "responses": { "204": { "description": "No content" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/ownership": { "patch": { "tags": [ "Documents" ], "summary": "Transfer all documents ownership", "operationId": "transferAllDocumentsOwnership", "description": "This method transfers ownership of all documents from one member to another.\n", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentTransferAllOwnershipRequest" } } } }, "responses": { "204": { "description": "No content" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/move-to-folder/{folder_id}": { "post": { "tags": [ "Documents" ], "summary": "Document move to folder", "description": "This operation allows you to move a document to a folder by specifying the document ID and folder ID.", "operationId": "documentMoveToFolder", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document ID.", "example": "ZPeAfcpzr9aiVs5vqUf6jg" }, { "name": "folder_id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify folder ID.", "example": "ZPeAfcpzr9aiVs5vqUf6jg" } ], "responses": { "204": { "description": "No content" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/append-content-library-item": { "post": { "tags": [ "Documents" ], "summary": "Append Content Library Item to a document", "operationId": "appendContentLibraryItemToDocument", "description": "Appends a Content Library Item (CLI) to a document and provides a name mapping for its content blocks.", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document id.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AppendCLIDataRequest" } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AppendCLIDataResponse" }, "examples": { "Append CLI to a document": { "value": { "cli": { "id": "QYCPtavst3DqqBK72ZRtbF", "pages": [ { "index": 0, "name": "Introduction" }, { "index": 1, "name": "Product Overview" }, { "index": 2, "name": "Pricing" } ] }, "block_mapping": { "tables": [ { "original_name": "Products_Table", "new_name": "Products_Table_1" }, { "original_name": "Features_Comparison", "new_name": "Features_Comparison" } ], "pricing_tables": [ { "original_name": "Services_Quote", "new_name": "Services_Quote" }, { "original_name": "Monthly_Plans", "new_name": "Monthly_Plans_2" } ], "images": [ { "original_name": "Hero_Image", "new_name": "Hero_Image_2" }, { "original_name": "Product_Screenshot", "new_name": "Product_Screenshot" } ], "texts": [ { "original_name": "Legal_Disclaimer", "new_name": "Legal_Disclaimer" }, { "original_name": "Company_Description", "new_name": "Company_Description_1" } ] } } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/recipients": { "post": { "summary": "Add Document Recipient", "operationId": "addDocumentRecipient", "description": "Add a CC recipient to a document.\n\n> π§ Before you start\n> \n> To add a CC recipient, please ensure that:\n> \n> - You have the 'Can Manage Recipients' permission.\n> - This recipient is already created in your contacts. If not, add them using the [Create Contact](https://developers.pandadoc.com/reference/create-contact) endpoint.\n\nTo add a new CC recipient to a document, two parameters must be included in the request body:\n\n- `kind`: Set this parameter to `contact` to specify an individual contact, or `contact_group` to specify a contact group.\n- `id`: Input the ID of the desired contact (for `kind: contact`) or contact group (for `kind: contact_group`).\n\nTo 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.\n\n### Document status\n\nYou can add CC recipients in any document status except for the 'Expired' (`document.voided`) and 'Declined' (`document.declined`).\n\n> π Email notification to access the document\n> \n> **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.\n", "tags": [ "Document Recipients" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentRecipientCreateRequest" }, "examples": { "Add CC Document Recipient": { "value": { "id": "pGkLnJUAx99JpXJy5DVD30", "kind": "contact" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentRecipientResponse" }, "examples": { "Add CC Document Recipient": { "value": { "recipient_id": "wdNMxCRFqH2DaZDcR2D2Gc" } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/recipients/{recipient_id}": { "delete": { "summary": "Delete Document Recipient", "operationId": "deleteDocumentRecipient", "description": "Remove a recipient from a document.\n\n> π§ Before you start\n> \n> Please ensure that you have the 'Can Manage Recipients' permission.\n\nTo 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.\n\n### Document status\n\n- 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.\n- 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.\n", "tags": [ "Document Recipients" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "recipient_id", "in": "path", "description": "Recipient UUID", "schema": { "type": "string" }, "required": true, "example": "tf5dGS3Tmu3cj228ao6fnc" } ], "responses": { "204": { "description": "No content" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/recipients/recipient/{recipient_id}": { "patch": { "summary": "Update Document Recipient", "description": "Modify a recipient's personal details, or update a recipient group's name and members.\n\n> π§ Before you start\n> \n> To edit a recipient, please ensure that you have the 'Can Edit Document' permission.\n\nUse this endpoint to easily fix typos in a recipient's name or email, or to change any other recipient information in a sent document. \n\n### Editing a recipient group\n\nWhen the `recipient_id` points to a recipient group, you can rename the group and/or change its members:\n\n- Send `name` to rename the group.\n- 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.\n- At least one of `name` or `members` must be provided, and `members` (when sent) must contain at least one member.\n\nOn a sent document, newly added members are notified and receive their access link, while removed members lose access.\n\nBoth individual recipient and recipient group edits return `204 No Content`.\n\n> π Please note that changes made to a recipient within a document will also update their `Contact` information. However, these changes will not update information about this recipient in other documents where they have already been added.\n\n### Document status\n\n- You can edit a signer in the following document statuses:\n - 'Draft' (`document.draft`),\n - 'Waiting Approval' (`document.waiting_approval`),\n - 'Approved' (`document.approved`),\n - 'Rejected' (`document.rejected`),\n - 'Sent' (`document.sent`),\n - 'Viewed' (`document.viewed`), but only until they have signed the document.\n- You can edit a CC recipient in any document status **except**:\n - 'Expired' (`document.voided`),\n - 'Declined' (`document.declined`).\n\n> π Updating a recipient's email after sending a document\n> \n> **Note**: If you update a recipient's email address after sending a document, they will receive an instant notification at the new email address, allowing them access to the document. Access via the previous email will be revoked.\n\n### Restrictions for updating a recipient's email\n\n- You cannot change emails of PandaDoc users.\n- You cannot use the email addresses of existing contacts. If you need to use an email from an existing contact, use the [Change Signer](https://developers.pandadoc.com/reference/change-signer) endpoint to replace a signer with this contact.\n\n### Recipient communication preferences\n\nPandaDoc honors recipient opt-outs when re-notifying a recipient on a sent document. The request will return `400 Bad Request` in the following cases:\n\n- **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).\n- **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).\n\nTo remove a recipient from the opt-out list, contact PandaDoc Support.\n", "operationId": "editDocumentRecipient", "tags": [ "Document Recipients" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "recipient_id", "in": "path", "description": "Recipient UUID.", "schema": { "type": "string" }, "required": true, "example": "tf5dGS3Tmu3cj228ao6fnc" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/DocumentRecipientEditRequest" }, { "$ref": "#/components/schemas/DocumentRecipientGroupEditRequest" } ] }, "examples": { "Update Document Recipient": { "value": { "first_name": "New First Name", "last_name": "New Last Name", "phone": "+3511111111111", "company": "PandaDoc", "title": "", "street_address": "", "city": "", "state": "", "postal_code": "", "country": "" } }, "Rename Recipient Group": { "value": { "name": "Approvers" } }, "Update Recipient Group Members": { "value": { "members": [ { "email": "kept.member@pandadoc.com" }, { "email": "new.member@pandadoc.com", "first_name": "New", "last_name": "Member" } ] } } } } } }, "responses": { "204": { "description": "No content." }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{id}/recipients/{recipient_id}/reassign": { "post": { "summary": "Change Signer (Reassign Document Recipient)", "operationId": "reassignDocumentRecipient", "description": "Reassign fields to another signer.\n\n> π§ Before you start\n> \n> To change a signer in a document, please ensure that:\n> \n> - You have the 'Can Manage Recipients' permission.\n> - New signer is already created in your contacts. If not, add them using the [Create Contact](https://developers.pandadoc.com/reference/create-contact) endpoint.\n\nYou 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.\n\nThe endpoint path includes the `recipient_id` of the original signer and the request body must include the following two parameters:\n\n- `kind`: Set this parameter to `contact` to specify an individual contact, or `contact_group` to specify a contact group.\n- `id`: Input the ID of the contact (for `kind: contact`) or contact group (for `kind: contact_group`) you want to use as a replacement for the original signer.\n\nTo 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.\n\nOnce 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.\n\n> π§ Pre-filled fields\n> \n> 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.\n", "tags": [ "Document Recipients" ], "parameters": [ { "name": "id", "in": "path", "description": "Document UUID", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "recipient_id", "in": "path", "description": "Recipient UUID", "schema": { "type": "string" }, "required": true, "example": "tf5dGS3Tmu3cj228ao6fnc" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentRecipientCreateRequest" }, "examples": { "Change Signer": { "value": { "kind": "contact", "id": "pGkLnJUAx99JpXJy5DVD30" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentRecipientResponse" }, "examples": { "Change Signer": { "value": { "recipient_id": "XqbbPMNn9SAjX6fyCSSN2X" } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "423": { "$ref": "#/components/responses/423" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{document_id}/send-reminder": { "post": { "summary": "Send Manual Reminder", "operationId": "createManualReminder", "description": "Sends manual reminders to one or more recipients of a specified document.\n", "tags": [ "Document Reminders" ], "parameters": [ { "name": "document_id", "in": "path", "description": "The UUID of the document.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSendManualReminderRequest" }, "examples": { "Send Manual Reminder": { "value": { "reminders": [ { "recipient_id": "2eWSKSvVqmuVCnuUK3iWwD", "delivery_methods": { "email": true, "sms": false } }, { "recipient_id": "7JhSDcvLQa9uR7kBX8mYeK", "delivery_methods": { "email": true, "sms": true } } ] } } } } } }, "responses": { "200": { "description": "Successfully processed reminder requests.\nReturns an array of objects, where each object details the outcome of the reminder delivery attempt for a specific recipient.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSendManualReminder200Response" }, "examples": { "Send Manual Reminder": { "value": { "result": [ { "recipient_id": "2eWSKSvVqmuVCnuUK3iWwD", "email": { "status": "sent", "sent_at": "2025-04-14T10:15:30Z" }, "sms": { "status": "sent", "sent_at": "2025-04-14T10:15:31Z" } }, { "recipient_id": "2ZjA3A3RvjgVadJ9DpNQwz", "email": { "status": "error", "detail": "Can't send reminder. Signing order is enabled and this Recipient can't sign the document yet" }, "sms": { "status": "error", "detail": "Can't send reminder. Signing order is enabled and this Recipient can't sign the document yet" } }, { "recipient_id": "udDBKqHFhJt9PxzS5cv7to", "sms": { "status": "error", "detail": "Can't send SMS reminder to the Recipient with invalid phone number" }, "email": { "status": "sent", "sent_at": "2025-04-14T10:15:35Z" } } ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "description": "Returned when a manual reminder cannot be sent due to the document's current status.\nThis occurs when:\n - The document has not been sent yet.\n - The document is in a final state (e.g., completed, paid, declined, or expired).\n - The document is in \"suggesting mode,\" during which reminders are disabled.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSendManualReminder409Response" } } } }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{document_id}/sections": { "get": { "tags": [ "Document Sections (Bundles)" ], "summary": "List Document Sections", "operationId": "listSections", "description": "Retrieve information about the sections within a document.\n", "parameters": [ { "examples": { "List Document Sections": { "value": "BhVzRcxH9Z2LgfPPGXFUBa" } }, "name": "document_id", "description": "Document ID", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadSectionListResponse" }, "examples": { "List Document Sections": { "value": { "results": [ { "uuid": "fGE5F6rAeBSPokHMBt8Pbm", "name": "[DEV] Test Template with HTML Tags" }, { "uuid": "MBMsxWgditbvUAgSKXR8kA", "name": "Sample Document from PDF with Field Tags" }, { "uuid": "JKmXhd9e4ZwNMyaEYFJEkK", "name": "Sample Document from PDF with Form Fields" } ] } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{document_id}/sections/uploads": { "post": { "tags": [ "Document Sections (Bundles)" ], "summary": "Create Document Section", "operationId": "uploadSection", "description": "With this endpoint, you can add a new section to an existing PandaDoc document (create a bundle).\n\nYou can upload a section to the document using a PandaDoc template or a file by URL.\n\n> β±οΈ Document Section creation is a non-blocking (asynchronous) operation\n> \n> The document creation process may take some time.\n> \n> 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.\n\n## Using a PandaDoc template\n\nIts exceptionally effective vacuum brewing method extracts all precious oils of your favorite coffee. In addition, the brewing time and temperature are perfectly calibrated, ensuring a perfect cup of coffee with each brew.
", "qty": "1", "total_qty": null, "price": "250", "cost": "100", "billing_frequency": null, "contract_term": null, "pricing_method": "flat", "type": "product", "reference_type": "catalog", "reference_id": "67a06da9-6be1-6b62-b7a1-2479d01bed07", "options": { "qty_editable": false, "selected": true }, "custom_columns": {}, "multipliers": {}, "discounts": {}, "fees": {}, "taxes": {}, "total": "250", "external_columns": {}, "overall_total": null, "thumbnail": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/81361512-488e-42c8-8c13-5e61b8a27638/1.jpeg", "images": [ "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/81361512-488e-42c8-8c13-5e61b8a27638/1.jpeg", "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/a0aca18e-8074-4698-aadb-3f41c1bd6a88/2.jpeg" ], "merged_data": { "Name": "Siphon vacuum coffee maker", "Description": "Its exceptionally effective vacuum brewing method extracts all precious oils of your favorite coffee. In addition, the brewing time and temperature are perfectly calibrated, ensuring a perfect cup of coffee with each brew.
", "Thumbnail": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/81361512-488e-42c8-8c13-5e61b8a27638/1.jpeg", "Images": [ "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/81361512-488e-42c8-8c13-5e61b8a27638/1.jpeg", "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/a0aca18e-8074-4698-aadb-3f41c1bd6a88/2.jpeg" ], "Price": "250", "Quantity": "1", "SKU": "coffee_maker", "Cost": "100" } }, { "id": "0d24b2b6-bbad-482f-9048-b60c2efc72d3", "sku": "coffee_brewer", "name": "Jittermaster coffee brewer", "description": "Double-layer Filter: Dual layers of 304 stainless steel allow fine oils from coffee powder to infuse themselves into your coffee, creating a richer, fuller flavor and no coffee ground deposits
", "qty": "1", "total_qty": null, "price": "100", "cost": "50", "billing_frequency": null, "contract_term": null, "pricing_method": "flat", "type": "product", "reference_type": "catalog", "reference_id": "15c8cbb7-5f5a-851f-c39e-b01f57d02c1b", "options": { "qty_editable": false, "selected": true }, "custom_columns": {}, "multipliers": {}, "discounts": {}, "fees": {}, "taxes": {}, "total": "100", "external_columns": {}, "overall_total": null, "thumbnail": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/b593eb9a-74cd-40a0-8c38-6a9d39248d3d/3.jpeg", "images": [ "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/b593eb9a-74cd-40a0-8c38-6a9d39248d3d/3.jpeg", "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/ea09bd4a-c619-4b3e-8f99-f1a2180a97a8/4.jpeg", "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/6e6312f8-787d-4453-8772-ac81f481be00/5.jpeg" ], "merged_data": { "Name": "Jittermaster coffee brewer", "Description": "Double-layer Filter: Dual layers of 304 stainless steel allow fine oils from coffee powder to infuse themselves into your coffee, creating a richer, fuller flavor and no coffee ground deposits
", "Thumbnail": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/b593eb9a-74cd-40a0-8c38-6a9d39248d3d/3.jpeg", "Images": [ "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/b593eb9a-74cd-40a0-8c38-6a9d39248d3d/3.jpeg", "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/ea09bd4a-c619-4b3e-8f99-f1a2180a97a8/4.jpeg", "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/6e6312f8-787d-4453-8772-ac81f481be00/5.jpeg" ], "Price": "100", "Quantity": "1", "SKU": "coffee_brewer", "Cost": "50" } } ], "settings": { "selection_type": "custom", "optional": false, "selected": true, "data_merge_enabled": true } } ], "merge_rules": [], "settings": { "selection_type": "custom" } } ] }, "tags": [], "roles": [ { "id": "r3z77NfjprTpYs2dYVtnuZ", "name": "Client", "signing_order": null, "preassigned_person": null }, { "id": "xdhvZVZ27tm8VSuZiH7Jgf", "name": "ACME Representative", "signing_order": null, "preassigned_person": null } ], "version": "2", "content_placeholders": [], "images": [ { "name": "Image 1", "block_uuid": "8178b9c8-d7eb-464f-9707-644ca2854920", "urls": [ "https://DDPiziV8jujAAbLystdpWZ.images.pandadoc-static.com/images/DDPiziV8jujAAbLystdpWZ/8b7d3132cfff4db49dfc2a4620fb7ffd" ] }, { "name": "Image 2", "block_uuid": "ae5d6036-aa54-4d65-aa44-9dba71745497", "urls": [ "https://DDPiziV8jujAAbLystdpWZ.images.pandadoc-static.com/images/DDPiziV8jujAAbLystdpWZ/a9495d6871814afdaac4fee568af1529" ] }, { "name": "Image 3", "block_uuid": "52d17692-57aa-4835-96f4-512fb9226fb4", "urls": [ "https://DDPiziV8jujAAbLystdpWZ.images.pandadoc-static.com/images/DDPiziV8jujAAbLystdpWZ/ca16034a05c043749ff72f5efa1a3d4b" ] } ], "tables": [ { "name": "Table 1" } ], "lock": null } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates": { "get": { "summary": "List Templates", "description": "Retrieves a list of templates. You can filter results by a search query, tags, or fields.", "operationId": "listTemplates", "tags": [ "Templates" ], "parameters": [ { "name": "q", "description": "Search query. Filter by template name.", "in": "query", "schema": { "type": "string" }, "example": "Sample onboarding template" }, { "name": "shared", "description": "Returns only the shared templates.", "in": "query", "schema": { "type": "boolean" }, "example": false }, { "name": "deleted", "description": "Returns only the deleted templates.", "in": "query", "schema": { "type": "boolean" }, "example": false }, { "name": "count", "description": "Specify how many templates to return.", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1, "maximum": 100, "default": 50 }, "example": 10 }, { "name": "page", "description": "Specify which page of the dataset to return.", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1 }, "example": 1 }, { "name": "id", "description": "Specify template ID.", "in": "query", "schema": { "type": "string" }, "example": "e9LxBesSL73AeZMzeYdfvV" }, { "name": "folder_uuid", "description": "UUID of the folder where the templates are stored.", "x-ignore-no-type": true, "in": "query", "schema": { "type": "string" }, "examples": { "List from a Folder": { "value": "xDKHoJ8DkwhiTQSUzNveCJ" } } }, { "name": "tag", "in": "query", "style": "form", "explode": true, "schema": { "type": "array", "items": { "type": "string" } }, "description": "Search tag. Filter by template tag.", "example": [ "onboarding" ] }, { "name": "fields", "description": "A comma-separated list of additional fields to include in the response.", "in": "query", "schema": { "type": "array", "items": { "type": "string", "enum": [ "content_date_modified" ] } }, "style": "form", "explode": false, "example": [ "content_date_modified" ] } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateListResponse" }, "examples": { "Default": { "value": { "results": [ { "id": "iMymdDd9XFD3HyxP5VD67Q", "name": "Blank", "date_created": "2021-06-17T15:51:13.226974Z", "date_modified": "2021-06-17T15:51:13.326974Z", "version": "2", "content_date_modified": "2021-06-17T15:51:13.426974Z" } ] } }, "List from a Folder": { "value": { "results": [ { "id": "vibuun3DXG8QDDLfXm27Ne", "name": "New template", "date_created": "2024-07-15T17:44:07.524617Z", "date_modified": "2024-07-15T17:44:07.613821Z", "version": "2" } ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "tags": [ "Templates" ], "summary": "Create Template", "description": "This operation allows you to create a new template by providing the necessary template details.", "operationId": "createTemplate", "parameters": [ { "name": "fields", "description": "A comma-separated list of additional fields to include in the response.", "in": "query", "schema": { "type": "array", "items": { "type": "string", "enum": [ "content_date_modified" ] } }, "style": "form", "explode": false, "example": [ "content_date_modified" ] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTemplateFromUrlRequest" }, "examples": { "Create Template": { "value": { "name": "Sample Template", "folder_uuid": "EE8yUNg5HztqVAuH85He8V", "owner": { "email": "john.doe@example.com" }, "metadata": { "my_favorite_pet": "Panda" } } } } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateCreateResponse" }, "examples": { "Create Template": { "value": { "id": "va9aNuj3uX2w9M7uytn967", "name": "Sample Template", "date_created": "2024-07-08T14:41:42.625906Z", "date_modified": "2024-07-08T14:41:42.700084Z", "version": "2" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates?upload": { "post": { "tags": [ "Templates" ], "summary": "Create Template from File Upload", "operationId": "createTemplateWithUpload", "description": "This asynchronous endpoint allows users to create a new template by uploading a file.\n\nThe uploaded file is processed in the background to generate the template.\nThe maximum allowable file size for upload is 100 MB.\nField tags and form fields are not supported yet.\n\nOnce the file is uploaded, the processing will happen asynchronously, and users need to check [the status of the template](https://developers.pandadoc.com/reference/template-status) creation.\n", "parameters": [ { "name": "fields", "description": "A comma-separated list of additional fields to include in the response.", "in": "query", "schema": { "type": "array", "items": { "type": "string", "enum": [ "content_date_modified" ] } }, "style": "form", "explode": false, "example": [ "content_date_modified" ] } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/CreateTemplateWithUploadRequest" } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateCreateResponse" }, "examples": { "Create Template": { "value": { "id": "va9aNuj3uX2w9M7uytn967", "name": "Sample Template", "date_created": "2024-07-08T14:41:42.625906Z", "date_modified": "2024-07-08T14:41:42.700084Z", "version": "2" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates/{id}/duplicate": { "post": { "summary": "Duplicate Template", "description": "## Duplicate Template\n\nCreates a copy of a template within the same workspace.\n\n> π **Permissions**\n>\n> Requires `can_read_templates` and `can_duplicate_templates` permissions. Duplicating templates owned by other users additionally requires `can_duplicate_any_template`.\n", "operationId": "duplicateTemplate", "tags": [ "Templates" ], "parameters": [ { "examples": { "Duplicate Template": { "value": "EE8yUNg5HztqVAuH85He8V" }, "Duplicate with Custom Name": { "value": "vibuun3DXG8QDDLfXm27Ne" } }, "name": "id", "description": "Template ID", "in": "path", "schema": { "type": "string" }, "required": true } ], "requestBody": { "description": "Optional payload with a custom name for the duplicated template.", "required": false, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateDuplicateRequest" }, "examples": { "Duplicate Template": { "value": {} }, "Duplicate with Custom Name": { "value": { "name": "My Duplicated Template" } } } } } }, "responses": { "201": { "description": "Template duplicated successfully.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateDuplicateResponse" }, "examples": { "Duplicate Template": { "value": { "id": "va9aNuj3uX2w9M7uytn967", "name": "Copy of Sample Template", "date_created": "2025-01-15T10:30:00.123456Z", "date_modified": "2025-01-15T10:30:00.234567Z", "meta": { "source_template_id": "EE8yUNg5HztqVAuH85He8V" } } }, "Duplicate with Custom Name": { "value": { "id": "BhVzRcxH9Z2LgfPPGXFUBa", "name": "My Duplicated Template", "date_created": "2025-01-15T10:30:00.345678Z", "date_modified": "2025-01-15T10:30:00.456789Z", "meta": { "source_template_id": "vibuun3DXG8QDDLfXm27Ne" } } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates/{id}/details": { "get": { "summary": "Template Details", "description": "Get details about a template by `id`. Details include:\n\n- Basic template information (name, author, etc)\n- Roles\n- All fields with values\n- All tokens with values\n- Pricing information (pricing tables, products, quotes)\n- Template metadata\n- Template tags\n- Content placeholders\n- 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.\n", "operationId": "detailsTemplate", "tags": [ "Templates" ], "parameters": [ { "examples": { "Template Details": { "value": "vibuun3DXG8QDDLfXm27Ne" }, "Default": { "value": "iMymdDd9XFD3HyxP5VD67Q" } }, "name": "id", "description": "Template ID", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateDetailsResponse" }, "examples": { "Template Details": { "value": { "id": "vibuun3DXG8QDDLfXm27Ne", "name": "New template", "date_created": "2024-07-15T17:44:07.524617Z", "date_modified": "2024-07-15T17:44:07.613821Z", "content_date_modified": "2024-07-15T17:44:08.685118Z", "created_by": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "siarhei.soroka@pandadoc.com", "first_name": "Siarhei", "last_name": "Soroka", "avatar": null, "membership_id": "RyMNXBjBPRppw56TfYBrXi" }, "metadata": {}, "tokens": [], "fields": [], "pricing": {}, "tags": [], "roles": [ { "id": "UDhBsFhy4857fsdBJ11FuL", "name": "Client", "signing_order": null, "preassigned_person": { "email": "john@example.com", "first_name": "John", "last_name": "Doe", "type": "preassigned contact", "placeholder_name": null, "placeholder_source": null } }, { "id": "2mN5HBcG8JdKpQwXrLfYvT", "name": "Manager", "signing_order": "1", "preassigned_person": { "email": null, "type": "preassigned contact group", "placeholder_name": null, "placeholder_source": null, "members": [ { "email": "alice@example.com", "first_name": "Alice", "last_name": "Johnson" }, { "email": "bob@example.com", "first_name": "Bob", "last_name": "Smith" } ] } } ], "version": "2", "content_placeholders": [], "tables": [ { "name": "Table_1" } ], "images": [] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates/{id}": { "delete": { "summary": "Delete Template", "description": "Delete a template", "operationId": "deleteTemplate", "tags": [ "Templates" ], "parameters": [ { "name": "id", "description": "Template ID", "in": "path", "schema": { "type": "string" }, "required": true, "example": "EE8yUNg5HztqVAuH85He8V" } ], "responses": { "204": { "description": "No content" }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } }, "get": { "summary": "Template Status", "description": "## Available Template Statuses\n\nThe following is a complete list of all possible template statuses returned:\n\n| Template Status | Status Description |\n| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |\n| `template.UPLOADED` | The template upload process has been initiated and is currently in progress. It will soon transition to the `template.PROCESSED` state. |\n| `template.PROCESSED` | The template has been successfully uploaded and created. At this stage, all aspects of the template are editable. |\n| `template.ERROR` | The template upload process has failed. Please refer to the error details in the response for more information. |\n", "operationId": "statusTemplate", "tags": [ "Templates" ], "parameters": [ { "examples": { "Template Status": { "value": "vibuun3DXG8QDDLfXm27Ne" } }, "name": "id", "description": "Template ID", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateStatusResponse" }, "examples": { "Template Status": { "value": { "id": "vibuun3DXG8QDDLfXm27Ne", "name": "API Sample PandaDoc Template", "date_created": "2024-07-15T17:44:07.524617Z", "date_modified": "2024-07-15T17:44:07.613821Z", "version": "2", "status": "template.PROCESSED" } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } }, "patch": { "tags": [ "Templates" ], "summary": "Template Update", "operationId": "updateTemplate", "description": "Update a template. Currently supports updating template variables (`tokens`) and managing template roles.\n\n> π§ Template status\n> \n> You can only update a template in the PROCESSED status (`template.PROCESSED`). \n> \n> 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.\n\n## Managing template roles\n\nPass a `roles` array to replace the full set of template roles in a single request:\n\n - Items with an existing `id` update that role (`name`, `signing_order`).\n - Items without an `id` create a new role.\n - Existing roles whose `id` is not in the array are deleted.\n\nRole 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.\n", "parameters": [ { "examples": { "Update template": { "value": "BhVzRcxH9Z2LgfPPGXFUBa" } }, "name": "id", "description": "Template ID", "in": "path", "schema": { "type": "string" }, "required": true } ], "requestBody": { "description": "Partial template update. All fields are optional.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateUpdateRequest" }, "examples": { "Update variables": { "summary": "Update template variables", "value": { "tokens": [ { "name": "Favorite.Pet", "value": "Panda" } ] } }, "Batch update template roles": { "summary": "Batch update template roles (rename one, add a new one, delete the rest)", "value": { "roles": [ { "id": "BqL3PVsB2tPLfaSqUiQQRf", "name": "Client", "signing_order": 1 }, { "name": "Manager", "signing_order": 2 } ] } }, "Update variables and roles together": { "summary": "Update variables and batch update roles in a single request", "value": { "tokens": [ { "name": "Favorite.Pet", "value": "Panda" } ], "roles": [ { "name": "Client", "signing_order": 1 }, { "name": "Manager", "signing_order": 2 } ] } } } } } }, "responses": { "204": { "description": "No content" }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates/{id}/editing-sessions": { "post": { "summary": "Create Template Editing Session\n", "description": "Creates a new editing session for the Embedded Editor. The response includes an E-Token, which is required to open the template.\n\n#### Limitations\n\n- **Single Active Session per User-Template Pair** \n 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.\n\n- **Weekly Session Cap** \n 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.\n", "operationId": "createTemplateEditingSession", "tags": [ "Templates" ], "parameters": [ { "name": "id", "in": "path", "description": "Template ID", "schema": { "type": "string" }, "required": true, "example": "a53a2f96b91d47f99ee33f" } ], "requestBody": { "required": true, "content": { "application/json": { "examples": { "Default": { "value": { "email": "john.doe@pandadoc.com", "lifetime": 100 } } }, "schema": { "$ref": "#/components/schemas/EditingSessionRequest" } } } }, "responses": { "201": { "description": "Template Editing Session created", "content": { "application/json": { "examples": { "Default": { "value": { "id": "ce9825e5-3210-4a8f-1230-f32b643295d2", "email": "john.doe@pandadoc.com", "expires_at": "2025-01-10T00:09:09.612651Z", "token": "985b695b56eaaa571e9bb8e522afd5bd335c32d7", "template_id": "a53a2f96b91d47f99ee33f" } } }, "schema": { "allOf": [ { "$ref": "#/components/schemas/BaseEditingSessionResponse" }, { "type": "object", "properties": { "template_id": { "type": "string", "description": "ID of the template", "example": "a53a2f96b91d47f99ee33f" } } } ] } } } }, "400": { "description": "Bad request", "content": { "application/json": { "examples": { "Default": { "value": { "type": "request_error", "detail": { "lifetime": [ "Ensure this value is greater than or equal to 60." ] } } } }, "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "object", "example": { "count": [ "A valid integer is required." ], "order_by": [ "value is not a valid choice." ] } } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v2/templates/{template_id}/settings": { "get": { "tags": [ "Template Settings" ], "summary": "Get template settings", "description": "Retrieves the settings for a specified template. Only the language field is currently supported.\n", "operationId": "templateSettingsGet", "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the template to retrieve settings for.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "responses": { "200": { "description": "Successfully retrieved template settings.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateSettingsResponse" }, "examples": { "example-1": { "summary": "Template settings", "value": { "language": "en-US" } } } } } } } }, "patch": { "tags": [ "Template Settings" ], "summary": "Update template settings", "description": "Updates the settings for a specified template. Only the language field is currently supported.\n", "operationId": "templateSettingsUpdate", "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the template to update settings for.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTemplateSettingsRequest" }, "examples": { "example-1": { "summary": "Update language", "value": { "language": "fr-FR" } } } } } }, "responses": { "200": { "description": "Successfully updated template settings.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateSettingsResponse" }, "examples": { "example-1": { "summary": "Updated template settings", "value": { "language": "fr-FR" } } } } } } } } }, "/public/v1/templates/{template_id}/shares": { "get": { "tags": [ "Template Settings" ], "summary": "Get Template Sharing Settings", "description": "Retrieves template sharing settings.\n", "operationId": "getTemplateShares", "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the Template to retrieve Shares for.", "examples": { "Get Template Sharing Settings": { "value": "LuBWwWzfxzajJe2eqEcoeZ" } } } ], "responses": { "200": { "description": "Successfully retrieved the Template's Shares.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateSharesResponse" }, "examples": { "Get Template Sharing Settings": { "summary": "Template shared with two workspaces", "value": { "workspace_ids": [ "BhVzRcxH9Z2LgfPPGXFUBa", "2eWSKSvVqmuVCnuUK3iWwD" ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } }, "put": { "tags": [ "Template Settings" ], "summary": "Update Template Sharing Settings", "description": "Replaces the full list of Workspaces this Template is shared with.\nThe caller must be a member of every Workspace being newly shared by this\ncall. Unsharing a Workspace only requires permission to edit the Template.\n", "operationId": "updateTemplateSharingSettings", "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the Template whose Shares are being replaced.", "examples": { "Share with two workspaces": { "value": "LuBWwWzfxzajJe2eqEcoeZ" }, "Unshare from all workspaces": { "value": "LuBWwWzfxzajJe2eqEcoeZ" } } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateSharesRequest" }, "examples": { "Share with two workspaces": { "value": { "workspace_ids": [ "BhVzRcxH9Z2LgfPPGXFUBa", "2eWSKSvVqmuVCnuUK3iWwD" ] } }, "Unshare from all workspaces": { "value": { "workspace_ids": [] } } } } } }, "responses": { "200": { "description": "Successfully replaced the Template's Shares.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateSharesResponse" }, "examples": { "Share with two workspaces": { "value": { "workspace_ids": [ "BhVzRcxH9Z2LgfPPGXFUBa", "2eWSKSvVqmuVCnuUK3iWwD" ] } }, "Unshare from all workspaces": { "value": { "workspace_ids": [] } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/forms": { "get": { "summary": "List Forms", "description": "Retrieve a paginated list of forms with optional filtering and sorting options.", "operationId": "listForm", "tags": [ "Forms" ], "parameters": [ { "name": "count", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1 }, "description": "Specify how many forms to return. Default is 50 forms, maximum is 100 forms.", "example": 10 }, { "name": "page", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1 }, "description": "Specify which page of the dataset to return.", "example": 1 }, { "name": "status", "in": "query", "style": "form", "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "draft", "active", "disabled" ] } }, "description": "Specify which status of the forms dataset to return.", "example": [ "draft", "active" ] }, { "name": "order_by", "in": "query", "schema": { "type": "string", "enum": [ "name", "responses", "status", "created_date", "modified_date" ] }, "description": "Specify the form dataset order to return.", "example": "name" }, { "name": "asc", "in": "query", "schema": { "type": "boolean" }, "description": "Specify sorting the result-set in ascending or descending order.", "example": true }, { "name": "name", "in": "query", "schema": { "type": "string" }, "description": "Specify the form name.", "example": "New Form" } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FormListResponse" } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/folders": { "get": { "summary": "List Documents Folders", "operationId": "listDocumentFolders", "description": "Get the list of folders which contain Documents in your account.\n\n> π \n> \n> The root folder is not listed in the response.\n\nFor the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).\n", "tags": [ "Folders" ], "parameters": [ { "name": "parent_uuid", "in": "query", "schema": { "type": "string" }, "description": "The UUID of the folder containing folders. To list the folders located in the root folder, remove this parameter in the request.", "x-ignore-no-type": true, "example": "Nq8htXxFssmhRxAPSP4SBP" }, { "name": "count", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1, "maximum": 100, "default": 50 }, "description": "Optionally, specify how many folders to return.", "example": 50 }, { "name": "page", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1 }, "description": "Optionally, specify which page of the dataset to return.", "example": 1 } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentsFolderListResponse" }, "examples": { "List Document Folders": { "value": { "results": [ { "uuid": "dHPHDto4urFW2jx5JzaeaB", "name": "My folder", "date_created": "2024-07-15T17:19:21.048101Z", "has_folders": false, "has_items": false } ] } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "summary": "Create Documents Folder", "operationId": "createDocumentFolder", "description": "Create a new folder to store your documents.\n\nFor the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).\n", "tags": [ "Folders" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentsFolderCreateRequest" }, "examples": { "Create Document Folder": { "value": { "name": "A top level folder" } } } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentsFolderCreateResponse" }, "examples": { "Create Document Folder": { "value": { "uuid": "RuyjY9Us5XknaV1LyBnYxc", "name": "A top level folder", "date_created": "2024-07-15T17:37:34.523167Z" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/folders/{id}": { "put": { "summary": "Rename Documents Folder", "operationId": "renameDocumentFolder", "description": "Rename Documents Folder.\n\nFor the full list of folder operations and their limitations, see [Organize Documents and Folders](https://developers.pandadoc.com/docs/organize-folders).\n", "tags": [ "Folders" ], "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "The UUID of the folder that you are renaming.", "example": "Nq8htXxFssmhRxAPSP4SBP" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentsFolderRenameRequest" }, "examples": { "Rename Documents Folder": { "value": { "name": "New folder name" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentsFolderRenameResponse" }, "examples": { "Rename Documents Folder": { "value": { "uuid": "gQxmeyuKitD693xV4WQ7yb", "name": "New folder name", "date_created": "2024-07-15T17:27:29.372983Z" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates/folders": { "get": { "summary": "List Templates Folders", "description": "Get the list of folders that contain Templates in your account.\n\n> π \n> \n> The root folder is not listed in the response.\n\nFor the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).\n", "operationId": "listTemplateFolders", "tags": [ "Folders" ], "parameters": [ { "name": "parent_uuid", "description": "The UUID of the folder containing folders. To list the folders located in the root folder, remove this parameter in the request.", "x-ignore-no-type": true, "in": "query", "schema": { "type": "string" }, "example": "Nq8htXxFssmhRxAPSP4SBP" }, { "name": "count", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1, "maximum": 100, "default": 50 }, "description": "Optionally, specify how many folders to return.", "example": 50 }, { "name": "page", "description": "Optionally, specify which page of the dataset to return.", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1 }, "example": 1 } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplatesFolderListResponse" }, "examples": { "Lists Template Folders": { "value": { "results": [ { "uuid": "h3HyGDj6NuiDfKEiY4xSMD", "name": "A new templates folder", "date_created": "2024-07-15T17:35:52.981054Z", "has_folders": true, "has_items": false } ] } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "summary": "Create Templates Folder", "description": "Create a new folder to store your templates.\n\nFor the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).\n", "operationId": "createTemplateFolder", "tags": [ "Folders" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplatesFolderCreateRequest" }, "examples": { "Create Templates Folder": { "value": { "name": "A new templates folder" } } } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplatesFolderCreateResponse" }, "examples": { "Create Templates Folder": { "value": { "uuid": "h3HyGDj6NuiDfKEiY4xSMD", "name": "A new templates folder", "date_created": "2024-07-15T17:35:52.981054Z" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/templates/folders/{id}": { "put": { "summary": "Rename Templates Folder", "description": "Rename a templates folder.\n\nFor the full list of folder operations and their limitations, see [Organize Templates and Folders](https://developers.pandadoc.com/docs/organize-folders).\n", "operationId": "renameTemplateFolder", "tags": [ "Folders" ], "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "The UUID of the folder which you are renaming.", "example": "Nq8htXxFssmhRxAPSP4SBP" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplatesFolderRenameRequest" }, "examples": { "Rename Templates Folder": { "value": { "name": "New Folder Name" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplatesFolderRenameResponse" }, "examples": { "Rename Templates Folders": { "value": { "uuid": "h3HyGDj6NuiDfKEiY4xSMD", "name": "New Folder Name", "date_created": "2024-07-15T17:35:52.981054Z" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/logs": { "get": { "deprecated": true, "x-sunset": "2027-02-04", "summary": "List API Log", "description": "Get the list of all logs within the selected workspace.\\ Optionally filter by date, page, and `#` of items per page.", "operationId": "listLogs", "tags": [ "API Logs" ], "parameters": [ { "$ref": "#/components/parameters/SinceParam" }, { "$ref": "#/components/parameters/ToParam" }, { "$ref": "#/components/parameters/CountParam" }, { "$ref": "#/components/parameters/PageParam" }, { "$ref": "#/components/parameters/StatusesParam" }, { "$ref": "#/components/parameters/MethodsParam" }, { "$ref": "#/components/parameters/SearchParam" }, { "$ref": "#/components/parameters/EnvironmentTypeParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APILogListResponse" }, "examples": { "List API Logs": { "$ref": "#/components/examples/APILogListExample" }, "List API Logs 2XX": { "$ref": "#/components/examples/APILogList2XXExample" } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/logs/{id}": { "get": { "deprecated": true, "x-sunset": "2027-02-04", "summary": "API Log Details", "description": "Returns details of the specific API log event.", "operationId": "detailsLog", "tags": [ "API Logs" ], "parameters": [ { "$ref": "#/components/parameters/LogEventIdParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APILogDetailsResponse" }, "examples": { "API Logs Details": { "$ref": "#/components/examples/APILogDetailsExample" } } } } }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v2/logs": { "get": { "summary": "List API Log", "description": "Get the list of all logs within the selected workspace.\\ Optionally filter by date, page, and `#` of items per page.", "operationId": "listLogsV2", "tags": [ "API Logs" ], "parameters": [ { "$ref": "#/components/parameters/SinceParam" }, { "$ref": "#/components/parameters/ToParam" }, { "$ref": "#/components/parameters/CountParam" }, { "$ref": "#/components/parameters/PageParam" }, { "$ref": "#/components/parameters/StatusesParam" }, { "$ref": "#/components/parameters/MethodsParam" }, { "$ref": "#/components/parameters/SearchParam" }, { "$ref": "#/components/parameters/EnvironmentTypeParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APILogListResponse" }, "examples": { "List API Logs": { "$ref": "#/components/examples/APILogListExample" }, "List API Logs 2XX": { "$ref": "#/components/examples/APILogList2XXExample" } } } } }, "400": { "$ref": "#/components/responses/400BadRequestV2" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/v2/logs/{id}": { "get": { "summary": "API Log Details", "description": "Returns details of the specific API log event.", "operationId": "detailsLogV2", "tags": [ "API Logs" ], "parameters": [ { "$ref": "#/components/parameters/LogEventIdParam" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APILogDetailsResponse" }, "examples": { "API Logs Details": { "$ref": "#/components/examples/APILogDetailsExample" } } } } }, "400": { "$ref": "#/components/responses/400BadRequestV2" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/v1/contacts": { "get": { "tags": [ "Contacts" ], "summary": "List contacts", "description": "This method returns a list of contacts associated with a workspace.", "operationId": "listContacts", "parameters": [ { "examples": { "Default": { "value": "" }, "List Contacts by Email": { "value": "john.doe@example.com" } }, "name": "email", "in": "query", "schema": { "type": "string" }, "description": "Optional search parameter. Filter results by exact match." } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "examples": { "Default": { "value": { "results": [ { "id": "kQDLgj54VGCocTSTzthywf", "email": "john.doe@example.com", "first_name": "John", "last_name": "Doe", "company": "ExampleCorp", "job_title": "Software Engineer", "phone": "+1-555-123-4567", "country": "USA", "state": "California", "street_address": "1234 Elm Street", "city": "San Francisco", "postal_code": "94101" }, { "id": "kQDLgj54VGCocTSTzthywd", "email": "jane.smith@example.com", "first_name": "Jane", "last_name": "Smith", "company": "ExampleCorp", "job_title": "Product Manager", "phone": "+1-555-987-6543", "country": "USA", "state": "California", "street_address": "5678 Oak Street", "city": "San Francisco", "postal_code": "94102" } ] } }, "List Contacts by Email": { "value": { "results": [ { "id": "EmnxmZvnmrUe2jqDDipSyf", "email": "john.doe@example.com", "first_name": "John", "last_name": "Doe", "company": "ExampleCorp", "job_title": "Software Engineer", "phone": "+1-555-123-4567", "country": "USA", "state": "California", "street_address": "1234 Elm Street", "city": "San Francisco", "postal_code": "94101" } ] } } }, "schema": { "$ref": "#/components/schemas/ContactListResponse" } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/400RequestError" }, "403": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "tags": [ "Contacts" ], "summary": "Create contact", "description": "This method adds a contact into a contacts list.", "operationId": "createContact", "requestBody": { "required": true, "content": { "application/json": { "examples": { "Create Contact": { "value": { "email": "user01@pandadoc.com", "first_name": "John", "last_name": "Doe", "company": "John Doe Inc.", "job_title": "CTO", "phone": "+14842634627", "country": "USA", "state": "Texas", "street_address": "1313 Mockingbird Lane", "city": "Austin", "postal_code": "75001" } } }, "schema": { "$ref": "#/components/schemas/ContactCreateRequest" } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "examples": { "Create Contact": { "value": { "id": "BCUWJhZm3k7grUNFAz6cD2", "email": "user01@pandadoc.com", "first_name": "John", "last_name": "Doe", "company": "John Doe Inc.", "job_title": "CTO", "phone": "+14842634627", "country": "USA", "state": "Texas", "street_address": "1313 Mockingbird Lane", "city": "Austin", "postal_code": "75001" } } }, "schema": { "$ref": "#/components/schemas/ContactDetailsResponse" } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/contacts/{id}": { "get": { "tags": [ "Contacts" ], "summary": "Contact Details", "description": "Returns contact details by its ID.", "operationId": "detailsContact", "parameters": [ { "examples": { "Default": { "value": "SyoufNkJiHRn24LpuJ7RXb" } }, "name": "id", "in": "path", "description": "Contact id.", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "examples": { "Default": { "value": { "id": "SyoufNkJiHRn24LpuJ7RXb", "email": "nobody@example.com", "first_name": "FName", "last_name": "LName", "company": "CompanyName", "job_title": "JobTitle", "phone": "Phone", "country": "Country", "state": "State", "street_address": "Av. de Moscavide 2", "city": "City", "postal_code": "1885-075" } } }, "schema": { "$ref": "#/components/schemas/ContactDetailsResponse" } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/400RequestError" }, "403": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } }, "delete": { "tags": [ "Contacts" ], "summary": "Delete Contact", "description": "This method deletes a contact.", "operationId": "deleteContact", "parameters": [ { "name": "id", "in": "path", "description": "Contact id.", "schema": { "type": "string" }, "required": true, "example": "SyoufNkJiHRn24LpuJ7RXb" } ], "responses": { "204": { "description": "OK" }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/400RequestError" }, "403": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } }, "patch": { "tags": [ "Contacts" ], "summary": "Update Contact", "description": "This method updates a contact details.", "operationId": "updateContact", "parameters": [ { "examples": { "Default": { "value": "SyoufNkJiHRn24LpuJ7RXb" } }, "name": "id", "in": "path", "description": "Contact id.", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "examples": { "Default": { "value": { "first_name": "new first_name", "last_name": "new last_name", "company": "new company", "job_title": "new job_title", "phone": "new phone", "country": "new country", "state": "new state", "street_address": "new street_address", "city": "new city", "postal_code": "new postal_code" } } }, "schema": { "$ref": "#/components/schemas/ContactUpdateRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "examples": { "Default": { "value": { "id": "SyoufNkJiHRn24LpuJ7RXb", "email": "test@pandadoc.com", "first_name": "new first_name", "last_name": "new last_name", "company": "new company", "job_title": "new job_title", "phone": "new phone", "country": "new country", "state": "new state", "street_address": "new street_address", "city": "new city", "postal_code": "new postal_code" } } }, "schema": { "$ref": "#/components/schemas/ContactDetailsResponse" } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/members": { "get": { "tags": [ "Members" ], "summary": "List Members", "operationId": "listMembers", "description": "Retrieve all members details of the workspace implied by the OAuth token or API key.\\\nFor each member, the `workspace` parameter shows their active workspace, that is the workspace they are currently working in.\\\nThis means the `workspace` value can differ from the workspace implied by your API key.\n", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemberListResponse" }, "examples": { "List Members": { "value": { "results": [ { "user_id": "FA5QAu8UGA3oVDDZuPL75B", "membership_id": "RyMNXBjBPRppi56TfYBrXi", "email": "joe.don@pandadoc.com", "first_name": "Joe", "last_name": "Don", "is_active": true, "workspace": "n7SK7prHeoWJSXb9VkrPve", "workspace_name": "Workspace", "email_verified": true, "role": "Admin", "user_license": "Full", "date_created": "2023-08-03T11:49:16.364213Z", "date_modified": "2024-07-11T20:36:43.362526Z" }, { "user_id": "nXN9uokLULUw4L4HPsJGHQ", "membership_id": "mz4Ys3cVUSAyBpQKbHphtE", "email": "user.with.custom.role@pandadoc.com", "first_name": "", "last_name": "", "is_active": true, "workspace": "n7SK7prHeoWJSXb9VkrPve", "workspace_name": "Workspace", "email_verified": true, "role": "Custom", "user_license": "Full", "date_created": "2024-02-16T12:40:55.547303Z", "date_modified": "2024-03-21T15:55:33.783886Z" } ] } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/400RequestError" }, "403": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/members/current": { "get": { "tags": [ "Members" ], "summary": "Current Member Details", "description": "Returns the member details of the current user (the owner of the API key).\n\n**User** - is an account with a license in the Organization. \n**Member** - is a User with a predefined Role in the Workspace.\n\n| Parameter | Description |\n|---|---|\n| `user_id` | A unique identifier of the `user` in the **organization** |\n| `membership_id` | A unique identifier of the `user` in the **workspace** |\n| `email` | A user email address |\n| `first_name` | A user's first name |\n| `last_name` | A user's last name |\n| `is_active` | A boolean value that identifies if a member is active and not blocked |\n| `workspace` | A unique identifier of the user's current active workspace |\n| `workspace_name` | A name of the user's current active workspace |\n| `email_verified` | A boolean value that identifies if the email is verified |\n| `role` | A member's role in the workspace |\n| `user_license` | A user license in the organization:ΒMeticulously crafted in Italy these classic glass coffee mugs or tea cups will complete any barware collection. Contemporary sleek drinking glasses designed to enhance any dΓ©cor.
", "image_src": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/6267265d-2b29-4471-8181-c7544e35a69a/6.jpeg", "images": [ { "src": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/6267265d-2b29-4471-8181-c7544e35a69a/6.jpeg", "order": 0, "is_main": true } ], "max_tier_value": 30, "min_tier_value": 20, "modified_by": "FA5QAu8UGA3oVDQZuPL75B", "price": null, "pricing_method": 1, "sku": "coffee_mug_v2", "title": "Coffee Magic Mug", "type": "regular", "uuid": "ff137b79-e7f6-5710-17d3-c9ea81dac6b6", "highlights": null, "tiers": [ { "value": 30, "min_qty": 1 }, { "value": 20, "min_qty": 21 } ], "cost": 5 }, { "billing_cycle": 1, "billing_type": "recurring", "bundle_items_count": 0, "workspace_id": "n7SK7prHeoWJsmb9VkrPve", "category_id": "0ac5f88a-bdd6-4836-304d-28d042b8d3a2", "category_name": "Sample product", "created_by": "FA5QAu8UGA3oVDQZuPL75B", "currency": "USD", "custom_fields": [], "date_created": "2023-02-01T10:55:07+00:00", "date_modified": "2023-02-01T10:55:07+00:00", "description": "Enjoy a new light roast coffee each month. Box of white chocolate. Up to 20% off retail prices. Pause or cancel anytime.", "image_src": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/e818970c-5aa8-4645-941f-04ab0ab5b9b0/7.png", "images": [ { "src": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/e818970c-5aa8-4645-941f-04ab0ab5b9b0/7.png", "order": 0, "is_main": true } ], "max_tier_value": null, "min_tier_value": null, "modified_by": "FA5QAu8UGA3oVDQZuPL75B", "price": 19, "pricing_method": 0, "sku": "light_coffee", "title": "Light Roast Collection", "type": "regular", "uuid": "646ebcc2-58ba-8eb1-faaa-a93e4542b37b", "highlights": null, "tiers": null, "cost": 5 }, { "billing_cycle": 1, "billing_type": "recurring", "bundle_items_count": 0, "workspace_id": "n7SK7prHeoWJsmb9VkrPve", "category_id": "0ac5f88a-bdd6-4836-304d-28d042b8d3a2", "category_name": "Sample product", "created_by": "FA5QAu8UGA3oVDQZuPL75B", "currency": "USD", "custom_fields": [], "date_created": "2023-02-01T10:55:07+00:00", "date_modified": "2023-02-01T10:55:07+00:00", "description": "Enjoy a new dark roast coffee each month. Box of white chocolate. Up to 20% off retail prices. Pause or cancel anytime.", "image_src": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/6cb41994-5a6e-4253-bc4c-f5e90bb9d7f8/8.png", "images": [ { "src": "https://catalog-images.prod.pandadoc-static.com/images/bg78StVWLHzp3tYiubszPb/6cb41994-5a6e-4253-bc4c-f5e90bb9d7f8/8.png", "order": 0, "is_main": true } ], "max_tier_value": null, "min_tier_value": null, "modified_by": "FA5QAu8UGA3oVDQZuPL75B", "price": 19, "pricing_method": 0, "sku": "dark_coffee", "title": "Dark Roast Collection", "type": "regular", "uuid": "0d80ccaf-37e1-ce94-c339-d1f0405c3a62", "highlights": null, "tiers": null, "cost": 5 } ], "has_more_items": false, "total": 5 } } }, "schema": { "$ref": "#/components/schemas/ListCatalogItemsSearchResponse" } } } }, "400": { "$ref": "#/components/responses/400BadRequestV2" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/v2/product-catalog/items": { "post": { "tags": [ "Product catalog" ], "summary": "Create Catalog Item", "description": "Create a new catalog item.", "operationId": "createCatalogItem", "requestBody": { "required": true, "content": { "application/json": { "examples": { "Create Catalog item": { "value": { "type": "regular", "title": "New Product", "category_id": null, "sku": "", "description": null, "price_configuration": { "currency": "EUR", "price": 1, "cost": null, "pricing_method": 0, "tiers": null, "billing_type": "one_time", "billing_cycle": null }, "custom_fields": [], "images": [], "bundle_items": [] } } }, "schema": { "$ref": "#/components/schemas/ProductCatalogItemRequest" } } } }, "responses": { "200": { "description": "Successfully created a new catalog item", "content": { "application/json": { "examples": { "Created Catalog item": { "value": { "uuid": "ea90c56c-1350-41e0-97d1-3b3be0764f9c", "title": "New Product", "date_created": "2024-07-18T13:11:42.326997", "date_modified": "2024-07-18T13:11:42.326997", "created_by": "FA5QAu8UGA3oVDQZuPL75B", "modified_by": "FA5QAu8UGA3oVDQZuPL75B", "default_price_configuration": { "uuid": "71b0660f-f6a4-413a-a9cb-dd1f4d93754e", "price": 1, "cost": null, "currency": "EUR", "pricing_method": 0, "tiers": null, "billing_cycle": null, "billing_type": "one_time" }, "variants": [ { "uuid": "ff6ae8fd-a31f-485b-8437-5ff72fe40d97", "sku": "211813902327", "description": null, "custom_fields": [], "images": [], "date_created": "2024-07-18T13:11:42.326997", "date_modified": "2024-07-18T13:11:42.326997", "status": 0, "price_configurations": [ { "uuid": "71b0660f-f6a4-413a-a9cb-dd1f4d93754e", "price": 1, "cost": null, "currency": "EUR", "pricing_method": 0, "tiers": null, "billing_cycle": null, "billing_type": "one_time" } ] } ], "category_id": null, "category_name": null, "type": "regular", "bundle_items": null } } }, "schema": { "$ref": "#/components/schemas/ProductCatalogItemResponse" } } } }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" } } } }, "/public/v2/product-catalog/items/{item_uuid}": { "parameters": [ { "name": "item_uuid", "in": "path", "description": "Catalog item UUID", "x-ignore-no-type": true, "required": true, "schema": { "type": "string", "format": "uuid" }, "example": "2e39c7e0-acb0-4ff2-b4cd-ea3141f95db8" } ], "get": { "tags": [ "Product catalog" ], "summary": "Catalog Item Details", "description": "Get catalog item.", "operationId": "getCatalogItem", "parameters": [ { "name": "item_uuid", "in": "path", "description": "Catalog item UUID", "x-ignore-no-type": true, "required": true, "examples": { "Catalog Items Details": { "value": "2e39c7e0-acb0-4ff2-b4cd-ea3141f95db8" } }, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Get Catalog Item", "content": { "application/json": { "examples": { "Catalog Items Details": { "value": { "uuid": "2e39c7e0-acb0-4ff2-b4cd-ea3141f95db8", "title": "New Product", "date_created": "2024-07-18T13:15:13.542219", "date_modified": "2024-07-18T13:15:13.542219", "created_by": "FA5QAu8UGA3oVDQZuPL75B", "modified_by": "FA5QAu8UGA3oVDQZuPL75B", "default_price_configuration": { "uuid": "99dc088e-c42a-483f-8b07-01a482d3e85d", "price": 1, "cost": null, "currency": "EUR", "pricing_method": 0, "tiers": null, "billing_cycle": null, "billing_type": "one_time" }, "variants": [ { "uuid": "f5a99f07-8cbb-46b2-beb2-5d4c52d3fb4e", "sku": "211814113542", "description": null, "custom_fields": [], "images": [], "date_created": "2024-07-18T13:15:13.542219", "date_modified": "2024-07-18T13:15:13.542219", "status": 0, "price_configurations": [ { "uuid": "99dc088e-c42a-483f-8b07-01a482d3e85d", "price": 1, "cost": null, "currency": "EUR", "pricing_method": 0, "tiers": null, "billing_cycle": null, "billing_type": "one_time" } ] } ], "category_id": null, "category_name": null, "type": "regular", "bundle_items": null } } }, "schema": { "$ref": "#/components/schemas/ProductCatalogItemResponse" } } } }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" } } }, "patch": { "tags": [ "Product catalog" ], "summary": "Update Catalog Item", "description": "Update catalog item.", "operationId": "updateCatalogItem", "parameters": [ { "name": "item_uuid", "in": "path", "description": "Catalog item UUID", "x-ignore-no-type": true, "required": true, "examples": { "Update Catalog Item": { "value": "2e39c7e0-acb0-4ff2-b4cd-ea3141f95db8" } }, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "examples": { "Update Catalog Item": { "value": { "type": "regular", "title": "New name", "category_id": null, "product_variant": { "sku": "211813881147", "description": "New description
", "custom_fields": [ { "name": "Field", "value": "Value" } ], "price_configuration": { "price": 99, "currency": "USD", "cost": 1, "pricing_method": 1, "tiers": [ { "min_qty": 1, "value": 10 }, { "min_qty": 2, "value": 8 } ], "billing_type": "one_time", "billing_cycle": null }, "images": [] }, "bundle_items": [] } } }, "schema": { "$ref": "#/components/schemas/ProductCatalogItemPatchRequest" } } } }, "responses": { "200": { "description": "Update Catalog item", "content": { "application/json": { "examples": { "Update Catalog item": { "value": { "uuid": "2e39c7e0-acb0-4ff2-b4cd-ea3141f95db8", "title": "New name", "date_created": "2024-07-18T13:15:13.542219", "date_modified": "2024-07-18T13:19:21.692454", "created_by": "FA5QAu8UGA3oVDQZuPL75B", "modified_by": "FA5QAu8UGA3oVDQZuPL75B", "default_price_configuration": { "uuid": "99dc088e-c42a-483f-8b07-01a482d3e85d", "price": 99, "cost": 1, "currency": "USD", "pricing_method": 1, "tiers": [ { "min_qty": 1, "value": 10 }, { "min_qty": 2, "value": 8 } ], "billing_cycle": null, "billing_type": "one_time" }, "variants": [ { "uuid": "f5a99f07-8cbb-46b2-beb2-5d4c52d3fb4e", "sku": "211813881147", "description": "New description
", "custom_fields": [ { "name": "Field", "value": "Value" } ], "images": [], "date_created": "2024-07-18T13:15:13.542219", "date_modified": "2024-07-18T13:19:21.692454", "status": 0, "price_configurations": [ { "uuid": "99dc088e-c42a-483f-8b07-01a482d3e85d", "price": 99, "cost": 1, "currency": "USD", "pricing_method": 1, "tiers": [ { "min_qty": 1, "value": 10 }, { "min_qty": 2, "value": 8 } ], "billing_cycle": null, "billing_type": "one_time" } ] } ], "category_id": null, "category_name": null, "type": "regular", "bundle_items": null } } }, "schema": { "$ref": "#/components/schemas/ProductCatalogItemResponse" } } } }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" } } }, "delete": { "tags": [ "Product catalog" ], "summary": "Delete Catalog Item", "description": "Delete catalog item.", "operationId": "deleteCatalogItem", "parameters": [ { "name": "item_uuid", "in": "path", "description": "Catalog item UUID", "x-ignore-no-type": true, "required": true, "examples": { "Delete Catalog Item": { "value": "2e39c7e0-acb0-4ff2-b4cd-ea3141f95db8" } }, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "No content" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" } } } }, "/public/beta/templates/{template_id}/approval-workflow": { "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Unique identifier of the template.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "get": { "tags": [ "Approval Workflows" ], "summary": "[Beta] Get Submit for approval configuration", "description": "Retrieves the Submit for approval configuration on a template. Learn more\nabout\n[approval workflows](https://support.pandadoc.com/en/?q=Approval+workflow).\n", "operationId": "templateApprovalWorkflowGet", "responses": { "200": { "description": "Successfully retrieved the Submit for approval configuration.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApprovalWorkflowResponse" }, "examples": { "Configured workflow": { "summary": "Sequential manager then finance group", "value": { "is_enabled": true, "is_ordering_enabled": true, "is_editing_allowed": false, "has_conditional_approvals": false, "steps": [ { "id": "fq9CX7PWgpe7eao6ujEdYG", "assignee": { "id": "mGVeQe7xy9AN9eCg8VSdNm", "user": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "manager@example.com", "first_name": "Alex", "last_name": "Manager" }, "is_document_sender": false } }, { "id": "wET7vFKg4FAKcAovct7GwP", "group": { "id": "XUF5pcWnMqYAfDX7mAD9kD", "name": "Finance", "assignees": [ { "id": "vTXS79mqVFAe99baxKKvP5", "user": { "id": "RyMNXBjBPRppw56TfYBrXi", "email": "finance@example.com", "first_name": "Sam", "last_name": "Finance" }, "is_document_sender": false }, { "id": "4oZSyccEDbK3DEeJFWaHpS", "is_document_sender": true } ] } } ] } }, "Selectable group": { "summary": "Pre-selected member of a selectable group", "value": { "is_enabled": true, "is_ordering_enabled": true, "is_editing_allowed": false, "has_conditional_approvals": false, "steps": [ { "id": "wET7vFKg4FAKcAovct7GwP", "group": { "id": "XUF5pcWnMqYAfDX7mAD9kD", "name": "Finance", "type": "selectable", "assignees": [ { "id": "vTXS79mqVFAe99baxKKvP5", "user": { "id": "RyMNXBjBPRppw56TfYBrXi", "email": "finance@example.com", "first_name": "Sam", "last_name": "Finance" }, "is_document_sender": false, "is_selected": true }, { "id": "4oZSyccEDbK3DEeJFWaHpS", "user": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "manager@example.com", "first_name": "Alex", "last_name": "Manager" }, "is_document_sender": false, "is_selected": false } ] } } ] } }, "Not configured": { "summary": "Template with no Submit for approval configuration", "value": { "is_enabled": false, "is_ordering_enabled": false, "is_editing_allowed": false, "has_conditional_approvals": false, "steps": [] } } } } } }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } }, "put": { "tags": [ "Approval Workflows" ], "summary": "[Beta] Update Template Approval Workflow", "description": "Creates or replaces the Submit for approval configuration on a template.\nA template has at most one configuration; this operation always writes the\nfull desired end-state. `steps` lists the stages in the approval order and\nmust contain at least one stage. The property name stays `steps` so it\nmatches `selected_approvers.steps` on Send Document. Learn more about\n[approval workflows](https://support.pandadoc.com/en/?q=Approval+workflow).\n", "operationId": "templateApprovalWorkflowUpdate", "requestBody": { "description": "Full replacement of the Submit for approval configuration.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApprovalWorkflowRequest" }, "examples": { "Sequential manager then finance group": { "summary": "Sequential manager then finance group", "value": { "is_enabled": true, "is_ordering_enabled": true, "is_editing_allowed": false, "steps": [ { "assignee": { "email": "manager@example.com" } }, { "group": { "name": "Finance", "assignees": [ { "membership_id": "QMDSzwabfFzTgjW6KijHyu" }, { "is_document_sender": true } ] } } ] } }, "Selectable group": { "summary": "Pre-selected member of a selectable group", "value": { "is_enabled": true, "is_ordering_enabled": true, "is_editing_allowed": false, "steps": [ { "group": { "name": "Finance", "type": "selectable", "assignees": [ { "email": "finance@example.com", "is_selected": true }, { "email": "manager@example.com", "is_selected": false } ] } } ] } }, "Disabled workflow": { "summary": "Turn Submit for approval off and keep its stages", "value": { "is_enabled": false, "steps": [ { "assignee": { "email": "manager@example.com" } } ] } } } } } }, "responses": { "200": { "description": "Successfully created or replaced the Submit for approval configuration.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApprovalWorkflowResponse" }, "examples": { "Sequential manager then finance group": { "summary": "Sequential manager then finance group", "value": { "is_enabled": true, "is_ordering_enabled": true, "is_editing_allowed": false, "has_conditional_approvals": false, "steps": [ { "id": "fq9CX7PWgpe7eao6ujEdYG", "assignee": { "id": "mGVeQe7xy9AN9eCg8VSdNm", "user": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "manager@example.com", "first_name": "Alex", "last_name": "Manager" }, "is_document_sender": false } }, { "id": "wET7vFKg4FAKcAovct7GwP", "group": { "id": "XUF5pcWnMqYAfDX7mAD9kD", "name": "Finance", "assignees": [ { "id": "vTXS79mqVFAe99baxKKvP5", "user": { "id": "RyMNXBjBPRppw56TfYBrXi", "email": "finance@example.com", "first_name": "Sam", "last_name": "Finance" }, "is_document_sender": false }, { "id": "4oZSyccEDbK3DEeJFWaHpS", "is_document_sender": true } ] } } ] } }, "Selectable group": { "summary": "Pre-selected member of a selectable group", "value": { "is_enabled": true, "is_ordering_enabled": true, "is_editing_allowed": false, "has_conditional_approvals": false, "steps": [ { "id": "wET7vFKg4FAKcAovct7GwP", "group": { "id": "XUF5pcWnMqYAfDX7mAD9kD", "name": "Finance", "type": "selectable", "assignees": [ { "id": "vTXS79mqVFAe99baxKKvP5", "user": { "id": "RyMNXBjBPRppw56TfYBrXi", "email": "finance@example.com", "first_name": "Sam", "last_name": "Finance" }, "is_document_sender": false, "is_selected": true }, { "id": "4oZSyccEDbK3DEeJFWaHpS", "user": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "manager@example.com", "first_name": "Alex", "last_name": "Manager" }, "is_document_sender": false, "is_selected": false } ] } } ] } }, "Disabled workflow": { "summary": "Submit for approval turned off", "value": { "is_enabled": false, "is_ordering_enabled": true, "is_editing_allowed": false, "has_conditional_approvals": false, "steps": [ { "id": "fq9CX7PWgpe7eao6ujEdYG", "assignee": { "id": "mGVeQe7xy9AN9eCg8VSdNm", "user": { "id": "FA5QAu8UGA3oVDQZuPL75B", "email": "manager@example.com", "first_name": "Alex", "last_name": "Manager" }, "is_document_sender": false } } ] } } } } } }, "400": { "$ref": "#/components/responses/400BadRequestV2" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/beta/privacy-settings/workspaces/{workspace_id}": { "parameters": [ { "name": "workspace_id", "in": "path", "required": true, "description": "Workspace id.", "schema": { "type": "string", "pattern": "^[A-Za-z0-9]{22}$", "maxLength": 22, "minLength": 22 }, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "get": { "tags": [ "Privacy settings" ], "summary": "[Beta] Workspace Privacy Settings Details", "operationId": "getWorkspacePrivacySettings", "description": "Returns the privacy settings currently in effect for a workspace in your\norganization.\n\nYou must be an **organization admin**. Organization admin is an\norganization-wide role and is separate from workspace admin. Workspace\nadmin alone is not enough for this endpoint.\n\nList workspaces with `GET /public/v1/workspaces` when you need workspace\nids.\n", "responses": { "200": { "description": "Privacy settings for the workspace.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PrivacySettings" }, "examples": { "Privacy settings": { "value": { "workspace_id": "BhVzRcxH9Z2LgfPPGXFUBa", "hipaa_compliance_enabled": false, "cfr11_compliance_enabled": false, "ai_features_enabled": true, "ai_on_premises_processing_enabled": true, "ai_cloud_third_party_enabled": true, "ai_on_premises_training_enabled": true, "ai_third_party_training_enabled": false } } } } } }, "400": { "$ref": "#/components/responses/400BadRequestV2" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } }, "patch": { "tags": [ "Privacy settings" ], "summary": "[Beta] Update Workspace Privacy Settings", "operationId": "updateWorkspacePrivacySettings", "description": "Updates one or more AI privacy settings for a workspace in your\norganization.\n\nThis is a PATCH: include only the fields you want to change. Fields you\nomit keep their current values. Unknown properties are ignored.\n\nYou must be an **organization admin**. Organization admin is an\norganization-wide role and is separate from workspace admin. Workspace\nadmin alone is not enough for this endpoint.\n\n## Writable fields\n\n- `ai_features_enabled`\n- `ai_on_premises_processing_enabled`\n- `ai_cloud_third_party_enabled`\n- `ai_third_party_training_enabled`\n\nHIPAA (`hipaa_compliance_enabled`), 21 CFR Part 11\n(`cfr11_compliance_enabled`), and `ai_on_premises_training_enabled` are\nreturned on read but cannot be changed through this endpoint.\n\n## Cascades\n\n- Setting `ai_features_enabled` to `false` also turns off\n `ai_on_premises_processing_enabled`, `ai_cloud_third_party_enabled`,\n `ai_on_premises_training_enabled`, and `ai_third_party_training_enabled`.\n- When `hipaa_compliance_enabled` is `true` for the workspace, the same\n AI fields are forced off, including values sent in the same request.\n", "requestBody": { "description": "AI privacy settings to change. Omit fields you want to leave unchanged.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePrivacySettings" }, "examples": { "Disable AI features": { "value": { "ai_features_enabled": false } } } } } }, "responses": { "200": { "description": "Updated privacy settings for the workspace.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PrivacySettings" }, "examples": { "Updated privacy settings": { "value": { "workspace_id": "BhVzRcxH9Z2LgfPPGXFUBa", "hipaa_compliance_enabled": false, "cfr11_compliance_enabled": false, "ai_features_enabled": false, "ai_on_premises_processing_enabled": false, "ai_cloud_third_party_enabled": false, "ai_on_premises_training_enabled": false, "ai_third_party_training_enabled": false } } } } } }, "400": { "$ref": "#/components/responses/400BadRequestV2" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/v1/documents/{document_id}/quotes/{quote_id}": { "put": { "tags": [ "Quotes" ], "summary": "Quote update", "description": "This operation updates the details of a specific quote within a document by specifying the document ID and quote ID.\n\n> π **Permissions**\n>\n> Requires the 'Can Edit Document' and 'Can Edit Content' permissions.\n> The document must be in Draft (`document.draft`).\n> Updating quotes is available on plans that include\n> [Product Catalog](https://support.pandadoc.com/en/articles/9714691-product-catalog).\n\n> π§ Payload size\n>\n> The maximum request body size is 512 KiB (524288 bytes). Larger requests return `413` and are not applied.\n", "operationId": "quoteUpdate", "parameters": [ { "name": "document_id", "description": "Document ID", "in": "path", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "quote_id", "description": "Quote ID", "in": "path", "schema": { "type": "string" }, "required": true, "example": "99aaa4f9-3250-4f5b-a953-6d7bfc5d8c9e" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QuoteUpdateRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QuoteResponse" } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "409": { "$ref": "#/components/responses/409" }, "413": { "$ref": "#/components/responses/413RequestTooLarge" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/documents/{document_id}/quotes": { "patch": { "tags": [ "Quotes" ], "summary": "[Beta] Update Multiple Quotes", "operationId": "quotesBatchUpdate", "description": "This operation updates multiple quotes within a single document in one request β the batch variant of Quote update. The response is always `200 OK` once the request itself is valid; each quote's outcome is reported independently in `results[]`, so one bad quote does not fail the others. If several requests update the same quote in parallel, the last write wins. See `QuotesBatchUpdateResult` for the possible per-quote outcomes.\n\n> π **Permissions**\n>\n> Requires the 'Can Edit Document' and 'Can Edit Content' permissions.\n> The document must be in Draft (`document.draft`).\n> Updating quotes is available on plans that include\n> [Product Catalog](https://support.pandadoc.com/en/articles/9714691-product-catalog).\n\n> π§ **Beta**\n>\n> This endpoint is currently in beta and may change without notice.\n\n> π§ Payload size\n>\n> The maximum request body size is 512 KiB (524288 bytes). Larger requests return `413` before any quote is processed.\n", "parameters": [ { "name": "document_id", "description": "Document ID", "in": "path", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QuotesBatchUpdateRequest" }, "examples": { "Two quotes: one updated, one not found": { "value": { "quotes": [ { "id": "99aaa4f9-3250-4f5b-a953-6d7bfc5d8c9e", "currency": "USD", "sections": [ { "id": "3f9a6b1e-2c4d-4a3e-9f0b-7e6d5c4b3a29", "items": [ { "id": "61a7e2ab-aaa7-4001-9a9d-1f4f3de28441", "qty": 25, "price_settings": { "base_value": 40, "tiers": [ { "min_qty": 1, "value": 0 }, { "min_qty": 10, "value": 10 } ] } } ] } ] }, { "id": "2b6b0e3a-df3f-4a90-9b1a-6a7a2d6e3d10", "sections": [ { "id": "7c1e2a4d-9e3b-4c1a-8b2d-5f6a7c8d9e0f", "items": [ { "id": "232d5268-01fa-4372-88ce-64b190b62007", "price": 500 } ] } ] } ] } } } } } }, "responses": { "200": { "description": "The batch was processed. See `results[].status` for each quote's outcome.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QuotesBatchUpdateResponse" }, "examples": { "Two quotes: one updated, one not found": { "value": { "count": 2, "results": [ { "id": "99aaa4f9-3250-4f5b-a953-6d7bfc5d8c9e", "status": "ok", "quote": { "id": "99aaa4f9-3250-4f5b-a953-6d7bfc5d8c9e", "currency": "USD", "total": "1000", "summary": { "total": "1000", "subtotal": "1000" }, "sections": [], "merge_rules": [], "settings": { "selection_type": "custom" } } }, { "id": "2b6b0e3a-df3f-4a90-9b1a-6a7a2d6e3d10", "status": "not_found", "description": "Quote not found." } ] } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "413": { "$ref": "#/components/responses/413RequestTooLarge" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/workspaces": { "get": { "tags": [ "User and Workspace management" ], "operationId": "getWorkspacesList", "summary": "List Workspaces", "description": "Get a list of all the active workspaces in the organization.\n", "parameters": [ { "name": "q", "in": "query", "schema": { "type": "string" }, "description": "Filters workspaces by name (case-insensitive).", "example": "My Workspace" }, { "name": "count", "in": "query", "description": "Number of elements in page.", "schema": { "type": "integer", "format": "int32", "minimum": 1, "maximum": 100, "default": 50 }, "example": 10 }, { "name": "page", "in": "query", "description": "Page number.", "schema": { "type": "integer", "format": "int32", "minimum": 1, "default": 1 }, "example": 1 } ], "responses": { "200": { "description": "Page of workspaces", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListWorkspacesResponse" }, "examples": { "List Workspaces": { "value": { "results": [ { "id": "QCTETChxCDRWfM2FW4g9fX", "name": "Workspace", "owner": "siarhei@pandadoc.com", "date_created": "2022-05-14T22:22:41.255046Z" } ], "total": 1 } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "tags": [ "User and Workspace management" ], "summary": "Create Workspace", "operationId": "createWorkspace", "description": "Create a workspace in your organization.\n\n- You need to be an Org Admin to create a workspace.\n- You will be added to the new workspace with an Admin role.\n", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkspaceRequest" }, "examples": { "Create Workspace": { "value": { "name": "A new workspace" } }, "Create Workspace with icon": { "value": { "name": "A new workspace", "icon_url": "https://cdn.example.com/icons/workspace.png" } } } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkspaceResponse" }, "examples": { "Create Workspace": { "value": { "id": "5RdKYSewV5vMtik3CmoDMR", "name": "A new workspace" } } } } } }, "400": { "$ref": "#/components/responses/400ValidationError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/workspaces/{workspace_id}/deactivate": { "post": { "tags": [ "User and Workspace management" ], "summary": "Deactivate Workspace", "description": "Deactivate the workspace, remove all the members from it and make it \nunavailable.\n", "operationId": "deactivateWorkspace", "parameters": [ { "name": "workspace_id", "in": "path", "schema": { "type": "string" }, "required": true, "examples": { "Deactivate workspace": { "value": "BhVzRcxH9Z2LgfPPGXFUBa" } } } ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "type": "object" }, "examples": { "Deactivate workspace": { "value": {} } } } } }, "responses": { "200": { "description": "Workspace was deactivated successfully.", "content": { "application/json": { "schema": { "type": "object" }, "examples": { "Deactivate workspace": { "value": {} } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/users": { "get": { "tags": [ "User and Workspace management" ], "summary": "List Users", "operationId": "listUsers", "description": "Get a list of all users with membership in your organization, with their contact information, license type, and workspace roles.\n\nYou must be an organization admin to list users.\n", "parameters": [ { "name": "count", "in": "query", "description": "Number of elements in page.", "schema": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 50, "default": 50 }, "example": 10 }, { "name": "page", "in": "query", "description": "Page number.", "schema": { "type": "integer", "format": "int32", "minimum": 0, "default": 1 }, "example": 1 }, { "name": "show_removed", "in": "query", "description": "Filter option - show users with removed memberships.", "schema": { "type": "boolean", "default": true }, "example": false } ], "responses": { "200": { "description": "Page of users.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListUsersResponse" }, "examples": { "List Users": { "value": { "total": 1, "results": [ { "user_id": "ajnN7eGutJZsRKjQrNuPkh", "email": "josh@example.com", "first_name": "Josh", "last_name": "Doe", "phone_number": "+14842634627", "license": "Full", "is_organization_owner": true, "workspaces": [ { "role": "Admin", "workspace_id": "fERpqZdFaF9dHVAeVxPFaV", "membership_id": "nPh2PDhFdDqAES9k64h9qX" } ] } ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "429": { "$ref": "#/components/responses/429" } } }, "post": { "tags": [ "User and Workspace management" ], "summary": "Create User", "operationId": "createUser", "description": "Create users, and assign them roles, licenses, and workspaces.\n\n- You must be an organization admin to create users.\n- We check that the user email domain matches your organization domain.\n- We check that the user email and phone number have a valid format.\n", "parameters": [ { "name": "notify_user", "description": "Send a confirmation email to the user that was added to workspace(s).", "in": "query", "schema": { "type": "boolean" }, "example": true }, { "name": "notify_ws_admins", "description": "Send a confirmation email to all workspace admins indicating that the user has been added to the workspace.", "in": "query", "schema": { "type": "boolean" }, "example": false } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserRequest" }, "examples": { "Create User": { "value": { "user": { "email": "test@pandadoc.com", "first_name": "New", "last_name": "User", "phone_number": "" }, "workspaces": [ { "workspace_id": "Ab123", "role": "Collaborator" } ], "license": "Guest" } } } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserResponse" }, "examples": { "Create User": { "value": { "workspaces": [ { "workspace_id": "MwZbjUVD5C3srSSxkpF4Aj", "role": "Member", "member_id": "VQDH2hdAPJBhSWmMrYa3zu" } ], "user_id": "KwahvjapLm4RDf6pfyYdjA" } } } } } }, "400": { "$ref": "#/components/responses/400BadRequestUserRequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/users/{user_id}": { "get": { "tags": [ "User and Workspace management" ], "summary": "Get User Details by ID", "operationId": "detailsUser", "description": "Get detailed information about a specific user by their ID, including contact information, license type, and workspace roles.\n\nYou must be an organization admin to get user details.\n", "parameters": [ { "name": "user_id", "in": "path", "required": true, "description": "A unique identifier of the user.", "schema": { "type": "string" }, "example": "ajnN7eGutJZsRKjQrNuPkh" } ], "responses": { "200": { "description": "User details.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserResponse" }, "examples": { "Get User": { "value": { "user_id": "ajnN7eGutJZsRKjQrNuPkh", "email": "josh@example.com", "first_name": "Josh", "last_name": "Doe", "phone_number": "+14842634627", "license": "Full", "is_organization_owner": true, "workspaces": [ { "role": "Admin", "workspace_id": "fERpqZdFaF9dHVAeVxPFaV", "membership_id": "nPh2PDhFdDqAES9k64h9qX" } ] } } } } } }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/workspaces/{workspace_id}/members": { "post": { "tags": [ "User and Workspace management" ], "summary": "Add Member to Workspace", "description": "Add an existing user to a workspace.\n- You must be an organization admin or a workspace admin to add members.\n", "operationId": "addMember", "parameters": [ { "name": "workspace_id", "in": "path", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "notify_user", "description": "Send a confirmation email to the user that was added to workspace(s).", "in": "query", "schema": { "type": "boolean" }, "example": true }, { "name": "notify_ws_admins", "description": "Send a confirmation email to all workspace admins indicating that the user has been added to the workspace.", "in": "query", "schema": { "type": "boolean" }, "example": false } ], "requestBody": { "required": true, "content": { "application/json": { "examples": { "Add Member to Workspace": { "value": { "user_id": "2eWSKSvVqmuVCnuUK3iWwD", "role": "Member" } } }, "schema": { "$ref": "#/components/schemas/AddMemberRequest" } } } }, "responses": { "201": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddMemberResponse" }, "examples": { "Add Member to Workspace": { "value": { "member_id": "iMymdDd9XFD3HyxP5VD67Q", "workspace_id": "2eWSKSvVqmuVCnuUK3iWwD", "role": "Admin", "email": "email@example.com", "first_name": "John", "last_name": "Doe" } } } } } }, "400": { "$ref": "#/components/responses/400BadRequestMemberRequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/workspaces/{workspace_id}/members/{member_id}": { "delete": { "tags": [ "User and Workspace management" ], "summary": "Remove Member from Workspace", "description": "This operation removes a specified member from a workspace by providing the workspace ID and member ID.", "operationId": "removeMember", "parameters": [ { "name": "workspace_id", "in": "path", "description": "Workspace id", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "member_id", "in": "path", "description": "Member id", "schema": { "type": "string" }, "required": true, "example": "nPh2PDhFdDqAES9k64h9qX" } ], "responses": { "204": { "description": "No Content" }, "400": { "$ref": "#/components/responses/400BadRequestMemberRemoveError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404BadRequestMemberRemoveError" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/workspaces/{workspace_id}/members/{member_id}/role": { "patch": { "tags": [ "User and Workspace management" ], "summary": "Change Member Role in Workspace", "description": "Change the role of an existing workspace member.\n\n- You must be an organization admin, a workspace admin, or hold a role with permission to edit member roles to call this endpoint.\n- 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.\n- The role of the workspace owner cannot be changed.\n- The role of the last member with admin privileges in the workspace cannot be changed.\n- 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.\n", "operationId": "changeMemberRole", "parameters": [ { "name": "workspace_id", "in": "path", "description": "Workspace id.", "schema": { "type": "string" }, "required": true, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "member_id", "in": "path", "description": "Member id.", "schema": { "type": "string" }, "required": true, "example": "nPh2PDhFdDqAES9k64h9qX" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMemberRoleRequest" }, "examples": { "Change Member Role": { "value": { "role": "Member" } }, "Assign Custom Role": { "value": { "role": "CustomRole" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMemberRoleResponse" }, "examples": { "Change Member Role": { "value": { "member_id": "iMymdDd9XFD3HyxP5VD67Q", "workspace_id": "2eWSKSvVqmuVCnuUK3iWwD", "role": "Member", "email": "email@example.com" } } } } } }, "400": { "$ref": "#/components/responses/400BadRequestUpdateMemberRoleError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/workspaces/{workspace_id}/api-keys": { "post": { "tags": [ "User and Workspace management" ], "summary": "Create API Key", "description": "Generate a new API key for the workspace.\nCheck out [API Key Authentication article](https://developers.pandadoc.com/reference/api-key-authentication-process) for detailed API Keys description.\n\n> π \n> - Only an **Org Admin** can generate an API keys.\n> - To make another user a key's owner, pass `user_id` of this user. The user should has an **Admin** role in the workspace.\n> - 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.\n", "operationId": "createApiKey", "parameters": [ { "name": "workspace_id", "in": "path", "description": "Workspace id.", "schema": { "type": "string" }, "required": true, "examples": { "Create Production API key": { "value": "BhVzRcxH9Z2LgfPPGXFUBa" }, "Create Sandbox API key": { "value": "radQBiBkU7MBk59NSgaGf5" } } } ], "requestBody": { "required": true, "content": { "application/json": { "examples": { "Create Production API key": { "value": { "type": "production", "user_id": "ajnN7eGutJZsRKjQrNuPkh" } }, "Create Sandbox API key": { "value": { "type": "sandbox", "user_id": "2eWSKSvVqmuVCnuUK3iWwD" } } }, "schema": { "$ref": "#/components/schemas/CreateApiKeyRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "examples": { "Create Production API key": { "value": { "user_id": "ajnN7eGutJZsRKjQrNuPkh", "type": "production", "workspace_id": "BhVzRcxH9Z2LgfPPGXFUBa", "key": "5606722917eaf631cce6256e64b4afbd30d0e5fa" } }, "Create Sandbox API key": { "value": { "user_id": "2eWSKSvVqmuVCnuUK3iWwD", "type": "sandbox", "workspace_id": "radQBiBkU7MBk59NSgaGf5", "key": "1234522917eaf6313336256e64b4afbd30d54321" } } }, "schema": { "$ref": "#/components/schemas/CreateApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/v1/sms-opt-outs": { "get": { "summary": "Recent SMS Opt-out", "operationId": "listRecentSmsOptOuts", "description": "Retrieves a list of the most recent SMS opt-out changes for each phone numbers used in your workspace.\n\n> π You can filter results by time range using `timestamp_from` and `timestamp_to`.\n", "tags": [ "Communication Preferences" ], "parameters": [ { "name": "timestamp_from", "in": "query", "description": "The start of the timestamp. \n\nIf no timestamp is provided, 1 hour before the current time will be used.\n", "schema": { "type": "string", "format": "date-time" }, "example": "2025-01-28T00:00:00Z" }, { "name": "timestamp_to", "in": "query", "description": "The end of the timestamp range. \n\nIf no timestamp is provided the current time will be used.\n", "schema": { "type": "string", "format": "date-time" }, "example": "2025-01-28T23:59:59Z" } ], "responses": { "200": { "description": "A list of phone numbers, their SMS current opt-out statuses and timestamp of the last change.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListSmsOptOutChangelogResponse" }, "examples": { "List SMS Opt-out Changelog": { "value": { "results": [ { "phone_number": "+1234567890", "status": "opt-out", "opt_out_changed": "2025-01-28T12:00:00Z" }, { "phone_number": "+1234567891", "status": "opt-in", "opt_out_changed": "2025-01-28T12:00:00Z" } ] } } } } } }, "400": { "$ref": "#/components/responses/400RequestError" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "429": { "$ref": "#/components/responses/429" } } } }, "/public/beta/documents/{document_id}/docx-export-tasks": { "post": { "tags": [ "Documents" ], "summary": "[Beta] Create DOCX Export Task", "operationId": "createExportDocxTask", "description": "> β±οΈ Export as DOCX is a non-blocking (asynchronous) operation\n> The document generation process may take some time.\n> 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.\n> 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β\n", "parameters": [ { "name": "document_id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document id.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" } ], "responses": { "200": { "description": "Export DOCX task was created.", "content": { "application/json": { "examples": { "Default": { "value": { "id": "nPh2PDhFdDqAES9k64h9qX", "document_id": "BhVzRcxH9Z2LgfPPGXFUBa", "status": "done" } } }, "schema": { "$ref": "#/components/schemas/DocumentDocxExport" } } } }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/beta/documents/{document_id}/docx-export-tasks/{task_id}": { "get": { "tags": [ "Documents" ], "summary": "[Beta] DOCX Export Task", "operationId": "getDocxExportTask", "description": "> π This endpoint returns the current state of a DOCX export task for a document.\n> The endpoint supports downloading only multiple files if the document contains several sections. Downloading as a single file in this case is not possible.\n", "parameters": [ { "name": "document_id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify document id.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "task_id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "Specify Task id.", "example": "nPh2PDhFdDqAES9k64h9qX" } ], "responses": { "200": { "description": "Got state of export DOCX task.", "content": { "application/json": { "examples": { "Default": { "value": { "id": "nPh2PDhFdDqAES9k64h9qX", "document_id": "BhVzRcxH9Z2LgfPPGXFUBa", "status": "done", "docx_items": [ { "section_title": "Section 1", "url": "https://example.com/downloads/section1.docx" }, { "section_title": "Section 2", "url": "https://example.com/downloads/section2.docx" } ] } } }, "schema": { "$ref": "#/components/schemas/DocxExportTaskResponse" } } } }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/beta/documents/{document_id}/summary": { "get": { "tags": [ "Documents" ], "x-internal": true, "operationId": "getDocumentSummary", "summary": "[Beta] Document Summary", "description": "Returns a summary for the specified document. Use query parameter `type` to select summary granularity.\n", "parameters": [ { "$ref": "#/components/parameters/DocumentPathId" }, { "$ref": "#/components/parameters/DocumentSummaryTypeQuery" } ], "responses": { "200": { "description": "Document Summary is available. JSON object with `type` and `summary` (see schema). Includes `ETag` and `Vary: type` headers.\n", "headers": { "ETag": { "$ref": "#/components/headers/SummaryETag" }, "Vary": { "$ref": "#/components/headers/VaryType" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentSummaryResponse" }, "example": { "type": "detailed", "summary": "This agreement establishes a partnership between Party A and Party B, covering terms of service, payment schedules, intellectual property rights, and termination clauses. The contract is effective from March 2026 and runs for 12 months with automatic renewal." } } } }, "202": { "description": "The summary is not available yet. Retry after the indicated number of seconds. No response body is returned.\n", "headers": { "Retry-After": { "$ref": "#/components/headers/RetryAfter" } } }, "400": { "description": "The request is invalid. Either the `type` query parameter is missing, or its value is not one of the allowed values (detailed, short, headline, xshort).\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "missing_type": { "summary": "The type query parameter was not provided.", "value": { "error": { "code": "missing_type", "message": "The type query parameter is required." } } }, "invalid_type": { "summary": "The type value is not valid.", "value": { "error": { "code": "invalid_type", "message": "The type must be one of: detailed, short, headline, xshort." } } } } } } }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "description": "The document was not found. The document_id does not correspond to any document in the system.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "error": { "code": "document_not_found", "message": "The document was not found." } } } } }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/beta/documents/{document_id}/content": { "get": { "tags": [ "Documents" ], "x-internal": true, "operationId": "getDocumentContent", "summary": "[Beta] Document Content", "description": "Returns the document content for the specified document. Use query parameter `format` to select the content format.\n", "parameters": [ { "$ref": "#/components/parameters/DocumentPathId" }, { "$ref": "#/components/parameters/DocumentContentFormatQuery" } ], "responses": { "200": { "description": "Document content is available. JSON object with `format` and `content` (see schema). Includes `ETag` and `Vary: format`.\n", "headers": { "ETag": { "$ref": "#/components/headers/ContentETag" }, "Vary": { "$ref": "#/components/headers/VaryFormat" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentContentResponse" }, "examples": { "plaintext": { "summary": "When format=plaintext", "value": { "format": "plaintext", "content": "Agreement between Party A and Party B..." } }, "markdown": { "summary": "When format=markdown", "value": { "format": "markdown", "content": "# Agreement\n\nBetween **Party A** and **Party B**..." } } } } } }, "202": { "description": "The requested content is not available yet. Retry after the indicated number of seconds. No response body is returned.\n", "headers": { "Retry-After": { "$ref": "#/components/headers/RetryAfter" } } }, "400": { "description": "The request is invalid. Either the `format` query parameter is missing, or its value is not one of the allowed values (plaintext, markdown).\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "missing_format": { "summary": "The format query parameter was not provided.", "value": { "error": { "code": "missing_format", "message": "The format query parameter is required." } } }, "invalid_format": { "summary": "The format value is not valid.", "value": { "error": { "code": "invalid_format", "message": "The format must be one of: plaintext, markdown." } } } } } } }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "description": "The document was not found. The document_id does not correspond to any document in the system.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "error": { "code": "document_not_found", "message": "The document was not found." } } } } }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/beta/documents/{document_id}/ai-metadata": { "get": { "tags": [ "Documents" ], "x-internal": true, "operationId": "getDocumentAiMetadata", "summary": "[Beta] Get AI Metadata for a Document", "description": "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`).\n\nOnly fields that have an extracted value for the document are returned.\n\nThe endpoint signals AI extraction state via the HTTP status code:\n\n- `202 extraction_pending` β extraction is in progress. Clients\n should retry after the number of seconds indicated in the\n `Retry-After` header.\n\n- `204 No Content` β extraction has terminally failed for this\n document. No body is returned; retrying will not help β contact\n support.\n\n- `409 not_started` β extraction has not been triggered for this\n document (typically because the document is not yet completed).\n", "parameters": [ { "name": "document_id", "in": "path", "required": true, "description": "The unique identifier of the document.", "schema": { "type": "string", "maxLength": 22 }, "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, { "name": "limit", "in": "query", "required": false, "description": "Maximum number of fields to return in one response.", "schema": { "type": "integer", "minimum": 1, "maximum": 100, "default": 100 }, "example": 100 }, { "name": "offset", "in": "query", "required": false, "description": "Number of fields to skip before starting to collect the result set. For predictable paging, use multiples of `limit`.\n", "schema": { "type": "integer", "minimum": 0, "default": 0 }, "example": 0 } ], "responses": { "200": { "description": "AI metadata is available. Returns the fields populated for the document. `results` is empty when nothing has been extracted yet.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AIMetadataResponse" }, "examples": { "Document with extracted AI metadata": { "value": { "count": 2, "results": [ { "id": "3SBkwkGBbMn6btzHTiKkGn", "key": "Counterparty name", "field_type": "multi_line", "settings": {}, "value": { "id": "5KqRz9WLPzm4jx2hTb3vGz", "value": "Acme Corp", "source": "model", "acceptance_status": "pending" } }, { "id": "aPpvJWCMNqf6mYbA2T3KdR", "key": "Contract value", "field_type": "currency", "settings": {}, "value": { "id": "cQ7Y1XJpyTUf2gZ3hHkBNS", "value": "$250,000", "source": "user", "acceptance_status": "accepted" } } ] } } } } } }, "202": { "description": "AI extraction has not yet finished for this document. Retry after the number of seconds indicated in the `Retry-After` header.\n", "headers": { "Retry-After": { "description": "The number of seconds the client should wait before retrying the request.\n", "required": true, "schema": { "type": "integer", "minimum": 1 }, "example": 5 } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AIExtractionPendingResponse" }, "examples": { "Extraction pending": { "value": { "code": "extraction_pending", "description": "Result is being generated. You can try later." } } } } } }, "204": { "description": "AI extraction has terminally failed for this document. No body is returned; retrying will not help β contact support.\n" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "404": { "$ref": "#/components/responses/404NotFoundV2" }, "409": { "description": "Document is in an incorrect state to process the request.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AIExtractionNotStartedResponse" }, "examples": { "Extraction not started": { "value": { "code": "not_started", "description": "Likely, your document is not yet completed." } } } } } }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/beta/documents/ai-metadata": { "post": { "tags": [ "Documents" ], "x-internal": true, "operationId": "batchGetDocumentAiMetadata", "summary": "[Beta] Get AI Metadata for Multiple Documents", "description": "Returns AI metadata for a list of documents in a single request. The batch variant of Get AI Metadata for a Document.\n\nUse 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.\n\n### Partial-success model\n\nThe 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.\n\nPer-document `status` values mirror the HTTP semantics of the single-document endpoint:\n\n| 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. |\n\nTop-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.\n\n> π§ **Beta** > > This endpoint is currently in beta and may change without notice.\n", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchAIMetadataRequest" }, "examples": { "All fields for three documents": { "value": { "document_ids": [ "BhVzRcxH9Z2LgfPPGXFUBa", "msFYActMfJHqNTKH9ig2DF", "9FeAY2NB3C9qDdtQRb4tTL" ] } }, "Specific fields only": { "value": { "document_ids": [ "BhVzRcxH9Z2LgfPPGXFUBa", "msFYActMfJHqNTKH9ig2DF" ], "field_keys": [ "Counterparty name", "Contract value" ] } } } } } }, "responses": { "200": { "description": "The batch was accepted and processed. Per-document outcomes are in `results[]`. Inspect each entry's `status` field to handle success, pending extraction, terminal failure, missing document, or per-document access denial.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchAIMetadataResponse" }, "examples": { "Mixed outcomes": { "value": { "count": 6, "results": [ { "document_id": "BhVzRcxH9Z2LgfPPGXFUBa", "status": "ok", "ai_metadata": { "count": 2, "results": [ { "id": "3SBkwkGBbMn6btzHTiKkGn", "key": "Counterparty name", "field_type": "multi_line", "settings": {}, "value": { "value": "Acme Corp", "acceptance_status": "pending" } }, { "id": "aPpvJWCMNqf6mYbA2T3KdR", "key": "Contract value", "field_type": "currency", "settings": {}, "value": { "value": "$250,000", "acceptance_status": "accepted" } } ] } }, { "document_id": "msFYActMfJHqNTKH9ig2DF", "status": "extraction_pending", "retry_after": 5, "description": "Result is being generated. You can try later." }, { "document_id": "9FeAY2NB3C9qDdtQRb4tTL", "status": "extraction_failed", "description": "We couldn't extract data for this document. Contact support." }, { "document_id": "Uf7yNEwkELsazbKHDMDAeV", "status": "extraction_not_started", "description": "Likely, the document is not yet completed." }, { "document_id": "pXwnAhg8bk9SoBEGGdNu3d", "status": "not_found", "description": "Document not found." }, { "document_id": "bQySP2djjJkNKxyVbQ8pu4", "status": "access_denied", "description": "Access to this document is denied." } ] } } } } } }, "400": { "$ref": "#/components/responses/400BadRequestV2" }, "401": { "$ref": "#/components/responses/401AuthErrorV2" }, "403": { "$ref": "#/components/responses/403PermissionDeniedV2" }, "429": { "$ref": "#/components/responses/429TooManyRequestsV2" } } } }, "/public/beta/documents/search": { "get": { "tags": [ "Documents" ], "x-internal": true, "summary": "[Beta] List Documents Search", "description": "Find documents from a natural-language query. PandaDoc AI interprets\nthe query and returns the matching documents.\n\nPandaDoc offers two document search tools: this AI-powered search\nand the structured List Documents\nendpoint.\n\nBy signing this document electronically, you consent to use\nelectronic records and signatures. Your electronic signature\nis the legal equivalent of your\nhandwritten signature.
\n", "nullable": true } } } } }, "DocumentStatusChangeRequestStatusEnum": { "type": "integer", "enum": [ 2, 10, 11, 12 ], "example": 12, "description": "Number code for the target document status. See notes for the codes corresponding to each status." }, "DocumentStatusChangeRequest": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/DocumentStatusChangeRequestStatusEnum" }, "note": { "type": "string", "description": "Provide βprivate notesβ regarding the manual status change.", "example": "A private note" }, "notify_recipients": { "type": "boolean", "description": "Send a notification email about the status change to all recipients." } }, "required": [ "status" ] }, "DocumentRevertToDraftResponse": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string" }, "date_created": { "type": "string" }, "date_modified": { "type": "string" }, "expiration_date": { "type": "string", "nullable": true }, "version": { "type": "string" } } }, "Token": { "type": "object", "properties": { "name": { "type": "string", "description": "Token name.", "example": "Document.GrandTotal" }, "value": { "type": "string", "description": "Token value.", "example": "$29.99" } }, "required": [ "name" ] }, "RecipientAssignmentDetails": { "type": "object", "properties": { "id": { "type": "string", "example": "DueKG6wZYwmqsvPrnk76ma" }, "email": { "type": "string", "format": "email", "example": "email@example.com" }, "recipient_type": { "type": "string", "example": "signer" }, "roles": { "type": "array", "items": { "type": "string" }, "example": [ "Role 1" ] }, "signing_order": { "type": "integer", "example": 1 }, "has_completed": { "type": "boolean", "example": false } } }, "AssignedToRecipientDeliveryMethods": { "type": "object", "properties": { "sms": { "type": "boolean" }, "email": { "type": "boolean" } } }, "RecipientRedirectSettings": { "type": "object", "properties": { "is_enabled": { "type": "boolean" }, "url": { "type": "string" } } }, "RecipientAssignedTo": { "title": "Recipient", "description": "Recipient", "allOf": [ { "$ref": "#/components/schemas/RecipientAssignmentDetails" }, { "type": "object", "properties": { "first_name": { "type": "string", "example": "John" }, "last_name": { "type": "string", "example": "Doe" }, "phone": { "type": "string", "example": "+1234567890" }, "role": { "type": "string", "example": "Role 1" }, "delivery_methods": { "$ref": "#/components/schemas/AssignedToRecipientDeliveryMethods" }, "redirect": { "$ref": "#/components/schemas/RecipientRedirectSettings" }, "type": { "type": "string", "enum": [ "recipient" ] } } } ] }, "RecipientsGroupAssignedTo": { "title": "Recipient Group", "description": "Collection of Recipients", "allOf": [ { "$ref": "#/components/schemas/RecipientAssignmentDetails" }, { "properties": { "name": { "type": "string", "example": "Group name" }, "members": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "example": "027d6a8e-bd05-45dc-a609-43840d523b7b" }, "email": { "type": "string", "format": "email", "example": "email@example.com" }, "first_name": { "type": "string", "example": "John" }, "last_name": { "type": "string", "example": "Doe" } } } }, "type": { "type": "string", "enum": [ "recipient_group" ] } } } ] }, "FieldTypeEnum": { "type": "string", "enum": [ "checkbox", "collect_file", "date", "dropdown", "initials", "payment_details", "radio_buttons", "signature", "stamp", "text" ], "example": "payment_details" }, "BaseField": { "type": "object", "properties": { "uuid": { "type": "string", "example": "6ce1a193-04da-4023-98c3-51ef1b8747b9" }, "name": { "type": "string", "description": "Name of a field" }, "title": { "type": "string" }, "placeholder": { "type": "string", "description": "Placeholder of a field" }, "assigned_to": { "anyOf": [ { "$ref": "#/components/schemas/RecipientAssignedTo" }, { "$ref": "#/components/schemas/RecipientsGroupAssignedTo" } ], "discriminator": { "propertyName": "type", "mapping": { "recipient": "#/components/schemas/RecipientAssignedTo", "recipient_group": "#/components/schemas/RecipientsGroupAssignedTo" } } }, "field_id": { "type": "string", "example": "FieldId1" }, "is_filled": { "type": "boolean", "readOnly": true, "description": "Whether the field has a completed value according to its type.\n" }, "type": { "$ref": "#/components/schemas/FieldTypeEnum" } } }, "Checkbox": { "title": "Checkbox", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "boolean", "description": "Value of the Checkbox field.", "example": true }, "merge_field": { "type": "string", "example": "MergeId" }, "type": { "type": "string", "enum": [ "checkbox" ] } } } ] }, "CollectFile": { "title": "Collect File", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "object", "description": "Value of the Collect File field.", "properties": { "name": { "type": "string", "example": "example.jpg" }, "url": { "type": "string", "example": "https://some-url.com/collect_files" } } }, "type": { "type": "string", "enum": [ "collect_file" ] } } } ] }, "Date": { "title": "Date", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "string", "format": "date-time", "description": "Value of the Date field.", "example": "2024-01-01T00:00:00" }, "merge_field": { "type": "string", "example": "MergeId" }, "type": { "type": "string", "enum": [ "date" ] } } } ] }, "Dropdown": { "title": "Dropdown", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "string", "description": "Value of the Dropdown field.", "example": "dropdown item 1" }, "merge_field": { "type": "string", "example": "MergeId" }, "type": { "type": "string", "enum": [ "dropdown" ] } } } ] }, "Initials": { "title": "Initials", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "object", "description": "Value of the Initials field. Always empty object.", "example": {} }, "type": { "type": "string", "enum": [ "initials" ] } } } ] }, "Payment": { "title": "Payment Details", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "string", "description": "Value of the Payment field. Always empty string.", "example": "" }, "type": { "type": "string", "enum": [ "payment_details" ] } } } ] }, "RadioButtons": { "title": "Radio Buttons", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "string", "description": "Value of the Radio Buttons field.", "example": "Option 1" }, "merge_field": { "type": "string", "example": "MergeId" }, "type": { "type": "string", "enum": [ "radio_buttons" ] } } } ] }, "Signature": { "title": "Signature", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "object", "description": "Value of the Signature field. Always empty object.", "example": {} }, "type": { "type": "string", "enum": [ "signature" ] } } } ] }, "Stamp": { "title": "Stamp", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "object", "description": "Value of the Stamp field. Always empty object.", "example": {} }, "type": { "type": "string", "enum": [ "stamp" ] } } } ] }, "Text": { "title": "Text", "allOf": [ { "$ref": "#/components/schemas/BaseField" }, { "type": "object", "properties": { "value": { "type": "string", "description": "Value of the Text field.", "example": "Some text" }, "merge_field": { "type": "string", "example": "MergeId", "nullable": true }, "type": { "type": "string", "enum": [ "text" ] } } } ] }, "Field": { "anyOf": [ { "$ref": "#/components/schemas/Checkbox" }, { "$ref": "#/components/schemas/CollectFile" }, { "$ref": "#/components/schemas/Date" }, { "$ref": "#/components/schemas/Dropdown" }, { "$ref": "#/components/schemas/Initials" }, { "$ref": "#/components/schemas/Payment" }, { "$ref": "#/components/schemas/RadioButtons" }, { "$ref": "#/components/schemas/Signature" }, { "$ref": "#/components/schemas/Stamp" }, { "$ref": "#/components/schemas/Text" } ], "discriminator": { "propertyName": "type", "mapping": { "checkbox": "#/components/schemas/Checkbox", "collect_file": "#/components/schemas/CollectFile", "date": "#/components/schemas/Date", "dropdown": "#/components/schemas/Dropdown", "initials": "#/components/schemas/Initials", "payment": "#/components/schemas/Payment", "radio_buttons": "#/components/schemas/RadioButtons", "signature": "#/components/schemas/Signature", "stamp": "#/components/schemas/Stamp", "text": "#/components/schemas/Text" } } }, "PricingTableResponse": { "type": "object", "properties": { "name": { "type": "string", "example": "Pricing Table" }, "id": { "type": "string", "example": "065c5cbc-a065-4843-ba17-028e63779605" }, "total": { "type": "string", "example": "11500" }, "is_included_in_total": { "type": "boolean" }, "summary": { "type": "object", "nullable": true, "properties": { "subtotal": { "type": "string", "example": "11500", "nullable": true }, "total": { "type": "string", "example": "11500", "nullable": true }, "discount": { "type": "string", "example": "0", "nullable": true }, "tax": { "type": "string", "example": "0", "nullable": true }, "fee": { "type": "string", "example": "0", "nullable": true } } }, "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "sku": { "type": "string", "nullable": true }, "qty": { "type": "string", "nullable": true, "example": "10" }, "name": { "type": "string", "nullable": true, "example": "Annual license" }, "cost": { "type": "string", "nullable": true }, "price": { "type": "string", "nullable": true, "example": "100" }, "description": { "type": "string", "nullable": true, "example": "1 year subscription" }, "custom_fields": { "type": "object", "nullable": true, "example": {} }, "custom_columns": { "type": "object", "nullable": true, "example": { "Images": "", "Cost": "", "Subtotal": "" } }, "discount": { "type": "object", "nullable": true, "properties": { "value": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true } } }, "tax_first": { "type": "object", "nullable": true, "properties": { "value": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true } } }, "tax_second": { "type": "object", "nullable": true, "properties": { "value": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true } } }, "subtotal": { "type": "string", "nullable": true, "example": "10000" }, "options": { "type": "object", "nullable": true, "example": {}, "properties": { "optional": { "type": "boolean", "nullable": true }, "optional_selected": { "type": "boolean", "nullable": true }, "multichoice_enabled": { "type": "boolean", "nullable": true }, "multichoice_selected": { "type": "boolean", "nullable": true }, "qty_editable": { "type": "boolean" } } }, "sale_price": { "type": "string", "nullable": true, "example": "1000" }, "taxes": { "type": "object", "nullable": true, "example": {} }, "discounts": { "type": "object", "nullable": true, "example": {} }, "fees": { "type": "object", "nullable": true, "example": {} }, "merged_data": { "type": "object", "nullable": true, "description": "Contains all fields in a flat structure with external field names defined in the template.", "example": { "custom_name": "SomeName", "custom_description": "SomeCustomDescription", "custom_price": "10.99", "custom_qty": "1.00", "custom_sku": "Test", "custom_tax": { "value": "10", "type": "percent" }, "custom_fee": { "value": "10", "type": "percent" }, "custom_discount": { "value": "10", "type": "percent" }, "custom_text": "Some other", "Cost": null, "Subtotal": "26.38", "fluffiness": "Fluffiness", "Other_field": "SomeText" } } } } }, "currency": { "type": "string", "example": "USD" } } }, "QuoteUpdateRequestBillingFrequencyEnum": { "type": "string", "nullable": true, "enum": [ "weekly", "monthly", "annually", "quarterly", "semiannually" ] }, "QuoteSectionSettings": { "type": "object", "properties": { "optional": { "type": "boolean" }, "selected": { "type": "boolean" }, "selection_type": { "type": "string", "enum": [ "custom", "single", "multiple" ] }, "data_merge_enabled": { "type": "boolean" } } }, "QuoteResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "4b011d86-286b-4f86-b697-90a6ad3f1489" }, "currency": { "type": "string", "example": "USD" }, "total": { "type": "string", "example": "900" }, "summary": { "type": "object", "title": "QuoteResponseSummary", "properties": { "total": { "type": "string", "example": "900" }, "subtotal": { "type": "string", "example": "1000", "nullable": true }, "one_time_subtotal": { "type": "string", "example": "500", "nullable": true }, "recurring_subtotal": { "type": "array", "items": { "type": "object", "properties": { "billing_cycle": { "type": "string", "example": "monthly" }, "value": { "type": "string", "example": "500" } } }, "nullable": true }, "total_qty": { "type": "string", "nullable": true }, "discounts": { "type": "object", "nullable": true, "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } } } }, "taxes": { "type": "object", "nullable": true }, "fees": { "type": "object", "nullable": true }, "custom_fields": { "type": "object", "nullable": true, "additionalProperties": { "type": "string" } }, "total_discount": { "type": "string", "example": "100", "nullable": true }, "total_tax": { "type": "string", "nullable": true }, "total_fee": { "type": "string", "nullable": true }, "total_savings": { "type": "string", "nullable": true }, "total_contract_value": { "type": "string", "example": "1900", "nullable": true } } }, "sections": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "summary": { "type": "object", "title": "QuoteResponseSectionSummary", "properties": { "total": { "type": "string", "example": "1000" }, "subtotal": { "type": "string", "example": "1000", "nullable": true }, "one_time_subtotal": { "type": "string", "example": "500", "nullable": true }, "recurring_subtotal": { "type": "array", "items": { "type": "object", "properties": { "billing_cycle": { "type": "string", "example": "monthly" }, "value": { "type": "string", "example": "500" } } }, "nullable": true }, "total_qty": { "type": "string", "nullable": true }, "discounts": { "type": "object", "nullable": true }, "taxes": { "type": "object", "nullable": true }, "fees": { "type": "object", "nullable": true }, "custom_fields": { "type": "object", "nullable": true, "additionalProperties": { "type": "string" } }, "total_section_value": { "type": "string", "example": "1900", "nullable": true } } }, "columns": { "type": "array", "items": { "type": "object", "title": "QuoteResponseSectionColumn", "properties": { "header": { "type": "string", "nullable": true }, "name": { "type": "string" }, "merge_name": { "type": "string", "nullable": true }, "hidden": { "type": "boolean" }, "formula_expression": { "type": "string", "nullable": true }, "formula_error_code": { "type": "string", "nullable": true } } } }, "items": { "type": "array", "items": { "type": "object", "title": "QuoteResponseSectionItem", "properties": { "id": { "type": "string", "nullable": true }, "sku": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "qty": { "type": "string", "nullable": true, "example": "1" }, "price": { "type": "string", "nullable": true, "example": "500" }, "cost": { "type": "string", "nullable": true }, "billing_frequency": { "$ref": "#/components/schemas/QuoteUpdateRequestBillingFrequencyEnum" }, "contract_term": { "type": "string", "nullable": true }, "pricing_method": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "reference_type": { "type": "string", "nullable": true }, "options": { "type": "object", "nullable": true, "properties": { "selected": { "type": "boolean", "nullable": true }, "qty_editable": { "type": "boolean", "nullable": true } } }, "custom_columns": { "type": "object", "nullable": true, "additionalProperties": { "type": "string" } }, "formula_columns": { "type": "object", "nullable": true, "additionalProperties": { "type": "string", "nullable": true } }, "external_columns": { "type": "object", "nullable": false, "additionalProperties": { "type": "string" } }, "discounts": { "type": "object", "nullable": true, "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } } } }, "taxes": { "type": "object", "nullable": true, "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } } } }, "fees": { "type": "object", "nullable": true, "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } } } }, "multipliers": { "type": "object", "nullable": true, "additionalProperties": { "type": "string" } }, "total": { "type": "string", "nullable": true }, "overall_total": { "type": "string", "example": "1000", "nullable": true }, "total_qty": { "type": "string", "nullable": true }, "reference_id": { "type": "string", "nullable": true }, "thumbnail": { "type": "string", "nullable": true }, "images": { "type": "array", "nullable": true, "items": { "type": "string" } }, "merged_data": { "type": "object", "nullable": true } } }, "nullable": true }, "total": { "type": "string", "example": "1000" }, "settings": { "$ref": "#/components/schemas/QuoteSectionSettings" } }, "nullable": true } }, "merge_rules": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "enabled": { "type": "boolean" }, "action": { "type": "object", "properties": { "type": { "type": "string" }, "section_id": { "type": "string" } } }, "condition": { "type": "object", "properties": { "field_name": { "type": "string" }, "type": { "type": "string" }, "comparison": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "string" } } } } } } } } }, "settings": { "type": "object", "properties": { "selection_type": { "type": "string", "enum": [ "custom", "single", "multiple" ] } } } } }, "PricingResponse": { "type": "object", "properties": { "tables": { "type": "array", "items": { "$ref": "#/components/schemas/PricingTableResponse" } }, "quotes": { "type": "array", "items": { "$ref": "#/components/schemas/QuoteResponse" } }, "total": { "type": "string", "example": "11500" } } }, "RecipientTypeEnum": { "type": "string", "enum": [ "signer", "CC", "approver" ], "example": "signer" }, "RecipientPersonalDetails": { "type": "object", "description": "Actor", "properties": { "id": { "type": "string", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "recipient_type": { "$ref": "#/components/schemas/RecipientTypeEnum" }, "role": { "type": "string", "nullable": true, "deprecated": true, "example": "" }, "roles": { "type": "array", "items": { "type": "string" }, "example": [ "user" ] }, "signing_order": { "type": "integer", "minimum": 1, "nullable": true }, "email": { "type": "string", "nullable": true, "example": "test@test.com" }, "has_completed": { "type": "boolean", "example": true } } }, "RecipientVerificationSettingsResponse": { "type": "object", "nullable": true, "description": "Recipient verification settings as returned in document details.\n`null` when verification is not configured for the recipient.\n", "allOf": [ { "$ref": "#/components/schemas/RecipientVerificationSettings" } ] }, "DocumentDetailsRecipient": { "title": "Recipient", "allOf": [ { "$ref": "#/components/schemas/RecipientPersonalDetails" }, { "type": "object", "description": "Recipient", "properties": { "last_name": { "type": "string", "example": "Dow" }, "contact_id": { "type": "string", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "first_name": { "type": "string", "example": "Jhon" }, "phone": { "type": "string", "nullable": true, "example": "+14842634627" }, "delivery_methods": { "$ref": "#/components/schemas/RecipientDeliveryMethods" }, "has_completed": { "type": "boolean", "example": true }, "shared_link": { "type": "string", "example": "https://app.pandadoc.com/document/b7f11ea3c09d1c11208cc122457d4f3a2829d364" }, "signature_date": { "type": "string", "nullable": true, "example": "2021-10-23T21:07:04.147345Z" }, "verification_settings": { "$ref": "#/components/schemas/RecipientVerificationSettingsResponse" }, "redirect": { "$ref": "#/components/schemas/RecipientRedirect" }, "avatar": { "type": "string", "nullable": true, "example": "https://pd-live-media.s3.amazonaws.com/users/000GTSGwJw000L2KZqc000/avatar.jpg" }, "type": { "type": "string", "example": "recipient", "enum": [ "recipient" ] } } } ] }, "DocumentDetailsRecipientGroupMember": { "type": "object", "description": "Recipient Group Member", "properties": { "id": { "type": "string", "example": "4b011d86-286b-4f86-b697-90a6ad3f1489" }, "first_name": { "type": "string", "example": "Jhon" }, "last_name": { "type": "string", "example": "Dow" }, "email": { "type": "string", "nullable": true, "example": "test@test.com" }, "shared_link": { "type": "string", "example": "https://app.pandadoc.com/document/b7f11ea3c09d1c11208cc122457d4f3a2829d364" }, "avatar": { "type": "string", "nullable": true, "example": "https://pd-live-media.s3.amazonaws.com/users/000GTSGwJw000L2KZqc000/avatar.jpg" }, "signature_date": { "type": "string", "nullable": true, "example": "2021-10-23T21:07:04.147345Z" } } }, "DocumentDetailsRecipientGroup": { "title": "Recipient Group", "allOf": [ { "$ref": "#/components/schemas/RecipientPersonalDetails" }, { "type": "object", "description": "Recipient Group", "properties": { "name": { "type": "string", "example": "Group 1" }, "type": { "type": "string", "example": "recipient_group", "enum": [ "recipient_group" ] }, "members": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentDetailsRecipientGroupMember" } } } } ] }, "DocumentQESStatusEnum": { "type": "string", "enum": [ "pending", "in_progress", "completed" ], "example": "pending", "description": "The status of the QES (Qualified Electronic Signature) for the document.\nIt indicates whether the QES process is still pending or has been completed.\n" }, "DocumentDetailsResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "Document ID.", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "name": { "type": "string", "description": "Document name.", "example": "API Sample Document from PandaDoc Template" }, "autonumbering_sequence_name_prefix": {}, "folder_uuid": { "type": "string", "example": "QMDSzwabfFzTgjW4kUijqQ", "description": "ID of the folder where the created document should be stored.", "nullable": true }, "date_created": { "type": "string", "description": "Document creation date.", "example": "2021-10-23T21:07:04.147345Z" }, "date_modified": { "type": "string", "description": "Document modification date.", "example": "2021-10-23T21:07:04.147345Z" }, "date_completed": { "type": "string", "description": "Document completion date.", "example": "2021-10-23T21:07:04.147345Z", "nullable": true }, "content_date_modified": { "type": "string", "description": "Document content modification date.", "example": "2021-10-23T21:07:04.147345Z" }, "date_sent": { "type": "string", "description": "Document sent date.", "nullable": true, "example": "2021-10-23T21:07:04.147345Z" }, "ref_number": { "type": "string", "description": "Document reference number.", "example": "MTMJR-FEUQB-ECEWW-3WVZP" }, "created_by": { "type": "object", "description": "Document creator details.", "properties": { "id": { "type": "string", "description": "Creator ID.", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "membership_id": { "type": "string", "description": "Creator membership ID.", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "email": { "type": "string", "description": "Creator email.", "example": "teset@test.test" }, "first_name": { "type": "string", "description": "Creator first name.", "example": "Jhon" }, "last_name": { "type": "string", "description": "Creator last name.", "example": "Dow" }, "avatar": { "type": "string", "description": "Creator avatar URL.", "example": "https://pd-live-media.s3.amazonaws.com/users/000GTSGwJw000L2KZqc000/avatar.jpg", "nullable": true } } }, "template": { "type": "object", "description": "Source template of the document. `null` for documents created from multiple templates (bundles) because only a single parent template is stored.", "nullable": true, "properties": { "id": { "type": "string", "description": "Template ID.", "example": "hryJY9mqYZHjQCYQuSjRQg" }, "name": { "type": "string", "description": "Template name.", "example": "Upload test" } } }, "expiration_date": { "type": "string", "description": "Document expiration date.", "example": "2021-10-23T21:07:04.147345Z", "nullable": true }, "metadata": { "type": "object", "description": "Document metadata.", "example": { "document__created_via_public_api": "true", "my_favorite_pet": "Panda", "opp_id": "1234567" } }, "tokens": { "type": "array", "description": "Document tokens.", "items": { "$ref": "#/components/schemas/Token" }, "example": [ { "name": "Document.GrandTotal", "value": "$29.99" }, { "name": "Favorite.Pet", "value": "Panda" } ] }, "fields": { "type": "array", "description": "Document fields.", "items": { "$ref": "#/components/schemas/Field" }, "example": [ { "uuid": "f9574c3b-5b1e-4479-b2c9-c3ccd92748f3", "name": "Click to upload a file", "title": "", "placeholder": "Click to upload a file", "value": { "name": "file_name.pdf", "url": "https://uploadfields.pandadoc-static.com/collect_files/e7b082c2-395b-43c7-a24c-66bd1bbb5d2f/65af1f23-9d26-4622-8ff0-f406b3be27b8-file_name.pdf" }, "assigned_to": { "id": "Fx7CgaVgpGbJBgZ4i5oTx8", "first_name": "John", "last_name": "Roe", "email": "john@example.com", "recipient_type": "signer", "has_completed": false, "role": "", "roles": [ "singer" ], "type": "recipient" }, "field_id": "CollectFile1", "type": "collect_file", "is_filled": true }, { "uuid": "f9574c3b-5b1e-4479-b2c9-c3ccd92748f3", "name": "Favorite.Color", "merge_field": "Favorite.Color", "title": "Textfield", "value": "value", "assigned_to": { "id": "Fx7CgaVgpGbJBgZ4i5oTx8", "name": "Group 2", "email": "group2@example.com", "recipient_type": "signer", "has_completed": false, "roles": [], "type": "recipient_group", "members": [ { "id": "4b011d86-286b-4f86-b697-90a6ad3f1489", "email": "john@example.com", "first_name": "John", "last_name": "Doe" } ] }, "field_id": "text1", "type": "text", "is_filled": true }, { "uuid": "M4755SJuoyz5Jzsw4WXTDb", "name": "Like", "merge_field": "Like", "title": "Checkbox", "value": true, "assigned_to": { "id": "Fx7CgaVgpGbJBgZ4i5oTx8", "first_name": "John", "last_name": "Roe", "email": "john@example.com", "recipient_type": "signer", "has_completed": false, "role": "", "roles": [ "signer" ], "type": "recipient" }, "field_id": "checkbox1", "type": "checkbox", "is_filled": true } ] }, "pricing": { "$ref": "#/components/schemas/PricingResponse" }, "tables": { "type": "array", "description": "Document tables.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Table name." } } } }, "images": { "type": "array", "description": "Document images.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Image name." } } } }, "texts": { "type": "array", "description": "Document text blocks.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Text name.", "example": "Legal Terms Section" } } } }, "tags": { "type": "array", "description": "Document tags.", "items": { "type": "string" }, "example": [ "tag1", "tag2" ] }, "sent_by": { "type": "object", "nullable": true, "description": "Document sent by.", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "avatar": { "type": "string", "nullable": true } } }, "recipients": { "type": "array", "description": "Document recipients.", "items": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/DocumentDetailsRecipient" }, { "$ref": "#/components/schemas/DocumentDetailsRecipientGroup" } ], "discriminator": { "propertyName": "type", "mapping": { "recipient": "#/components/schemas/DocumentDetailsRecipient", "recipient_group": "#/components/schemas/DocumentDetailsRecipientGroup" } } } }, "grand_total": { "type": "object", "description": "Document grand total.", "properties": { "amount": { "type": "string", "description": "Total amount.", "example": "29.99" }, "currency": { "type": "string", "description": "Currency type.", "example": "USD" } } }, "linked_objects": { "type": "array", "description": "Document linked objects.", "items": { "type": "object", "properties": { "provider": { "type": "string", "description": "Linked object provider.", "example": "hubspot" }, "entity_type": { "type": "string", "description": "Linked object entity type.", "example": "deal" }, "entity_id": { "type": "string", "description": "Linked object entity ID.", "example": "18640" }, "id": { "type": "string", "description": "Linked object ID.", "example": "ea88ed1dc8094dd3a57754aa643a1954" }, "children": { "type": "array", "description": "Linked object children array.", "items": { "type": "object", "properties": { "entity_type": { "type": "string", "description": "Linked object child entity type.", "example": "child-deal" }, "entity_id": { "type": "string", "description": "Linked object child entity ID.", "example": "19640" }, "id": { "type": "string", "description": "Linked object child ID.", "example": "ea88ed1dc8094dd3a57754aa643a1954" } } } } } } }, "status": { "$ref": "#/components/schemas/DocumentStatusEnum" }, "qes_status": { "type": "string", "description": "The status of the QES (Qualified Electronic Signature) for the document.\nNull if the QES is disabled for document.\n", "nullable": true, "allOf": [ { "$ref": "#/components/schemas/DocumentQESStatusEnum" } ] }, "approval_execution": { "type": "object", "description": "Document approval execution.", "nullable": true, "properties": { "document_uuid": { "type": "string", "description": "Decoded uuid of related RegularDocument instance.", "example": "1234567890" }, "revision_number": { "type": "integer", "description": "Consequent number of revision for related RegularDocument.", "example": 1 } } }, "version": { "type": "string", "description": "Document version.", "example": "1" }, "lock": { "type": "object", "nullable": true, "allOf": [ { "$ref": "#/components/schemas/DocumentLockInfo" }, { "type": "object", "description": "Active editing lock on the document, if any. `null` when the document is not locked or the lock has expired.\n" } ] } } }, "DocumentSendRequest": { "type": "object", "properties": { "message": { "type": "string", "description": "A message that will be sent by email with a link to a document to sign.", "example": "Hello! This document was sent from the PandaDoc API" }, "subject": { "type": "string", "description": "Value that will be used as the email subject.", "example": "Please check this test API document from PandaDoc" }, "silent": { "type": "boolean", "description": "If set to `true`, disables email notifications for document recipients and the document sender. Also disables scheduled reminders (manual reminders still possible). Doesn't affect \"Approve document\" email notification sent to the Approver." }, "sender": { "type": "object", "description": "You can set a sender of a document as an `email` or `membership_id`", "properties": { "membership_id": { "type": "string", "description": "Membership ID.", "example": "QMDSzwabfFzTgjW6KijHyu" }, "email": { "type": "string", "description": "Email.", "example": "john.doe@example.com" } } }, "forwarding_settings": { "type": "object", "description": "Set settings for Document and Signature forwarding.", "properties": { "forwarding_allowed": { "type": "boolean", "description": "Your recipient will be able/not able to forward the document to another email address.", "example": true }, "forwarding_with_reassigning_allowed": { "type": "boolean", "description": "Your recipient will be able/not able to forward the right to fill out all fields (including signature) assigned to them to another email address.", "example": true } } }, "reply_to": { "type": "string", "format": "email", "description": "Email address that will be used as a reply-to address for the document. To use this parameter, please contact the support team to have it enabled for your account.\n", "example": "john.doe@example.com" }, "selected_approvers": { "type": "object", "description": "Configuration for selected approvers.", "properties": { "steps": { "type": "array", "description": "Approval steps.", "items": { "type": "object", "required": [ "id", "group" ], "properties": { "id": { "type": "string", "description": "Step ID.", "example": "LzWmancTxrgfTMpsJP9Eqd" }, "group": { "type": "object", "description": "Group information.", "required": [ "id", "type", "assignees" ], "properties": { "id": { "type": "string", "description": "Group ID.", "example": "op9MA75HygJHiV4aeVHXCH" }, "type": { "type": "string", "description": "Group type.", "example": "selectable" }, "assignees": { "type": "array", "description": "Assignees for the group.", "required": [ "user", "is_selected" ], "items": { "type": "object", "properties": { "user": { "type": "string", "description": "User ID.", "example": "tpBLrk3vJoLggypMSRt92i" }, "is_selected": { "type": "boolean", "description": "Whether the user is selected.", "example": true } } } } } } } } } } } } }, "DocumentSendResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "msFYActMfJHqNTKH8YSvF1" }, "name": { "type": "string", "example": "API Sample Document from PandaDoc Template" }, "status": { "type": "string", "example": "document.sent" }, "date_created": { "type": "string", "example": "2018-02-06T08:42:13.836022Z" }, "date_modified": { "type": "string", "example": "2018-02-06T08:42:13.836022Z" }, "date_completed": { "type": "string", "description": "Document completion date.", "example": "2021-10-23T21:07:04.147345Z", "nullable": true }, "expiration_date": { "type": "string", "example": "2018-02-06T08:42:13.836022Z" }, "version": { "type": "string", "example": "2" }, "uuid": { "type": "string", "example": "msFYActMfJHqNTKH8YSvF1" }, "recipients": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "first_name": { "type": "string", "example": "Jhon" }, "last_name": { "type": "string", "example": "Dow" }, "recipient_type": { "$ref": "#/components/schemas/RecipientTypeEnum" }, "email": { "type": "string", "nullable": true, "example": "test@test.com" }, "phone": { "type": "string", "nullable": true, "example": "+14842634627" }, "delivery_methods": { "$ref": "#/components/schemas/RecipientDeliveryMethods" }, "signing_order": { "type": "integer", "example": 1, "nullable": true }, "shared_link": { "type": "string", "example": "https://app.pandadoc.com/document/b7f11ea3c09d1c11208cc122457d4f3a2829d364" }, "type": { "type": "string", "example": "recipient", "nullable": true } } } } } }, "EditingSessionRequest": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "description": "Email of the user to create the editing session for", "example": "john.doe@pandadoc.com" }, "lifetime": { "type": "integer", "format": "int32", "description": "Lifetime of the E-Token in seconds.", "example": 3600, "minimum": 60, "maximum": 86400, "default": 3600 } }, "required": [ "email" ] }, "BaseEditingSessionResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "Internal id of the editing session. Don't use it, it's not a token.", "example": "ce9825e5-3210-4a8f-1230-f32b643295d2" }, "email": { "type": "string", "format": "email", "description": "Email associated with the editing session.", "example": "eric@pandadoc.com" }, "expires_at": { "type": "string", "format": "date-time", "description": "Date and time when the editing session expires.", "example": "2025-01-10T00:09:09.612651Z" }, "key": { "type": "string", "deprecated": true, "description": "Same value as `token`, token for the embedded editor, aka E-Token. Deprecated β use `token` instead.", "example": "985b695b56eaaa571e9bb8e522afd5bd335c32d7" }, "token": { "type": "string", "description": "Token for the embedded editor, aka E-Token. Use it for your Embedding.", "example": "985b695b56eaaa571e9bb8e522afd5bd335c32d7" } } }, "DocumentCreateLinkRequest": { "type": "object", "properties": { "recipient": { "type": "string", "description": "Email address of the person who will receive access to the document.", "example": "josh@example.com" }, "lifetime": { "type": "number", "description": "The duration in seconds for which the document link will remain valid. The link will expire and become inaccessible after this time period.\nFor security, we recommend setting the lifetime to less than one year (e.g., `\"lifetime\": 31535999`).\nIf not specified, the default value is 1 hour (3600 seconds).\n", "example": 900, "default": 3600 } }, "required": [ "recipient" ] }, "DocumentCreateLinkResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "QYCPtavst3DqqBK72ZRtbF", "description": "The session ID." }, "expires_at": { "type": "string", "example": "2017-08-29T22:18:44.315Z", "description": "The date and time when the session will expire." } } }, "ListDocumentsByLinkedObjectsResponse": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "PG4YBFvSp9zW8nQf7zfmqb" }, "status": { "type": "string", "example": "document.draft" }, "date_created": { "type": "string", "example": "2023-11-27T14:11:13.198496Z" }, "template_id": { "type": "string", "example": "5bAoesA6MDF97BG6wfhfZE" } } } }, "LinkedObjectChild": { "type": "object", "description": "Child entity reference in a hierarchical chain structure that provides essential metadata and direct access links for lazy-loading the complete object by ID.", "properties": { "id": { "type": "string", "description": "Linked object identifier (link_id).", "example": "abb4d3fc-919b-491e-9e08-775036660c0b" }, "entity_type": { "type": "string", "description": "Entity type.\n\nSee the available entity types:\nhttps://developers.pandadoc.com/reference/link-service#examples-of-the-most-popular-crms\n", "example": "deal" }, "entity_id": { "type": "string", "description": "Entity unique identifier. The system validates if the entity exists.", "example": "9372" } } }, "LinkedObjectCreateResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "Linked object identifier (link_id).", "example": "abb4d3fc-919b-491e-9e08-775036660c0b" }, "provider": { "type": "string", "description": "CRM name (lowercase).\n\nSee the list of available providers:\nhttps://developers.pandadoc.com/reference/link-service#examples-of-the-most-popular-crms\n", "example": "pipedrive" }, "entity_type": { "type": "string", "description": "Entity type.\n\nSee the available entity types:\nhttps://developers.pandadoc.com/reference/link-service#examples-of-the-most-popular-crms\n", "example": "deal" }, "entity_id": { "type": "string", "description": "Entity unique identifier. The system validates if the entity exists.", "example": "9372" }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/LinkedObjectChild" } } } }, "LinkedObjectListResponse": { "type": "object", "properties": { "linked_objects": { "type": "array", "items": { "$ref": "#/components/schemas/LinkedObjectCreateResponse" } } } }, "LinkedObjectCreateRequest": { "type": "object", "properties": { "provider": { "type": "string", "description": "CRM name (lowercase).\n\nSee the list of available providers:\nhttps://developers.pandadoc.com/reference/link-service#examples-of-the-most-popular-crms\n", "example": "pipedrive" }, "entity_type": { "type": "string", "description": "Entity type.\n\nSee the available entity types:\nhttps://developers.pandadoc.com/reference/link-service#examples-of-the-most-popular-crms\n", "example": "deal" }, "entity_id": { "type": "string", "description": "Entity unique identifier. The system validates if the entity exists.", "example": "9372" } }, "required": [ "provider", "entity_type", "entity_id" ] }, "DocumentAttachmentResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "5a2df796-6c65-492b-955c-5709229a89f7" }, "date_created": { "type": "string", "example": "2021-10-27T20:54:18.757496Z" }, "created_by": { "type": "object", "properties": { "id": { "type": "string", "example": "WbAzFZFMgXHnoQREADTdnE" }, "email": { "type": "string", "example": "test_user@mail.com" }, "first_name": { "type": "string", "example": "John" }, "last_name": { "type": "string", "example": "Smith" }, "avatar": { "type": "string", "nullable": true, "example": "https://pd-live-media.s3.amazonaws.com/users/000GTSGwJw000L2KZqc000/avatar.jpg" } } }, "name": { "type": "string", "nullable": true, "example": "AttachedPhoto.jpg" } } }, "DocumentAttachmentMetadata": { "type": "object", "properties": { "name": { "type": "string", "description": "Optional name to set for uploaded file", "example": "Additional agreement" } } }, "DocumentAttachmentRequest": { "allOf": [ { "type": "object", "properties": { "source": { "type": "string", "description": "URL link to the file to be attached to a document", "example": "https://is3-ssl.mzstatic.com/1e7fbd74-d10c-8e3a-63c3-0beb3ea231a5/512x512bb.jpg" } } }, { "$ref": "#/components/schemas/DocumentAttachmentMetadata" } ] }, "DocumentAttachmentCreateFromFile": { "allOf": [ { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "Binary file to be attached to a document" } } }, { "$ref": "#/components/schemas/DocumentAttachmentMetadata" } ] }, "DocumentFieldAnchorPointEnum": { "type": "string", "enum": [ "topleft", "topright", "bottomleft", "bottomright" ], "example": "topleft" }, "DocumentFieldsLayout": { "type": "object", "properties": { "page": { "type": "integer" }, "position": { "type": "object", "properties": { "offset_x": { "type": "number", "minimum": 0 }, "offset_y": { "type": "number", "minimum": 0 }, "anchor_point": { "$ref": "#/components/schemas/DocumentFieldAnchorPointEnum" } }, "required": [ "offset_x", "offset_y", "anchor_point" ] }, "style": { "type": "object", "properties": { "width": { "type": "integer", "minimum": 0 }, "height": { "type": "integer", "minimum": 0 } }, "required": [ "width", "height" ] } }, "required": [ "page", "position", "style" ] }, "DocumentFieldsField": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "nullable": false }, "name": { "type": "string" }, "title": { "type": "string" }, "value": {}, "is_filled": { "type": "boolean", "readOnly": true }, "field_id": { "type": "string" }, "type": { "$ref": "#/components/schemas/FieldTypeEnum" }, "placeholder": { "type": "string" }, "assigned_to": { "type": "object", "properties": { "id": { "type": "string" }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "email": { "type": "string" }, "phone": { "type": "string" }, "recipient_type": { "type": "string" }, "has_completed": { "type": "boolean" }, "signing_order": {}, "delivery_methods": {}, "redirect": {}, "type": { "type": "string" } } }, "layout": { "$ref": "#/components/schemas/DocumentFieldsLayout" }, "section_uuid": { "type": "string", "format": "uuid" } } }, "ListDocumentFieldsResponse": { "type": "object", "properties": { "fields": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentFieldsField" } } } }, "DocumentFieldOptionCreate": { "type": "object", "properties": { "text": { "type": "string", "description": "Option label.", "example": "Yes" }, "position": { "type": "object", "description": "Option position relative to the field. Used by `radio_buttons` fields.", "properties": { "offset_x": { "type": "number", "example": 0 }, "offset_y": { "type": "number", "example": 38 } } } }, "required": [ "text" ] }, "DocumentFieldSettingsCreate": { "type": "object", "description": "Field configuration. The available properties depend on the field `type`.\n", "properties": { "required": { "type": "boolean", "default": true, "example": false, "description": "Whether the recipient must complete the field." }, "placeholder": { "type": "string", "example": "Enter value", "description": "Placeholder text shown in the field. Applies to text, date, dropdown, payment, and collected file fields." }, "masked": { "type": "boolean", "example": false, "description": "Hide the entered value behind a mask. Applies to text and date fields." }, "multiline": { "type": "boolean", "example": false, "description": "Allow the value to span multiple lines. Applies to text fields." }, "show_values": { "type": "boolean", "default": true, "example": false, "description": "Show the option values next to the radio buttons. Applies to `radio_buttons` fields.\nSet to `false` to hide the values.\n" }, "options": { "type": "array", "description": "Selectable options. Applies to `radio_buttons` and `dropdown` fields.\nFor `radio_buttons`, include a `position` for each option to place it on the page.\n", "items": { "$ref": "#/components/schemas/DocumentFieldOptionCreate" } } } }, "DocumentFieldsFieldCreate": { "type": "object", "properties": { "field_id": { "type": "string", "description": "Optional unique identifier." }, "merge_field": { "type": "string", "description": "Use this to dynamically populate this field with data from your CRM or API. Supported field types:\n * text\n * checkbox\n * date\n * dropdown\n * radio_buttons\n" }, "type": { "$ref": "#/components/schemas/FieldTypeEnum" }, "assigned_to": { "type": "string", "description": "Optional uuid of a recipient." }, "settings": { "$ref": "#/components/schemas/DocumentFieldSettingsCreate" }, "layout": { "$ref": "#/components/schemas/DocumentFieldsLayout" } }, "required": [ "type", "layout" ] }, "CreateDocumentFieldsRequest": { "type": "object", "properties": { "fields": { "type": "array", "description": "An array of fields to place on a document.", "items": { "$ref": "#/components/schemas/DocumentFieldsFieldCreate" } } } }, "CreateDocumentFieldsResponse": { "type": "object", "properties": { "fields": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentFieldsField" } } } }, "DocumentFieldAssignmentItem": { "title": "DocumentFieldAssignmentItem", "description": "Specifies a field and the recipient it should be assigned or unassigned to.", "type": "object", "properties": { "field_id": { "type": "string", "format": "uuid", "description": "UUID of the field to assign or unassign.", "example": "d6948f39-612a-4626-a439-ca9e0cbbda7c" }, "assigned_to": { "type": "string", "nullable": true, "description": "UUID of the recipient to assign the field to. Set to `null` to unassign the field from its current recipient.\n", "example": "tf5dGS3Tmu3cj228ao6fnc" } }, "required": [ "field_id", "assigned_to" ] }, "UpdateDocumentFieldsAssignmentRequest": { "title": "UpdateDocumentFieldsAssignmentRequest", "description": "Request body for updating field assignments on a document.", "type": "object", "properties": { "fields": { "type": "array", "description": "An array of field assignment operations. Each item specifies a field and the recipient it should be assigned to.", "minItems": 1, "items": { "$ref": "#/components/schemas/DocumentFieldAssignmentItem" } } }, "required": [ "fields" ] }, "DocumentAuditTrailResponse": { "type": "object", "properties": { "count": { "type": "integer", "description": "Total number of audit trail entries available." }, "results": { "type": "array", "description": "List of audit trail entries returned for the current page.", "items": { "type": "object", "description": "Represents a single audit trail event for a document.", "properties": { "id": { "type": "string", "description": "Unique identifier of the audit trail entry." }, "user": { "type": "object", "description": "The user who triggered the action.", "properties": { "id": { "type": "string", "description": "Unique identifier of the user." }, "email": { "type": "string", "format": "email", "description": "User's email address." } } }, "action": { "type": "integer", "description": "Numeric code representing the type of action performed.\nPossible values:\n\n| Integer Value | String Representation |\n|---------------|---------------------------------------------|\n| 1 | new document |\n| 2 | new revision |\n| 3 | approval request |\n| 4 | approved |\n| 5 | rejected |\n| 6 | sent |\n| 7 | completed by all |\n| 8 | viewed |\n| 9 | completed |\n| 10 | waiting pay |\n| 11 | paid |\n| 12 | forwarded |\n| 13 | expired |\n| 14 | bank account submitted |\n| 15 | bank account verified |\n| 16 | payment submitted |\n| 17 | payment failed |\n| 18 | completed manually |\n| 19 | expired manually |\n| 20 | paid manually |\n| 21 | approval deleted |\n| 22 | approval forced |\n| 23 | reassigned |\n| 24 | recipient edited |\n| 25 | recipient added |\n| 26 | recipient deleted |\n| 27 | declined manually |\n| 28 | approval step skipped |\n| 29 | suggest edits |\n| 43 | declined |\n| 44 | partly paid |\n| 45 | partly paid manually |\n| 47 | recipient verification with kba passed |\n| 48 | recipient verification with id passed |\n| 49 | recipient verification with text sms passed |\n| 50 | recipient verification with passcode passed |\n| 51 | recipient verification with kba failed |\n| 52 | recipient verification with id failed |\n| 53 | recipient verification with text sms failed |\n| 54 | recipient verification with passcode failed |\n| 55 | recipient signed with QES |\n| 56 | QES completed |\n| 57 | recipient QES attempt started |\n| 58 | recipient QES attempt expired |\n| 59 | Optional item in quote selected |\n| 60 | Optional item in quote deselected |\n| 61 | Item quantity in quote changed |\n| 62 | Item quantity in pricing table changed |\n| 63 | Optional item in pricing table selected |\n| 64 | Optional item in pricing table deselected |\n| 65 | Section item in pricing table selected (one of) |\n| 66 | Optional section in quote selected |\n| 67 | Optional section in quote deselected |\n| 68 | Section quantity in quote changed |\n| 69 | recipient verification with email otp passed |\n| 70 | recipient verification with email otp failed |\n" }, "reason": { "type": "string", "nullable": true, "description": "Optional reason or explanation for the action." }, "date_created": { "type": "string", "format": "date-time", "description": "Timestamp when the action was performed (in ISO 8601 format)." }, "ip_address": { "type": "string", "nullable": true, "description": "The IP address from which the action was performed. If a sandbox API key is used, this will be \"hidden\"." } } } } } }, "DocumentLanguageEnum": { "type": "string", "description": "Document language code (e.g., 'en-US', 'fr-FR').", "enum": [ "en-US", "fr-FR", "it-IT", "es-ES", "nl-NL", "de-DE", "pt-BR", "pt-PT", "pl-PL", "sv-SE", "cs-CZ", "da-DK", "el-GR", "hu-HU", "nb-NO", "ro-RO", "bg-BG" ] }, "DocumentSettingsResponse": { "type": "object", "description": "Document settings response.", "properties": { "language": { "$ref": "#/components/schemas/DocumentLanguageEnum" }, "qualified_electronic_signature": { "type": "boolean", "description": "Indicates whether the document requires a Qualified Electronic Signature (QES)\nduring the signing process. If `true`, signers must complete the document using\na third-party qualified electronic signature provider according to supported verification rules.\n" }, "expires_in": { "type": "integer", "format": "int32", "description": "Document expiration in days. If not explicitly set, defaults to the system default expiration.\n" }, "suggest_edits": { "description": "Indicates whether Suggest Edits (redlining) is enabled for the document. When `true`,\nrecipients can suggest edits to the document content during the signing process.\n", "type": "boolean" } }, "required": [ "language", "qualified_electronic_signature", "expires_in", "suggest_edits" ] }, "UpdateDocumentSettingsRequest": { "type": "object", "description": "Document settings update request.", "properties": { "language": { "$ref": "#/components/schemas/DocumentLanguageEnum" }, "qualified_electronic_signature": { "type": "boolean", "description": "Indicates whether the document requires a Qualified Electronic Signature (QES)\nduring the signing process. If `true`, signers must complete the document using\na third-party qualified electronic signature provider according to supported verification rules.\n" }, "expires_in": { "type": "integer", "format": "int32", "minimum": 1, "description": "Document expiration in days. Minimum is 1 day.\n" }, "suggest_edits": { "type": "boolean", "description": "Enables or disables Suggest Edits (redlining) for the document. When `true`,\nrecipients can suggest edits to the document content. Can only be changed while\nthe document is in `draft` status.\n" } } }, "DocumentTransferOwnershipRequest": { "type": "object", "properties": { "membership_id": { "type": "string", "description": "A unique identifier of a workspace member.", "example": "radQBiBkU7MBk59NSgaGfd" }, "silent": { "type": "boolean", "default": false, "description": "If set to `true`, disables the email and in-app notifications about the ownership transfer that are sent to the new document owner." } } }, "DocumentTransferAllOwnershipRequest": { "type": "object", "properties": { "from_membership_id": { "type": "string", "description": "A unique identifier of a workspace member from whom you want to transfer ownership.", "example": "Dqsxp4jNnFcS63tJEgLJGN" }, "to_membership_id": { "type": "string", "description": "A unique identifier of a workspace member to whom you want to transfer ownership.", "example": "radQBiBkU7MBk59NSgaGfd" }, "silent": { "type": "boolean", "default": false, "description": "If set to `true`, disables the email and in-app notifications about the ownership transfer that are sent to the new documents owner." } } }, "AppendCLIDataRequest": { "type": "object", "properties": { "cli": { "type": "object", "description": "Settings to append a CLI to a document, with ability to change some parameters", "properties": { "id": { "type": "string", "example": "QYCPtavst3DqqBK72ZRtbF", "description": "CLI ID to append to the first section." }, "pages": { "type": "array", "description": "The list of the CLI's pages you want to change in a result document", "items": { "type": "object", "properties": { "index": { "type": "integer", "example": 1, "minimum": 0, "description": "The index of the CLI's page you want to change in a result document during appending the CLI" }, "name": { "type": "string", "nullable": true, "example": "Page 1", "description": "The name you want to apply to the CLI's page in a result document during appending the CLI" } } } } }, "required": [ "id" ] } } }, "AppendCLIDataResponse": { "type": "object", "properties": { "cli": { "type": "object", "description": "Settings of the appended to a document CLI. Name property can be different from what you passed if there were collisions", "properties": { "id": { "type": "string", "example": "QYCPtavst3DqqBK72ZRtbF", "description": "CLI ID appended to the first section." }, "pages": { "type": "array", "description": "The list of the CLI's pages you have changed in a result document", "items": { "type": "object", "properties": { "index": { "type": "integer", "example": 1, "minimum": 0, "description": "The index of the CLI's page you have changed in a result document during appending the CLI" }, "name": { "type": "string", "nullable": true, "example": "Page 1", "description": "The real name in the page. It can be different from the one you passed if there were collisions (e.g. you appended the same CLI twice with the same names)" } } } } }, "required": [ "id" ] }, "block_mapping": { "type": "object", "description": "Maps the original names of content blocks from the CLI to their new names in the document. Use the 'new_name' to target blocks in subsequent API calls.", "properties": { "tables": { "type": "array", "description": "Mapping for Table blocks.", "items": { "type": "object", "properties": { "original_name": { "type": "string", "example": "Products_Table", "description": "The name of the block in the source Content Library Item." }, "new_name": { "type": "string", "example": "Products_Table_1", "description": "The new, unique name of the block in the document after appending." } } } }, "pricing_tables": { "type": "array", "description": "Mapping for Pricing Table blocks.", "items": { "type": "object", "properties": { "original_name": { "type": "string", "example": "Services_Quote", "description": "The name of the block in the source Content Library Item." }, "new_name": { "type": "string", "example": "Services_Quote", "description": "The new, unique name of the block in the document after appending." } } } }, "images": { "type": "array", "description": "Mapping for Image blocks.", "items": { "type": "object", "properties": { "original_name": { "type": "string", "example": "Hero_Image", "description": "The name of the block in the source Content Library Item." }, "new_name": { "type": "string", "example": "Hero_Image_2", "description": "The new, unique name of the block in the document after appending." } } } }, "texts": { "type": "array", "description": "Mapping for Text blocks.", "items": { "type": "object", "properties": { "original_name": { "type": "string", "example": "Legal_Disclaimer", "description": "The name of the block in the source Content Library Item." }, "new_name": { "type": "string", "example": "Legal_Disclaimer", "description": "The new, unique name of the block in the document after appending." } } } } } } } }, "RecipientKindEnum": { "type": "string", "enum": [ "contact", "contact_group" ], "default": "contact", "example": "contact" }, "DocumentRecipientCreateRequest": { "type": "object", "properties": { "id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD", "description": "The ID of the recipient to add.\n\n- For `kind: contact` β the contact ID returned by the List Contacts endpoint.\n- For `kind: contact_group` β the contact group ID.\n" }, "kind": { "$ref": "#/components/schemas/RecipientKindEnum" } }, "required": [ "id", "kind" ] }, "DocumentRecipientResponse": { "type": "object", "properties": { "recipient_id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD" } } }, "DocumentRecipientEditRequest": { "title": "Recipient", "type": "object", "properties": { "email": { "type": "string", "nullable": true, "example": "user01@pandadoc.com", "description": "You cannot use the email of another contact when updating a recipient contact." }, "phone": { "type": "string", "nullable": true, "example": "+14842634627" }, "delivery_methods": { "$ref": "#/components/schemas/RecipientDeliveryMethods" }, "first_name": { "type": "string", "nullable": true, "example": "John" }, "last_name": { "type": "string", "nullable": true, "example": "Doe" }, "company": { "type": "string", "nullable": true, "example": "John Doe Inc." }, "title": { "type": "string", "nullable": true, "example": "CTO" }, "state": { "type": "string", "nullable": true, "example": "Texas" }, "street_address": { "type": "string", "nullable": true, "example": "1313 Mockingbird Lane" }, "city": { "type": "string", "nullable": true, "example": "Austin" }, "postal_code": { "type": "string", "nullable": true, "example": "75001" }, "country": { "type": "string", "nullable": true, "example": "United States" }, "verification_settings": { "$ref": "#/components/schemas/RecipientVerificationSettings" }, "redirect": { "$ref": "#/components/schemas/RecipientRedirect" } } }, "DocumentRecipientGroupEditMember": { "title": "Recipient Group Member", "type": "object", "description": "A recipient group member. `email` is required and is the identity used to match members across edits. Phone is not supported for group members.", "required": [ "email" ], "properties": { "email": { "type": "string", "example": "josh@example.com", "description": "The member's email address. Required: it identifies the member when diffing the group's membership." }, "first_name": { "type": "string", "nullable": true, "example": "Josh", "description": "The member's first name." }, "last_name": { "type": "string", "nullable": true, "example": "Ron", "description": "The member's last name." } } }, "DocumentRecipientGroupEditRequest": { "title": "Recipient Group", "type": "object", "minProperties": 1, "description": "Update a recipient group's name and/or its members. Provide at least one\nof `name` or `members`.\n\nWhen `members` is sent, it **replaces** the group's current membership:\nmembers not present in the list are removed from the group, and any new\nmembers are added. On a sent document, newly added members are notified\nand removed members lose access. Members are matched by `email`; for a\nretained member, only the contact fields you include (`first_name`,\n`last_name`) are updated, and omitted fields keep their existing values.\n", "properties": { "name": { "type": "string", "maxLength": 120, "example": "Approvers", "description": "New name for the recipient group." }, "members": { "type": "array", "minItems": 1, "description": "The full list of members the group should contain after the update. Must contain at least one member when provided.", "items": { "$ref": "#/components/schemas/DocumentRecipientGroupEditMember" } } } }, "DocumentSendManualReminderRequest": { "type": "object", "properties": { "reminders": { "type": "array", "description": "A list of reminders to be sent to specified recipients.\nUse this field to specify which recipients should receive a reminder and through which delivery methods.\n\nEach email reminder contains document sender in the From field, \nensuring the recipient always sees consistent sender details and branding.\n", "items": { "type": "object", "properties": { "recipient_id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD", "description": "Unique identifier of the recipient to receive the reminder." }, "delivery_methods": { "$ref": "#/components/schemas/RecipientDeliveryMethods" }, "email_customization": { "type": "object", "description": "Optional customization settings for the reminder email.\nDefines the subject and body text used when sending the reminder via email.\n**This object is processed only if** `delivery_methods.email` is set to `true`.\n", "example": { "subject": "Reminder: Please sign the document \"Service Agreement\"", "message": "This is a friendly reminder to review and sign the document \"Service Agreement\".\nPlease click the link below to access the document.\nThank you,\nThe Tech Solutions Team\n" }, "properties": { "subject": { "type": "string", "nullable": true, "description": "Subject line of the reminder email sent to the recipient.\n", "example": "Reminder: Please sign the document \"Service Agreement\"", "maxLength": 512 }, "message": { "type": "string", "nullable": true, "description": "Custom message body of the reminder email. Can include friendly or contextual\ntext encouraging the recipient to complete the signing process.\n\nSupports **Markdown** syntax for rich text formatting (e.g., bold, italics, links, and line breaks).\n", "example": "**Reminder:** Please review and sign the document *\"Service Agreement\"*.\n\nThank you, \n**The Tech Solutions Team**\n", "maxLength": 5000 } } } } } } } }, "DocumentSendManualReminder200Response": { "type": "object", "properties": { "result": { "type": "array", "items": { "type": "object", "properties": { "recipient_id": { "type": "string", "description": "Unique identifier of the recipient." }, "sms": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "sent", "error" ], "description": "Status of the SMS reminder attempt (sent or error)." }, "sent_at": { "type": "string", "format": "date-time", "nullable": true, "description": "Timestamp of when the reminder was sent, in ISO 8601 format. Present only on success." }, "detail": { "type": "string", "nullable": true, "enum": [ "Can't send reminder to CC recipient", "Can't send reminder to the Recipient who completed their part", "Can't send reminder. Signing order is enabled and this Recipient can't sign the document yet", "Can't send reminder. SMS delivery method is not selected for recipient", "Can't send SMS reminder to recipient group", "Can't send SMS reminder. Confirmation of recipient consent is required. Admin should access workspace settings to certify", "Can't send SMS reminder to the Recipient more than once every 24 hours", "Can't send SMS reminder to the Recipient with no phone number", "Can't send SMS reminder to the Recipient with invalid phone number", "Can't send reminder. The document does not contain a recipient with the specified recipient ID" ], "description": "Detailed explanation of why the reminder could not be sent. Present only on error." } } }, "email": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "sent", "error" ], "description": "Status of the email reminder attempt (sent or error)." }, "sent_at": { "type": "string", "format": "date-time", "nullable": true, "description": "Timestamp of when the reminder was sent, in ISO 8601 format. Present only on success." }, "detail": { "type": "string", "nullable": true, "enum": [ "Can't send reminder to CC recipient", "Can't send reminder to the Recipient who completed their part", "Can't send reminder. Signing order is enabled and this Recipient can't sign the document yet", "Can't send reminder. Email delivery method is not selected for recipient", "Can't send email reminder. Recipient's mailbox is unreachable", "Can't send email reminder to the Recipient with no email", "Can't send email reminder to the Recipient more than once every 24 hours", "Can't send reminder. The document does not contain a recipient with the specified recipient ID", "Canβt send reminder. Email message contains potentially malicious links and could not be processed" ], "description": "Detailed explanation of why the reminder could not be sent. Present only on error." } } }, "email_customization": { "type": "object", "description": "Optional customization settings for the reminder email.\nDefines the subject and body text used when sending the reminder via email.\n", "example": { "subject": "Reminder: Please sign the document \"Service Agreement\"", "message": "This is a friendly reminder to review and sign the document \"Service Agreement\".\nPlease click the link below to access the document.\nThank you,\nThe Tech Solutions Team\n" }, "properties": { "subject": { "type": "string", "nullable": true, "description": "Subject line of the reminder email sent to the recipient.\n", "example": "Reminder: Please sign the document \"Service Agreement\"", "maxLength": 512 }, "message": { "type": "string", "nullable": true, "description": "Custom message body of the reminder email. Can include friendly or contextual\ntext encouraging the recipient to complete the signing process.\n\nSupports **Markdown** syntax for rich text formatting (e.g., bold, italics, links, and line breaks).\n", "example": "**Reminder:** Please review and sign the document *\"Service Agreement\"*.\n\nThank you,\n**The Tech Solutions Team**\n", "maxLength": 5000 } } } } }, "required": [ "recipient_id" ] } } }, "DocumentSendManualReminder409Response": { "type": "object", "properties": { "id": { "type": "string", "example": "mXpGsEBHdSFW97zKXq75hm" }, "status": { "type": "string", "example": "document.uploaded" }, "info_message": { "type": "string", "example": "Can't send reminder. Document is not in SENT or VIEWED statuses" } } }, "UploadSectionListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "example": "ZsiBHUyksDoKActQNGz542" }, "name": { "type": "string", "example": "Sample Section" } } } } } }, "UploadSectionBase": { "type": "object", "properties": { "name": { "type": "string", "description": "Name the document you are creating.", "example": "API Sample Document from PandaDoc Template" }, "recipients": { "type": "array", "description": "The list of recipients you're sending the document to. Every object must contain the `email` parameter. The `role`, `first_name` and `last_name` parameters are optional. If the `role` parameter is passed, a person is assigned all fields matching their corresponding role. If a role was not passed, a person receives a read-only link to view the document. If the `first_name` and `last_name` are not passed, the system does this 1. Creates a new contact, if none exists with the given `email`; or 2. Gets the existing contact with the given `email` that already exists.", "items": { "$ref": "#/components/schemas/CreateDocumentActor" } }, "tokens": { "type": "array", "description": "You may pass a list of tokens/values to pre-fill tokens (variables) used in a template. Name is a token (variable) name in a template. Value is a real value you would like to replace a token (variable) with.\n", "items": { "type": "object", "properties": { "name": { "type": "string", "example": "Favorite.Pet" }, "value": { "type": "string", "example": "Panda" } }, "required": [ "name", "value" ] } }, "tags": { "type": "array", "description": "Mark your document with one or several tags.", "items": { "type": "string" }, "example": [ "created_via_api", "test_document", "created_from_source" ] } }, "required": [ "recipients" ] }, "UploadSectionByTemplateRequest": { "title": "From PandaDoc Template", "allOf": [ { "type": "object", "properties": { "template_uuid": { "type": "string", "description": "The ID of a template you want to use. You can copy it from an in app template url such as `https://app.pandadoc.com/a/#/templates/{ID}/content`. A template ID is also obtained by listing templates.", "example": "hryJY9mqYZHjQCYQuSjRQg" }, "pricing_tables": { "type": "array", "description": "Information to construct or populate a pricing table can be passed when creating a document. All product information must be passed when creating a new document. Products stored in PandaDoc cannot be used to populate table rows at this time. Keep in mind that this is an array, so multiple table objects can be passed to a document. Make sure that \"Automatically add products to this table\" is enabled in the PandaDoc template pricing tables you wish to populate via API. Each pricing table must have a unique name to populate it with data correctly.", "items": { "$ref": "#/components/schemas/PricingTableRequest" } }, "content_placeholders": { "type": "array", "description": "You may replace Content Library Item Placeholders with a few content library items each and pre-fill fields/variables values, pricing table items, and assign recipients to roles from there.", "items": { "type": "object", "properties": { "content_library_items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "9d9k7VtSQ5KCXfsUQv4GxE" }, "fields": { "type": "object" }, "pricing_tables": { "type": "array", "items": { "$ref": "#/components/schemas/PricingTableRequest" } }, "recipients": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string", "nullable": true, "example": "josh@example.com" }, "phone": { "type": "string", "nullable": true, "example": "+14842634627" }, "delivery_methods": { "$ref": "#/components/schemas/RecipientDeliveryMethods" }, "first_name": { "type": "string", "example": "Josh" }, "last_name": { "type": "string", "example": "Ron" }, "role": { "type": "string", "example": "user" }, "signing_order": { "type": "integer", "example": 1, "nullable": true }, "redirect": { "$ref": "#/components/schemas/RecipientRedirect" } } } } }, "required": [ "id" ] } }, "block_id": { "type": "string", "example": "Content Placeholder 1" } }, "required": [ "block_id" ] } }, "fields": { "type": "object", "description": "You can pass a list of fields/values to pre-fill fields used in a template. Note that the Signature field can't be pre-filled. Field values with the same merge id will override field values of the whole document by default, unless you set the merge_field_scope=upload query parameter.", "example": { "Like": { "value": "true" }, "Delivery": { "value": "Same Day Delivery" }, "Date": { "value": "2019-12-31T00:00:00.000Z" } } } }, "required": [ "template_uuid" ] }, { "$ref": "#/components/schemas/UploadSectionBase" } ] }, "UploadSectionRequest": { "allOf": [ { "type": "object", "properties": { "parse_form_fields": { "type": "boolean", "description": "Set this parameter as `true` if you create a document from a PDF with form fields and as `false` if you upload a PDF with field tags." }, "parse_text_tags": { "type": "boolean", "default": true, "description": "Set this parameter as `false` to skip detection and validation of field tags in the uploaded file, keeping them as regular text." }, "fields": { "type": "object", "description": "If you are upload a section from a PDF with field tags, you can pass a list of the fields you'd like to pre-fill in the document. If you are upload a section from a PDF with form fields, list all the fields and provide the `role` parameter so that the fields are assigned to document recipients. You can provide empty value for the field so that it's not pre-filled: \"value\": \"\". Please note Signature field can't be pre-filled.\n", "example": { "Like": { "value": true }, "Delivery": { "value": "Same Day Delivery" }, "Date": { "value": "2019-12-31T00:00:00.000Z" } } } }, "required": [ "recipients" ] }, { "$ref": "#/components/schemas/UploadSectionBase" } ] }, "UploadSectionByFileRequest": { "title": "From File By Url", "allOf": [ { "$ref": "#/components/schemas/UploadSectionRequest" }, { "type": "object", "properties": { "url": { "type": "string", "example": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "description": "Secure (HTTPS) and publicly accessible URL to the PDF document." } }, "required": [ "url" ] } ] }, "UploadSectionStatusEnum": { "type": "string", "enum": [ "document_sections_upload.UPLOADED", "document_sections_upload.PROCESSED", "document_sections_upload.ERROR" ], "example": "document_sections_upload.PROCESSED" }, "UploadSectionResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "cKbJ7uay3cEGtsKuGPwYGX" }, "name": { "type": "string", "example": "API Sample Upload Section from PandaDoc Template" }, "document_uuid": { "type": "string", "example": "cKbJ7uay3cEGtsKuGPwYGX" }, "status": { "$ref": "#/components/schemas/UploadSectionStatusEnum" }, "date_created": { "type": "string", "example": "2021-10-08T11:06:32.337395Z" }, "date_modified": { "type": "string", "example": "2021-10-08T11:06:32.337395Z" }, "date_completed": { "type": "string", "nullable": true, "example": "2021-10-08T11:06:32.337395Z" }, "info_message": { "type": "string", "example": "You need to poll the Document Sections Upload Status method until the status will be changed to document_sections_upload.PROCESSED" } } }, "UploadSectionStatusResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "document_uuid": { "type": "string", "example": "cKbJ7uay3cEGtsKuGPwYGX" }, "status": { "$ref": "#/components/schemas/UploadSectionStatusEnum" }, "name": { "type": "string", "example": "API Sample Section from PandaDoc Template" }, "sections_uuids": { "type": "array", "items": { "type": "string" }, "example": [ "cKbJ7uay3cEGtsKuGPwYGX", "jzjCfYgKQYm2u9ctwN6io4" ] }, "date_created": { "type": "string", "example": "2021-10-08T11:06:32.337395Z" }, "date_modified": { "type": "string", "example": "2021-10-08T11:06:32.337395Z" } } }, "SectionInfoResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "7kqXgjFejB2toXxjcC5jfZ" }, "name": { "type": "string", "example": "API Sample Section from PandaDoc Template" }, "document_uuid": { "type": "string", "example": "cKbJ7uay3cEGtsKuGPwYGX" } } }, "AddDsvNamedItemsRequest": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "description": "List of named items representing structural elements of the document.", "items": { "type": "object", "required": [ "name", "level", "page_name" ], "properties": { "name": { "type": "string", "description": "The display name of the item (e.g., \"Introduction\", \"Chapter 1\")." }, "level": { "type": "integer", "minimum": 0, "description": "Hierarchical level of the item. \nLevel 0 is the highest (top-level), with increasing numbers for nested structures.\n" }, "page_name": { "type": "string", "description": "Internal reference or identifier for the page this item is associated with." } } } } } }, "AddDsvNamedItemsResponse": { "type": "object", "properties": { "results": { "type": "array", "description": "List of DSV named items that were created.", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier for the created DSV item." }, "name": { "type": "string", "description": "The display name of the item." }, "level": { "type": "integer", "minimum": 0, "description": "The hierarchy level of the item." }, "page_name": { "type": "string", "description": "Internal reference name for the page." }, "page_uuid": { "type": "string", "format": "uuid", "description": "UUID of the associated page." } }, "required": [ "id", "name", "level", "page_name", "page_uuid" ] } }, "count": { "type": "integer", "format": "int32", "minimum": 0, "description": "Total number of items created." } }, "required": [ "results", "count" ] }, "ContentLibraryItemListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "a5UgY5J3rGqU7MtW5xwEGk" }, "name": { "type": "string", "example": "Painting Blog Banner" }, "date_created": { "type": "string", "example": "2021-04-12T08:43:51.090022Z" }, "date_modified": { "type": "string", "example": "2021-04-12T08:43:51.190022Z" }, "version": { "type": "string", "example": "2" } } } } } }, "ContentLibraryItemCreateRequest": { "type": "object", "properties": { "editable": { "type": "boolean", "default": false, "description": "Only applicable when creating a content library item from a DOCX file. When `true`, the DOCX is converted into editable content, so the resulting content library item can be edited.\n", "example": true }, "name": { "type": "string", "description": "The name of the Content Library Item.", "example": "CLI name example" } } }, "ContentLibraryItemCreateFromUrlRequest": { "allOf": [ { "type": "object", "properties": { "url": { "type": "string", "example": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "description": "Secure (HTTPS) and publicly accessible URL to the PDF document." } } }, { "$ref": "#/components/schemas/ContentLibraryItemCreateRequest" } ] }, "ContentLibraryResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "iMymdDd9XFD3HyxP5VD67Q" }, "name": { "type": "string", "example": "Sample CLI" }, "date_created": { "type": "string", "format": "date-time", "example": "2021-06-17T15:51:13.226974Z" }, "date_modified": { "type": "string", "format": "date-time", "example": "2021-06-17T15:51:13.326974Z" }, "version": { "type": "string", "example": "2" }, "status": { "type": "string", "enum": [ "cli.UPLOADED", "cli.PROCESSED", "cli.ERROR" ] } } }, "ContentLibraryItemResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "9d9k7VtSQ5KCXfsUQv4GxE" }, "name": { "type": "string", "example": "Sample Pricing Table" }, "date_created": { "type": "string", "example": "2021-08-11T14:12:20.017074Z" }, "date_modified": { "type": "string", "example": "2021-08-11T14:13:38.562290Z" }, "content_date_modified": { "type": "string", "example": "2021-10-23T21:07:04.147345Z" }, "folder_uuid": { "type": "string", "nullable": true }, "created_by": { "type": "object", "properties": { "id": { "type": "string", "example": "b6RGTSGwJw838L2KZqckpD" }, "email": { "type": "string", "example": "jane@example.com" }, "first_name": { "type": "string", "example": "Jane" }, "last_name": { "type": "string", "example": "Roe" }, "avatar": { "type": "string", "nullable": true, "example": "https://pd-live-media.s3.amazonaws.com/users/000GTSGwJw000L2KZqc000/avatar.jpg" }, "membership_id": { "type": "string", "nullable": true } } }, "metadata": { "type": "object" }, "tokens": { "type": "array", "items": { "type": "object" } }, "fields": { "type": "array", "items": { "type": "object" } }, "pricing": { "$ref": "#/components/schemas/PricingResponse" }, "tags": { "type": "array", "items": { "type": "string" } }, "roles": { "type": "array", "items": { "type": "object" } }, "version": { "type": "string", "example": "2" }, "content_placeholders": { "type": "array", "items": { "type": "object" } }, "tables": { "type": "array", "description": "Document tables.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Table name." } } } }, "images": { "type": "array", "items": { "type": "object" } }, "lock": { "type": "object", "nullable": true } } }, "TemplateCreateResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "iMymdDd9XFD3HyxP5VD67Q" }, "name": { "type": "string", "example": "Blank" }, "date_created": { "type": "string", "format": "date-time", "example": "2021-06-17T15:51:13.226974Z" }, "date_modified": { "type": "string", "format": "date-time", "example": "2021-06-17T15:51:13.326974Z" }, "version": { "type": "string", "example": "2" }, "content_date_modified": { "type": "string", "format": "date-time", "example": "2021-06-17T15:51:13.426974Z" } } }, "TemplateListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateCreateResponse" } } } }, "Tokens": { "type": "array", "description": "Create or initialize multiple CUSTOM variables with their values using tokens/values list. Template's predefined variables are read-only. Any attempts to do so will be ignored.", "items": { "type": "object", "properties": { "name": { "type": "string", "example": "Favorite.Pet" }, "value": { "type": "string", "example": "Panda" } }, "required": [ "name", "value" ] }, "example": [ { "name": "Favorite.Pet", "value": "Panda" } ] }, "CreateTemplateRequest": { "type": "object", "properties": { "editable": { "type": "boolean", "default": false, "description": "Only applicable when creating a template from a DOCX file. When `true`, the DOCX is converted into editable content, so the resulting template can be edited.\n", "example": true }, "name": { "type": "string", "description": "The name of the template.", "example": "Template name example" }, "folder_uuid": { "type": "string", "description": "The ID of the folder where the created template should be stored.", "example": "EE8yUNg5HztqVAuH85He8V" }, "owner": { "type": "object", "description": "You can set an owner of a template as an `email` or `membership_id`.", "properties": { "membership_id": { "type": "string", "example": "QMDSzwabfFzTgjW6KijHyu" }, "email": { "type": "string", "format": "email", "example": "john.doe@example.com" } } }, "metadata": { "type": "object", "nullable": true, "description": "You can pass arbitrary data in the key-value format to associate custom information with a template. This information is returned in any API requests for the template details by id.", "example": { "my_favorite_pet": "Panda" } }, "tokens": { "$ref": "#/components/schemas/Tokens" } } }, "CreateTemplateFromUrlRequest": { "allOf": [ { "type": "object", "properties": { "url": { "type": "string", "example": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "description": "Secure (HTTPS) and publicly accessible URL to the PDF document." } } }, { "$ref": "#/components/schemas/CreateTemplateRequest" } ] }, "CreateTemplateWithUploadRequest": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "Binary PDF/DocX/RTF File." }, "data": { "allOf": [ { "$ref": "#/components/schemas/CreateTemplateRequest" }, { "description": "JSON as a multipart/form-data string." } ] } } }, "TemplateDuplicateRequest": { "title": "TemplateDuplicateRequest", "description": "Request payload for duplicating a template within the same workspace.", "type": "object", "properties": { "name": { "type": "string", "description": "Custom name for the duplicated template. When omitted or empty, a name is auto-generated from the source template.", "maxLength": 255, "example": "My Duplicated Template" } } }, "TemplateDuplicateResponse": { "title": "TemplateDuplicateResponse", "description": "Duplicated template details.", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the duplicated template.", "example": "va9aNuj3uX2w9M7uytn967" }, "name": { "type": "string", "description": "Name of the duplicated template.", "example": "Copy of Sample Template" }, "date_created": { "type": "string", "format": "date-time", "description": "Date and time when the duplicated template was created.", "example": "2025-01-15T10:30:00.123456Z" }, "date_modified": { "type": "string", "format": "date-time", "description": "Date and time when the duplicated template was last modified.", "example": "2025-01-15T10:30:00.234567Z" }, "meta": { "type": "object", "description": "Metadata about the duplication operation.", "properties": { "source_template_id": { "type": "string", "description": "Unique identifier of the source template that was duplicated.", "example": "EE8yUNg5HztqVAuH85He8V" } } } } }, "TemplateDetailsResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "SkXXMTBsLB5TLPagPTm5yC" }, "name": { "type": "string", "example": "API Sample Document from PandaDoc Template" }, "folder_uuid": { "type": "string", "example": "b6RGTSGwJw838L2KZqckpD" }, "date_created": { "type": "string", "example": "2021-03-10T07:28:47.440256Z" }, "date_modified": { "type": "string", "example": "2021-03-10T07:28:47.442256Z" }, "content_date_modified": { "type": "string", "example": "2021-10-23T21:07:04.147345Z" }, "created_by": { "type": "object", "properties": { "id": { "type": "string", "example": "b6RGTSGwJw838L2KZqckpD" }, "email": { "type": "string", "example": "jane@example.com" }, "first_name": { "type": "string", "example": "Jane" }, "last_name": { "type": "string", "example": "Roe" }, "avatar": { "type": "string", "nullable": true, "example": "https://pd-live-media.s3.amazonaws.com/users/000GTSGwJw000L2KZqc000/avatar.jpg" } } }, "metadata": { "type": "object", "example": { "public_template": true } }, "tokens": { "type": "array", "description": "Template tokens.", "items": { "$ref": "#/components/schemas/Token" } }, "fields": { "type": "array", "description": "Template fields.", "items": { "$ref": "#/components/schemas/Field" }, "example": [ { "uuid": "74bcb05d-e4cd-458d-bc1d-671c2be8b221", "name": "Favorite.Color", "title": "", "placeholder": "Favorite Color", "value": "", "assigned_to": { "id": "HHaFsYvJCqMvdAtXwGcyL", "name": "user", "preassigned_person": { "email": "test@panddoc.com", "type": "preassigned contact" }, "type": "recipient" }, "merge_field": "Favorite.Color", "field_id": "text1", "type": "text", "is_filled": false } ] }, "pricing": { "$ref": "#/components/schemas/PricingResponse" }, "tags": { "type": "array", "items": { "type": "string" }, "example": [ "tpl-tag-one", "tpl-tag-two" ] }, "roles": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "HHaFsYvJCqMvdAtXwGcyLn" }, "name": { "type": "string", "example": "Sender" }, "signing_order": { "type": "string", "nullable": true }, "preassigned_person": { "type": "object", "nullable": true, "properties": { "email": { "type": "string", "nullable": true, "example": "jane@example.com" }, "first_name": { "type": "string", "nullable": true, "example": "Jane" }, "last_name": { "type": "string", "nullable": true, "example": "Doe" }, "type": { "type": "string", "example": "preassigned contact" }, "placeholder_name": { "type": "string", "nullable": true, "example": "Employee" }, "placeholder_source": { "type": "string", "nullable": true, "example": "bamboohr" }, "members": { "type": "array", "description": "List of contacts in the group. Only present for type \"preassigned contact group\".", "items": { "type": "object", "properties": { "email": { "type": "string", "nullable": true, "example": "alice@example.com" }, "first_name": { "type": "string", "nullable": true, "example": "Alice" }, "last_name": { "type": "string", "nullable": true, "example": "Johnson" } } } } } } } } }, "version": { "type": "string", "example": "2" }, "content_placeholders": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "example": "305eca46-f5be-435b-bbb4-f4dacf3896f5" }, "block_id": { "type": "string", "example": "Content Placeholder" }, "description": { "type": "string", "example": "lick here to add content library items" } } } }, "tables": { "type": "array", "description": "Document tables.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Table name." } } } }, "images": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "nullable": true, "example": "image" }, "block_uuid": { "type": "string", "example": "c0096462-7899-4ae8-b92e-a5643e6a0223" }, "urls": { "type": "array", "items": { "type": "string", "example": "https://api.pandadoc.com/images/Pf7QMxFzcCkMSVXnCZfwcJ/2e6131b32d6949e4a093c36bafccd194" } } } } } } }, "TemplateStatusResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "SkXXMTBsLB5TLPagPTm5yC" }, "name": { "type": "string", "example": "API Sample PandaDoc Template" }, "date_created": { "type": "string", "example": "2021-03-10T07:28:47.440256Z" }, "date_modified": { "type": "string", "example": "2021-03-10T07:28:47.442256Z" }, "version": { "type": "string", "example": "2" }, "status": { "type": "string", "enum": [ "template.PROCESSED", "template.UPLOADED", "template.ERROR" ] } } }, "TemplateRoleUpdateItems": { "title": "TemplateRoleUpdateItems", "type": "array", "description": "Replace the full set of template roles. Items with an existing `id` are updated, items without an `id` are created as new roles, and existing roles whose `id` is not present in the list are deleted.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Existing role identifier. Omit to create a new role.", "example": "BqL3PVsB2tPLfaSqUiQQRf" }, "name": { "type": "string", "maxLength": 255, "description": "Role name. Must be unique within the template.", "example": "Client" }, "signing_order": { "type": "integer", "minimum": 1, "nullable": true, "description": "Signing order for the role. Set on every role as a contiguous sequence starting from `1` (duplicates allowed for parallel groups, e.g. `[1, 1, 2]`), or use `null` on every role for fully parallel signing.", "example": 1 } }, "required": [ "name" ] }, "example": [ { "id": "BqL3PVsB2tPLfaSqUiQQRf", "name": "Client", "signing_order": 1 }, { "name": "Manager", "signing_order": 2 } ] }, "TemplateUpdateRequest": { "type": "object", "properties": { "tokens": { "$ref": "#/components/schemas/Tokens" }, "roles": { "$ref": "#/components/schemas/TemplateRoleUpdateItems" } } }, "TemplateSettingsResponse": { "type": "object", "description": "Template settings response.", "properties": { "language": { "$ref": "#/components/schemas/DocumentLanguageEnum" } }, "required": [ "language" ] }, "UpdateTemplateSettingsRequest": { "type": "object", "description": "Template settings update request.", "properties": { "language": { "$ref": "#/components/schemas/DocumentLanguageEnum" } } }, "TemplateSharesResponse": { "type": "object", "description": "The Workspaces a Template is currently shared with.", "properties": { "workspace_ids": { "type": "array", "description": "Unique identifiers of the Workspaces the Template is currently shared\nwith, reflecting the server state at the time of the response.\n", "items": { "type": "string" }, "example": [ "BhVzRcxH9Z2LgfPPGXFUBa", "2eWSKSvVqmuVCnuUK3iWwD" ] } }, "required": [ "workspace_ids" ] }, "TemplateSharesRequest": { "type": "object", "description": "The desired set of Workspaces a Template should be shared with.", "properties": { "workspace_ids": { "type": "array", "description": "Unique identifiers of the Workspaces the Template should be shared\nwith, representing the complete desired end-state rather than a delta.\nDuplicate ids are deduplicated, and the server replaces the prior\nshares with this set atomically.\n", "items": { "type": "string" }, "example": [ "BhVzRcxH9Z2LgfPPGXFUBa", "2eWSKSvVqmuVCnuUK3iWwD" ] } }, "required": [ "workspace_ids" ] }, "FormListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "d94c1b16-ea92-45e6-bc7e-f6d260bd4d42" }, "name": { "type": "string", "example": "Blank form" }, "date_created": { "type": "string", "example": "2021-10-15T10:41:00.162597Z" }, "date_modified": { "type": "string", "example": "2021-10-15T10:41:15.305831Z" }, "status": { "type": "string", "example": "DRAFT" } } } }, "has_next_page": { "type": "boolean" } } }, "DocumentsFolderListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "example": "Nq8htXxFssmhRxAPSP4SBP" }, "name": { "type": "string", "example": "A new document folder" }, "date_created": { "type": "string", "example": "2021-10-15T10:43:04.103331Z" }, "has_folders": { "type": "boolean" }, "has_items": { "type": "boolean" } } } } } }, "DocumentsFolderCreateRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "Name the folder for the Documents you are creating.", "example": "A new document folder" }, "parent_uuid": { "type": "string", "description": "ID of the parent folder. To create a new folder in the root folder, remove this parameter in the request.", "example": "Nq8htXxFssmhRxAPSP4SBP" } }, "required": [ "name" ] }, "DocumentsFolderCreateResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "Nq8htXxFssmhRxAPSP4SBP" }, "name": { "type": "string", "example": "A new document folder" }, "date_created": { "type": "string", "example": "2021-10-15T10:43:04.103331Z" } } }, "DocumentsFolderRenameRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "Provide a new name for the folder.", "example": "Another document folder'" } }, "required": [ "name" ] }, "DocumentsFolderRenameResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "Nq8htXxFssmhRxAPSP4SBP" }, "name": { "type": "string", "example": "Another document folder" }, "date_created": { "type": "string", "example": "2021-10-15T10:43:04.103331Z" } } }, "TemplatesFolderListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "example": "Nq8htXxFssmhRxAPSP4SBP" }, "name": { "type": "string", "example": "A new template folder" }, "date_created": { "type": "string", "example": "2021-10-15T10:43:04.103331Z" }, "has_folders": { "type": "boolean" }, "has_items": { "type": "boolean" } } } } } }, "TemplatesFolderCreateRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "Name the folder for Templates you are creating.", "example": "A new template folder" }, "parent_uuid": { "type": "string", "description": "ID of the parent folder. To create a new folder in the root folder, remove this parameter in the request.", "example": "Nq8htXxFssmhRxAPSP4SBP" } }, "required": [ "name" ] }, "TemplatesFolderCreateResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "Nq8htXxFssmhRxAPSP4SBP" }, "name": { "type": "string", "example": "A new template folder" }, "date_created": { "type": "string", "example": "2021-10-15T10:43:04.103331Z" } } }, "TemplatesFolderRenameRequest": { "type": "object", "properties": { "name": { "type": "string", "example": "Another template folder", "description": "Provide a new name for the folder." } }, "required": [ "name" ] }, "TemplatesFolderRenameResponse": { "type": "object", "properties": { "uuid": { "type": "string", "example": "Nq8htXxFssmhRxAPSP4SBP" }, "name": { "type": "string", "example": "Another template folder" }, "date_created": { "type": "string", "example": "2021-10-15T10:43:04.103331Z" } } }, "ApiLogStatusEnum": { "type": "integer", "enum": [ 100, 200, 300, 400, 500 ] }, "ApiLogMethodEnum": { "type": "string", "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE" ] }, "ApiLogEnvironmentTypeEnum": { "type": "string", "enum": [ "PRODUCTION", "SANDBOX" ] }, "APILogListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "AXyDkCYFy9B65Q_E9BY3" }, "url": { "type": "string", "example": "/public/v1/documents" }, "status": { "type": "integer", "example": 200 }, "request_time": { "type": "string", "example": "2021-10-15T10:59:22.852" }, "response_time": { "type": "string", "example": "2021-10-15T10:59:23.152" } } } } } }, "APILogDetailsResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "AXyDkCYFy9B65Q_E9BY3" }, "url": { "type": "string", "example": "/public/v1/templates/folders/LKoqFUZZGowLAVo6ECFRyB" }, "method": { "type": "string", "example": "PUT" }, "status": { "type": "integer", "example": 201 }, "request_time": { "type": "string", "example": "2021-10-15T10:46:57.867" }, "response_time": { "type": "string", "example": "2021-10-15T10:46:57.969" }, "response_body": { "type": "object", "example": { "name": "Another templates folder" } }, "query_params_string": { "type": "string", "example": "since=-1d&to=now", "nullable": true }, "query_params_object": { "type": "object", "nullable": true, "example": { "moesif_meta": { "root": { "count": 2 }, "since": { "count": 1 }, "to": { "count": 1 } }, "since": "-1d", "to": "now" } }, "request_body": { "type": "object", "example": { "date_created": "2021-10-15T10:45:41.138489Z", "name": "Another templates folder", "uuid": "LKoqFUZZGowLAVo6ECFRyB" } }, "token_type": { "type": "string", "example": "OAUTH2_TOKEN" }, "application": { "type": "string", "nullable": true, "example": "Application One" }, "key": { "type": "string", "example": "0a5eb48cf42fa507f3dfdd5bdbab7c5bfc20a1b9" }, "request_id": { "type": "string", "example": "94d232f6-fadd-4e2d-a330-702b0b172588" }, "user_email": { "type": "string", "example": "support@pandadoc.com" }, "user_id": { "type": "string", "example": "KKj4kdqfrMeE6bni7pK5gK" } } }, "ContactDetailsResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "BCUWJhZm3k7grUNFAz6cD2", "description": "A unique identifier of the contact" }, "email": { "type": "string", "nullable": true, "example": "user01@pandadoc.com", "description": "An email address of the contact" }, "first_name": { "type": "string", "nullable": true, "example": "John", "description": "Contact's first name" }, "last_name": { "type": "string", "nullable": true, "example": "Doe", "description": "Contact's last name" }, "company": { "type": "string", "nullable": true, "example": "John Doe Inc.", "description": "Contact's company name" }, "job_title": { "type": "string", "nullable": true, "example": "CTO", "description": "Contact's job title" }, "phone": { "type": "string", "nullable": true, "example": "+14842634627", "description": "A phone number" }, "country": { "type": "string", "nullable": true, "example": "USA", "description": "A country name" }, "state": { "type": "string", "nullable": true, "example": "Texas", "description": "A state name" }, "street_address": { "type": "string", "nullable": true, "example": "1313 Mockingbird Lane", "description": "A street address" }, "city": { "type": "string", "nullable": true, "example": "Austin", "description": "A city name" }, "postal_code": { "type": "string", "nullable": true, "example": "75001", "description": "A postal code" } } }, "ContactListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/ContactDetailsResponse" } } } }, "ContactCreateRequest": { "type": "object", "properties": { "email": { "type": "string", "nullable": true, "example": "user01@pandadoc.com", "description": "An email address of the contact" }, "first_name": { "type": "string", "nullable": true, "example": "John", "description": "Contact's first name" }, "last_name": { "type": "string", "nullable": true, "example": "Doe", "description": "Contact's last name" }, "company": { "type": "string", "nullable": true, "example": "John Doe Inc.", "description": "Contact's company name" }, "job_title": { "type": "string", "nullable": true, "example": "CTO", "description": "Contact's job title" }, "phone": { "type": "string", "nullable": true, "example": "+14842634627", "description": "A phone number" }, "country": { "type": "string", "nullable": true, "example": "USA", "description": "A country name" }, "state": { "type": "string", "nullable": true, "example": "Texas", "description": "A state name" }, "street_address": { "type": "string", "nullable": true, "example": "1313 Mockingbird Lane", "description": "A street address" }, "city": { "type": "string", "nullable": true, "example": "Austin", "description": "A city name" }, "postal_code": { "type": "string", "nullable": true, "example": "75001", "description": "A postal code" } } }, "ContactUpdateRequest": { "type": "object", "properties": { "first_name": { "type": "string", "nullable": true, "example": "John" }, "last_name": { "type": "string", "nullable": true, "example": "Doe" }, "company": { "type": "string", "nullable": true, "example": "John Doe Inc." }, "job_title": { "type": "string", "nullable": true, "example": "CTO" }, "phone": { "type": "string", "nullable": true, "example": "+14842634627" }, "state": { "type": "string", "nullable": true, "example": "Texas" }, "street_address": { "type": "string", "nullable": true, "example": "1313 Mockingbird Lane" }, "city": { "type": "string", "nullable": true, "example": "Austin" }, "postal_code": { "type": "string", "nullable": true, "example": "75001" } } }, "MemberDetailsResponse": { "type": "object", "properties": { "user_id": { "type": "string", "description": "A unique identifier of the user in the organization.", "example": "ajnN7eGutJZsRKjQrNuPkh" }, "membership_id": { "type": "string", "description": "A unique identifier of the user in the workspace.", "example": "radQBiBkU7MBk59NSgaGf5" }, "email": { "type": "string", "description": "A user's email address.", "example": "josh@example.com" }, "first_name": { "type": "string", "description": "A user's first name.", "example": "Josh" }, "last_name": { "type": "string", "description": "A user's last name.", "example": "Ron" }, "is_active": { "type": "boolean", "description": "A boolean value that identifies if a member is active in the workspace.", "example": true }, "workspace": { "type": "string", "description": "A unique identifier of the user's current active workspace.", "example": "xc4mBZ7dKErXQtJwwD6Ghg" }, "workspace_name": { "type": "string", "description": "A name of the user's current active workspace.", "example": "PandaDoc" }, "emails_verified": { "type": "boolean", "description": "A boolean value that identifies if the email is verified.", "example": true }, "role": { "type": "string", "description": "A member's role in the workspace.", "example": "Admin" }, "user_license": { "type": "string", "description": "A user license in the organization.", "example": "Full" }, "date_created": { "type": "string", "description": "A date when a member was added to the workspace.", "example": "2020-11-17T08:42:34.237567Z" }, "date_modified": { "type": "string", "description": "Last modified date of a member.", "example": "2021-11-30T10:30:35.071428Z" } } }, "MemberListResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/MemberDetailsResponse" } } } }, "CreateMemberTokenRequest": { "type": "object", "properties": { "lifetime": { "type": "integer", "description": "Token lifetime in seconds.", "default": 3600, "maximum": 86400 } } }, "CreateMemberTokenResponse": { "type": "object", "properties": { "token": { "type": "string", "example": "1fc7b52182405dbf004b9e9ffb555a6ac61419ba" } } }, "WebhookSubscriptionPayloadEnum": { "type": "string", "enum": [ "metadata", "fields", "products", "tokens", "pricing" ], "example": "pricing" }, "WebhookSubscriptionTriggerEnum": { "type": "string", "enum": [ "recipient_completed", "document_updated", "document_deleted", "document_state_changed", "document_creation_failed", "document_completed_pdf_ready", "document_section_added", "quote_updated", "template_created", "template_updated", "template_deleted", "content_library_item_created", "content_library_item_creation_failed", "recipient_qes_verified" ], "example": "document_state_changed" }, "WebhookSubscriptionStatusEnum": { "type": "string", "enum": [ "ACTIVE", "INACTIVE", "DEACTIVATED" ], "example": "ACTIVE" }, "WebhookSubscriptionItemResponse": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "nullable": true, "example": "123e4567-e89b-12d3-a456-426614174000" }, "name": { "type": "string", "nullable": false, "example": "My Subscription" }, "url": { "type": "string", "format": "url", "nullable": false, "example": "https://example.com" }, "active": { "type": "boolean", "nullable": false, "example": true }, "payload": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/WebhookSubscriptionPayloadEnum" } }, "triggers": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/WebhookSubscriptionTriggerEnum" } }, "workspace_id": { "type": "string", "nullable": false, "example": "Nq8htXxFssmhRxAPSP4SBP" }, "shared_key": { "type": "string", "nullable": false, "example": "587c22285F57883db3ee" }, "status": { "$ref": "#/components/schemas/WebhookSubscriptionStatusEnum" } } }, "WebhookSubscriptionListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/WebhookSubscriptionItemResponse" } } } }, "WebhookSubscriptionCreateRequest": { "type": "object", "properties": { "name": { "type": "string", "nullable": false, "description": "Set a name for the Webhooks subscription.", "example": "My Subscription" }, "url": { "type": "string", "format": "url", "nullable": false, "description": "Set the Webhooks subscription URL.", "example": "https://example.com" }, "active": { "type": "boolean", "default": true, "description": "Set the status of the Webhooks subscription." }, "payload": { "type": "array", "nullable": true, "description": "Set a payload structure.", "items": { "$ref": "#/components/schemas/WebhookSubscriptionPayloadEnum" } }, "triggers": { "type": "array", "nullable": true, "description": "Set trigger events for the Webhooks subscription.", "items": { "$ref": "#/components/schemas/WebhookSubscriptionTriggerEnum" } } }, "required": [ "name", "url", "triggers" ] }, "WebhookSubscriptionPatchRequest": { "type": "object", "properties": { "name": { "type": "string", "nullable": false, "description": "Set a new name for the Webhooks subscription.", "example": "My Subscription" }, "url": { "type": "string", "format": "url", "nullable": false, "description": "Set the new Webhooks subscription URL.", "example": "https://example.com" }, "active": { "type": "boolean", "nullable": false, "default": true, "description": "Set the status of the Webhooks subscription.", "example": true }, "payload": { "type": "array", "nullable": true, "description": "Set a new payload structure.", "items": { "$ref": "#/components/schemas/WebhookSubscriptionPayloadEnum" } }, "triggers": { "type": "array", "description": "Set trigger events for the Webhooks subscription.", "nullable": true, "items": { "$ref": "#/components/schemas/WebhookSubscriptionTriggerEnum" } } } }, "WebhookSubscriptionSharedKeyResponse": { "type": "object", "properties": { "shared_key": { "type": "string", "nullable": false, "example": "587c22285F57883db3ee" } } }, "WebhookEventTriggerEnum": { "type": "string", "enum": [ "recipient_completed", "document_updated", "document_deleted", "document_state_changed", "document_creation_failed", "document_completed_pdf_ready", "document_section_added", "quote_updated", "template_created", "template_updated", "template_deleted", "content_library_item_created", "content_library_item_creation_failed", "recipient_qes_verified" ], "example": "document_state_changed" }, "WebhookEventHttpStatusCodeGroupEnum": { "type": "integer", "format": "int32", "enum": [ 100, 200, 300, 400, 500 ], "example": 400 }, "WebhookEventErrorEnum": { "type": "string", "enum": [ "INTERNAL_ERROR", "NOT_VALID_URL", "CONNECT_ERROR", "TIMEOUT_ERROR" ], "example": "TIMEOUT_ERROR", "nullable": true }, "WebhookEventItemResponse": { "type": "object", "properties": { "uuid": { "type": "string", "description": "Unique webhook subscription event identifier", "format": "uuid", "nullable": true, "example": "123e4567-e89b-12d3-a456-426614174000" }, "name": { "type": "string", "description": "Webhook subscription name", "nullable": false, "example": "My Subscription" }, "type": { "$ref": "#/components/schemas/WebhookEventTriggerEnum" }, "http_status_code": { "type": "integer", "format": "int32", "description": "Webhook subscription event response http status code", "nullable": true, "example": 200 }, "error": { "$ref": "#/components/schemas/WebhookEventErrorEnum" }, "delivery_time": { "type": "string", "format": "date-time", "description": "Webhook subscription event delivery time", "nullable": false, "example": "2022-06-20T15:04:59.424730Z" } } }, "WebhookEventPageResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/WebhookEventItemResponse" } } } }, "WebhookEventDetailsResponse": { "type": "object", "properties": { "uuid": { "type": "string", "description": "Unique webhook subscription event identifier", "format": "uuid", "nullable": true, "example": "123e4567-e89b-12d3-a456-426614174000" }, "name": { "type": "string", "description": "Webhook subscription name", "nullable": false, "example": "My Subscription" }, "type": { "$ref": "#/components/schemas/WebhookEventTriggerEnum" }, "http_status_code": { "type": "integer", "format": "int32", "description": "Webhook subscription event response http status code", "nullable": true, "example": 200 }, "error": { "$ref": "#/components/schemas/WebhookEventErrorEnum" }, "delivery_time": { "type": "string", "format": "date-time", "description": "Webhook subscription event delivery time", "nullable": false, "example": "2022-06-20T15:04:59.424730Z" }, "url": { "type": "string", "description": "Webhook subscription event destination url", "nullable": false, "example": "https://example.com" }, "signature": { "type": "string", "description": "Webhook subscription event digital signature", "nullable": false, "example": "587c22285F57883db3ee" }, "request_body": { "type": "string", "description": "Webhook subscription event request body", "nullable": false, "example": "[{\\\"event\\\":\\\"document_state_changed\\\"}]" }, "response_body": { "type": "string", "description": "Webhook subscription response body", "nullable": true, "example": "\\n\\n" }, "response_headers": { "type": "string", "description": "Webhook subscription response headers", "nullable": true, "example": "[cache-control:\\\"max-age=604800\\\"]" }, "event_time": { "type": "string", "format": "date-time", "description": "Webhook subscription event trigger time", "nullable": false, "example": "2022-06-20T15:04:58.424730Z" } } }, "ListNotariesResponse": { "type": "object", "properties": { "results": { "type": "array", "description": "Array of notary objects", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the notary", "example": "nyAnVpY7pZ23FBve8s9xgk" }, "email": { "type": "string", "format": "email", "description": "Email address of the notary" }, "name": { "nullable": true, "type": "string", "description": "Full name of the notary", "example": "John Doe" }, "status": { "type": "string", "description": "Current status of the notary", "enum": [ "INVITED", "UNDER_REVIEW", "ACTIVE", "REJECTED", "INACTIVE" ], "example": "ACTIVE" }, "commission_state": { "nullable": true, "type": "string", "example": "California" } } } }, "count": { "type": "integer", "description": "Total number of notaries matching the criteria", "example": 5 } } }, "ListNotarizationRequestsResponse": { "type": "object", "properties": { "results": { "type": "array", "description": "Array of notarization request objects.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier of the notarization request.", "example": "0b2256a2-5803-4ae9-b1b8-595f48e37173" }, "status": { "type": "string", "description": "Current status of the notarization request.", "example": "SENT", "enum": [ "DRAFT", "SENT", "WAITING_FOR_NOTARY", "ACCEPTED", "LIVE", "COMPLETED", "INCOMPLETE", "CANCELLED" ] }, "name": { "type": "string", "description": "Name of the notarization request.", "example": "Sample Notarization Request" }, "document_id": { "type": "string", "description": "A unique identifier of the document for notarization.", "example": "D3okRfgHRX7NEhavcACReB" }, "date_created": { "type": "string", "format": "date-time", "description": "A date when a notarization request was created.", "example": "2025-01-13T10:25:53.800367Z" }, "date_started": { "type": "string", "format": "date-time", "nullable": true, "description": "A date when a notarization session was started.", "example": "2025-01-13T10:25:53.800367Z" }, "date_completed": { "type": "string", "format": "date-time", "nullable": true, "description": "A date when a notarization session was completed.", "example": "2025-01-13T10:25:53.800367Z" }, "created_by_user_id": { "type": "string", "description": "Public user id of the request creator.", "example": "nyAnVpY7pZ23FBve8s9xgk" } } } }, "count": { "type": "integer", "description": "Total number of notarization requests matching the criteria.", "example": 2 } } }, "CreateNotarizationRequest": { "type": "object", "properties": { "document_id": { "type": "string", "maxLength": 50, "example": "8DstGmLJDBXBKrh3wnqzpe", "description": "ID of the Document for notarization." }, "disable_invitees_notifications": { "type": "boolean", "nullable": true, "default": false, "description": "Disable all notifications for invitees including email with invitation for notarization. This is useful when you are using alternative delivery methods.", "example": true }, "invitation": { "type": "object", "properties": { "message": { "type": "string", "example": "Some message", "description": "Optional message for invitation email." }, "invitees": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "maxLength": 255, "nullable": false, "example": "email@gmail.com" }, "first_name": { "type": "string", "maxLength": 50, "nullable": true, "example": "John" }, "last_name": { "type": "string", "maxLength": 50, "nullable": true, "example": "Smith" } }, "required": [ "email" ] } } } }, "notary": { "type": "object", "description": "Optional notary assignment for in-house notary requests. Used for Bring you own notary use case. Only ACTIVE notaries can be used", "properties": { "id": { "type": "string", "description": "ID of an ACTIVE notary", "example": "nyAnVpY7pZ23FBve8s9xgk" }, "scheduled_at": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp for scheduled notarization", "example": "2025-09-01T11:00:00Z" }, "message": { "type": "string", "description": "Optional custom message for the notary in the invitation email", "example": "Please review the document before the scheduled session" } }, "required": [ "id", "scheduled_at" ] } }, "required": [ "document_id", "invitation" ] }, "CreateNotarizationResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier of the notarization request.", "example": "f75e053a-25e8-40be-8681-fd755ade2a2b" }, "name": { "type": "string", "description": "A name of the notarization request.", "example": "test" }, "status": { "type": "string", "description": "Current status of the notarization request.", "enum": [ "DRAFT", "SENT", "WAITING_FOR_NOTARY", "ACCEPTED", "LIVE", "COMPLETED", "INCOMPLETE", "CANCELLED" ], "example": "SENT" }, "date_created": { "type": "string", "format": "date-time", "description": "A date when a notarization request was created.", "example": "2023-04-14T16:33:06.938984Z" }, "date_accepted": { "type": "string", "format": "date-time", "nullable": true, "description": "A date when a notarization session was accepted by notary.", "example": "2023-04-14T16:33:06.938984Z" }, "created_by": { "type": "object", "properties": { "user_id": { "type": "string", "description": "A unique identifier of the user who created a notarization request.", "example": "nyAnVpY7pZ23FBve8s9xgk" }, "email": { "type": "string", "description": "A user's email address.", "example": "email@gmail.com" }, "first_name": { "type": "string", "description": "A user's first name.", "example": "John" }, "last_name": { "type": "string", "description": "A user's last name.", "example": "Smith" } } }, "invitees": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier of the invitee.", "example": "nyAnVpY7pZ23FBve8s9xgk" }, "email": { "type": "string", "format": "email", "maxLength": 255, "description": "A invitee's email address.", "example": "email@gmail.com" }, "first_name": { "type": "string", "maxLength": 50, "description": "A invitee's first name.", "example": "John" }, "last_name": { "type": "string", "maxLength": 50, "description": "A invitee's last name.", "example": "Smith" }, "notarization_link": { "type": "string", "description": "A secure link to join a notarization request.", "example": "https://notarize.pandadoc.com/session-request#/?requestId=f75e053a-25e8-40be-8681-fd755ade2a2b&inviteeId=2fbb4cbf-d461-4421-94cf-eaadcb9627e0" } } } } } }, "NotarizationRequestDetailsResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier of the notarization request.", "example": "0b2256a2-5803-4ae9-b1b8-595f48e37173" }, "status": { "type": "string", "description": "Current status of the notarization request.", "example": "SENT", "enum": [ "DRAFT", "SENT", "WAITING_FOR_NOTARY", "ACCEPTED", "LIVE", "COMPLETED", "INCOMPLETE", "CANCELLED" ] }, "document_id": { "type": "string", "description": "A unique identifier of the document for notarization.", "example": "D3okRfgHRX7NEhavcACReB" }, "date_created": { "type": "string", "format": "date-time", "description": "A date when a notarization request was created.", "example": "2025-01-13T10:25:53.800367Z" }, "date_started": { "type": "string", "format": "date-time", "nullable": true, "description": "A date when a notarization session was started.", "example": "2025-01-13T10:25:53.800367Z" }, "date_completed": { "type": "string", "format": "date-time", "nullable": true, "description": "A date when a notarization session was completed.", "example": "2025-01-13T10:25:53.800367Z" }, "created_by": { "type": "object", "properties": { "user_id": { "type": "string", "description": "A unique identifier of the user who created a notarization request.", "example": "nyAnVpY7pZ23FBve8s9xgk" }, "email": { "type": "string", "description": "A user's email address.", "example": "josh@example.com" }, "first_name": { "type": "string", "description": "A user's first name.", "example": "Josh" }, "last_name": { "type": "string", "description": "A user's last name.", "example": "Ron" } } }, "invitees": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier of the invitee.", "example": "nyAnVpY7pZ23FBve8s9xgk" }, "email": { "type": "string", "format": "email", "maxLength": 255, "description": "A invitee's email address.", "example": "josh@example.com" }, "first_name": { "type": "string", "maxLength": 50, "nullable": true, "description": "A invitee's first name.", "example": "Josh" }, "last_name": { "type": "string", "maxLength": 50, "nullable": true, "description": "A invitee's last name.", "example": "Ron" } } } }, "signed_documents": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "description": "Secure URL to download signed PDF document." }, "document_name": { "type": "string", "description": "A signer document name.", "example": "example.pdf" }, "size": { "type": "number", "description": "A signer document size in bytes.", "example": 523107 }, "document_type": { "type": "string", "description": "A type of the signed document.", "example": "SINGLE", "enum": [ "COMBINED", "SINGLE" ] } } } }, "recording": { "type": "object", "nullable": true, "properties": { "url": { "type": "string", "description": "Secure URL to download video recording of the notarization session." }, "name": { "type": "string", "description": "Name of the video recording file." }, "size": { "type": "number", "description": "Size of the video recording file in bytes.", "example": 5242880 } } }, "termination_reason": { "type": "string", "nullable": true, "description": "The reason why the notarization session was terminated. Only present when the request status is INCOMPLETE.", "example": "FAILED_IDENTITY_VERIFICATION", "enum": [ "SIGNER_NO_SHOW", "AUDIO_VIDEO_ISSUE", "FAILED_IDENTITY_VERIFICATION", "TEST_SESSION", "OTHER" ] }, "termination_details": { "type": "string", "nullable": true, "description": "Additional details about the termination reason provided by the notary. Only present when the request status is INCOMPLETE.", "example": "The signer failed to verify their identity." } } }, "ProductCatalogTypeEnum": { "type": "string", "default": "regular", "enum": [ "regular", "bundle" ], "example": "regular" }, "ProductCatalogSearchCatalogItemResponse": { "type": "object", "properties": { "billing_cycle": { "type": "integer", "nullable": true }, "billing_type": { "type": "string" }, "bundle_items_count": { "type": "integer" }, "workspace_id": { "type": "string" }, "category_id": { "type": "string", "nullable": true }, "category_name": { "type": "string", "nullable": true }, "created_by": { "type": "string" }, "cost": { "type": "number", "nullable": true }, "currency": { "type": "string" }, "custom_fields": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string", "nullable": true } } } }, "date_created": { "type": "string", "format": "date-time" }, "date_modified": { "type": "string", "format": "date-time", "nullable": true }, "description": { "type": "string", "nullable": true }, "image_src": { "type": "string", "nullable": true }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean", "nullable": true }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "max_tier_value": { "type": "number", "nullable": true }, "min_tier_value": { "type": "number", "nullable": true }, "modified_by": { "type": "string" }, "price": { "type": "number", "nullable": true }, "pricing_method": { "type": "integer" }, "sku": { "type": "string" }, "title": { "type": "string" }, "tiers": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "min_qty": { "type": "number" }, "value": { "type": "number" } } } }, "type": { "$ref": "#/components/schemas/ProductCatalogTypeEnum" }, "uuid": { "type": "string", "format": "uuid" }, "highlights": { "type": "object", "additionalProperties": { "type": "object" }, "nullable": true } } }, "ListCatalogItemsSearchResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ProductCatalogSearchCatalogItemResponse" } }, "has_more_items": { "type": "boolean" }, "total": { "type": "number" } } }, "ProductCatalogItemPriceTier": { "type": "object", "properties": { "value": { "type": "number", "format": "float", "minimum": 0, "example": 9.99 }, "min_qty": { "type": "number", "minimum": 1 } }, "required": [ "value", "min_qty" ], "x-examples": { "example-1": { "price": 9.99, "min_qty": 1 } } }, "ProductCatalogPricingMethodEnum": { "type": "integer", "enum": [ 0, 1, 2 ] }, "ProductCatalogItemPriceConfiguration": { "type": "object", "x-examples": { "example-1": { "currency": "USD", "price": null, "cost": null, "tiers": [ { "value": 9.99, "min_qty": 1 }, { "value": 8.99, "min_qty": 10 }, { "value": 5.99, "min_qty": 100 } ], "pricing_method": 1 }, "example-2": { "currency": "USD", "price": 59.99, "cost": 60, "tiers": null, "pricing_method": 0 } }, "properties": { "currency": { "type": "string", "example": "USD" }, "price": { "type": "number", "example": 59.99, "nullable": true }, "cost": { "type": "number", "nullable": true }, "billing_type": { "type": "string" }, "billing_cycle": { "type": "string", "nullable": true }, "tiers": { "type": "array", "description": "only for volume based pricing", "nullable": true, "items": { "$ref": "#/components/schemas/ProductCatalogItemPriceTier" } }, "pricing_method": { "$ref": "#/components/schemas/ProductCatalogPricingMethodEnum" } }, "required": [ "currency", "pricing_method" ] }, "ProductCatalogCatalogCustomBundleItem": { "type": "object", "properties": { "uuid": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "image_url": { "type": "string", "nullable": true }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean", "nullable": true }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "price_configuration": { "$ref": "#/components/schemas/ProductCatalogItemPriceConfiguration" } } }, "ProductCatalogItemRequest": { "type": "object", "properties": { "title": { "type": "string" }, "category_id": { "type": "string", "nullable": true }, "sku": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "type": { "$ref": "#/components/schemas/ProductCatalogTypeEnum" }, "bundle_items": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "quantity": { "type": "integer" }, "item_or_uuid": { "oneOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ProductCatalogCatalogCustomBundleItem" } ] } } } }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean" }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "custom_fields": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } } } }, "price_configuration": { "$ref": "#/components/schemas/ProductCatalogItemPriceConfiguration" } }, "required": [ "title", "price_configuration" ] }, "ProductCatalogCatalogItemInBundle": { "type": "object", "properties": { "uuid": { "type": "string" }, "title": { "type": "string" }, "sku": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "image_url": { "type": "string", "nullable": true }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean", "nullable": true }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "price": { "type": "number", "nullable": true }, "currency": { "type": "string" } } }, "ProductCatalogCustomCatalogItemInBundle": { "type": "object", "properties": { "uuid": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "image_url": { "type": "string", "nullable": true }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean", "nullable": true }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "price": { "type": "number", "nullable": true }, "currency": { "type": "string" } } }, "ProductCatalogItemResponse": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "title": { "type": "string" }, "date_created": { "type": "string", "format": "date-time" }, "date_modified": { "type": "string", "format": "date-time", "nullable": true }, "created_by": { "type": "string" }, "modified_by": { "type": "string", "nullable": true }, "category_id": { "type": "string", "format": "uuid", "nullable": true }, "category_name": { "type": "string", "nullable": true }, "type": { "$ref": "#/components/schemas/ProductCatalogTypeEnum" }, "bundle_items": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "quantity": { "type": "integer" }, "item": { "anyOf": [ { "$ref": "#/components/schemas/ProductCatalogCatalogItemInBundle" }, { "$ref": "#/components/schemas/ProductCatalogCustomCatalogItemInBundle" } ] } } } }, "default_price_configuration": { "allOf": [ { "$ref": "#/components/schemas/ProductCatalogItemPriceConfiguration" }, { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "pricing_method": { "type": "number" } } } ] }, "variants": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "sku": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "custom_fields": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string", "nullable": true } } } }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean", "nullable": true }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "date_created": { "type": "string", "format": "date-time" }, "date_modified": { "type": "string", "format": "date-time", "nullable": true }, "status": { "type": "number" }, "price_configurations": { "type": "array", "items": { "allOf": [ { "$ref": "#/components/schemas/ProductCatalogItemPriceConfiguration" }, { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "pricing_method": { "type": "number" } } } ] } } } } } } }, "ProductCatalogCustomBundleItemNoId": { "type": "object", "properties": { "title": { "type": "string" }, "sku": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "image_url": { "type": "string", "nullable": true }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean", "nullable": true }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "price": { "type": "number", "nullable": true }, "currency": { "type": "string" } } }, "ProductCatalogItemPatchRequest": { "type": "object", "properties": { "title": { "type": "string" }, "category_id": { "type": "string", "nullable": true }, "type": { "$ref": "#/components/schemas/ProductCatalogTypeEnum" }, "bundle_items": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "quantity": { "type": "integer" }, "item_or_uuid": { "oneOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ProductCatalogCustomBundleItemNoId" } ] } } } }, "product_variant": { "type": "object", "properties": { "sku": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "images": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "is_main": { "type": "boolean" }, "order": { "type": "number" }, "src": { "type": "string" } } } }, "custom_fields": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string", "nullable": true } } } }, "price_configuration": { "$ref": "#/components/schemas/ProductCatalogItemPriceConfiguration" } } } } }, "ApprovalWorkflowUser": { "title": "ApprovalWorkflowUser", "type": "object", "description": "A workspace member who can act as an approver.", "properties": { "id": { "type": "string", "description": "User id. Not a workspace membership id. Do not send this value as\n`membership_id` on PUT. Use `email` to identify this user on a\nlater PUT.\n", "example": "FA5QAu8UGA3oVDQZuPL75B" }, "email": { "type": "string", "format": "email", "description": "User email address.", "example": "manager@example.com" }, "first_name": { "type": "string", "description": "User first name.", "example": "Alex" }, "last_name": { "type": "string", "description": "User last name.", "example": "Manager" }, "avatar": { "type": "string", "description": "URL of the user avatar. Omitted when the user has no avatar.", "example": "https://avatars.pandadoc-static.com/users/FA5QAu8UGA3oVDQZuPL75B/avatar.jpeg" } }, "required": [ "id", "email" ] }, "ApprovalWorkflowAssigneeResponse": { "title": "ApprovalWorkflowAssigneeResponse", "type": "object", "description": "An approver for a stage in the approval order, or a member of an\napproval group.\n\n`user` is present for a workspace member and omitted when\n`is_document_sender` is `true`.\n", "properties": { "id": { "type": "string", "description": "Approver id within the Submit for approval configuration. Not a\nmembership id and not a user id. Do not send this value as\n`membership_id` on PUT.\n", "example": "mGVeQe7xy9AN9eCg8VSdNm" }, "user": { "$ref": "#/components/schemas/ApprovalWorkflowUser" }, "is_document_sender": { "type": "boolean", "description": "Whether this approver is the document sender.", "example": false }, "is_selected": { "type": "boolean", "description": "Whether this approver is pre-selected. Present only for members\nof a selectable group.\n", "example": true } }, "required": [ "id", "is_document_sender" ] }, "ApprovalWorkflowGroupType": { "title": "ApprovalWorkflowGroupType", "type": "string", "description": "Present only for Allow user to select approver. When `type` is\nomitted, every approver in the group is notified and any one of them\ncan approve. The group is still required.\n\n- `selectable` β Allow user to select approver. The sender chooses\n one approver from the group in Submit for approval.\n", "enum": [ "selectable" ], "example": "selectable" }, "ApprovalWorkflowGroupResponse": { "title": "ApprovalWorkflowGroupResponse", "type": "object", "description": "An approval group for one stage in the approval order.", "properties": { "id": { "type": "string", "description": "Unique identifier of the group.", "example": "XUF5pcWnMqYAfDX7mAD9kD" }, "name": { "type": "string", "description": "Display name of the group.", "example": "Finance" }, "type": { "$ref": "#/components/schemas/ApprovalWorkflowGroupType" }, "assignees": { "type": "array", "description": "Approvers in the group. A stored group can have no approvers. PUT\nrequires at least one approver in every group.\n", "items": { "$ref": "#/components/schemas/ApprovalWorkflowAssigneeResponse" } } }, "required": [ "id", "name", "assignees" ] }, "ApprovalWorkflowStepResponse": { "title": "ApprovalWorkflowStepResponse", "type": "object", "description": "One stage in the approval order of the Submit for approval\nconfiguration.\n\nA stage with one approver includes `assignee` and omits `group`. A\nstage with an approval group includes `group` and omits `assignee`.\n", "properties": { "id": { "type": "string", "description": "Unique identifier of this stage in the approval order.", "example": "fq9CX7PWgpe7eao6ujEdYG" }, "assignee": { "$ref": "#/components/schemas/ApprovalWorkflowAssigneeResponse" }, "group": { "$ref": "#/components/schemas/ApprovalWorkflowGroupResponse" } }, "required": [ "id" ] }, "ApprovalWorkflowResponse": { "title": "ApprovalWorkflowResponse", "type": "object", "description": "The Submit for approval configuration stored on the template.", "properties": { "is_enabled": { "type": "boolean", "description": "Stored enabled flag. A configuration that is enabled but contains\nonly groups with no approvers is still returned as enabled. An\nunconfigured template returns `false`.\n" }, "is_ordering_enabled": { "type": "boolean", "description": "Approval order. When `true`, the document goes to one approver\nat a time. When `false`, every approver is requested together.\nOn an unconfigured template this is `false` (empty state).\nCreating a configuration with the field omitted defaults to\n`true`.\n" }, "is_editing_allowed": { "type": "boolean", "description": "Whether the approvers and approval groups can be edited on documents created from this template." }, "has_conditional_approvals": { "type": "boolean", "description": "`true` when an approver or an approval group has conditional\napprovals. Those conditional approvals are not included in\n`steps`. PUT on this path is rejected until they are removed\nin PandaDoc.\n" }, "steps": { "type": "array", "description": "Stored stages in the approval order, including groups with no\napprovers. `[]` means the template has no Submit for approval\nconfiguration (`is_enabled` is `false`).\n\nPUT requires at least one approver in every group, so an empty\ngroup from this response must be replaced or dropped before writing.\n", "items": { "$ref": "#/components/schemas/ApprovalWorkflowStepResponse" } } }, "required": [ "is_enabled", "is_ordering_enabled", "is_editing_allowed", "has_conditional_approvals", "steps" ] }, "ApprovalWorkflowAssigneeSelected": { "title": "ApprovalWorkflowAssigneeSelected", "type": "boolean", "default": false, "description": "Pre-selects this approver in a selectable group. Ignored when the\napprover is the whole stage in the approval order, or on a member of\nany other group type. Responses include this field only for\nselectable groups.\n", "example": false }, "ApprovalWorkflowAssigneeRequest": { "title": "ApprovalWorkflowAssigneeRequest", "description": "Identify an approver as a workspace member (`membership_id` or `email`)\nor as the document sender (`is_document_sender: true`).\n\nProvide exactly one of `membership_id` or `email`, unless\n`is_document_sender` is `true`. When `is_document_sender` is `true`,\nomit both identifiers. Resolve `membership_id` with\nList Members.\n", "oneOf": [ { "title": "ApprovalWorkflowAssigneeByMembership", "type": "object", "additionalProperties": false, "required": [ "membership_id" ], "properties": { "membership_id": { "type": "string", "description": "Workspace membership id from\nList Members.\nNot the approver `id` or `user.id` from GET. Copying either of\nthose into this field is rejected. To replace a workflow from\na GET response, send `user.email`, or send a membership id\nfrom List Members.\n", "example": "QMDSzwabfFzTgjW6KijHyu" }, "is_document_sender": { "type": "boolean", "enum": [ false ], "default": false, "description": "Omit or set to `false` when identifying a workspace member." }, "is_selected": { "$ref": "#/components/schemas/ApprovalWorkflowAssigneeSelected" } } }, { "title": "ApprovalWorkflowAssigneeByEmail", "type": "object", "additionalProperties": false, "required": [ "email" ], "properties": { "email": { "type": "string", "format": "email", "description": "Email of a workspace member.", "example": "manager@example.com" }, "is_document_sender": { "type": "boolean", "enum": [ false ], "default": false, "description": "Omit or set to `false` when identifying a workspace member." }, "is_selected": { "$ref": "#/components/schemas/ApprovalWorkflowAssigneeSelected" } } }, { "title": "ApprovalWorkflowAssigneeDocumentSender", "type": "object", "additionalProperties": false, "required": [ "is_document_sender" ], "properties": { "is_document_sender": { "type": "boolean", "enum": [ true ], "description": "When `true`, the document sender is the approver for this\nstage. Do not set `membership_id` or `email`.\n" }, "is_selected": { "$ref": "#/components/schemas/ApprovalWorkflowAssigneeSelected" } } } ] }, "ApprovalWorkflowGroupRequest": { "title": "ApprovalWorkflowGroupRequest", "type": "object", "additionalProperties": false, "description": "An approval group for one stage in the approval order. Omit `type`\nunless the group is Allow user to select approver (`selectable`).\nWhen `type` is omitted, every approver in the group is notified and\nany one approval finishes the stage. The group is still required.\n", "properties": { "name": { "type": "string", "maxLength": 128, "description": "Display name of the group.", "example": "Finance" }, "type": { "$ref": "#/components/schemas/ApprovalWorkflowGroupType" }, "assignees": { "type": "array", "minItems": 1, "maxItems": 50, "description": "Approvers in the group. Must contain unique users. At least one\napprover, at most 50 per group, and at most 100 approvers across\nthe whole configuration. A group with no approvers can appear on\nGET and is rejected here. The property name stays `assignees` so\nit matches Send Document.\n", "items": { "$ref": "#/components/schemas/ApprovalWorkflowAssigneeRequest" } } }, "required": [ "name", "assignees" ] }, "ApprovalWorkflowStepRequest": { "title": "ApprovalWorkflowStepRequest", "type": "object", "additionalProperties": false, "description": "One stage in the approval order of the Submit for approval\nconfiguration. Provide either `assignee` (one approver) or `group`\n(an approval group), not both. The property name stays `assignee` so\nit matches `assignees` on Send Document.\n", "properties": { "assignee": { "$ref": "#/components/schemas/ApprovalWorkflowAssigneeRequest" }, "group": { "$ref": "#/components/schemas/ApprovalWorkflowGroupRequest" } }, "oneOf": [ { "required": [ "assignee" ] }, { "required": [ "group" ] } ] }, "ApprovalWorkflowRequest": { "title": "ApprovalWorkflowRequest", "type": "object", "additionalProperties": false, "description": "Full replacement of the Submit for approval configuration on a\ntemplate. A template has at most one configuration; this request\ncreates it or replaces the existing one. `steps` lists the stages in\nthe approval order and must contain at least one stage. The property\nname stays `steps` so it matches `selected_approvers.steps` on Send\nDocument.\n", "properties": { "is_enabled": { "type": "boolean", "default": true, "description": "Whether Submit for approval runs when a document is created from\nthis template. Set to `false` to turn it off while keeping its\nstages. Defaults to `true` when omitted.\n" }, "is_ordering_enabled": { "type": "boolean", "default": true, "description": "Approval order. When `true`, the document goes to one approver\nat a time. When `false`, every approver is requested together.\nDefaults to `true` when omitted.\n\nAn unconfigured GET returns `false`. That empty state is not this\ndefault. Set the field, or omit it, when building a create request\nfrom that GET body.\n" }, "is_editing_allowed": { "type": "boolean", "default": false, "description": "Whether the approvers and approval groups can be edited on documents created from this template." }, "steps": { "type": "array", "minItems": 1, "maxItems": 50, "description": "Stages in the approval order. Each stage is one approver or one\napproval group. At least 1 stage, at most 50, and at most 100\napprovers across all stages. A stage with one approver counts as\none approver. A stage with an approval group counts as each\napprover in that group.\n\nAn empty array is rejected. To turn Submit for approval off\nwithout dropping its stages, set `is_enabled` to `false`.\n", "items": { "$ref": "#/components/schemas/ApprovalWorkflowStepRequest" } } }, "required": [ "steps" ] }, "PrivacySettings": { "title": "PrivacySettings", "description": "Effective privacy settings for a workspace. Compliance flags and\non-premises training are read-only on this API.\n", "type": "object", "properties": { "workspace_id": { "type": "string", "readOnly": true, "pattern": "^[A-Za-z0-9]{22}$", "maxLength": 22, "minLength": 22, "description": "Workspace id.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, "hipaa_compliance_enabled": { "type": "boolean", "readOnly": true, "description": "Whether HIPAA compliance is enabled for the workspace. When\n`true`, every AI setting is forced off.\n", "example": false }, "cfr11_compliance_enabled": { "type": "boolean", "readOnly": true, "description": "Whether 21 CFR Part 11 compliance is enabled for the workspace.", "example": false }, "ai_features_enabled": { "type": "boolean", "description": "Master switch for AI features in the workspace.", "example": true }, "ai_on_premises_processing_enabled": { "type": "boolean", "description": "Whether PandaDoc-operated AI processing is enabled.", "example": true }, "ai_cloud_third_party_enabled": { "type": "boolean", "description": "Whether third-party cloud AI processing is enabled.", "example": true }, "ai_on_premises_training_enabled": { "type": "boolean", "readOnly": true, "description": "Whether PandaDoc-operated model training is enabled.", "example": true }, "ai_third_party_training_enabled": { "type": "boolean", "description": "Whether third-party model training is enabled.", "example": false } }, "required": [ "workspace_id", "hipaa_compliance_enabled", "cfr11_compliance_enabled", "ai_features_enabled", "ai_on_premises_processing_enabled", "ai_cloud_third_party_enabled", "ai_on_premises_training_enabled", "ai_third_party_training_enabled" ] }, "UpdatePrivacySettings": { "title": "UpdatePrivacySettings", "description": "Fields that can be changed on a workspace privacy settings PATCH.\nOmit any field you want to leave unchanged.\n", "type": "object", "properties": { "ai_features_enabled": { "type": "boolean", "description": "Master switch for AI features. Setting it to `false` also disables\n`ai_on_premises_processing_enabled`, `ai_cloud_third_party_enabled`,\n`ai_on_premises_training_enabled`, and\n`ai_third_party_training_enabled`.\n", "example": false }, "ai_on_premises_processing_enabled": { "type": "boolean", "description": "Whether PandaDoc-operated AI processing is enabled.", "example": true }, "ai_cloud_third_party_enabled": { "type": "boolean", "description": "Whether third-party cloud AI processing is enabled.", "example": true }, "ai_third_party_training_enabled": { "type": "boolean", "description": "Whether third-party model training is enabled.", "example": false } } }, "QuoteUpdateRequestDiscountTypeEnum": { "type": "string", "enum": [ "percent", "flat" ] }, "QuoteUpdateRequestSummary": { "type": "object", "description": "Summary settings containing adjustments (discounts, fees, taxes) and custom columns that apply to the entire quote / section total.", "properties": { "custom_columns": { "type": "object", "nullable": false, "additionalProperties": { "type": "string" } }, "discounts": { "type": "object", "nullable": false, "description": "Summary level discounts.", "additionalProperties": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/QuoteUpdateRequestDiscountTypeEnum" }, "value": { "type": "number", "nullable": false } } } }, "fees": { "type": "object", "nullable": false, "description": "Summary level fees.", "additionalProperties": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/QuoteUpdateRequestDiscountTypeEnum" }, "value": { "type": "number", "nullable": false } } } }, "taxes": { "type": "object", "nullable": false, "description": "Summary level taxes.", "additionalProperties": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/QuoteUpdateRequestDiscountTypeEnum" }, "value": { "type": "number", "nullable": false } } } } } }, "QuoteUpdateRequestSettingsSelectionTypeTypeEnum": { "type": "string", "enum": [ "custom", "single", "multiple" ] }, "QuoteUpdateRequest": { "type": "object", "properties": { "currency": { "type": "string", "description": "Currency code (ISO 4217)", "example": "USD" }, "summary": { "$ref": "#/components/schemas/QuoteUpdateRequestSummary" }, "sections": { "type": "array", "description": "Quote sections - this property overrides existing sections in the specified order. If you want to change only one section, you must still pass other sections IDs. Otherwise these sections will be removed.", "items": { "type": "object", "title": "UpdateIntegrationQuoteSection", "properties": { "id": { "type": "string", "format": "uuid", "nullable": false, "description": "Section ID to update. Invalid (or missing) ID causes creating a new section." }, "name": { "type": "string", "nullable": true, "description": "Name of the quotes section. If you create a section without providing a value, it will have the default value.", "default": "Section name" }, "summary": { "$ref": "#/components/schemas/QuoteUpdateRequestSummary" }, "columns": { "type": "array", "nullable": true, "description": "Omitted, null, or an empty list leaves the columns unchanged. A non-empty list replaces the full set, so columns not in the list are removed.", "items": { "type": "object", "title": "UpdateIntegrationQuoteSectionColumn", "properties": { "header": { "type": "string", "nullable": true }, "name": { "type": "string" }, "merge_name": { "type": "string", "nullable": true }, "hidden": { "type": "boolean" }, "formula_expression": { "type": "string", "nullable": true } }, "required": [ "name", "hidden" ] } }, "items": { "type": "array", "description": "Section items - this property overrides the existing items in the order specified. If you want to change only one item, you must still pass other items IDs. Otherwise these items will be removed.", "items": { "type": "object", "title": "UpdateIntegrationQuoteSectionItem", "properties": { "id": { "type": "string", "format": "uuid", "nullable": false, "description": "Item ID to update. Invalid (or missing) ID causes creating a new item." }, "sku": { "type": "string", "nullable": false, "description": "Product SKU. If you create an item without providing a value, it will have the default value.", "default": "#" }, "name": { "type": "string", "nullable": false, "description": "Item name. If you create an item without providing a value, it will have the default value.", "default": "" }, "description": { "type": "string", "nullable": false, "description": "Item description. If you create an item without providing a value, it will have the default value.", "default": "" }, "qty": { "type": "integer", "nullable": false, "description": "Item QTY. If you create an item without providing a value, it will have the default value.", "default": 1, "example": 10 }, "price": { "type": "number", "nullable": false, "description": "Item price. If you create an item without providing a value, it will have the default value. If `price_settings` is passed, this value may change after the quote is updated.", "default": 0, "example": 42.42 }, "price_settings": { "type": "object", "nullable": false, "description": "Price settings if the price is not flat rate. If it is null, the price is flat rate.", "properties": { "base_value": { "type": "number", "description": "Base value for volume discount pricing. If set, tiers are treated like percentage of discount on this value. If not set, tiers are treated like a flat value discount of chosen currency.", "nullable": true }, "tiers": { "type": "array", "items": { "type": "object", "properties": { "min_qty": { "type": "integer", "nullable": false }, "value": { "type": "number", "nullable": false } }, "required": [ "value", "min_qty" ] }, "minLength": 1 } }, "required": [ "base_value", "tiers" ] }, "cost": { "type": "number", "nullable": false, "description": "Item cost. If you create an item without providing a value, it will have the default value.", "example": 42.42 }, "billing_frequency": { "$ref": "#/components/schemas/QuoteUpdateRequestBillingFrequencyEnum" }, "contract_term": { "type": "integer", "nullable": true, "description": "Contract term. Measured in units set in the `billing_frequency` parameter." }, "reference_id": { "type": "string", "nullable": true, "description": "Use this field to pass an id that references this item in external systems." }, "options": { "type": "object", "nullable": false, "description": "Denotes whether an item is selected, optional, and has editable quantity.", "properties": { "selected": { "type": "boolean", "nullable": false, "default": true }, "qty_editable": { "type": "boolean", "nullable": false, "default": true }, "optional": { "type": "boolean", "nullable": false, "default": false } }, "required": [ "qty_editable" ] }, "custom_columns": { "type": "object", "nullable": false, "additionalProperties": { "type": "string" } }, "external_columns": { "type": "object", "nullable": false, "additionalProperties": { "type": "string" } }, "text_columns": { "type": "object", "nullable": false, "additionalProperties": { "type": "string" } }, "discounts": { "type": "object", "nullable": false, "description": "Item discounts.", "additionalProperties": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/QuoteUpdateRequestDiscountTypeEnum" }, "value": { "type": "number", "nullable": false } } } }, "taxes": { "type": "object", "nullable": false, "description": "Item taxes.", "additionalProperties": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/QuoteUpdateRequestDiscountTypeEnum" }, "value": { "type": "number", "nullable": false } } } }, "fees": { "type": "object", "nullable": false, "description": "Item fees.", "additionalProperties": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/QuoteUpdateRequestDiscountTypeEnum" }, "value": { "type": "number", "nullable": false } } } }, "multipliers": { "description": "Item multipliers.", "type": "object", "nullable": false, "additionalProperties": { "type": "number" } } } }, "nullable": false }, "settings": { "type": "object", "description": "Section settings. Denotes whether a section is optional or selected, and selection type inside the section - single, multiple, or custom.", "properties": { "optional": { "type": "boolean", "nullable": false }, "selected": { "type": "boolean", "nullable": false }, "selection_type": { "$ref": "#/components/schemas/QuoteUpdateRequestSettingsSelectionTypeTypeEnum" } }, "nullable": false } } } }, "settings": { "type": "object", "description": "Quote settings. Denotes whether a quote is optional or selected, and selection type inside the section - single, multiple, or custom.", "properties": { "selection_type": { "$ref": "#/components/schemas/QuoteUpdateRequestSettingsSelectionTypeTypeEnum" } }, "nullable": false } } }, "QuotesBatchUpdateItem": { "description": "A single quote update within the batch. Same shape as the single-quote update request (`QuoteUpdateRequest`), with an added `id` identifying which quote this entry applies to.\n", "allOf": [ { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "format": "uuid", "description": "ID of the quote to update.", "example": "99aaa4f9-3250-4f5b-a953-6d7bfc5d8c9e" } } }, { "$ref": "#/components/schemas/QuoteUpdateRequest" } ] }, "QuotesBatchUpdateRequest": { "type": "object", "description": "Batch request to update multiple quotes within a single document.\n", "required": [ "quotes" ], "properties": { "quotes": { "type": "array", "description": "Quotes to update within this document. Each entry is processed independently β see the operation description for the partial-success model. Duplicate `id` values are not allowed.\n", "minItems": 1, "maxItems": 25, "items": { "$ref": "#/components/schemas/QuotesBatchUpdateItem" } } } }, "QuotesBatchUpdateResultStatus": { "type": "string", "description": "Per-quote outcome discriminator. `ok`, `validation_error`, `not_in_document`, and `not_found` mirror the single-quote update endpoint's `200`/`400`/`403`/`404` responses respectively β see each variant's own schema. Concurrent updates of the same quote do not conflict: the last write wins. `internal_error` is exclusive to the batch endpoint and indicates an isolated server-side failure for that quote only; the request as a whole succeeded and other quotes in the same batch are unaffected.\n", "enum": [ "ok", "validation_error", "not_in_document", "not_found", "internal_error" ] }, "QuotesBatchUpdateResultBase": { "type": "object", "description": "Fields common to every per-quote outcome in a batch quotes update response.\n", "required": [ "id", "status" ], "properties": { "id": { "type": "string", "format": "uuid", "description": "The quote this result corresponds to. Echoed from the request.", "example": "99aaa4f9-3250-4f5b-a953-6d7bfc5d8c9e" }, "status": { "$ref": "#/components/schemas/QuotesBatchUpdateResultStatus" } } }, "QuotesBatchUpdateResultOk": { "description": "Per-quote success entry, mirroring the single-quote endpoint's `200` response. `quote` carries the same payload as that endpoint's body.\n", "allOf": [ { "$ref": "#/components/schemas/QuotesBatchUpdateResultBase" }, { "type": "object", "required": [ "quote" ], "properties": { "status": { "type": "string", "enum": [ "ok" ], "example": "ok" }, "quote": { "$ref": "#/components/schemas/QuoteResponse" } } } ] }, "QuotesBatchUpdateResultValidationError": { "description": "Mirrors the single-quote endpoint's `400` response. The update payload for this quote failed validation (e.g. both `price` and `price_settings` set on the same item).\n", "allOf": [ { "$ref": "#/components/schemas/QuotesBatchUpdateResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "validation_error" ], "example": "validation_error" }, "description": { "type": "string", "description": "Human-readable explanation of the validation failure.", "example": "You can't specify both `price` and `price_settings`." } } } ] }, "QuotesBatchUpdateResultNotInDocument": { "description": "Mirrors the single-quote endpoint's `403` response. This quote is not part of the specified document's content.\n", "allOf": [ { "$ref": "#/components/schemas/QuotesBatchUpdateResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "not_in_document" ], "example": "not_in_document" }, "description": { "type": "string", "example": "Quote is not part of this document." } } } ] }, "QuotesBatchUpdateResultNotFound": { "description": "Mirrors the single-quote endpoint's `404` response. This quote does not exist.\n", "allOf": [ { "$ref": "#/components/schemas/QuotesBatchUpdateResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "not_found" ], "example": "not_found" }, "description": { "type": "string", "example": "Quote not found." } } } ] }, "QuotesBatchUpdateResultInternalError": { "description": "An isolated server-side failure occurred for this quote. The request as a whole succeeded; retrying the affected quote (on its own or in a smaller batch) is safe.\n", "allOf": [ { "$ref": "#/components/schemas/QuotesBatchUpdateResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "internal_error" ], "example": "internal_error" }, "description": { "type": "string", "example": "An internal error occurred while updating this quote. Try again." } } } ] }, "QuotesBatchUpdateResult": { "description": "Outcome for a single quote in a batch update request. The concrete shape is selected by the `status` discriminator.\n", "oneOf": [ { "$ref": "#/components/schemas/QuotesBatchUpdateResultOk" }, { "$ref": "#/components/schemas/QuotesBatchUpdateResultValidationError" }, { "$ref": "#/components/schemas/QuotesBatchUpdateResultNotInDocument" }, { "$ref": "#/components/schemas/QuotesBatchUpdateResultNotFound" }, { "$ref": "#/components/schemas/QuotesBatchUpdateResultInternalError" } ], "discriminator": { "propertyName": "status", "mapping": { "ok": "#/components/schemas/QuotesBatchUpdateResultOk", "validation_error": "#/components/schemas/QuotesBatchUpdateResultValidationError", "not_in_document": "#/components/schemas/QuotesBatchUpdateResultNotInDocument", "not_found": "#/components/schemas/QuotesBatchUpdateResultNotFound", "internal_error": "#/components/schemas/QuotesBatchUpdateResultInternalError" } } }, "QuotesBatchUpdateResponse": { "type": "object", "description": "Per-quote update outcomes. Always returned with HTTP 200 when the request itself is valid; per-quote failures are reported in `results[].status`.\n", "required": [ "count", "results" ], "properties": { "count": { "type": "integer", "description": "Number of entries in `results`. Equal to the number of `quotes` in the request.\n", "minimum": 0, "example": 2 }, "results": { "type": "array", "description": "Per-quote outcomes, in the same order as the request's `quotes`. Each entry's shape depends on its `status`.\n", "items": { "$ref": "#/components/schemas/QuotesBatchUpdateResult" } } } }, "ListWorkspacesResponse": { "type": "object", "properties": { "total": { "type": "integer", "description": "A number of workspaces" }, "results": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier of a workspace in a organization", "example": "ajnN7eGutJZsRKjQrNuPkh" }, "name": { "type": "string", "description": "A workspace's name", "example": "Test workspace" }, "date_created": { "type": "string", "description": "A workspace's date creation", "example": "2021-06-17T15:51:13.226974Z" }, "owner": { "type": "string", "format": "email", "description": "A owner's email address", "example": "josh@example.com" } } } } } }, "CreateWorkspaceRequest": { "type": "object", "properties": { "name": { "type": "string", "example": "A new workspace", "description": "A name for the new workspace." }, "icon_url": { "type": "string", "format": "uri", "example": "https://cdn.example.com/icons/workspace.png", "description": "Workspace icon will be displayed in the application and is not visible to your customers.\nIcon should have square proportions.\nSupported formats:\nJPEG, PNG, GIF, WEBP. Max size: 5 MB\n" }, "settings": { "type": "object", "description": "Optional workspace settings applied at creation time.", "properties": { "allow_join_by_domain": { "type": "boolean", "default": true, "description": "Allow anyone at your domain to join this workspace upon request." }, "allow_request_access": { "type": "boolean", "default": true, "description": "Allow anyone to request access to documents." } } } }, "required": [ "name" ] }, "CreateWorkspaceResponse": { "type": "object", "properties": { "id": { "type": "string", "example": "iMymdDd9XFD3HyxP5VD67Q" }, "name": { "type": "string", "example": "A new workspace" } } }, "ListUsersResponse": { "type": "object", "properties": { "total": { "type": "integer", "description": "A number of users" }, "results": { "type": "array", "items": { "type": "object", "properties": { "user_id": { "type": "string", "description": "A unique identifier of the user in the organization.", "example": "ajnN7eGutJZsRKjQrNuPkh" }, "email": { "type": "string", "description": "A user's email address.", "example": "josh@example.com" }, "first_name": { "type": "string", "description": "A user's first name.", "example": "Josh" }, "last_name": { "type": "string", "description": "A user's last name.", "example": "Doe" }, "phone_number": { "type": "string", "description": "A user's phone number.", "example": "+14842634627" }, "license": { "type": "string", "description": "A user's license in the organization.", "example": "Full" }, "is_organization_owner": { "type": "boolean", "description": "Whether the user is the owner of the organization." }, "workspaces": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "description": "A user's role in workspace.", "example": "Admin" }, "workspace_id": { "type": "string", "description": "A user's workspace.", "example": "fERpqZdFaF9dHVAeVxPFaV" }, "membership_id": { "type": "string", "description": "A user's membership id in workspace.", "example": "vibuun3DXG8QDDLfXm27Ne" } } } } } } } } }, "WorkspaceMemberRoleEnum": { "type": "string", "description": "Role for a member.", "enum": [ "Admin", "Manager", "Member", "Collaborator" ], "example": "Member" }, "UserLicenseEnum": { "type": "string", "enum": [ "Full", "eSign", "Read-only", "Creator", "Guest" ] }, "CreateUserRequest": { "type": "object", "properties": { "user": { "type": "object", "description": "User info", "properties": { "email": { "type": "string", "example": "email@example.com" }, "first_name": { "type": "string", "example": "John" }, "last_name": { "type": "string", "example": "Doe" }, "phone_number": { "type": "string", "example": "+14842634627" } } }, "workspaces": { "type": "array", "description": "Info for adding a user to a workspace(s)", "items": { "type": "object", "properties": { "workspace_id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD" }, "role": { "$ref": "#/components/schemas/WorkspaceMemberRoleEnum" } } } }, "license": { "$ref": "#/components/schemas/UserLicenseEnum" } }, "required": [ "user", "license", "workspaces" ] }, "CreateUserResponse": { "type": "object", "properties": { "user_id": { "type": "string", "example": "iMymdDd9XFD3HyxP5VD67Q" }, "workspaces": { "type": "array", "items": { "type": "object", "properties": { "workspace_id": { "type": "string" }, "role": { "type": "string" }, "member_id": { "type": "string" } } } } } }, "GetUserResponse": { "type": "object", "properties": { "user_id": { "type": "string", "description": "A unique identifier of the user in the organization.", "example": "ajnN7eGutJZsRKjQrNuPkh" }, "email": { "type": "string", "description": "A user's email address.", "example": "josh@example.com" }, "first_name": { "type": "string", "description": "A user's first name.", "example": "Josh" }, "last_name": { "type": "string", "description": "A user's last name.", "example": "Doe" }, "phone_number": { "type": "string", "description": "A user's phone number.", "example": "+14842634627" }, "license": { "type": "string", "description": "A user's license in the organization.", "example": "Full" }, "is_organization_owner": { "type": "boolean", "description": "Whether the user is the owner of the organization." }, "workspaces": { "type": "array", "items": { "type": "object", "properties": { "role": { "$ref": "#/components/schemas/WorkspaceMemberRoleEnum" }, "workspace_id": { "type": "string", "description": "A user's workspace.", "example": "fERpqZdFaF9dHVAeVxPFaV" }, "membership_id": { "type": "string", "description": "A user's membership id in workspace.", "example": "vibuun3DXG8QDDLfXm27Ne" } } } } } }, "AddMemberRequest": { "type": "object", "properties": { "user_id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD", "description": "User id." }, "role": { "$ref": "#/components/schemas/WorkspaceMemberRoleEnum" } }, "required": [ "user_id", "role" ] }, "AddMemberResponse": { "type": "object", "properties": { "member_id": { "type": "string", "example": "iMymdDd9XFD3HyxP5VD67Q" }, "workspace_id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD" }, "role": { "$ref": "#/components/schemas/WorkspaceMemberRoleEnum" }, "email": { "type": "string", "example": "email@example.com" }, "first_name": { "type": "string", "example": "John" }, "last_name": { "type": "string", "example": "Doe" } } }, "UpdateMemberRoleRequest": { "type": "object", "properties": { "role": { "$ref": "#/components/schemas/WorkspaceMemberRoleEnum" } }, "required": [ "role" ] }, "UpdateMemberRoleResponse": { "type": "object", "properties": { "member_id": { "type": "string", "example": "iMymdDd9XFD3HyxP5VD67Q" }, "workspace_id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD" }, "role": { "$ref": "#/components/schemas/WorkspaceMemberRoleEnum" }, "email": { "type": "string", "example": "email@example.com" } } }, "ApiKeyTypeEnum": { "type": "string", "enum": [ "production", "sandbox" ], "description": "A type of API key.", "default": "sandbox", "example": "sandbox" }, "CreateApiKeyRequest": { "type": "object", "properties": { "user_id": { "type": "string", "example": "2eWSKSvVqmuVCnuUK3iWwD" }, "type": { "$ref": "#/components/schemas/ApiKeyTypeEnum" } }, "required": [ "type" ] }, "CreateApiKeyResponse": { "type": "object", "properties": { "user_id": { "type": "string", "description": "A unique identifier of the user.", "example": "ajnN7eGutJZsRKjQrNuPkh" }, "type": { "$ref": "#/components/schemas/ApiKeyTypeEnum" }, "workspace_id": { "type": "string", "description": "A unique identifier of the workspace.", "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, "key": { "type": "string", "description": "A New Public API key.", "example": "5606722917eaf631cce6256e64b4afbd30d0e5fa" } } }, "ListSmsOptOutChangelogResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "phone_number": { "type": "string", "example": "+1234567890" }, "status": { "type": "string", "enum": [ "opt-in", "opt-out" ], "example": "opt-out" }, "opt_out_changed": { "type": "string", "format": "date-time", "example": "2025-01-28T12:00:00Z" } } } } } }, "DocumentDocxExportStatusEnum": { "description": "| **Status** | **Description** |\n|---------------|---------------------------------------------------------------------------------------------|\n| **created** | The export task has been created, but the process has not started. |\n| **processing**| The export task is in progress. |\n| **done** | The export task is completed, and the response contains URLs for downloading the documents. |\n| **error** | An error occurred during the execution of the export task. |\n", "type": "string", "enum": [ "created", "processing", "done", "error" ], "example": "created" }, "DocumentDocxExport": { "type": "object", "properties": { "id": { "description": "Export task id.", "type": "string", "example": "nPh2PDhFdDqAES9k64h9qX" }, "document_id": { "description": "Document id.", "type": "string", "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, "status": { "$ref": "#/components/schemas/DocumentDocxExportStatusEnum" } }, "required": [ "id", "document_id", "status" ] }, "DocxExportTaskResponse": { "allOf": [ { "$ref": "#/components/schemas/DocumentDocxExport" }, { "type": "object", "properties": { "docx_items": { "description": "DOCX files result URLs with their names.", "type": "array", "items": { "type": "object", "description": "List of download links and section item titles of the document.", "properties": { "section_title": { "description": "Document Section Item title.", "type": "string", "nullable": true, "example": "Section 1" }, "url": { "description": "The url for downloading the DOCX file.", "type": "string", "format": "url", "nullable": true } } } } } } ] }, "DocumentSummaryType": { "type": "string", "description": "Document summary granularity (query parameter `type`).\n", "enum": [ "detailed", "short", "headline", "xshort" ] }, "DocumentSummaryResponse": { "type": "object", "description": "Summary response envelope. The `type` field echoes the `type` query parameter.\n", "required": [ "type", "summary" ], "properties": { "type": { "$ref": "#/components/schemas/DocumentSummaryType" }, "summary": { "type": "string", "description": "Summary text for the requested summary type.\n" } } }, "Error": { "type": "object", "description": "Error detail with a machine-readable code and a human-readable message.\n", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "description": "Machine-readable error code.\n" }, "message": { "type": "string", "description": "Human-readable description of the error.\n" } } }, "ErrorResponse": { "type": "object", "description": "Standard error envelope following existing API conventions.\n", "required": [ "error" ], "properties": { "error": { "$ref": "#/components/schemas/Error" } } }, "DocumentContentFormat": { "type": "string", "description": "Format selector for document content (query `format` and JSON `format` on 200).\n", "enum": [ "plaintext", "markdown" ] }, "DocumentContentResponse": { "type": "object", "description": "Content response envelope. The `format` field echoes the `format` query parameter.\n", "required": [ "format", "content" ], "properties": { "format": { "$ref": "#/components/schemas/DocumentContentFormat" }, "content": { "type": "string", "description": "Document body as plain text (`format=plaintext`) or markdown (`format=markdown`).\n" } } }, "AIMetadataFieldType": { "type": "string", "description": "Data type of an AI metadata field.", "enum": [ "single_line", "multi_line", "date", "number", "dropdown", "checkbox", "url", "duration", "percent", "currency", "signature_info" ] }, "AIMetadataAcceptanceStatus": { "type": "string", "description": "Acceptance state of an AI metadata value.", "enum": [ "pending", "accepted" ] }, "AIMetadataValue": { "type": "object", "description": "Extracted value for an AI metadata field on a document.", "required": [ "value", "acceptance_status" ], "properties": { "value": { "type": "string", "description": "The extracted or entered value, serialised as a string. Interpretation depends on the parent field's `field_type` (e.g. an ISO-8601 date for `date`, an amount with currency for `currency`, a boolean literal for `checkbox`).\n", "example": "Acme Corp" }, "acceptance_status": { "$ref": "#/components/schemas/AIMetadataAcceptanceStatus" } } }, "AIMetadataField": { "type": "object", "description": "AI metadata field definition paired with its extracted value, if any.", "required": [ "id", "key", "field_type", "settings" ], "properties": { "id": { "type": "string", "maxLength": 22, "description": "Stable identifier of the metadata field definition. The same identifier appears for the same field across every document.\n", "example": "3SBkwkGBbMn6btzHTiKkGn" }, "key": { "type": "string", "description": "Human-readable field key (e.g. `Contract value`, `Counterparty name`, `Expiration date`).\n", "example": "Counterparty name" }, "field_type": { "$ref": "#/components/schemas/AIMetadataFieldType" }, "settings": { "type": "object", "description": "Field-type-specific configuration (e.g. available `period` units for `duration`, allowed `items` for `dropdown`). Empty object when the field has no configuration.\n", "additionalProperties": true }, "value": { "type": "object", "nullable": true, "description": "Extracted value for this field on the document. `null` when no value has been extracted (in practice, fields without values are not returned in `results`).\n", "allOf": [ { "$ref": "#/components/schemas/AIMetadataValue" } ] } } }, "AIMetadataResponse": { "type": "object", "description": "Page of AI metadata fields populated for a document.", "required": [ "count", "results" ], "properties": { "count": { "type": "integer", "description": "Total number of AI metadata fields available for the document across all pages. The current page slice is in `results` and is bounded by `limit` and `offset`.\n", "minimum": 0, "example": 12 }, "results": { "type": "array", "description": "AI metadata fields populated for the document. Each entry combines the field definition with the extracted value. Empty when nothing has been extracted yet.\n", "items": { "$ref": "#/components/schemas/AIMetadataField" } } } }, "AIExtractionPendingResponse": { "type": "object", "description": "Returned with HTTP 202 while AI extraction is still in progress.", "required": [ "code", "description" ], "properties": { "code": { "type": "string", "enum": [ "extraction_pending" ], "example": "extraction_pending" }, "description": { "type": "string", "description": "Human-readable explanation of the current extraction state.", "example": "Result is being generated. You can try later." } } }, "AIExtractionNotStartedResponse": { "type": "object", "description": "Returned with HTTP 409 when AI extraction has not been triggered for this document β typically because the document is not yet completed.\n", "required": [ "code", "description" ], "properties": { "code": { "type": "string", "enum": [ "not_started" ], "example": "not_started" }, "description": { "type": "string", "description": "Human-readable explanation of why extraction has not started.", "example": "Likely, your document is not yet completed." } } }, "BatchAIMetadataRequest": { "type": "object", "description": "Batch request for AI metadata across multiple documents.\n", "required": [ "document_ids" ], "properties": { "document_ids": { "type": "array", "description": "Documents to fetch AI metadata for. Each entry must be a valid document identifier. Duplicates are not allowed.\n", "minItems": 1, "maxItems": 40, "uniqueItems": true, "items": { "type": "string", "maxLength": 22, "example": "BhVzRcxH9Z2LgfPPGXFUBa" } }, "field_keys": { "type": "array", "description": "Optional filter β restrict the response, for each document, to this subset of AI metadata fields, matched by `key` (the human-readable field name returned as `results[].key` by the single-document endpoint, e.g. `Contract value`). Comparison is exact and case-sensitive. Unknown keys are silently ignored. When omitted, every populated field is returned per document.\n", "minItems": 1, "maxItems": 150, "uniqueItems": true, "items": { "type": "string", "pattern": "^[^\u0000]+$", "example": "Contract value" } } } }, "BatchAIMetadataResultStatus": { "type": "string", "description": "Per-document outcome discriminator. Mirrors the HTTP semantics of the single-document endpoint β see the operation description for the mapping. `internal_error` is exclusive to the batch endpoint and indicates an isolated server-side failure for that document only; the request as a whole succeeded and other documents in the same batch are unaffected.\n", "enum": [ "ok", "extraction_pending", "extraction_failed", "extraction_not_started", "not_found", "access_denied", "internal_error" ] }, "BatchAIMetadataResultBase": { "type": "object", "description": "Fields common to every per-document outcome in a batch AI metadata response.\n", "required": [ "document_id", "status" ], "properties": { "document_id": { "type": "string", "maxLength": 22, "description": "The document this result corresponds to. Echoed from the request.\n", "example": "BhVzRcxH9Z2LgfPPGXFUBa" }, "status": { "$ref": "#/components/schemas/BatchAIMetadataResultStatus" } } }, "BatchAIMetadataResultOk": { "description": "Per-document success entry. `ai_metadata` carries the same payload as the single-document endpoint's 200 body.\n", "allOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultBase" }, { "type": "object", "required": [ "ai_metadata" ], "properties": { "status": { "type": "string", "enum": [ "ok" ], "example": "ok" }, "ai_metadata": { "$ref": "#/components/schemas/AIMetadataResponse" } } } ] }, "BatchAIMetadataResultExtractionPending": { "description": "AI extraction is still in progress for this document. Retry after `retry_after` seconds.\n", "allOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultBase" }, { "type": "object", "required": [ "retry_after", "description" ], "properties": { "status": { "type": "string", "enum": [ "extraction_pending" ], "example": "extraction_pending" }, "retry_after": { "type": "integer", "description": "Number of seconds the client should wait before retrying this document.\n", "minimum": 1, "example": 5 }, "description": { "type": "string", "description": "Human-readable explanation of the current extraction state.", "example": "Result is being generated. You can try later." } } } ] }, "BatchAIMetadataResultExtractionFailed": { "description": "AI extraction has terminally failed for this document. Retrying will not help β contact support.\n", "allOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "extraction_failed" ], "example": "extraction_failed" }, "description": { "type": "string", "description": "Human-readable explanation of the failure.", "example": "We couldn't extract data for this document. Contact support." } } } ] }, "BatchAIMetadataResultExtractionNotStarted": { "description": "AI extraction has not been triggered for this document β typically because the document is not yet completed.\n", "allOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "extraction_not_started" ], "example": "extraction_not_started" }, "description": { "type": "string", "description": "Human-readable explanation of why extraction has not started.", "example": "Likely, the document is not yet completed." } } } ] }, "BatchAIMetadataResultNotFound": { "description": "The document does not exist or has been deleted.\n", "allOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "not_found" ], "example": "not_found" }, "description": { "type": "string", "description": "Human-readable explanation.", "example": "Document not found." } } } ] }, "BatchAIMetadataResultAccessDenied": { "description": "The caller is authenticated but cannot access this specific document.\n", "allOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "access_denied" ], "example": "access_denied" }, "description": { "type": "string", "description": "Human-readable explanation.", "example": "Access to this document is denied." } } } ] }, "BatchAIMetadataResultInternalError": { "description": "An isolated server-side failure occurred for this document. The request as a whole succeeded; retrying the affected document (on its own or in a smaller batch) is safe.\n", "allOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultBase" }, { "type": "object", "required": [ "description" ], "properties": { "status": { "type": "string", "enum": [ "internal_error" ], "example": "internal_error" }, "description": { "type": "string", "description": "Human-readable explanation.", "example": "An internal error occurred while fetching AI metadata for this document. Try again." } } } ] }, "BatchAIMetadataResult": { "type": "object", "description": "Outcome for a single document in a batch AI metadata request. The concrete shape is selected by the `status` discriminator.\n", "oneOf": [ { "$ref": "#/components/schemas/BatchAIMetadataResultOk" }, { "$ref": "#/components/schemas/BatchAIMetadataResultExtractionPending" }, { "$ref": "#/components/schemas/BatchAIMetadataResultExtractionFailed" }, { "$ref": "#/components/schemas/BatchAIMetadataResultExtractionNotStarted" }, { "$ref": "#/components/schemas/BatchAIMetadataResultNotFound" }, { "$ref": "#/components/schemas/BatchAIMetadataResultAccessDenied" }, { "$ref": "#/components/schemas/BatchAIMetadataResultInternalError" } ], "discriminator": { "propertyName": "status", "mapping": { "ok": "#/components/schemas/BatchAIMetadataResultOk", "extraction_pending": "#/components/schemas/BatchAIMetadataResultExtractionPending", "extraction_failed": "#/components/schemas/BatchAIMetadataResultExtractionFailed", "extraction_not_started": "#/components/schemas/BatchAIMetadataResultExtractionNotStarted", "not_found": "#/components/schemas/BatchAIMetadataResultNotFound", "access_denied": "#/components/schemas/BatchAIMetadataResultAccessDenied", "internal_error": "#/components/schemas/BatchAIMetadataResultInternalError" } } }, "BatchAIMetadataResponse": { "type": "object", "description": "Per-document AI metadata results. Always returned with HTTP 200 when the request is valid; per-document failures are reported in `results[].status`.\n", "required": [ "count", "results" ], "properties": { "count": { "type": "integer", "description": "Number of entries in `results`. Equal to the number of `document_ids` in the request.\n", "minimum": 0, "example": 6 }, "results": { "type": "array", "description": "Per-document outcomes, in the same order as the request's `document_ids`. Each entry's shape depends on its `status`.\n", "items": { "$ref": "#/components/schemas/BatchAIMetadataResult" } } } }, "DocumentSearchResultOwner": { "title": "DocumentSearchResultOwner", "description": "Owner of the document", "type": "object", "required": [ "id", "name", "email" ], "properties": { "id": { "type": "string", "description": "Owner's user identifier.", "example": "9FeAY2NB3C9qDdtQRb4tTL" }, "name": { "type": "string", "description": "Owner's display name (first and last name combined).", "example": "Jane Doe" }, "email": { "type": "string", "description": "Owner's email address.", "example": "jane.doe@example.com" }, "avatar": { "type": "string", "nullable": true, "description": "Owner's avatar URL. null if not set.", "example": null } } }, "DocumentSearchResultFolder": { "title": "DocumentSearchResultFolder", "description": "Folder containing the document", "type": "object", "required": [ "id", "name" ], "properties": { "id": { "type": "string", "description": "Folder identifier.", "example": "Uf7yNEwkELsazbKHDMDAeV" }, "name": { "type": "string", "description": "Folder display name.", "example": "Active Contracts" } } }, "HighLevelDocumentTypeEnum": { "type": "string", "enum": [ "regular document", "template", "content library item" ], "example": "regular document" }, "DocumentSearchParentTemplate": { "title": "DocumentSearchParentTemplate", "description": "Template from which the document was created. null when the document was not created from a template.", "type": "object", "nullable": true, "properties": { "id": { "type": "string", "nullable": true, "description": "Template identifier.", "example": "7Xfnrk7dTaWJ78wNUrg3rr" }, "name": { "type": "string", "nullable": true, "description": "Template name.", "example": "Master Sales Contract" } } }, "DocumentSearchPathEntry": { "title": "DocumentSearchPathEntry", "description": "A folder in the document's path from root to its location.", "type": "object", "properties": { "id": { "type": "string", "nullable": true, "description": "Folder identifier.", "example": "Uf7yNEwkELsazbKHDMDAeV" }, "name": { "type": "string", "nullable": true, "description": "Folder name.", "example": "Sales" } } }, "DocumentSearchRecipient": { "title": "DocumentSearchRecipient", "description": "A document recipient (signer, viewer, approver, etc.).", "type": "object", "properties": { "id": { "type": "string", "nullable": true, "description": "Recipient identifier.", "example": "bQySP2djjJkNKxyVbQ8pu4" }, "email": { "type": "string", "nullable": true, "description": "Email address.", "example": "john.smith@example.com" }, "phone": { "type": "string", "nullable": true, "description": "Phone number.", "example": "+1-555-0123" }, "first_name": { "type": "string", "nullable": true, "description": "First name.", "example": "John" }, "last_name": { "type": "string", "nullable": true, "description": "Last name.", "example": "Smith" }, "role_name": { "type": "string", "nullable": true, "description": "User-defined role label assigned to this recipient on the document (e.g. \"Client\", \"Sender\", \"Manager\"). Free-form string set by the document creator.", "example": "Client" }, "date_signed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the recipient signed the document (ISO 8601).", "example": "2026-03-20T14:22:00Z" }, "date_first_viewed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the recipient first viewed the document (ISO 8601).", "example": "2026-03-17T08:45:00Z" }, "date_last_viewed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the recipient last viewed the document (ISO 8601).", "example": "2026-03-20T14:20:00Z" }, "viewed_count": { "type": "integer", "nullable": true, "description": "Number of times the recipient viewed the document.", "example": 3 }, "can_pay": { "type": "boolean", "description": "Whether the recipient can make payments.", "default": false }, "type": { "type": "string", "description": "Recipient type.", "nullable": true, "allOf": [ { "$ref": "#/components/schemas/RecipientTypeEnum" } ] }, "group": { "type": "string", "nullable": true, "description": "Name of the recipient group this recipient belongs to. null for individual recipients.", "example": "Legal Team" }, "user_id": { "type": "string", "nullable": true, "description": "Associated user identifier.", "example": "9FeAY2NB3C9qDdtQRb4tTL" }, "contact_id": { "type": "string", "nullable": true, "description": "Associated contact identifier.", "example": "DrNfkrquTcXH83cgF5ZGrr" }, "company": { "type": "string", "nullable": true, "description": "Company name.", "example": "Acme Corp" }, "title": { "type": "string", "nullable": true, "description": "Contact title.", "example": "VP of Sales" }, "internal": { "type": "boolean", "nullable": true, "description": "Whether the contact is internal." }, "location": { "type": "string", "nullable": true, "description": "Contact location.", "example": "San Francisco, CA" }, "country": { "type": "string", "nullable": true, "description": "Country.", "example": "US" }, "postal_code": { "type": "string", "nullable": true, "description": "Postal code.", "example": "94105" }, "state": { "type": "string", "nullable": true, "description": "State or province.", "example": "CA" }, "city": { "type": "string", "nullable": true, "description": "City.", "example": "San Francisco" }, "street": { "type": "string", "nullable": true, "description": "Street address.", "example": "123 Market St" }, "avatar": { "type": "string", "nullable": true, "description": "Avatar URL. null if no email is associated.", "example": "https://www.gravatar.com/avatar/abc123" }, "is_done": { "type": "boolean", "nullable": true, "description": "Whether the recipient has completed their action.", "example": true } } }, "DocumentSearchGrandTotal": { "title": "DocumentSearchGrandTotal", "description": "Document grand total.", "type": "object", "nullable": true, "properties": { "amount": { "type": "number", "format": "float", "description": "Total amount.", "example": 15000 }, "currency": { "type": "string", "description": "Currency ISO code (e.g. USD, EUR).", "example": "USD" } }, "required": [ "amount", "currency" ] }, "GeneralDocumentTypeEnum": { "type": "string", "enum": [ "Agreement", "Proposal", "Invoice", "Quote", "Form", "Policy" ], "example": "Agreement" }, "DocumentSearchDocumentType": { "title": "DocumentSearchDocumentType", "description": "Document type classification. Each workspace can define custom specific types that belong to a general category.", "type": "object", "nullable": true, "properties": { "id": { "type": "string", "nullable": true, "description": "Document type identifier.", "example": "pXwnAhg8bk9SoBEGGdNu3d" }, "type": { "type": "string", "nullable": true, "description": "Specific document type name. Can be a built-in system type or a workspace-defined custom type. Common system values include Non-Disclosure Agreement, Sales Agreement, Employment Agreement, Service Agreement, Contractor Agreement, Subscription Agreement, Partnership Agreement, Lease Agreement, Rental Agreement, License Agreement, Purchase Agreement, Statement of Work, Professional Services Agreement, Sales Proposal, Project Proposal, Business Letter, Financial Report, Inspection Report, Employment Termination Notice, and Employee Handbook.", "example": "Non-Disclosure Agreement" }, "general_type": { "type": "string", "description": "High-level document type category. null when the specific type does not belong to a general category.", "nullable": true, "allOf": [ { "$ref": "#/components/schemas/GeneralDocumentTypeEnum" } ] } } }, "DocumentSearchEffectivePermissions": { "title": "DocumentSearchEffectivePermissions", "description": "Effective permissions of the current user for the document.", "type": "object", "properties": { "can_manage_collaborators": { "type": "boolean", "description": "Whether the user can manage collaborators.", "default": false }, "can_revert_to_draft": { "type": "boolean", "description": "Whether the user can revert the document to draft.", "default": false } }, "required": [ "can_manage_collaborators", "can_revert_to_draft" ] }, "DocumentSearchClmMetadata": { "title": "DocumentSearchClmMetadata", "description": "A single CLM metadata key/value pair.", "type": "object", "required": [ "key", "value" ], "properties": { "key": { "type": "string", "description": "Metadata key.", "example": "department" }, "value": { "type": "string", "description": "Metadata value, always serialized as a string regardless of the underlying typed value.", "example": "Engineering" } } }, "DocumentSearchExtraFields": { "title": "DocumentSearchExtraFields", "description": "Additional document fields dynamically selected by the AI based on the query. All properties are optional, only relevant will be included to the query. The object is empty when only the standard fields were requested.", "type": "object", "properties": { "title": { "type": "string", "nullable": true, "description": "Document title (includes autonumbering).", "example": "Service Agreement - Acme Corp" }, "date_modified": { "type": "string", "format": "date-time", "nullable": true, "description": "When the document was last modified (ISO 8601).", "example": "2026-03-18T11:05:00Z" }, "date_of_last_action": { "type": "string", "format": "date-time", "nullable": true, "description": "When the last action was performed on the document (ISO 8601).", "example": "2026-03-20T14:22:00Z" }, "date_sent": { "type": "string", "format": "date-time", "nullable": true, "description": "When the document was sent (ISO 8601).", "example": "2026-03-16T09:00:00Z" }, "date_first_signed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the first recipient signed the document (ISO 8601).", "example": "2026-03-19T10:15:00Z" }, "date_last_signed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the last recipient signed the document (ISO 8601).", "example": "2026-03-20T14:22:00Z" }, "date_first_viewed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the document was first viewed (ISO 8601).", "example": "2026-03-16T11:30:00Z" }, "date_last_viewed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the document was last viewed (ISO 8601).", "example": "2026-03-20T14:20:00Z" }, "date_completed": { "type": "string", "format": "date-time", "nullable": true, "description": "When the document was completed (ISO 8601).", "example": "2026-03-20T14:22:00Z" }, "date_expired": { "type": "string", "format": "date-time", "nullable": true, "description": "When the document expired (ISO 8601).", "example": "2026-04-15T00:00:00Z" }, "date_expiration": { "type": "string", "format": "date-time", "nullable": true, "description": "When the document will expire (ISO 8601).", "example": "2026-06-15T00:00:00Z" }, "removed": { "type": "boolean", "description": "Whether the document has been removed.", "default": false }, "type": { "type": "string", "description": "High-level document type.", "nullable": true, "allOf": [ { "$ref": "#/components/schemas/HighLevelDocumentTypeEnum" } ] }, "parent": { "$ref": "#/components/schemas/DocumentSearchParentTemplate" }, "path": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/DocumentSearchPathEntry" }, "description": "Ordered list of folders from root to the document's location." }, "recipients": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/DocumentSearchRecipient" }, "description": "List of document recipients." }, "recipient_count": { "type": "integer", "description": "Total number of recipients.", "default": 0, "example": 1 }, "viewed_total_count": { "type": "integer", "description": "Total number of times the document was viewed.", "default": 0, "example": 5 }, "viewed_count": { "type": "integer", "description": "Number of recipients who viewed the document.", "default": 0, "example": 2 }, "signed_count": { "type": "integer", "description": "Number of recipients who signed the document.", "default": 0, "example": 1 }, "completion_rate": { "type": "number", "format": "float", "nullable": true, "description": "Completion rate of recipients (0.0 to 1.0).", "example": 1 }, "time_to_completion_hours": { "type": "number", "format": "float", "nullable": true, "description": "Time taken to complete the document, in hours.", "example": 120.5 }, "total": { "$ref": "#/components/schemas/DocumentSearchGrandTotal" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of document tags.", "example": [ "legal", "Q1-2026" ] }, "document_type": { "$ref": "#/components/schemas/DocumentSearchDocumentType" }, "effective_permissions": { "$ref": "#/components/schemas/DocumentSearchEffectivePermissions" }, "clm_metadata": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/DocumentSearchClmMetadata" }, "description": "List of CLM metadata key/value pairs." } } }, "DocumentSearchResult": { "title": "DocumentSearchResult", "description": "A single document returned by the search", "type": "object", "required": [ "document_id", "name", "status", "date_created", "owner", "folder", "extra_fields" ], "properties": { "document_id": { "type": "string", "description": "Document identifier.", "example": "msFYActMfJHqNTKH9ig2DF" }, "name": { "type": "string", "description": "Document title or name.", "example": "Service Agreement - Acme Corp" }, "status": { "$ref": "#/components/schemas/DocumentStatusEnum" }, "date_created": { "type": "string", "format": "date-time", "description": "When the document was created (ISO 8601).", "example": "2026-03-15T10:30:00Z" }, "owner": { "$ref": "#/components/schemas/DocumentSearchResultOwner" }, "folder": { "$ref": "#/components/schemas/DocumentSearchResultFolder" }, "extra_fields": { "$ref": "#/components/schemas/DocumentSearchExtraFields" } } }, "DocumentSearchSuggestion": { "title": "DocumentSearchSuggestion", "description": "A follow-up search suggestion for refining results", "type": "object", "required": [ "text" ], "properties": { "text": { "type": "string", "description": "Natural-language suggestion text. Designed to work as a valid query in the next call.", "example": "Show only completed contracts" } } }, "DocumentSearchAppliedFilter": { "title": "DocumentSearchAppliedFilter", "description": "A filter applied when resolving the natural-language query (e.g. field=\"status\", value=\"document.completed\")", "type": "object", "required": [ "field", "value" ], "properties": { "field": { "type": "string", "description": "The field or dimension used for filtering.", "example": "status" }, "value": { "type": "string", "description": "The resolved value applied for that field.", "example": "document.completed" } } }, "DocumentSearchResponse": { "title": "DocumentSearchResponse", "description": "Response containing matching documents and follow-up suggestions", "type": "object", "required": [ "results", "count", "suggestions", "message", "intent" ], "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentSearchResult" }, "description": "Matching documents. Empty list when nothing matches." }, "count": { "type": "integer", "description": "Total number of matching documents.", "example": 12 }, "suggestions": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentSearchSuggestion" }, "description": "Follow-up suggestions to narrow or refine the search." }, "message": { "type": "string", "description": "Human-friendly summary of the search outcome.", "example": "Found 12 documents matching your query." }, "intent": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentSearchAppliedFilter" }, "description": "Filters that were applied to resolve the query. Helps the caller understand how the query was interpreted." } } }, "WorkspaceBranding": { "title": "WorkspaceBranding", "type": "object", "description": "Customer-facing branding shown to recipients on the document signing page and\nin branded emails and templates.\n", "properties": { "logo_url": { "type": "string", "format": "uri", "nullable": true, "example": "https://cdn.example.com/logos/workspace.png", "description": "Logo shown to recipients.\nThe URL must be publicly reachable over HTTPS.\nSupported formats: JPEG, PNG, GIF, WEBP. Max size: 5 MB.\n" }, "accent_color": { "type": "string", "nullable": true, "pattern": "^#[A-Fa-f0-9]{6}$", "example": "#248567", "description": "Accent color as a 6-digit HEX value (with leading `#`).\nSets the main branded template color and email button color.\n" } } }, "UpdateWorkspaceRequest": { "title": "UpdateWorkspaceRequest", "type": "object", "description": "Request payload to update a workspace. All fields are optional β omit a field to\nkeep its current value. Nullable fields accept `null` to clear the current value.\n", "properties": { "name": { "type": "string", "maxLength": 255, "example": "Renamed workspace", "description": "A new name for the workspace." }, "icon_url": { "type": "string", "format": "uri", "nullable": true, "example": "https://cdn.example.com/icons/workspace.png", "description": "Workspace icon displayed in the application; not visible to your customers.\nIcon should have square proportions.\nThe URL must be publicly reachable over HTTPS.\nSupported formats: JPEG, PNG, GIF, WEBP. Max size: 5 MB.\n" }, "branding": { "$ref": "#/components/schemas/WorkspaceBranding" } } }, "UpdateWorkspaceResponse": { "title": "UpdateWorkspaceResponse", "description": "Workspace state returned after a successful update.", "type": "object", "properties": { "id": { "type": "string", "example": "iMymdDd9XFD3HyxP5VD67Q", "description": "Workspace id." }, "name": { "type": "string", "example": "Renamed workspace", "description": "Current workspace name." }, "branding": { "$ref": "#/components/schemas/WorkspaceBranding" } } } }, "responses": { "401": { "description": "Authentication error", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "authentication_error" }, "detail": { "type": "string", "example": "Authentication credentials were not provided." } } } } } }, "403": { "description": "Permission error", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "permissions_error" }, "detail": { "description": "Error details. Either a human-readable message string, or a structured object.\n", "oneOf": [ { "type": "string", "example": "You do not have permission to perform this action." }, { "type": "object", "additionalProperties": true } ] }, "info_message": { "type": "string", "description": "Human-readable explanation of the permission error.", "example": "You are not allowed to send documents outside of your organization" }, "links": { "type": "array", "description": "Optional links related to the error (e.g. a status endpoint).", "items": { "type": "object", "properties": { "rel": { "type": "string", "example": "status" }, "href": { "type": "string", "example": "https://api.pandadoc.com/public/v1/documents/RsXrKarV524iCpjci9CMGa" }, "type": { "type": "string", "example": "POST" } } } } } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "string", "example": "Not found" } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "id": { "type": "string", "example": "mXpGsEBHdSFW97zKXq75hm" }, "status": { "type": "string", "example": "document.uploaded" }, "info_message": { "type": "string", "example": "Warning - Document status document.uploaded doesnβt mean that the document already exists - processing happens asynchronously. Please follow the documentation section https://developers.pandadoc.com/reference/new-document" } } } } } }, "423": { "description": "Document is locked for editing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentLockedResponse" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "throttled" }, "detail": { "type": "string", "example": "Request was throttled." } } } } } }, "400ValidationError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "validation_error" }, "detail": { "type": "object", "example": { "count": [ "A valid integer is required." ], "order_by": [ "value is not a valid choice." ] } } } } } } }, "400RequestError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "object", "example": { "count": [ "A valid integer is required." ], "order_by": [ "value is not a valid choice." ] } } } } } } }, "400BadRequestV2": { "description": "Bad Request error", "content": { "application/json": { "schema": { "properties": { "code": { "type": "string", "example": "bad_request" }, "details": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "pointer": { "type": "string", "description": "JSON Pointer.", "nullable": true }, "data": { "description": "Details data.", "type": "object", "nullable": true, "minProperties": 0, "additionalProperties": true } }, "required": [ "code" ] }, "example": [] } } } } } }, "401AuthErrorV2": { "description": "Authentication error", "content": { "application/json": { "schema": { "properties": { "code": { "type": "string", "example": "unauthorized" }, "details": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "pointer": { "type": "string", "description": "JSON Pointer.", "nullable": true }, "data": { "description": "Details data.", "type": "object", "nullable": true, "minProperties": 0, "additionalProperties": true } }, "required": [ "code" ] }, "example": [] } } } } } }, "429TooManyRequestsV2": { "description": "Too many requests error", "content": { "application/json": { "schema": { "properties": { "code": { "type": "string", "example": "too_many_requests" }, "details": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "pointer": { "type": "string", "description": "JSON Pointer.", "nullable": true }, "data": { "description": "Details data.", "type": "object", "nullable": true, "minProperties": 0, "additionalProperties": true } }, "required": [ "code" ] }, "example": [] } } } } } }, "404NotFoundV2": { "description": "Not found error", "content": { "application/json": { "schema": { "properties": { "code": { "type": "string", "example": "not_found" }, "details": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "pointer": { "type": "string", "description": "JSON Pointer.", "nullable": true }, "data": { "description": "Details data.", "type": "object", "nullable": true, "minProperties": 0, "additionalProperties": true } }, "required": [ "code" ] }, "example": [] } } } } } }, "403PermissionDeniedV2": { "description": "Permission error", "content": { "application/json": { "schema": { "properties": { "code": { "type": "string", "example": "forbidden" }, "details": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "pointer": { "type": "string", "description": "JSON Pointer.", "nullable": true }, "data": { "description": "Details data.", "type": "object", "nullable": true, "minProperties": 0, "additionalProperties": true } }, "required": [ "code" ] }, "example": [] } } } } } }, "413RequestTooLarge": { "description": "Request entity too large.", "content": { "application/json": { "schema": { "type": "object", "properties": { "type": { "type": "string", "example": "validation_error" }, "detail": { "type": "string", "example": "Request body exceeds the maximum size of 524288 bytes." } } }, "examples": { "payloadTooLarge": { "summary": "Request body exceeds 512 KiB", "value": { "type": "validation_error", "detail": "Request body exceeds the maximum size of 524288 bytes." } } } } } }, "400BadRequestUserRequestError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "object", "example": { "email": [ "User already exists", "User email should have the same email domain as org admin.", "Enter a valid email address." ], "role": [ "Role is not a valid choice.", "This field is required." ], "license": [ "Unable to add more licenses.", "License is not a valid choice.", "This field is required." ], "workspace_id": [ "This field is required.", "Workspace with uuid {uuid} not found." ] } } } } } } }, "400BadRequestMemberRequestError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "object", "example": { "user_id": [ "User doesn't exist", "Member already exists", "This field is required" ], "role": [ "Role is not a valid choice", "This field is required" ] } } } } } } }, "400BadRequestMemberRemoveError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "string", "example": "Owner can not be removed." } } } } } }, "404BadRequestMemberRemoveError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "type": "string", "example": "This member or workspace does not exist." } } } } } }, "400BadRequestUpdateMemberRoleError": { "description": "Bad Request", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "example": "request_error" }, "detail": { "oneOf": [ { "type": "object", "description": "Field-level validation errors.", "example": { "role": [ "The role 'NonExistentRole' does not exist in the workspace with ID 'BhVzRcxH9Z2LgfPPGXFUBa'. Please ensure the role is correctly defined and try again.", "This field is required." ] } }, { "type": "string", "description": "A business-rule violation. Possible values include:\n - `Cannot change the role of the workspace owner.`\n - `Cannot change the role of the last member with admin privileges.`\n", "example": "Cannot change the role of the workspace owner." } ] } } } } } } }, "headers": { "RetryAfter": { "description": "The number of seconds the client should wait before retrying the request. Included when the response is 202 to indicate the data is not yet available.\n", "required": true, "schema": { "type": "integer", "minimum": 1 }, "example": 5 }, "SummaryETag": { "description": "An opaque identifier for the version of the returned summary. Not interchangeable across different `type` values.\n", "required": true, "schema": { "type": "string" }, "example": "\"v42\"" }, "VaryType": { "description": "Indicates the response varies by the `type` query parameter. HTTP caches must use this when storing responses so ETag and body are not mixed across types.\n", "required": true, "schema": { "type": "string" }, "example": "type" }, "ContentETag": { "description": "An opaque identifier for the version of the returned content. Not interchangeable across different `format` values.\n", "required": true, "schema": { "type": "string" }, "example": "\"v42\"" }, "VaryFormat": { "description": "Indicates the response varies by the `format` query parameter. HTTP caches must use this when storing responses so ETag and body are not mixed across formats.\n", "required": true, "schema": { "type": "string" }, "example": "format" } }, "parameters": { "SinceParam": { "name": "since", "in": "query", "schema": { "type": "string", "default": "-90d" }, "description": "Determines a point in time from which logs should be fetched. Either a specific ISO 8601 datetime or a relative identifier such as \"-90d\" (for past 90 days).", "example": "-7d" }, "ToParam": { "name": "to", "in": "query", "schema": { "type": "string" }, "description": "Determines a point in time from which logs should be fetched. Either a specific ISO 8601 datetime or a relative identifier such as \"-10d\" (for past 10 days) or a special \"now\" value.", "example": "now" }, "CountParam": { "name": "count", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1, "maximum": 1000, "default": 100 }, "description": "The amount of items on each page. The total number of accessible items (`count Γ page`) must not exceed 10,000.", "example": 10 }, "PageParam": { "name": "page", "in": "query", "schema": { "type": "integer", "format": "int32", "minimum": 1, "default": 1 }, "description": "Returns page of the results by number. The total number of accessible items (`count Γ page`) must not exceed 10,000.", "example": 1 }, "StatusesParam": { "name": "statuses", "in": "query", "style": "form", "explode": true, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApiLogStatusEnum" } }, "description": "Returns only the predefined status codes.", "examples": { "Default": { "value": [ 400, 500 ] }, "List API Logs 2XX": { "value": [ 200 ] } } }, "MethodsParam": { "name": "methods", "in": "query", "style": "form", "explode": true, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApiLogMethodEnum" } }, "description": "Returns only the predefined HTTP methods. Allows GET, POST, PUT, PATCH, and DELETE.", "example": [ "GET", "POST" ] }, "SearchParam": { "name": "search", "in": "query", "schema": { "type": "string" }, "description": "Returns the results containing a string.", "example": "documents/hryJY9mqYZHjQCYQuSjRQg/send" }, "EnvironmentTypeParam": { "name": "environment_type", "in": "query", "schema": { "$ref": "#/components/schemas/ApiLogEnvironmentTypeEnum" }, "description": "Returns logs for production/sandbox.", "example": "PRODUCTION" }, "LogEventIdParam": { "name": "id", "in": "path", "description": "Log event id.", "schema": { "type": "string" }, "required": true, "examples": { "Log Event ID": { "value": "AZC86i5PYKMjQjMMMw9e" } } }, "DocumentPathId": { "name": "document_id", "in": "path", "required": true, "description": "The unique identifier of the document.\n", "schema": { "type": "string" }, "example": "D3okRfgHRX7NEhavcACReB" }, "DocumentSummaryTypeQuery": { "name": "type", "in": "query", "required": true, "description": "Document summary granularity to return.\n", "schema": { "$ref": "#/components/schemas/DocumentSummaryType" }, "example": "detailed" }, "DocumentContentFormatQuery": { "name": "format", "in": "query", "required": true, "description": "Document content representation to return.\n", "schema": { "$ref": "#/components/schemas/DocumentContentFormat" }, "example": "plaintext" } }, "examples": { "APILogListExample": { "value": { "results": [ { "id": "AZC86i5PYKMjoyFBAw9e", "url": "/public/v1/documents/iZy3j9GmryVUSAbwL9tGWP/recipients/", "method": "POST", "status": 200, "request_time": "2024-07-15T18:59:38.000", "response_time": "2024-07-15T18:59:39.000" }, { "id": "AZC86ewVMUHWrVijestF", "url": "/public/v1/documents/iZy3j9GmryVUSAbwL9tGWP/details", "method": "GET", "status": 200, "request_time": "2024-07-15T18:59:22.000", "response_time": "2024-07-15T18:59:22.000" }, { "id": "AZC86RrndoYcdqXPVw-l", "url": "/public/v1/documents/iZy3j9GmryVUSAbwL9tGWP/recipients/wdNMxCRFqH2DaZDcRDXkGc/", "method": "DELETE", "status": 204, "request_time": "2024-07-15T18:58:19.000", "response_time": "2024-07-15T18:58:20.000" } ] } }, "APILogList2XXExample": { "value": { "results": [ { "id": "AXp2jrHMK2MKv_lRqmQ", "url": "/public/v1/logs", "method": "GET", "status": 200, "request_time": "2021-07-05T12:05:00.389", "response_time": "2021-07-05T12:05:00.827" }, { "id": "AXp2iQACarAbusgUW4jY", "url": "/public/v1/logs", "method": "GET", "status": 200, "request_time": "2021-07-05T11:58:47.070", "response_time": "2021-07-05T11:58:47.588" }, { "id": "AXpip7PGK5MpUv_lQsuj", "url": "/public/v1/documents", "method": "POST", "status": 201, "request_time": "2021-07-01T15:19:54.607", "response_time": "2021-07-01T15:19:55.404" } ] } }, "APILogDetailsExample": { "value": { "id": "AZC86i5PYKMjQjMMMw9e", "url": "/public/v1/documents/iZy3j9GmryVUSAbwL9tGWP/recipients/", "method": "POST", "status": 200, "request_time": "2024-07-15T18:59:38.000", "response_time": "2024-07-15T18:59:39.000", "request_body": { "id": "xNVQVHShdgxHTTPVJ3CWCC", "kind": "contact" }, "query_params_string": null, "query_params_object": null, "response_body": { "recipient_id": "PsPqdRm4dt4thxnYMqttwY" }, "token_type": "API_KEY", "application": null, "key": "9cf111111c3bd477ab9bb4123453b7f5d6502cd8", "request_id": "284b1456-1111-4ba9-1111-0d82418205f5", "user_email": "siarhei@pandadoc.com", "user_id": "Hzpt4yyQ3A5qHTTPdZQxpH" } } } } }