Verdocs - Developer Documentation

Send an envelope without a template

Walk through the process of creating and sending an envelope when you already have a PDF (or DOCX) and do not want to create a Verdocs `Template` first.

Goal: Create and send a signing envelope when you already have a PDF (or DOCX) and do not want to create a Verdocs template first.

Who this is for: Backend engineers automating one-off agreements, generated documents, or workflows where the PDF is produced by your own system.

What you will use: The same Create Envelope capability you use with templates—omit template_id and supply the document another way. Official parameters and edge cases always live in the Create Envelope REST reference and the JS/TS SDK if you call Verdocs from Node or the browser.


When this pattern fits

Use this approach when:

  • Your app already has the final (or near-final) PDF, or a DOCX you convert through Verdocs-supported upload paths.
  • You do not need a reusable template in the Verdocs UI for this document family.
  • You are comfortable defining recipients (and optional fields) in the create request, or relying on tags inside the PDF for field placement.

If you send the same agreement shape repeatedly and non-technical users edit it in Verdocs, a template-based workflow is usually the better fit.


Prerequisites

1. Organization automation identity

A profile and API key (or OAuth client credentials) your server uses to call Verdocs, scoped to the correct organization.

If API results seem inconsistent between environments or users, review the “Understanding Profiles” guide.

2. Authentication

Obtain a bearer access token using your existing authentication flow.

3. A document

Typically a PDF, or a DOCX Verdocs can convert during upload.

Check the Create Envelope reference for supported MIME types, filename expectations, and account-specific limits.


The idea in one sentence

If you do not send template_id, you must send a name and at least one entry in documents.

Recipients are still required, just like any other envelope workflow. Verdocs creates the envelope, attaches your file(s), wires recipients, and derives fields from your request and/or PDF tags—without creating a saved template record first.


Step 1 — Shape the JSON body

Core fields

FieldRequired without template?Notes
nameYesEnvelope title users see in the UI.
template_idNoOmit it entirely for this workflow.
documentsYesArray of uploaded or referenced documents.
recipientsYesAt least one signer or participant. Recipient email addresses must be unique within the envelope.
fieldsUsually optionalInclude if you place fields via API instead of PDF tags.
no_contactOptionalSet to true if your app—not Verdocs—delivers signing links.

Optional envelope-level settings such as reminders, expiration, or visibility are documented in the Create Envelope reference.


Step 2 — Attach the PDF (or DOCX)

Each entry in documents supplies a file using one of the supported methods.

Option 1: Base64 data

Provide:

  • data
  • mime
  • name

This is the easiest option for scripts and server-generated PDFs, but large files can increase request size significantly.

Option 2: HTTPS URI

Provide:

  • uri
  • name

Verdocs fetches the file from your HTTPS endpoint or signed CDN URL. HTTP URLs are rejected.

Option 3: Multipart upload

Some integrations upload files as multipart form data alongside the JSON payload. Use the exact field names and request structure documented for your SDK or REST version.

DOCX conversion

If you upload a DOCX, Verdocs converts it to PDF during ingestion. Always verify supported MIME types and conversion behavior in the latest API reference.

Multiple documents

If the envelope contains multiple files, set order on each document to keep rendering and signing behavior deterministic.


Step 3 — Define recipients

Recipients should include the fields your workflow expects, typically:

  • role_name
  • type
  • first_name
  • last_name
  • email

Use sequence (or order, depending on API version) to control routing order for multiple signers.

If you plan to use KBA, passcodes, or other verification methods, additional authentication fields may be required. For a first integration, it is usually easier to validate the basic signing flow before enabling advanced recipient authentication.


Step 4 — Call Create Envelope

Request basics

  • Method: POST
  • Authentication: Authorization: Bearer <access_token>
  • Content type: application/json for JSON-only requests

Example request shape (base64 upload)

{
  "name": "Order form — Acme Corp",
  "no_contact": false,
  "documents": [
    {
      "name": "OrderForm.pdf",
      "mime": "application/pdf",
      "data": "<base64-encoded PDF bytes>",
      "order": 1
    }
  ],
  "recipients": [
    {
      "role_name": "Customer",
      "type": "signer",
      "first_name": "Jane",
      "last_name": "Signer",
      "email": "jane.signer@example.com",
      "sequence": 1
    }
  ]
}

Example request shape (HTTPS URL)

{
  "name": "Order form — Acme Corp",
  "documents": [
    {
      "name": "OrderForm.pdf",
      "uri": "https://cdn.example.com/contracts/abc123.pdf",
      "order": 1
    }
  ],
  "recipients": [
    {
      "role_name": "Customer",
      "type": "signer",
      "first_name": "Jane",
      "last_name": "Signer",
      "email": "jane.signer@example.com",
      "sequence": 1
    }
  ]
}

On success, Verdocs returns an envelope object your integration can persist, typically including at least the envelope id and current status.


Step 5 — What happens next

After creation:

  • Verdocs processes uploads asynchronously (conversion, previews, tag detection, and field extraction).
  • Your integration can either:
    • poll Get Envelope Details until the envelope is ready, or
    • subscribe to webhooks for lifecycle updates.

Contact behavior

If no_contact is false, Verdocs sends recipient invitations automatically according to product workflow rules.

If no_contact is true, your application is responsible for retrieving and delivering signing links or starting signing sessions directly.


Troubleshooting

SymptomThings to check
400 on createMissing name or documents; duplicate recipient emails; invalid expiration values.
Rejected uriURL must use HTTPS and be reachable from Verdocs infrastructure.
“Recipient missing first/last”Each recipient requires first_name and last_name.
Fields missingEither provide fields explicitly or include valid PDF tags.

In Summary

To send an envelope without a template:

  1. Omit template_id
  2. Provide name
  3. Attach one or more documents
  4. Include recipients

The result is the same envelope workflow used by template-based sends—without maintaining a reusable template in Verdocs first.

Primary Links: Create Envelope · Get envelope details · Tagging Dynamic Documents · Understanding Profiles

On this page