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:
- Call List Templates and choose a
template_id. - Build a request with
mode,messageandtemplatescontaining the template and its signers. - Call Create Signature Request with an idempotency key.
- Store the returned
package_idandpackage_guid.
2. Associate an internal order
Use external_id to connect the request to a record in your own system:
"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:
"metadata": { "crm_id": "003AJ00000KxA", "order_number": "ORD-99281", "department": "Home Loans" }
4. Track completion
Track progress without polling aggressively:
- Retrieve status at meaningful checkpoints (for example after sending and at scheduled intervals).
- Prefer webhooks for event-driven tracking and react when signing activity occurs.
- Use
overall_statusand per-signersigner_statusto drive your UI.
5. Send multiple templates in one request
Create a request that includes several templates, listing the signers for each:
"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):
"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:
"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.