Define your NDA, employment contract, or lease once — with signer roles and pre-placed fields. Then send it to any signer with a single API call, no re-upload, no coordinate math.
Upload your PDF once, place fields visually or via API, define signer roles. Get back a template_id.
POST /v1/envelopes with your template_id and the actual signers for each role. Fields are pre-placed.
Call /send — signing links are dispatched. Track via signer.signed and envelope.completed webhooks.
Store the PDF and field layout in a template. Each signing request references the template ID instead of uploading the document again — saving bandwidth and eliminating re-configuration per envelope.
Field positions (page, x, y, width, height) are stored in the template. When you create an envelope from a template, the fields are already correctly placed — your API call only needs to supply the signer details.
Templates define signer roles (e.g., "Tenant", "Landlord") rather than specific people. When you instantiate an envelope, you fill each role with the actual signer's name and email for that transaction.
Every envelope created from the same template starts from the same original PDF hash. Any future dispute about the document's content starts from a known, verifiable baseline.
An e-signature template API lets you define a document once — uploading the PDF, placing signature and form fields, and defining signer roles — then reuse that definition for multiple signing requests. When you create an envelope from a template, you supply the actual signers for each role; the document and field layout are already in place. This eliminates repeated PDF uploads and field configuration for recurring document types like NDAs, employment contracts, or lease agreements.
Use a template when you send the same document type repeatedly, with the same field layout, and only the signers change per request. Use a one-off envelope when the document content or field positions vary per transaction — for example, a dynamically generated contract with customer-specific terms.
Yes. When instantiating an envelope from a template, you can supply pre-fill values for text, date, and checkbox fields alongside the signer assignments. This is useful for populating known values (customer name, effective date) before sending — reducing what the signer needs to type.
POST your PDF and field definitions to /v1/templates, declaring signer roles instead of specific signers. The API returns a template_id. To send a document from that template, POST to /v1/envelopes with the template_id and the actual signer assignments for each role. The envelope is created with the template's PDF and field layout pre-applied.
Both. The template stores the original PDF and its SHA-256 hash as the authoritative baseline. Each envelope created from the template references that baseline — the audit trail records both the template_id and the document hash, so the provenance of every signed document is traceable to the original template.
Related: Integration guide · Multi-signer routing · Embedded signing