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'

Added

Document settings now support the expires_in field (in days). You can retrieve the current expiration when getting document settings and set or update it when updating document settings, giving you programmatic control over when documents expire.

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

Added

Document settings now support qualified electronic signature (QES). You can retrieve the current QES setting when getting document settings and enable or update it when updating document settings, giving you programmatic control over whether documents require a qualified electronic signature.

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

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

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

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