Added

Added endpoint to programmatically delete documents (bulk), enabling you to manage and remove documents via the API.

Enhanced markdown document creation with fields_mapping property, allowing custom field mapping when uploading markdown content via the API.


DELETE /public/v1/documents

  • endpoint added

POST /public/v1/documents?upload-markdown

  • added the new optional request property 'data/fields_mapping'

Added

  • Added a new endpoint to create documents by uploading Markdown content, enabling you to programmatically generate rich-text documents from Markdown.

[Beta] POST /public/v1/documents?upload-markdown

  • endpoint added

Changed

  • Implemented minimum value constraints for document field layout properties (offset_x, offset_y, height, width) to ensure valid positioning and sizing when programmatically updating document fields.

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

  • ⚠️ the 'fields/items/layout/position/offset_x' request property's min was set to '0.00'
  • ⚠️ the 'fields/items/layout/position/offset_y' request property's min was set to '0.00'
  • ⚠️ the 'fields/items/layout/style/height' request property's min was set to '0.00'
  • ⚠️ the 'fields/items/layout/style/width' request property's min was set to '0.00'

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'