We're thrilled to announce that PandaDoc API starting to support Update Document.

Here are what exactly you can update in the already existing document (draft status only):

  • Recipients - update already existing recipient (email, first name, last name) using recipient ID from Document Details or add new recipients in CC
  • Tags - add new tags
  • Tokens (variables) - update already existing tokens or add new tokens
  • Fields - update field values
  • Metadata - update already existing metadata or add new metadata
  • Pricing table - replace pricing table items with new ones and update the pricing table configuration
{
     "recipients": [
          {
               "id": "MiySpPNiyhhmFXnDDrrawC",
               "email": "[email protected]",
               "first_name": "New",
               "last_name": "Recipient"
          }
     ],
     "tokens": [
          {
               "name": "Favorite.Pet",
               "value": "New Panda"
          }
     ],
     "fields": {
          "Favorite.Color": {
               "value": "PandaDoc red"
          },
          "Delivery": {
               "value": "Pick Up"
          },
          "Like": {
               "value": false
          },
          "Date": {
               "value": "2022-08-24T00:00:00.000Z"
          }
     },
     "metadata": {
          "my_favorite_pet": "New Panda"
     },
     "tags": [
          "created_via_api",
          "test_document"
     ],
     "pricing_tables": [
          {
               "name": "Pricing Table 1",
               "data_merge": true,
               "options": {
                    "Tax": {
                         "is_global": true,
                         "type": "absolute",
                         "name": "Tax",
                         "value": 11
                    }
               },
               "sections": [
                    {
                         "title": "Sample Section",
                         "default": true,
                         "rows": [
                              {
                                   "options": {
                                        "optional": true,
                                        "optional_selected": true,
                                        "qty_editable": true
                                   },
                                   "data": {
                                        "Name": "New Toy Panda",
                                        "Description": "New Fluffy!",
                                        "Price": 11,
                                        "QTY": 4,
                                        "Tax": {
                                             "value": 21,
                                             "type": "percent"
                                        }
                                   },
                                   "custom_fields": {
                                        "Fluffiness": "4 / 5"
                                   }
                              }
                         ]
                    }
               ]
          }
     ]
}

204 - Result

We've improved our Send a Document request by adding the possibility to set a sender. You can set a sender with an email address or membership_id.

{
  "sender":{
    "membership_id":"QMDSzwabfFzTgjW6KijHyu"
  },
  "message": "Hello! This document was sent from the PandaDoc API.",
  "subject": "Please check this test API document from PandaDoc",
  "silent": false
}
{
  "sender":{
    "email":"[email protected]"
  },
  "message": "Hello! This document was sent from the PandaDoc API.",
  "subject": "Please check this test API document from PandaDoc",
  "silent": false
}

We've improved our Link to CRM and from now on it's called Link Service. The main difference is the possibility to link your documents to any provider/entity type.

Please be informed that we've added shared links for each recipient to Send Document, Document Details, and On Document Status Change responses.

Now you don't need to send documents via email ("silent": true) to provide all functionality of the recipient's view.

"recipients": [
        {
            "id": 118590764,
            "first_name": "Josh",
            "last_name": "Ron",
            "email": "[email protected]",
            "recipient_type": "signer",
            "signing_order": null,
            "shared_link": "https://app.pandadoc.com/document/f7ea21ae675b1712db7b942da65de3b828a4a43c"
        }
    ]

We're pleased to announce that we've delivered data merge feature for pricing tables via API. Now you can work with pricing tables via API in a more flexible way and prefill all types of columns.

Frequently, our customers need to name columns in the pricing table according to names in their system and that's where data merge may help. The data merge feature is available by default and the only thing you need to do is enable it in API as well.

Here is how you can check what names your columns have with the data merge feature by default and change them.

2868

Template -> Pricing Table Settings -> Set up data merge

1900

Column names for API are presented on the left

To use these column names instead of default ones you need to add the data_merge boolean parameter as true (false by default) into the pricing table object of the Create Document from PandaDoc Template request body and use them in the data section.

"pricing_tables": [
        {
            "name": "Pricing Table 1",
            "data_merge":true,
            "options": {
                "discount": {
                    "type": "absolute",
                    "name": "Discount",
                    "value": 2.26
                }
            },
            "sections": [
                {
                    "title": "Sample Section",
                    "default": true,
                    "rows": [
                        {
                            "options": {
                                "optional": true,
                                "optional_selected": true,
                                "qty_editable": true
                            },
                            "data": {
                                "Name": "Toy Panda",
                                "Description": "Fluffy!",
                                "Price": 10,
                                "QTY": 3,
                                "SKU":"TEST1",
                                "Tax": {
                                    "value": 7.5,
                                    "type": "percent"
                                },
                                "CustomText":"testcolumn"
                            },
                            "custom_fields": {
                                "Fluffiness": "5 / 5"
                            }
                        }
                    ]
                }
            ]
        }
    ]

As a result, all values from the document creation request will be properly matched with columns in the pricing table of the newly created document.

2854

Document -> Pricing Table

For more information on how to add and set your pricing table, visit our help center. You will also discover ways your recipients can interact with the pricing table. This is a fun feature you’ll want to explore more!

We're happy to announce that Field ID and Type are now available in the Document Details, Template Details, Content Library Item Details, and Webhooks.

Field ID parameter is unique across a document, so now it's possible to reference exactly the field you need.
Type parameter helps to process field values in different ways according to their types.

"fields": [
    {
      "field_id": "VAT_field",
      "type": "text",
      "uuid": "9330094d-cea5-46cf-869e-058b18a5ae15",
      "name": "vat_number",
      "title": "",
      "placeholder": "VAT number",
      "value": "CY99999999L",
      "merge_field": "vat_number"
    }
  ]

Currently available field types are:

  • text
  • dropdown
  • date
  • checkbox
  • signature
  • initials
  • collect_file

We're pleased to announce filtering options by document owner and recipients/approver in the List Documents.
Now you can easily filter documents by:

  • membership_id (several parameters are allowed) for document owner. You can find it in the List Members.
  • contact_id for a recipient or approver. You can find it in the List Contacts.

See the full list of query parameters for filtering in the List Documents section.

Filter by contact_id:

  • https://api.pandadoc.com/public/v1/documents?contact_id=TyVJD8phcyXrGGXBSfgcwd

Filter by membership_id:

  • https://api.pandadoc.com/public/v1/documents?membership_id=XGgtcUP85DuUjqu7j5LoPL

Filter by several membershi_ids

  • https://api.pandadoc.com/public/v1/documents?membership_id=XGgtcUP85DuUjqu7j5LoPL&membership_id=TyVJD8phcyXrGGXBSfgcwd