Pandadoc integration with e-signature in CPQ
  • 16 Nov 2023
  • 2 Minutes to read
  • Contributors
  • Dark

Pandadoc integration with e-signature in CPQ

  • Dark

Article Summary

PandaDoc configuration

# ADL Configuration

    <prop key="cpq-signing-enabled">1</prop>

    <prop key="pandadoc-prefix">pandadoc-</prop>

    <prop key="pandadoc-base-url"></prop>
    <prop key="pandadoc-oauth-version">2.0</prop>
    <prop key="pandadoc-oauth-clientid">AABBCC</prop>
    <prop key="pandadoc-oauth-clientsecret">DDEEFF</prop>
    <prop key="pandadoc-oauth-scope">read write</prop>
    <prop key="pandadoc-oauth-authurl"></prop>
    <prop key="pandadoc-oauth-accesstokenurl"></prop>
    <prop key="pandadoc-oauth-redirecturi"></prop>
    <prop key="pandadoc-oauth-accessmethod">header</prop>
    <prop key="pandadoc-oauth-clientauthmethod">requestparams</prop>

    <prop key="pandadoc-auth-type">oauth2</prop>
    <prop key="pandadoc-api-key">PAPIKEY</prop>
    <prop key="pandadoc-wait-seconds-for-draft-status">10</prop>
    <prop key="pandadoc-status-check-internal-seconds">2</prop>
  • cpq-signing-enabled - This prop is used to enable either DocuSign or PandaDoc system
  • pandadoc-base-url - Default value is
  • pandadoc-api-key - If auth-type is "api_key, this prop is required
  • pandadoc-auth-type - Can be either oauth2 or api_key. Defaut value is "oauth2"
  • pandadoc-wait-seconds-for-draft-status - Send a doc for signature is two step process. We need to create a document and wait for the document to change for "document.uploading" to "document.draft" status. This is prop specified the wait time for document to change from uploading to draft status. Default value is '10' seconds
  • pandadoc-status-check-interval-seconds - Default value is '2' seconds. Every two seconds API call will be made to check whether doc has changed from uploading to draft seconds.

# Document Template Setup

For PandaDoc you need to setup two JSON configuration in document template screen. The JSON can have CPQ specific template string "${}"

# PandaDoc setup

PandaDoc supports two type of authentication:

# Authentication

  • API key - To get the key login to PandaDoc and goto Settings->API & Integration->API(see screenshot)
  • OAuth2 - To setup OAuth2 login to PandaDoc and goto Settings->API & Integration->API->Sandbox API Setup (My Application)

# Webhook setup

Enter the webhook URL as (see screenshot). Please make sure you have selected metadata checkbox.

# PandaDoc Document JSON

Below is the sample Document JSON

    "name": "Sample Document from PDF with Field Tags",
    "recipients": [
            "email": "[email protected]",
            "first_name": "Name",
            "last_name": "LastName",
            "role": "user"
    "fields": {
        "name": {
            "value": "Jane",
            "role": "user"
        "like": {
            "value": true,
            "role": "user"
    "parse_form_fields": false

# PandaDoc Send Email JSON

Below is the sample Send Email JSON

    "message": "Hello! This document was sent from the PandaDoc API.",
    "silent": true

# PandaDoc Document Tag

PandaDoc follows inline special text(for e.g. '{signature:user_______}' ) for specifying tags for signing. For more info click here

Hello, {text:user:name} Please,​ ​fill​ ​this​ ​form:

Home​ ​address: {textfield:user________________} Date​ ​of​ ​Birth: {date:user__}

Do​ ​you​ ​like​ ​using​ ​APIs? {checkbox*:user:like}

Signature: {signature:user_______} Initials: {initials:user}

# PandaDoc Demo App

For testing ask PandaDoc or your Mobileforce customer success team for a test account

account: someaccount
app: someapp
login: [email protected]
pasword: pwd

# On-boarding New Customer

  1. First the customer has to setup OAuth Application -
  2. We need to update the ADL prop with OAuth Info
  3. We need to update CPQ -> Document Template -> Signature with the right info
  4. Update the “PandaDoc Document JSON” (Has information about whom to send email)
  5. Update the “PandaDoc Send Email JSON” (Has infomation about email subject/body)
  6. Update the uploaded document template as per the “PandaDoc Document Tag” section

Was this article helpful?