Templates

Define signer slots and field positions once, then reuse them.

POST /v1/templates

A template captures the reusable shape of a signing request — its signer slots, field positions, and field types — so you can spawn signing requests from it without re-sending coordinates each time.

Creating a template

Terminal window
curl -X POST https://your-nosign-host/v1/templates \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Service contract",
"signers": [
{ "slot": "customer", "fields": [
{ "page": 1, "x": 72, "y": 640, "w": 180, "h": 48, "type": "signature", "required": true },
{ "page": 1, "x": 72, "y": 560, "w": 240, "h": 24, "type": "text", "label": "Job title" }
] }
]
}'

Field names are illustrative. Verify against your NoSign instance’s API.

Versioned and immutable per request

Templates are versioned. When you create a signing request from a template, NoSign snapshots the fields at ingestion and records the request against a specific template_id and template_version.

This means editing or retiring a template never alters requests already in flight — each request keeps the exact field definitions it was created with. The provenance chain (template_id + template_version) stays intact for the audit trail.

Using a template

Reference the template when creating a signing request instead of inlining coordinates — you supply only the per-signer identities and any per-request values:

{
"template_id": "tpl_3a9",
"callback_url": "https://your-app.com/webhooks/nosign",
"signers": [
{ "slot": "customer", "name": "Ada Lovelace", "email": "ada@example.com" }
]
}

See Create a signing request for the full request shape.

Deletion is a soft-deactivate

Deleting a template is a soft-deactivate, not a hard delete: the template stops accepting new signing requests, but its versioned definitions are retained so the provenance of past requests remains verifiable.