Migrating to Envelopes
Why Documenso unified documents and templates into envelopes, and how to migrate from the deprecated document and template create endpoints.
Summary
The following items have been deprecated and will be removed on the 1st of March 2027:
- API V1
- A subset of SDK/API V2 endpoints
- Legacy documents and templates
- EmbedCreateDocumentV1
- EmbedCreateTemplateV1
- EmbedUpdateDocumentV1
- EmbedUpdateTemplateV1
The beta endpoint /api/v2-beta will also be removed. Use /api/v2 instead, which is a drop-in replacement.
Nothing breaks before 1st of March 2027, so you can migrate at your own pace.
What are legacy documents and templates
These are documents and templates created by the following endpoints:
POST /api/v2/document/createPOST /api/v2/document/create/betaPOST /api/v2/template/createPOST /api/v2/template/create/betaPOST /api/v1/documentsPOST /api/v1/templatesPOST /api/v1/templates/create-documentPOST /api/v1/templates/generate-document
What replaces legacy documents and templates
At the end of 2025 we introduced a unified system for documents and templates, called envelopes.
We still reference documents and templates throughout the documentation and application to distinguish them, but internally they are envelopes.
Moving to the envelope system gives you:
- Multiple PDFs in one envelope. Send several documents to sign in a single request.
- One API for documents and templates. Learn one set of endpoints instead of two misaligned ones.
- A better editor and signing experience for you and your recipients.
How to migrate
Switch to the envelope endpoints
Replace each deprecated endpoint with its /api/v2/envelope/* equivalent from the mapping tables below.
Set the envelope type on create
A single endpoint, POST /api/v2/envelope/create, can create both documents and templates. Set type to DOCUMENT or TEMPLATE. You can now upload more than one PDF using the files field.
Update how you store IDs
Envelope IDs are strings (for example envelope_abc123), not numbers. Update any code that stores, parses, or compares IDs.
Test, then remove the old calls
Verify the new flow against your account, then delete the deprecated calls.
The main data differences are as follows:
- ID format changed from number to string (e.g.
42toenvelope_abc123) - pageNumber becomes page
- pageX becomes positionX
- pageY becomes positionY
See the Documents API and Templates API for the full envelope reference.
Deprecated V1 API Endpoints
Full reference in the V1 OpenAPI reference.
| Deprecated endpoint | Replacement |
|---|---|
GET /api/v1/documents | GET /api/v2/envelope |
GET /api/v1/documents/{id} | GET /api/v2/envelope/{envelopeId} |
POST /api/v1/documents | POST /api/v2/envelope/create |
POST /api/v1/documents/{id}/send | POST /api/v2/envelope/distribute |
POST /api/v1/documents/{id}/resend | POST /api/v2/envelope/redistribute |
DELETE /api/v1/documents/{id} | POST /api/v2/envelope/delete |
GET /api/v1/documents/{id}/download | GET /api/v2/envelope/item/{envelopeItemId}/download |
POST /api/v1/documents/{id}/recipients | POST /api/v2/envelope/recipient/create-many |
PATCH /api/v1/documents/{id}/recipients/{recipientId} | POST /api/v2/envelope/recipient/update-many |
DELETE /api/v1/documents/{id}/recipients/{recipientId} | POST /api/v2/envelope/recipient/delete |
POST /api/v1/documents/{id}/fields | POST /api/v2/envelope/field/create-many |
PATCH /api/v1/documents/{id}/fields/{fieldId} | POST /api/v2/envelope/field/update-many |
DELETE /api/v1/documents/{id}/fields/{fieldId} | POST /api/v2/envelope/field/delete |
GET /api/v1/templates | GET /api/v2/envelope (with type=TEMPLATE) |
GET /api/v1/templates/{id} | GET /api/v2/envelope/{envelopeId} |
POST /api/v1/templates | POST /api/v2/envelope/create (type=TEMPLATE) |
DELETE /api/v1/templates/{id} | POST /api/v2/envelope/delete |
POST /api/v1/templates/{templateId}/create-document | POST /api/v2/envelope/use |
POST /api/v1/templates/{templateId}/generate-document | POST /api/v2/envelope/use |
Deprecated V2 API Endpoints
Full reference in the V2 OpenAPI reference.
Documents
| Deprecated endpoint | Replacement |
|---|---|
GET /api/v2/document | GET /api/v2/envelope |
GET /api/v2/document/{documentId} | GET /api/v2/envelope/{envelopeId} |
POST /api/v2/document/get-many | POST /api/v2/envelope/get-many |
POST /api/v2/document/create | POST /api/v2/envelope/create |
POST /api/v2/document/create/beta | POST /api/v2/envelope/create |
POST /api/v2/document/update | POST /api/v2/envelope/update |
POST /api/v2/document/delete | POST /api/v2/envelope/delete |
POST /api/v2/document/duplicate | POST /api/v2/envelope/duplicate |
POST /api/v2/document/distribute | POST /api/v2/envelope/distribute |
POST /api/v2/document/redistribute | POST /api/v2/envelope/redistribute |
GET /api/v2/document/attachment | GET /api/v2/envelope/attachment |
POST /api/v2/document/attachment/create | POST /api/v2/envelope/attachment/create |
POST /api/v2/document/attachment/update | POST /api/v2/envelope/attachment/update |
POST /api/v2/document/attachment/delete | POST /api/v2/envelope/attachment/delete |
GET /api/v2/document/{documentId}/download | GET /api/v2/envelope/item/{envelopeItemId}/download |
GET /api/v2/document/{documentId}/download-beta | GET /api/v2/envelope/item/{envelopeItemId}/download |
Templates
| Deprecated endpoint | Replacement |
|---|---|
GET /api/v2/template | GET /api/v2/envelope (with type=TEMPLATE) |
GET /api/v2/template/{templateId} | GET /api/v2/envelope/{envelopeId} |
POST /api/v2/template/get-many | POST /api/v2/envelope/get-many |
POST /api/v2/template/create | POST /api/v2/envelope/create (type=TEMPLATE) |
POST /api/v2/template/create/beta | POST /api/v2/envelope/create (type=TEMPLATE) |
POST /api/v2/template/update | POST /api/v2/envelope/update |
POST /api/v2/template/duplicate | POST /api/v2/envelope/duplicate |
POST /api/v2/template/delete | POST /api/v2/envelope/delete |
POST /api/v2/template/use | POST /api/v2/envelope/use |
POST /api/v2/template/direct/create | Pending replacement |
POST /api/v2/template/direct/delete | Pending replacement |
POST /api/v2/template/direct/toggle | Pending replacement |
Document fields
| Deprecated endpoint | Replacement |
|---|---|
GET /api/v2/document/field/{fieldId} | GET /api/v2/envelope/field/{fieldId} |
POST /api/v2/document/field/create | POST /api/v2/envelope/field/create-many |
POST /api/v2/document/field/create-many | POST /api/v2/envelope/field/create-many |
POST /api/v2/document/field/update | POST /api/v2/envelope/field/update-many |
POST /api/v2/document/field/update-many | POST /api/v2/envelope/field/update-many |
POST /api/v2/document/field/delete | POST /api/v2/envelope/field/delete |
Template fields
| Deprecated endpoint | Replacement |
|---|---|
GET /api/v2/template/field/{fieldId} | GET /api/v2/envelope/field/{fieldId} |
POST /api/v2/template/field/create | POST /api/v2/envelope/field/create-many |
POST /api/v2/template/field/create-many | POST /api/v2/envelope/field/create-many |
POST /api/v2/template/field/update | POST /api/v2/envelope/field/update-many |
POST /api/v2/template/field/update-many | POST /api/v2/envelope/field/update-many |
POST /api/v2/template/field/delete | POST /api/v2/envelope/field/delete |
Document recipients
| Deprecated endpoint | Replacement |
|---|---|
GET /api/v2/document/recipient/{recipientId} | GET /api/v2/envelope/recipient/{recipientId} |
POST /api/v2/document/recipient/create | POST /api/v2/envelope/recipient/create-many |
POST /api/v2/document/recipient/create-many | POST /api/v2/envelope/recipient/create-many |
POST /api/v2/document/recipient/update | POST /api/v2/envelope/recipient/update-many |
POST /api/v2/document/recipient/update-many | POST /api/v2/envelope/recipient/update-many |
POST /api/v2/document/recipient/delete | POST /api/v2/envelope/recipient/delete |
Template recipients
| Deprecated endpoint | Replacement |
|---|---|
GET /api/v2/template/recipient/{recipientId} | GET /api/v2/envelope/recipient/{recipientId} |
POST /api/v2/template/recipient/create | POST /api/v2/envelope/recipient/create-many |
POST /api/v2/template/recipient/create-many | POST /api/v2/envelope/recipient/create-many |
POST /api/v2/template/recipient/update | POST /api/v2/envelope/recipient/update-many |
POST /api/v2/template/recipient/update-many | POST /api/v2/envelope/recipient/update-many |
POST /api/v2/template/recipient/delete | POST /api/v2/envelope/recipient/delete |
Embedding components
| Deprecated component | Replacement |
|---|---|
EmbedCreateDocumentV1 | EmbedCreateEnvelope |
EmbedCreateTemplateV1 | EmbedCreateEnvelope |
EmbedUpdateDocumentV1 | EmbedUpdateEnvelope |
EmbedUpdateTemplateV1 | EmbedUpdateEnvelope |
See the embedding guide for the envelope components.
FAQ
Getting help
- V2 OpenAPI reference: the up-to-date envelope API.
- V1 OpenAPI reference: the deprecated V1 API.
- support@documenso.com: migration questions and extensions.
See also
- Documents API: create and manage envelopes
- Templates API: work with templates and direct links
- Fields API and Recipients API
- API Versioning: how Documenso versions the public API