Skip to content

@memberjunction/esignature-pandadoc

← Back to eSignature Overview · Core Primitive

The PandaDoc driver for the MemberJunction eSignature subsystem. It implements the BaseSignatureProvider contract against the PandaDoc public REST API v1, using simple API-key authentication.

Terminal window
npm install @memberjunction/esignature-pandadoc

You don’t call this package directly. You configure a PandaDoc Signature Account and use the SignatureEngine (or the no-code Actions). The engine resolves and drives this provider for you.


Driver keyPandaDoc
Registration@RegisterClass(BaseSignatureProvider, 'PandaDoc')
AuthenticationAPI key (Authorization: API-Key …)
APIPandaDoc public REST API v1
WebhooksHMAC-verified
OperationSupported
Create envelope
Get status
Download signed
Void
Parse webhook event
Verify webhook signature
Templates
Embedded signing

PandaDoc processes an uploaded document asynchronously — a freshly created document isn’t immediately in a sendable draft state. The driver handles this for you: after creating a document it polls until the document reaches draft, then sends it. The poll interval is tunable via readinessIntervalMs (default 1500 ms).

flowchart LR
    Create["Create document"] --> Poll{"draft yet?"}
    Poll -->|no| Wait["wait readinessIntervalMs"]
    Wait --> Poll
    Poll -->|yes| Send["Send for signature"]

    style Send fill:#2d8659,stroke:#1a5c3a,color:#fff

These values live in the account’s Credential (encrypted via the Credential Engine) — never in code or environment variables.

KeyRequiredDefaultDescription
apiKeyPandaDoc API key, sent as Authorization: API-Key <key>.
restBasehttps://api.pandadoc.com/public/v1REST API base.
connectHmacKeyHMAC secret for verifying inbound webhooks. Set this in production.
readinessIntervalMs1500Poll interval (ms) while waiting for an uploaded document to reach draft.
  1. In PandaDoc, generate an API key (Settings → API).
  2. In MemberJunction:
    • The PandaDoc Signature Provider row is already seeded.
    • Create a Credential holding apiKey.
    • Create a Signature Account pointing at that credential.
  3. (Production) Configure a PandaDoc webhook pointing at POST {your-server}/esignature/webhook/PandaDoc, and store its HMAC secret as connectHmacKey.

PandaDoc’s native document statuses map onto MemberJunction’s normalized lifecycle:

PandaDoc statusMJ EnvelopeStatus
document.uploaded, document.draftDraft
document.sent, document.waiting_approval, document.approved, document.waiting_paySent
document.viewedDelivered
document.completed, document.paidCompleted
document.declinedDeclined
document.voided, document.cancelledVoided

PandaDoc pushes events to POST /esignature/webhook/PandaDoc. The driver verifies the HMAC signature (from the signature query parameter or x-pandadoc-signature header) over the raw request body using your connectHmacKey. See the webhook flow.


Terminal window
cd packages/eSignature/Providers/PandaDoc && npm run test

eSignature overviewThe whole subsystem.
Core primitiveThe contract, engine, and data model this driver plugs into.
DocuSign driver · Dropbox Sign driverSibling providers.