PandaDoc Document Management
Overview
Documents in PandaDoc represent proposals, quotes, contracts, statements of work (SOWs), managed service agreements (MSAs), and any other business documents that need to be created, sent, signed, and tracked. MSPs use PandaDoc documents to formalize client engagements -- from initial proposals through signed contracts. Documents are typically created from templates, populated with client-specific content, sent for e-signature, and archived after completion.
MCP Tools
Available Tools
| Tool | Description | Key Parameters |
|---|---|---|
pandadoc-list-documents | List and filter documents | status, q, tag, count, page, order_by, template_id, folder_uuid |
pandadoc-get-document | Get full document details | id (required) |
pandadoc-get-document-status | Get document status | id (required) |
pandadoc-create-document | Create a document from template | template_uuid, name, recipients, tokens, fields, pricing_tables, folder_uuid |
pandadoc-send-document | Send a document for signature | id (required), message, subject, silent |
pandadoc-download-document | Download a completed document | id (required) |
Create a Document
Call pandadoc-create-document with:
- Template: Set
template_uuidto the template ID - Name: Set
nameto the document title (e.g., "Acme Corp - Managed Services Agreement") - Recipients: Provide
recipientsarray withemail,first_name,last_name,role, and optionallysigning_order - Content tokens: Set
tokensarray withnameandvaluepairs to populate template variables - Pricing tables: Set
pricing_tablesto populate line items with services and pricing - Folder: Optionally set
folder_uuidto organize the document
Example: Create an MSA from template:
pandadoc-create-documentwithtemplate_uuid=abc123,name="Acme Corp - MSA",recipients=[{"email":"john@acme.com","first_name":"John","last_name":"Smith","role":"Client"}],tokens=[{"name":"Client.Company","value":"Acme Corporation"}]
List Documents
Call pandadoc-list-documents with optional parameters:
- Search by name: Set
qto a document name or keyword - Filter by status: Set
statusto a document status value (see status reference below) - Filter by tag: Set
tagto a document tag - Sort: Set
order_bytodate_created,date_modified,name, ordate_status_changed - Paginate: Set
page(1-based) andcount(up to 100)
Example: List all sent documents:
pandadoc-list-documentswithstatus=document.sent,count=100
Example: Search for a client's documents:
pandadoc-list-documentswithq=Acme Corp,count=100
Get Document Details
Call pandadoc-get-document with the id parameter to get full document details including recipients, tokens, pricing, and metadata.
Check Document Status
Call pandadoc-get-document-status with the id parameter to get the current status and recipient completion information.
Send a Document
Call pandadoc-send-document with:
- Document ID: Set
idto the document ID (required) - Message: Optionally set
messagefor the email body - Subject: Optionally set
subjectfor the email subject line - Silent: Set
silent=trueto create a signing link without sending an email
Example: Send with a cover message:
pandadoc-send-documentwithid=msFYActMfJHqNTKH9tcPFa,message="Please review and sign the attached managed services agreement.",subject="MSA for your review - Acme Corp"
Download a Document
Call pandadoc-download-document with the id parameter to download the completed, signed document as a PDF.
Key Concepts
Document Lifecycle
Template --> Create (Draft) --> Send --> Viewed --> Completed (Signed)
| | |
waiting_approval declined download
| rejected
approved expired
|
voided
Document Statuses
| Status | API Value | Description |
|---|---|---|
| Draft | document.draft | Created but not yet sent to recipients |
| Sent | document.sent | Sent to recipients, awaiting action |
| Completed | document.completed | All recipients have signed |
| Viewed | document.viewed | At least one recipient has opened the document |
| Waiting Approval | document.waiting_approval | Internal approval required before sending |
| Approved | document.approved | Internal approval granted |
| Rejected | document.rejected | Internal approval rejected |
| Waiting Payment | document.waiting_pay | Payment collection pending |
| Paid | document.paid | Payment collected |
| Voided | document.voided | Document cancelled/voided after sending |
| Declined | document.declined | Recipient declined to sign |
| Expired | document.expired | Document passed its expiration date |
Document Types for MSPs
| Type | Description | Typical Template |
|---|---|---|
| MSA | Managed Service Agreement | Long-term IT management contract |
| SOW | Statement of Work | Project-specific deliverables and scope |
| Proposal | Service proposal | Proposed services with pricing |
| Quote | Hardware/software quote | Line-item pricing for products |
| NDA | Non-disclosure agreement | Confidentiality before engagement |
| Change Order | Scope change request | Modifications to existing agreements |
Content Tokens
Tokens are template variables that get replaced with client-specific values when creating a document:
| Token Pattern | Example Value | Use Case |
|---|---|---|
Client.Company | Acme Corporation | Client company name |
Client.Name | John Smith | Client contact name |
Client.Email | john@acme.com | Client email |
Client.Address | 123 Main St, Springfield, IL | Client address |
MSP.Company | TechForce IT Solutions | Your MSP name |
Contract.StartDate | March 1, 2026 | Agreement start date |
Contract.Term | 12 months | Agreement duration |
Contract.Value | $5,000/month | Monthly recurring revenue |
Pricing Tables
Pricing tables contain line items for services and products:
{
"pricing_tables": [
{
"name": "Services",
"sections": [
{
"rows": [
{
"options": {
"optional": false,
"optional_selected": true
},
"data": {
"name": "Managed IT Services - Per User",
"description": "24/7 monitoring, helpdesk, patching, endpoint security",
"price": 125.00,
"qty": 50,
"discount": 0
}
},
{
"data": {
"name": "Backup & Disaster Recovery",
"description": "Cloud backup with 1-hour RPO, 4-hour RTO",
"price": 250.00,
"qty": 1,
"discount": 0
}
}
]
}
]
}
]
}
Field Reference
Document Fields
| Field | Type | Description |
|---|---|---|
id | string | Document unique identifier |
name | string | Document display name |
status | string | Current document status |
date_created | datetime | When the document was created |
date_modified | datetime | When the document was last modified |
date_completed | datetime | When all signatures were collected |
expiration_date | datetime | When the document expires |
version | string | Document version number |
template | object | Source template reference |
recipients | array | List of document recipients |
tokens | array | Content token values |
| ` |