Undersign
v1.1
Create Free Account
API Reference SDKs & Examples · Integration Examples
SDKs & Examples

Integration Examples

Ready-to-adapt recipes for common workflows. Each recipe maps to the documented endpoints and field names.

1. Send a template for signature

Retrieve a template, provide signers, and create the request:

  1. Call List Templates and choose a template_id.
  2. Build a request with mode, message and templates containing the template and its signers.
  3. Call Create Signature Request with an idempotency key.
  4. Store the returned package_id and package_guid.

2. Associate an internal order

Use external_id to connect the request to a record in your own system:

JSON
"external_id": "ORDER-99281"

When you later call Get Signature Request Status, data.external_id lets you match the request back to your order. See External IDs & Metadata.

3. Add application context with metadata

Include extra context with metadata, for example a CRM ID, order number or department:

JSON
"metadata": {
  "crm_id": "003AJ00000KxA",
  "order_number": "ORD-99281",
  "department": "Home Loans"
}

4. Track completion

Track progress without polling aggressively:

5. Send multiple templates in one request

Create a request that includes several templates, listing the signers for each:

JSON
"templates": [
  {
    "template_id": "<template-uuid-1>",
    "signers": [
      { "name": "John Doe", "email": "<signer-email-1>" },
      { "name": "Jane Smith", "email": "<signer-email-2>" }
    ]
  },
  {
    "template_id": "<template-uuid-2>",
    "signers": [
      { "name": "John Doe", "email": "<signer-email-1>" }
    ]
  }
]

6. Send one template to many recipients

For bulk distribution, use a single batch instead of looping single creates (max 100 recipient sets per batch):

JSON
"templates": ["<template-uuid>"],
"requests": [
  { "signers": [{ "name": "Signer One", "email": "signer1@example.com" }] },
  { "signers": [{ "name": "Signer Two", "email": "signer2@example.com" }] }
]

Store the returned bulk_batch_guid and track each package_guid via status. See Create Bulk Request.

7. Collect signatures via a public link

For open distribution, create a public link once and share the URL or QR code instead of sending per-recipient requests:

JSON
"link_name": "Vendor Intake Form",
"templates": ["<template-uuid>"],
"expiry_type": "30_days",
"submission_limit": 50

Monitor submissions (name, identity, IP, package) via Public Link Details. See Create Public Link.