Capability Library · Pack detail

pandadoc v1.0.0

PandaDoc document API: read documents, templates and contacts, create a document from a template, and send a document for signature.

Review state: draft· Not in the distributable release manifest

Release identity

SHA-256 of the pack file bytes: 5c2ab55038d9f018844ab5703c0e4fa71e955ee7c3b079616d399218385a6528

Not in the distributable release manifest. The binary carries a digest-bound manifest of the distributable library; a pack whose bytes differ from its manifest entry — endpoint, tier, allowlist, or credential edited, with provider, version, and review block preserved — fails the digest check, loses distributability, and renders MODIFIED rather than as the shipped reviewed artifact. Review state and artifact status are different facts: the first is a documentation-review declaration, the second is the identity of the exact bytes.

Capabilities (5)

pandadoc.documents.read v1.0.0R0

Action
read
Endpoint
GET https://api.pandadoc.com/public/v1/documents
Connector
http
Custody
customer_vault
Credential ref
secret-ref-pandadoc-api-credential
Data class
pii

List and search documents in the workspace: document names, statuses, recipients and metadata, which identify named individuals, so the read is registered at the pii class. The registered path covers the collection read only — single-document reads (GET /public/v1/documents/{id}/details) are not registered by this pack.

pandadoc.templates.read v1.0.0R0

Action
read
Endpoint
GET https://api.pandadoc.com/public/v1/templates
Connector
http
Custody
customer_vault
Credential ref
secret-ref-pandadoc-api-credential
Data class
internal

List templates in the workspace: template names, tags and versioning, which are internal authoring material. The registered path covers the collection read only — single-template reads (template details) are not registered by this pack.

pandadoc.contacts.read v1.0.0R0

Action
read
Endpoint
GET https://api.pandadoc.com/public/v1/contacts
Connector
http
Custody
customer_vault
Credential ref
secret-ref-pandadoc-api-credential
Data class
pii

List the contacts associated with the workspace: names, emails and company details of counterparties, which are personal data. The registered path covers the collection read only — single-contact reads (contact details) are not registered by this pack.

pandadoc.documents.create v1.0.0R2

Action
create
Endpoint
POST https://api.pandadoc.com/public/v1/documents
Connector
http
Custody
customer_vault
Credential ref
secret-ref-pandadoc-api-credential
Data class
pii

Create a document from a template or an uploaded file, naming recipients and pre-filling fields — recipient names and emails are personal data. Declared create at the R2 floor: creation brings a new document into existence, and PandaDoc documents that a created document remains in document.uploaded then document.draft status and is not delivered to anyone until the separate send endpoint is called, so creation alone is not a send.

pandadoc.documents.send v1.0.0R3

Action
send
Endpoint
POST https://api.pandadoc.com/public/v1/documents/DOCUMENT_ID/send
Connector
http
Custody
customer_vault
Credential ref
secret-ref-pandadoc-api-credential
Data class
pii

Send an existing draft document to its recipients. This operation sends a document that was created earlier (by this pack's create capability or otherwise); it does not create another document, so the declared action is send alone, at the R3 floor. PandaDoc documents that the send emails each recipient a link to view and sign the document (unless the silent parameter suppresses notifications for an alternative delivery channel), so the documented effect is transmission outside AAES's control — send is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer) and a sent document cannot be un-sent. PandaDoc documents that only a document in document.draft status can be sent. DOCUMENT_ID is a placeholder the deployment binds to a concrete document before enabling.

Credential reference

The pack names a reference, never a secret. Installing a pack registers capabilities and makes them governable; registration is not connectivity. The credential is created at the provider and held in the client's own secret manager under the reference the pack names, and deployment testing is still required to show the credential path works and cannot be bypassed.

Reference
secret-ref-pandadoc-api-credential
Custody
customer_vault
Injection
header (Authorization)

A PandaDoc OAuth 2.0 access token, held in the client's own secret manager. The stored material must be the complete Authorization header value: the scheme 'Bearer', one separating space, then the access token — 'Bearer <access_token>'. PandaDoc documents OAuth 2.0 as the recommended authentication method for all new integrations and the 'API-Key' header as a legacy method maintained for backwards compatibility with existing integrations. This pack registers only the OAuth credential: the official documentation retrieved for this review does not establish the API key's issuance, expiry or revocation contract, so the API-key option was removed rather than registered on an unresolved custody model — a deployment that wants the legacy key must complete that review itself. customer_vault is the only generally-supported production custody model here — identity_federation and customer_broker are refused at startup and inline is lab-only. Token lifecycle, per PandaDoc's Create/Refresh Access Token reference: the authorization code is one-time-use; the access token's expires_in is 31,535,999 seconds (one year) as currently documented — read expires_in rather than hard-coding a duration — and an expired token returns 401; the stored refresh_token is then exchanged for a new access token at POST /oauth2/access_token with grant_type=refresh_token. The client secret stays with the external process, which MUST own minting and refresh and write the fresh header value into the vault — the executor injects the stored value verbatim and performs no token lifecycle itself, and a stale value fails closed. The retrieved reference documents no token-revocation endpoint and no refresh-token rotation or lifetime semantics, so revocation and refresh-token expiry are unresolved vendor-side custody properties — one reason this pack stays draft; ending the integration's access is an account-side administrative action the deployment must confirm with PandaDoc. Least privilege: PandaDoc documents two scopes, 'read' (view templates and document details) and 'write' (create, send, delete and download documents), and documents 'read+write' as deprecated in favor of 'read write'. This pack needs 'read write' when the create and send capabilities are enabled — note that 'write' also authorizes document deletion, which this pack excludes; that residual breadth is a documented trade-off of the vendor's scope model, not an oversight. Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • pandadoc-documents (api, pii): https://api.pandadoc.com/public/v1/documents
  • pandadoc-templates (api, internal): https://api.pandadoc.com/public/v1/templates
  • pandadoc-contacts (api, pii): https://api.pandadoc.com/public/v1/contacts

Pack notes and exclusions

Every capability in this pack targets PandaDoc's real shared API host api.pandadoc.com, so no host substitution is required; the only placeholder is DOCUMENT_ID in the send path, an UPPERCASE path segment the deployment binds to a concrete document before enabling. This pack registers only endpoints verified against the official PandaDoc API reference at developers.pandadoc.com: listing documents, listing templates, listing contacts, creating a document, and sending a document. All reads are COLLECTION reads only — single-record paths (document details, template details, contact details) are not registered. Effect-level declaration: PandaDoc documents that sending a document emails the recipients a link to view and sign it, so document send is declared send at the R3 floor — send is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer), a sent document cannot be un-sent, and an irreversible action cannot be taken without a person. Document creation is declared create at the R2 floor: it brings a new document into existence but does not itself notify recipients — PandaDoc documents that a created document sits in document.uploaded and then document.draft status until a separate send call. Documented exclusions, framed as what this pack does not register: document update and document status change (PATCH, including voiding a sent document), document delete and bulk delete, document download and export, document recipient/field/section/attachment management, manual reminders (a further send surface), document ownership update and transfer-all-ownership (a transfer effect), template creation/update/duplication/deletion, content library items, forms, contact create/update/delete, catalog items and quotes, notary requests, webhook subscriptions, workspace/user/member administration, and API-key creation — a documented exclusion, not an approximated capability. Authentication: PandaDoc documents two methods, an Authorization: 'API-Key <key>' header (documented as legacy, maintained for backwards compatibility) and OAuth 2.0 bearer tokens (documented as recommended for all new integrations); see the credential note for what the stored value must be. This pack registers the OAuth method only: the retrieved documentation does not establish the legacy API key's issuance, expiry or revocation contract, so that credential option was removed (see the credential note).

Review record

Draft review record dated 2026-09-21 · Reviewer: aaes-eng (an opaque id that resolves internally to the responsible reviewer)

A pack review is not a vendor or examiner attestation. A retrieval date says when a source page was read; it does not by itself establish what the page said then. No pack is vendor-endorsed, and none has been connectivity-tested against a live vendor tenant.