---
title: Unified E-Signature API — Truto Unified API
slug: e-signature
canonical: "https://truto.one/unified-apis/e-signature/"
---

# Electronic Signatures Unified API

Integrate Electronic Signatures data across 5 providers with one API. 14 normalized resources, real-time pass-through, fully customizable.

**Base URL:** `https://api.truto.one/unified/e-signature`  
**Resources:** 14  
**Integrations:** 5

## Resources

### Collections

 (8 fields)

- `id` (string) — The unique identifier for the collection
- `name` (string) — The name of the collection
- `description` (string) — The description of the collection
- `type` (string) — The type of the collection
- `parent` (object) — The parent of the collection
- `urls` (array) — The urls of the collection
- `created_at` (string) — The date and time the collection was created
- `updated_at` (string) — The date and time the collection was last updated

### Contacts

 (13 fields)

- `id` (string) — The contact's unique identifier
- `first_name` (string) — The contact's first name
- `last_name` (string) — The contact's last name
- `name` (string) — The contact's full name
- `title` (string) — The contact's job title
- `account` (object) — The contact's account
- `addresses` (array) — 
- `email_addresses` (array) — 
- `phone_numbers` (array) — 
- `tags` (array) — The contact's tags
- `last_activity_at` (string) — The date and time of the contact's last activity
- `created_at` (string) — The date and time of the contact's creation
- `updated_at` (string) — The date and time of the contact's last update

### Document Fields

 (10 fields)

- `id` (string) — The unique identifier for the document field
- `label` (string) — Human readable name for the field
- `type` (string) — The type of the field
- `is_read_only` (boolean) — Specifies if the field can be edited by the participants
- `is_required` (boolean) — Specifies if the field is required to be filled by the participants to complete the signing request
- `document` (object) — The document on which the field is found
- `signing_request` (object) — The signing request on which the field is found
- `participant` (object) — The participant who needs to fill this field
- `created_at` (string) — The date and time when the document field was created
- `updated_at` (string) — The date and time when the document field was updated

### Documents

The Document object is used to represent documents of e-signature. (10 fields)

- `id` (string) — The unique identifier of the document.
- `name` (string) — The name of the document.
- `signing_request` (object) — The signing request associated with the document
- `urls` (array) — The urls of the document
- `created_by` (object) — The user who created the document.
- `status` (string) — The status of the document.
- `scope` (string) — The scope of the document.
- `created_at` (string) — The date and time when the document was created.
- `updated_at` (string) — The date and time when the document was last updated.
- `last_activity_at` (string) — The date and time when the document was last updated.

### Field Groups

Represents a group of fields in an E-Signature. (8 fields)

- `id` (string) — The field group's unique identifier
- `name` (string) — The field group's name. Used in other resources to reference the field group.
- `label` (string) — The field group's descriptive label
- `description` (string) — The field group's description
- `entity_type` (string) — The entity type the field group belongs to
- `status` (string) — The field group's status
- `created_at` (string) — The date and time of the field group's creation
- `updated_at` (string) — The date and time of the field group's last update

### Fields

Fields represent the attributes defined for various entities in the underlying product. Depending on the underlying product, custom attributes can be defined by a User on various entities like Template, Workflow, etc. is_user_defined attribute within Field can be used to differentiate between custom and system defined Fields. (16 fields)

- `id` (string) — The field's unique identifier
- `name` (string) — The field's name. This is the name of the property in the entity.
- `label` (string) — The field's label
- `description` (string) — The field's description
- `type` (string) — The field's type
- `is_hidden` (boolean) — Whether the field is hidden
- `is_unique` (boolean) — Whether the field is unique
- `is_required` (boolean) — Whether the field is required
- `is_editable` (boolean) — Whether the field is editable
- `options` (array) — The field's options
- `is_user_defined` (boolean) — Whether the field is user defined
- `entity_type` (string) — The entity type the field belongs to
- `field_groups` (array) — 
- `created_at` (string) — The date and time of the field's creation
- `updated_at` (string) — The date and time of the field's last update
- `urls` (array) — The field's urls

### Groups

The Group object is used to represent collection of Users. (5 fields)

- `id` (string) — The unique identifier of the group.
- `name` (string) — The name of the group.
- `type` (string) — The type of the group.
- `created_at` (string) — The date and time when the group was created.
- `updated_at` (string) — The date and time when the group was last updated.

### Signing Request Statuses

Signing requests go through various stages and each stage is denoted by this resource. Most of the e-signing products have a set state of statuses like draft, sent, created, etc. (4 fields)

- `id` (string) — The unique identifier for the status
- `name` (string) — Human readable name of the status
- `created_at` (string) — The date and time when the status was created.
- `updated_at` (string) — The date and time when the status was last updated.

### Signing Requests

The Signing Request object is used to represent signing requests sent. (14 fields)

- `id` (string) — The unique identifier of the signing request.
- `name` (string) — The name of the signing request. This is usually the email subject that goes as part of the signing request.
- `description` (string) — Human readable description of the signing request. This is usually the email body that goes as part of the signing request.
- `type` (string) — The type of the signing request.
- `status` (object) — The status of the signing request.
- `cancellation_reason` (string) — If the signing request is voided or cancelled, the reason is specified here.
- `collections` (array) — The collections of the signing request.
- `groups` (array) — The groups of the signing request.
- `participants` (array) — The participants of the signing request.
- `urls` (array) — The urls of the signing_request
- `created_at` (string) — The date and time when the signing request was created.
- `updated_at` (string) — The date and time when the signing request was last updated.
- `last_activity_at` (string) — The date and time when the signing request was last updated.
- `expires_at` (string) — The date and time when the signing request expires.

### Stages

The stages represent a stage of an opportunity in a workflow. (5 fields)

- `id` (string) — The stage's unique identifier
- `name` (string) — The stage's name
- `status` (string) — The status of the stage
- `created_at` (string) — The date and time of the stage's creation
- `updated_at` (string) — The date and time of the stage's last update

### Templates

The Template object is used to represent templates cofnigured for various entities like Documents, messages, etc. (7 fields)

- `id` (string) — The unique identifier of the template.
- `name` (string) — The name of the template.
- `description` (string) — The description of the template.
- `type` (string) — The type of the template.
- `locale` (string) — The locale of the template.
- `created_at` (string) — The date and time when the template was created.
- `updated_at` (string) — The date and time when the template was last updated.

### Users

The User object is used to represents a User (19 fields)

- `id` (string) — The unique identifier for a user
- `first_name` (string) — The first name of the user
- `last_name` (string) — The last name of the user
- `title` (string) — The title of the user
- `name` (string) — The name of the user
- `username` (string) — The username of the user
- `emails` (array) — The emails of the user
- `phones` (array) — The phones of the user
- `status` (string) — The status of the user. If no clear mapping is available, then the raw value is returned.
- `roles` (array) — The roles of the user
- `organizations` (array) — The organizations of the user
- `workspace` (object) — The workspace of the user
- `groups` (array) — The groups of the user
- `avatar` (string) — The avatar of the user
- `timezone` (string) — The timezone of the user
- `languages` (array) — The languages preferred by the user
- `created_at` (string) — The date and time the user was created
- `updated_at` (string) — The date and time the user was last updated
- `urls` (array) — The URLs of the user

### Web Forms

The Web Form object is used to represent web forms of e-signature. (10 fields)

- `id` (string) — The unique identifier of the web form.
- `name` (string) — The name of the web form.
- `groups` (array) — The groups of the web form.
- `created_by` (object) — The user who created the web form.
- `owner` (object) — The owner of the web form.
- `status` (string) — The status of the web form.
- `urls` (array) — The URLs of the web form.
- `created_at` (string) — The date and time when the web form was created.
- `updated_at` (string) — The date and time when the web form was last updated.
- `last_activity_at` (string) — The date and time when the web form was last updated.

### Workflows

The Workflow object is used to represent automations configured in the e-sign application. (11 fields)

- `id` (string) — The unique identifier of the workflow.
- `name` (string) — The name of the workflow.
- `description` (string) — The description of the workflow.
- `type` (string) — The type of the workflow.
- `status` (string) — The status of the workflow.
- `created_by` (object) — The user who created the workflow.
- `created_at` (string) — The date and time when the workflow was created.
- `updated_at` (string) — The date and time when the workflow was last updated.
- `stage` (object) — The stage of the workflow.
- `custom_fields` (object) — All the custom fields present on the workflow
- `urls` (array) — The workflow's urls

## Supported integrations

- [Adobe Acrobat Sign](https://truto.one/integrations/detail/adobesign/)
- [DocuSign](https://truto.one/integrations/detail/docusign/)
- [Ironclad](https://truto.one/integrations/detail/ironclad/)
- [LinkSquares](https://truto.one/integrations/detail/linksquares/)
- [SpotDraft](https://truto.one/integrations/detail/spotdraft/)

## Related reading

- [Moving Past Checkboxes: Automating Immutable Policy Evidence](https://truto.one/blog/moving-past-checkboxes-automating-immutable-policy-evidence/) — Simple checkboxes for policy acknowledgement no longer satisfy enterprise auditors. Learn how to automate legally binding e-signatures using Unified APIs.
- [Designing Reliable Webhooks: Lessons from Production](https://truto.one/blog/designing-reliable-webhooks-lessons-from-production/) — Enterprise webhooks are a fragmented mess of HMAC, JWT, and thin payloads. Learn how a unified webhook architecture handles verification and automated enrichment.
- [Bearer Tokens Were the Easy Part: The Real Challenge of Enterprise Auth](https://truto.one/blog/bearer-tokens-were-the-easy-part-the-real-challenge-of-enterprise-auth/) — Why modern OAuth 2.0 fails in the enterprise. A deep dive into handling NetSuite’s HMAC signatures and multi-step session auth with programmable headers.
