Changed

  • Increased the maximum length for email reminder subject lines, allowing you to create more descriptive and comprehensive subjects for your document reminders.

POST /public/v1/documents/{document_id}/send-reminder

  • ⚠️ the 'result/items/email_customization/subject' response property's maxLength was increased from '300' to '512' for the response status '200'
  • the 'reminders/items/email_customization/subject' request property's maxLength was increased from '300' to '512'

Minor Changes

  • 184056e: "Introduce event handling with .on(), .off(), and .once() methods. New document lifecycle events added."

Added

Enhanced quote update functionality with new summary fields, allowing you to include overall and section-specific summary details when updating a quote.

PUT /public/v1/documents/{document_id}/quotes/{quote_id}

  • added the new optional request property 'sections/items/summary'
  • added the new optional request property 'summary'

Added

Added endpoints to retrieve API logs: list all logs or fetch a single log by ID for auditing and debugging.

GET /public/v2/logs

  • endpoint added

GET /public/v2/logs/{id}

  • endpoint added

Deprecated

The /public/v1/logs and /public/v1/logs/{id} endpoints have been deprecated. Please update your integrations to use alternative methods for accessing log data before the sunset date.

GET /public/v1/logs

  • endpoint deprecated

GET /public/v1/logs/{id}

  • endpoint deprecated

Full Changelog: https://github.com/PandaDoc/pandadoc-openapi-specification/compare/v7.16.2...v7.17.0

Added

Document details now include approval execution info, folder UUID, and document version.

GET /public/v1/documents/{id}/details

  • added the optional property 'approval_execution' to the response with the '200' status
  • added the optional property 'folder_uuid' to the response with the '200' status
  • added the optional property 'version' to the response with the '200' status

Changed

Send-reminder email customization now supports longer subject lines (up to 300 characters instead of 78) in both the request and the response.

POST /public/v1/documents/{document_id}/send-reminder

  • the 'result/items/email_customization/subject' response property's maxLength was increased from '78' to '300' for the response status '200'
  • the 'reminders/items/email_customization/subject' request property's maxLength was increased from '78' to '300'

Document details: the text field merge field can now be null.

GET /public/v1/documents/{id}/details

  • the response property 'fields/items/anyOf[subschema #10: Text]/allOf[subschema #2]/merge_field' became nullable for the status '200'
  • the 'fields/items/anyOf[subschema #10: Text]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #1: Checkbox]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #2: Collect File]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #3: Date]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #4: Dropdown]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #5: Initials]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #6: Payment Details]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #7: Radio Buttons]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #8: Signature]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'
  • the 'fields/items/anyOf[subschema #9: Stamp]/allOf[#/components/schemas/BaseField]/assigned_to/anyOf[subschema #1: Recipient]/allOf[subschema #2]/phone' response's property pattern '^+[1-9]\d4\d14$' was removed for the status '200'

Full Changelog: https://github.com/PandaDoc/pandadoc-openapi-specification/compare/v7.16.1...v7.16.2

Changed

Simplified currency specification for quote updates. The currency property is now a top-level optional request property, replacing the previously nested sections/items/currency property. This streamlines how you update currency for specific quotes.

PUT /public/v1/documents/{document_id}/quotes/{quote_id}

  • ⚠️ removed the request property 'sections/items/currency'
  • added the new optional request property 'currency'

Added

Added currency specification for quote, allowing you to set the currency within quote when updating a document quote.

PUT /public/v1/documents/{document_id}/quotes/{quote_id}

  • added the new optional request property 'sections/currency'

POST /public/v1/content-library-items

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/content-library-items/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/content-library-items/{id}/details

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/content-library-items?upload

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents

  • ⚠️ removed 'subschema #1, subschema #2' from the request body 'oneOf' list
  • added 'subschema #1, subschema #2' to the request body 'oneOf' list
  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/linked-objects

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/documents/ownership

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{document_id}/auto-reminders

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/documents/{document_id}/auto-reminders

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{document_id}/auto-reminders/status

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{document_id}/esign-disclosure

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PUT /public/v1/documents/{document_id}/quotes/{quote_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{document_id}/sections

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{document_id}/sections/uploads/{upload_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

DELETE /public/v1/documents/{document_id}/sections/{section_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{document_id}/sections/{section_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{document_id}/send-reminder

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/documents/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/append-content-library-item

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{id}/details

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{id}/download

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{id}/download-protected

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/editing-sessions

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/documents/{id}/linked-objects

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/linked-objects

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

DELETE /public/v1/documents/{id}/linked-objects/{linked_object_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/move-to-folder/{folder_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/documents/{id}/ownership

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/recipients

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/documents/{id}/recipients/recipient/{recipient_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

DELETE /public/v1/documents/{id}/recipients/{recipient_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/recipients/{recipient_id}/reassign

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/send

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/documents/{id}/session

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/documents/{id}/status

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/documents/{id}/status?upload

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/forms

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/members/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/members/{member_id}/token

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/sms-opt-outs

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

DELETE /public/v1/templates/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/templates/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/templates/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/templates/{id}/details

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/templates/{id}/editing-sessions

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/users

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/webhook-subscriptions

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

DELETE /public/v1/webhook-subscriptions/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/webhook-subscriptions/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/webhook-subscriptions/{id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

PATCH /public/v1/webhook-subscriptions/{id}/shared-key

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v1/workspaces

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/workspaces

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/workspaces/{workspace_id}/api-keys

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/workspaces/{workspace_id}/deactivate

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

POST /public/v1/workspaces/{workspace_id}/members

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

DELETE /public/v1/workspaces/{workspace_id}/members/{member_id}

  • added the optional property 'info_message' to the response with the '403' status
  • added the optional property 'links' to the response with the '403' status

GET /public/v2/documents/{document_id}/settings

  • added the required property 'expires_in' to the response with the '200' status

PATCH /public/v2/documents/{document_id}/settings

  • added the new optional request property 'expires_in'
  • added the required property 'expires_in' to the response with the '200' status

GET /public/v2/templates/{template_id}/settings

  • ⚠️ removed the required property 'qualified_electronic_signature' from the response with the '200' status

PATCH /public/v2/templates/{template_id}/settings

  • ⚠️ removed the required property 'qualified_electronic_signature' from the response with the '200' status
  • ⚠️ removed the request property 'qualified_electronic_signature'