API reference
Use Signa from backend systems with API keys, templates, submissions, submitters, attachments, webhooks, verification tools, and embedded signing packages.
Exhaustive OpenAPI
Use Swagger for every field
Authentication
Create an API key in Settings > API and send it as X-Auth-Token. Keys inherit the active account/team scope. Store keys server-side, rotate them when team access changes, and never expose them in browser or mobile clients.
curl https://signa.example.com/api/templates \
-H "X-Auth-Token: {token}"{
"statusCode": 401,
"message": "Unauthorized",
"requestId": "9df2e9b5-4f08-4bd1-bc3e-eab7f7d05f9a"
}Pagination
List endpoints accept limit and filter parameters where supported. Responses include pagination metadata when the endpoint returns a collection.
Errors
Errors include request IDs so API consumers can match user-facing failures with backend logs and webhook delivery logs.
Production workflow
- 1
Create a template in the console or with /api/templates/pdf.
- 2
Create a submission with roles, submitters, values, metadata, and delivery flags.
- 3
Open the returned /s/{submitterSlug} in hosted, React, or React Native signing.
- 4
Listen for submission.completed webhooks and verify the HMAC signature.
- 5
Download final documents and audit logs from the submission documents endpoint.
- 6
Verify PDFs when your workflow needs cryptographic trust-chain reporting.
Templates
Templates store source documents, generated preview pages, signer roles, field schema, folder placement, preferences, and version history.
Templates model
- Name
id- Type
- string
- Description
- Unique template identifier.
- Name
slug- Type
- string
- Description
- Public shared-link slug when enabled.
- Name
name- Type
- string
- Description
- Human-readable template name.
- Name
schema- Type
- array
- Description
- Documents and generated page schema.
- Name
fields- Type
- array
- Description
- Signer fields with type, role, page, and coordinates.
- Name
submitters- Type
- array
- Description
- Roles configured for the template.
- Name
preferences- Type
- object
- Description
- Template-level signing and delivery settings.
- Name
archived_at- Type
- timestamp
- Description
- Set when the template is archived.
List templates
List templates visible to the authenticated account or team.
- Name
limit- Type
- integer
- Description
- Maximum templates to return, up to 100.
- Name
folder- Type
- string
- Description
- Filter templates by folder name or path.
- Name
archived- Type
- boolean
- Description
- Include or filter archived templates.
- Name
q- Type
- string
- Description
- Search template names.
- Name
after- Type
- string
- Description
- Cursor for the next page.
- Name
before- Type
- string
- Description
- Cursor for the previous page.
Get a template
Retrieve a template with signer roles, fields, schema, preferences, author, and source-document URLs.
- Name
id- Type
- string
- required
- Description
- Template identifier.
Create template from PDF
Create a fillable template from PDF files. Embedded {{field}} text tags are detected where possible.
- Name
name- Type
- string
- required
- Description
- Template name shown in the console.
- Name
documents- Type
- file[]
- required
- Description
- One or more PDF documents.
- Name
folder_name- Type
- string
- Description
- Folder name. Defaults to Default.
- Name
external_id- Type
- string
- Description
- Your app's idempotent template key.
- Name
shared_link- Type
- boolean
- Description
- Enable public /d/{slug} usage.
Create template from DOCX
Create a template from DOCX. Use [[variables]] for generated document text and {{fields}} for signer inputs.
- Name
name- Type
- string
- required
- Description
- Template name shown in the console.
- Name
document- Type
- file
- required
- Description
- DOCX template file.
- Name
folder_name- Type
- string
- Description
- Folder name. Defaults to Default.
- Name
variables- Type
- object
- Description
- Optional DOCX variable defaults.
Update a template
Update template metadata, roles, fields, schema, preferences, folder placement, or shared-link availability.
- Name
name- Type
- string
- Description
- New template display name.
- Name
folder_name- Type
- string
- Description
- Move the template to this folder.
- Name
shared_link- Type
- boolean
- Description
- Enable or disable its public start form.
- Name
roles- Type
- string[]
- Description
- Ordered signer role names.
- Name
fields- Type
- array
- Description
- Complete field schema with page areas.
- Name
preferences- Type
- object
- Description
- Signing, expiry, and delivery preferences.
- Name
archived- Type
- boolean
- Description
- Archive or restore the template.
Clone a template
Clone the template documents, preview attachments, roles, fields, schema, and preferences.
- Name
name- Type
- string
- Description
- Name for the cloned template.
- Name
folder_name- Type
- string
- Description
- Destination folder.
- Name
external_id- Type
- string
- Description
- Your application correlation key.
Archive or delete a template
Archive a template by default. Permanent deletion is intended for controlled cleanup and cannot be undone.
- Name
permanently- Type
- boolean
- Description
- Hard-delete instead of archiving. Defaults to false.
Submissions
Submissions are signature requests. They can be created from templates or directly from PDF, DOCX, or HTML for one-off API workflows.
Submissions model
- Name
id- Type
- string
- Description
- Unique submission identifier.
- Name
slug- Type
- string
- Description
- Submission route slug.
- Name
source- Type
- string
- Description
- invite, bulk, api, embed, link, pdf, docx, or html.
- Name
status- Type
- string
- Description
- pending, completed, declined, or expired.
- Name
submitters- Type
- array
- Description
- Recipients and their signing status/links.
- Name
audit_log_url- Type
- string
- Description
- Audit trail PDF URL.
- Name
combined_document_url- Type
- string
- Description
- Final merged completed document URL.
- Name
metadata- Type
- object
- Description
- Caller-supplied correlation data.
List submissions
List submissions and their recipient progress for the authenticated account.
- Name
template_id- Type
- string
- Description
- Filter submissions by template.
- Name
status- Type
- string
- Description
- pending, completed, declined, or expired.
- Name
email- Type
- string
- Description
- Filter by submitter email.
- Name
include- Type
- string
- Description
- Optional related data such as fields.
Get a submission
Retrieve one request with its recipients, document URLs, audit URL, metadata, and current status.
- Name
id- Type
- string
- required
- Description
- Submission identifier.
- Name
include- Type
- string
- Description
- Optional related data such as fields.
Create submission from template
Create a signature request from an existing template. This is the primary API path for production apps.
- Name
template_id- Type
- string
- required
- Description
- Template used to create the request.
- Name
submitters- Type
- array
- required
- Description
- Recipients with role, email, phone, and values.
- Name
send_email- Type
- boolean
- Description
- Queue signature request emails.
- Name
send_sms- Type
- boolean
- Description
- Queue SMS signing links.
- Name
submitters_order- Type
- string
- Description
- preserved or random.
- Name
auto_sign_owner- Type
- boolean
- Description
- Auto-complete the configured owner role.
- Name
metadata- Type
- object
- Description
- Your app's correlation data.
Create submission from PDF
Create a one-off signing request from a PDF without saving a reusable template first.
- Name
name- Type
- string
- required
- Description
- Submission name.
- Name
document- Type
- file
- required
- Description
- PDF file for one-off signing.
- Name
submitters- Type
- array
- required
- Description
- Recipients and roles.
- Name
fields- Type
- array
- Description
- Optional explicit field coordinates.
- Name
send_email- Type
- boolean
- Description
- Queue signature request emails.
Create submission from HTML
Render HTML into temporary signing PDFs and create a one-off signature request. Place Signa field tags directly in the HTML.
- Name
documents- Type
- array
- required
- Description
- HTML documents with optional headers and footers.
- Name
submitters- Type
- array
- required
- Description
- Recipients matching roles used by HTML field tags.
- Name
send_email- Type
- boolean
- Description
- Queue signature request emails.
- Name
template_ids- Type
- string[]
- Description
- Optional existing templates to append.
Create submission from DOCX
Expand DOCX variables, render the result to PDF, and create recipients without first saving a reusable template.
- Name
documents- Type
- array
- required
- Description
- DOCX name/file entries using base64, data URL, or URL.
- Name
submitters- Type
- array
- required
- Description
- Recipients and roles.
- Name
variables- Type
- object
- Description
- Values for [[variable_name]] placeholders.
- Name
merge_documents- Type
- boolean
- Description
- Combine rendered DOCX documents before signing.
- Name
send_email- Type
- boolean
- Description
- Queue signature request emails.
Get submission documents
Download partially filled documents or final signed documents once the submission is complete.
- Name
id- Type
- string
- required
- Description
- Submission identifier.
- Name
merge- Type
- boolean
- Description
- Return one combined PDF when available.
Archive or delete a submission
Archive a request by default. Use permanent deletion only when your retention policy permits it.
- Name
permanently- Type
- boolean
- Description
- Hard-delete instead of archiving. Defaults to false.
Submitters
Submitters represent each signer. Update submitters to prefill values, resend delivery, mark owner auto-sign flows, or inspect signing links.
Submitters model
- Name
id- Type
- string
- Description
- Unique submitter identifier.
- Name
submission_id- Type
- string
- Description
- Parent submission identifier.
- Name
email- Type
- string
- Description
- Signer email address.
- Name
phone- Type
- string
- Description
- Signer phone number.
- Name
role- Type
- string
- Description
- Template role assigned to the signer.
- Name
slug- Type
- string
- Description
- Public signer route slug.
- Name
url- Type
- string
- Description
- Public signing URL.
- Name
values- Type
- array
- Description
- Prefilled or completed field values.
List submitters
List recipients across requests for reconciliation, completion reporting, or integration polling.
- Name
submission_id- Type
- string
- Description
- Filter by parent submission.
- Name
template_id- Type
- string
- Description
- Filter by source template.
- Name
q- Type
- string
- Description
- Search recipient name or email.
- Name
completed_after- Type
- timestamp
- Description
- Return recipients completed after this time.
- Name
completed_before- Type
- timestamp
- Description
- Return recipients completed before this time.
- Name
limit- Type
- integer
- Description
- Maximum records to return, up to 100.
- Name
after- Type
- string
- Description
- Cursor for the next page.
Get submitter
Retrieve a submitter with signing URL, values, documents, and status.
- Name
id- Type
- string
- required
- Description
- Submitter identifier.
Update submitter
Update recipient identity, prefilled values, delivery flags, or auto-sign completion state.
- Name
email- Type
- string
- Description
- Updated signer email.
- Name
phone- Type
- string
- Description
- E.164 phone number.
- Name
values- Type
- object
- Description
- Field values keyed by field name.
- Name
readonly_fields- Type
- array
- Description
- Field names the signer cannot edit.
- Name
send_email- Type
- boolean
- Description
- Resend email after updating.
- Name
completed- Type
- boolean
- Description
- Mark submitter completed for allowed auto-sign flows.
Attachments
The public attachment endpoint uploads file, image, and signature values for a specific signer. Template source files and completed documents are returned through their template or submission endpoints.
Attachments model
- Name
uuid- Type
- string
- Description
- Stable storage UUID used by template schema.
- Name
filename- Type
- string
- Description
- Original or generated file name.
- Name
content_type- Type
- string
- Description
- Detected MIME type.
- Name
url- Type
- string
- Description
- Time-limited or authorized storage URL.
- Name
created_at- Type
- timestamp
- Description
- Stored object timestamp.
Upload a signer attachment
Upload a value for a signer attachment field. The returned UUID can be supplied as that field's value. The signer slug authorizes and scopes the upload.
- Name
file- Type
- file
- required
- Description
- Supported file, image, or signature value.
- Name
submitter_slug- Type
- string
- required
- Description
- Signer slug from the submission response.
- Name
type- Type
- string
- Description
- Attachment purpose, such as signature, image, or file.
Tools
Tools support PDF merge and verification workflows for completed documents and imported third-party signed PDFs.
Tools model
- Name
checksum_status- Type
- string
- Description
- verified when the PDF matches a completed Signa document.
- Name
cryptographic_verification- Type
- boolean
- Description
- True when at least one CMS signature validates.
- Name
byte_range_valid- Type
- boolean
- Description
- PDF ByteRange structural validation result.
- Name
cms_signature_valid- Type
- boolean | null
- Description
- CMS signature validation result.
- Name
certificate_chain_status- Type
- string
- Description
- trusted, external, expired, invalid, or missing.
- Name
signer_name- Type
- string | null
- Description
- Signer name embedded in the signature dictionary.
- Name
signature_type- Type
- string | null
- Description
- PDF signature SubFilter such as ETSI.CAdES.detached.
- Name
signing_time- Type
- timestamp | null
- Description
- Signing time embedded in the PDF.
- Name
revocation_status- Type
- string
- Description
- good, missing, revoked, unavailable, or unknown.
- Name
ltv_status- Type
- string
- Description
- valid, missing, or invalid.
Merge PDFs
Merge multiple PDF files into one document while preserving page order.
- Name
files- Type
- base64[]
- required
- Description
- At least two base64-encoded PDFs in merge order.
Verify signed PDF
Verify Signa or third-party PDF signatures. Results include byte range integrity, signer, timestamp, trust chain, and LTV evidence status.
- Name
file- Type
- file
- required
- Description
- Signed PDF to verify.