mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-08-17 21:25:54 +02:00
7548 lines
245 KiB
YAML
7548 lines
245 KiB
YAML
openapi: 3.0.3
|
||
info:
|
||
title: OpenSign API v1.2
|
||
description: |
|
||
# OpenSign™ API v1.2
|
||
|
||
> **The open-source DocuSign alternative — built for developers, trusted by enterprises.**
|
||
|
||
OpenSign™ gives you a complete, production-ready e-signature platform through a single, RESTful API. Send documents for signature, manage templates, track signing status in real time, and automate your entire document lifecycle — all without vendor lock-in.
|
||
|
||
---
|
||
|
||
## Getting Started
|
||
|
||
Every request must carry your API token in the `x-api-token` header.
|
||
|
||
```
|
||
x-api-token: <your-api-token>
|
||
```
|
||
|
||
**→ [How to generate your API token](https://docs.opensignlabs.com/docs/help/Settings/APIToken)**
|
||
|
||
Not sure where to begin? Use the **sandbox environment** (`https://sandbox.opensignlabs.com/api/v1.2`) to prototype without affecting live data.
|
||
|
||
---
|
||
|
||
## Core Capabilities
|
||
|
||
| Category | What you can do |
|
||
|---|---|
|
||
| **Documents** | Create, send, update, revoke, and delete signature-request documents |
|
||
| **Templates** | Build reusable templates with pre-placed widgets; send to one or many signers |
|
||
| **Self-Sign** | Generate self-signed documents without a signer invitation flow |
|
||
| **Public Templates** | Share a public signing link — no signer list required |
|
||
| **Draft Workflow** | Save documents or templates as drafts and finalise them later |
|
||
| **Contacts** | Manage your signer contact book programmatically |
|
||
| **Folders** | Organise documents inside OpenSign Drive folders |
|
||
| **Webhooks** | Receive real-time event notifications at your own endpoint |
|
||
| **Users** | Retrieve account and credit information |
|
||
|
||
---
|
||
|
||
## What’s New in v1.2
|
||
|
||
|
||
### Attachment Widget Support
|
||
The `attachments` widget is now supported on draft document, create document, draft template, create template, and public template APIs.
|
||
|
||
### Hide Signer Signing Links
|
||
Set `"hide_signer_signing_links": true | false` on `POST /draftdocument` to hide signer signing links in the draft document response.
|
||
|
||
|
||
### Cleaner Template Retrieval
|
||
`GET /template/:id` and `GET /templatelist` have been streamlined — redundant parameters are removed and **prefill data is now returned separately from signer parameters**, making responses easier to consume.
|
||
|
||
### Password-Protected PDF Support
|
||
Pass `"file_password"` in the request body when working with encrypted PDFs. Supported on:
|
||
`POST /createtemplate` · `PUT /template/:id` · `POST /createdocument/:template_id` · `POST /draftdocument` · `POST /drafttemplate` · `POST /selfsign`
|
||
|
||
### Offline Signing Control
|
||
Set `"allow_offline_sign": true | false` on `POST /createtemplate` and `PUT /template/:id` to explicitly enable or disable offline signing for each template.
|
||
|
||
### Signer Roles
|
||
The `signers` object now accepts a `"signer_role"` field across all creation routes. Three roles are supported:
|
||
|
||
| Role | Behaviour |
|
||
|---|---|
|
||
| `signer` *(default)* | Must complete at least one signature widget |
|
||
| `viewer` | Receives the document for review only — no widgets allowed |
|
||
| `approver` | Can have any widgets except a signature requirement |
|
||
|
||
### Carbon Copy (CC) Recipients
|
||
A new `"cc"` field is now supported alongside the existing `"bcc"` field on document, template, draft and self-sign creation/update routes. Email addresses listed in `"cc"` receive a carbon-copy notification email once the document is completed. Like `"bcc"`, on update routes (such as `PUT /document/:id`) providing `"cc"` overrides the template value, even when supplied as an empty array (`[]`); omit the field to inherit the template value.
|
||
|
||
---
|
||
|
||
## Available Environments
|
||
|
||
| Environment | Base URL |
|
||
|---|---|
|
||
| **Sandbox** | `https://sandbox.opensignlabs.com/api/v1.2` |
|
||
| **Production** | `https://app.opensignlabs.com/api/v1.2` |
|
||
| **EU Region** | `https://eu-app.opensignlabs.com/api/v1.2` |
|
||
|
||
---
|
||
|
||
## Versioning & Backwards Compatibility
|
||
|
||
v1.2 is fully backwards-compatible with v1 and v1.1 — all endpoints from those versions are available on this base URL with no breaking changes. New parameters introduced in v1.2 are optional unless otherwise noted.
|
||
|
||
---
|
||
|
||
## Useful Links
|
||
|
||
- [OpenSign Website](https://www.opensignlabs.com)
|
||
- [Full Documentation](https://docs.opensignlabs.com)
|
||
- [GitHub Repository](https://github.com/opensignlabs/opensign)
|
||
- [Generate API Token](https://docs.opensignlabs.com/docs/help/Settings/APIToken)
|
||
- [Terms of Service](https://www.opensignlabs.com/terms/)
|
||
x-api-token:
|
||
description: "refer docs to generate api token [APIToken help](https://docs.opensignlabs.com/docs/help/Settings/APIToken)"
|
||
contact:
|
||
email: api@opensignlabs.com
|
||
termsOfService: http://www.opensignlabs.com/terms/
|
||
license:
|
||
name: AGPL v3.0
|
||
url: http://github.com/opensignlabs/opensign/LICENSE
|
||
version: 1.0.0
|
||
externalDocs:
|
||
description: Find out more about OpenSign
|
||
url: http://docs.opensignlabs.com
|
||
servers:
|
||
- url: https://sandbox.opensignlabs.com/api/v1.2
|
||
- url: https://app.opensignlabs.com/api/v1.2
|
||
- url: https://eu-app.opensignlabs.com/api/v1.2
|
||
- url: https://staging-app.opensignlabs.com/api/v1.2
|
||
tags:
|
||
- name: OpenSign
|
||
description: OpenSource DocuSign alternative
|
||
externalDocs:
|
||
description: Find out more
|
||
url: http://www.opensignlabs.com
|
||
- name: Github repo
|
||
description: Access the source code
|
||
externalDocs:
|
||
description: Visit github
|
||
url: http://github.com/opensignlabs/opensign
|
||
- name: User
|
||
description: Access detailed user information with the OpenSign™ API. Retrieve and manage user details effortlessly to enhance your application’s functionality and user experience.
|
||
- name: Contacts
|
||
description: "Utilize the OpenSign™ API to efficiently manage contacts in your OpenSign contact book. Seamlessly add, update, and organize your contacts for a streamlined digital signing experience."
|
||
- name: Documents
|
||
description: "Streamline your document management with the OpenSign™ API. Easily upload, delete and organize your documents for efficient digital signing and seamless workflow integration."
|
||
- name: Templates
|
||
description: "Optimize your document creation process with the OpenSign™ API for managing reusable templates. Create, update, and organize templates effortlessly to ensure consistency and efficiency in your digital signing workflows."
|
||
- name: Webhook
|
||
description: "Enhance your application’s responsiveness with the OpenSign™ API for managing webhooks. Easily set up, update, and manage webhooks to receive real-time notifications and automate your digital signing processes."
|
||
- name: Folder
|
||
description: "Organize your documents efficiently with the OpenSign™ API for managing folders in OpenSign Drive. Create, update and manage folders seamlessly to keep your digital signing files structured and easily accessible."
|
||
paths:
|
||
/getuser:
|
||
get:
|
||
tags:
|
||
- User
|
||
summary: Get your account details
|
||
description: The Get User API enables you to get your own account details.
|
||
operationId: getUser
|
||
responses:
|
||
"200":
|
||
description: Successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/user'
|
||
"404":
|
||
description: User not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/getcredits:
|
||
get:
|
||
tags:
|
||
- User
|
||
summary: Get your API credits
|
||
description: |
|
||
The Get Credits API returns details about the credits available to your account:
|
||
|
||
**plan_credits:** Credits included with your subscription plan. These reset at the start of each new billing cycle.
|
||
Example: If your plan provides 100 credits per month and you end
|
||
the cycle with 50 remaining, your balance resets to 100 at the
|
||
start of the next cycle.
|
||
|
||
**addon_credits:** Credits purchased separately from Settings → API Token → Buy Premium Credits. Add-on credits do not expire and are only used once all plan credits are consumed.
|
||
|
||
**total_credits:** The sum of **plan_credits** and **addon_credits**. This represents the total credits currently available for use.
|
||
|
||
**renewal_date:** The Subscription renewal date
|
||
|
||
operationId: getcredits
|
||
responses:
|
||
"200":
|
||
description: Successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/credits_res'
|
||
"400":
|
||
description: Subscription not found
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Subscription not found!
|
||
|
||
"404":
|
||
description: User not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/createcontact:
|
||
post:
|
||
tags:
|
||
- Contacts
|
||
summary: Create Contact
|
||
description: The Create Contact API allows you to effortlessly create new contacts that can act as signers for your important documents.
|
||
operationId: createcontact
|
||
requestBody:
|
||
description: Provide below parameter to create contact
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/createcontact_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Contact created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/contact'
|
||
"401":
|
||
description: Contact already exists!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_401_1'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/contact/{contact_id}:
|
||
get:
|
||
tags:
|
||
- Contacts
|
||
summary: Get Contact
|
||
description: The Get Contact API allows you to retrieve details about a specific contact.
|
||
operationId: getcontact
|
||
parameters:
|
||
- name: contact_id
|
||
in: path
|
||
description: objectId of contact
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: pH1bhc2hpb
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/contact'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Contact not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_2'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
put:
|
||
tags:
|
||
- Contact
|
||
summary: Update Contact
|
||
description: The Update Contact API enables you to modify and update the details of a specific Contact.
|
||
operationId: updateContact
|
||
parameters:
|
||
- name: contact_id
|
||
in: path
|
||
description: objectId of contact
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
requestBody:
|
||
description: Provide the fields you wish to update. Any fields omitted from the request will remain unchanged.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/contact'
|
||
responses:
|
||
"200":
|
||
description: Contact updated successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_5'
|
||
"400":
|
||
description: Please provide valid field names!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400'
|
||
"404":
|
||
description: Contact not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_7'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
delete:
|
||
tags:
|
||
- Contacts
|
||
summary: Delete Contact
|
||
description: "The Delete Contact API allows you to remove a contact from your contactbook. If you no longer need a particular contact's information, this API makes it easy to delete their record."
|
||
operationId: deletecontact
|
||
parameters:
|
||
- name: contact_id
|
||
in: path
|
||
description: Provide objectId of contact to delete
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: ph2bh2asd
|
||
responses:
|
||
"200":
|
||
description: Contact deleted successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/delete'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Contact not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_2'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/contactlist:
|
||
get:
|
||
tags:
|
||
- Contacts
|
||
summary: Get Contact list
|
||
description: "The Contact List API empowers you to retrieve a list of contacts, providing a comprehensive view of all available contacts in your contactbook."
|
||
operationId: contactlist
|
||
parameters:
|
||
- name: limit
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
maximum: 500
|
||
type: number
|
||
example: 10
|
||
- name: skip
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
type: number
|
||
example: 0
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/selfsign:
|
||
post:
|
||
tags:
|
||
- Documents
|
||
summary: Self Sign
|
||
description: |
|
||
The selfsign API generates a URL that enables freestyle signing of a document. You can also include optional pre-defined widgets, which the signer can edit or expand upon as needed. This provides a signing experience similar to the “Sign Yourself” flow in the OpenSign app.
|
||
|
||
Tip: Upload your PDF document to our [**Debug UI**](https://app.opensignlabs.com/debugpdf), where you can easily add widgets, then copy coordinates, page numbers, and more in a ready-to-use JSON format. Plus, you can directly copy the document's base64 string, making it quick to send to the API.
|
||
|
||
**Supported Widgets:**
|
||
|
||
Below are the common parameters that are required with all widgets:
|
||
- **name:** Unique identifier for this widget.
|
||
- **type:** Indicates the type of widget.
|
||
- **page:** Specifies the page number on which you want to place the respective widget.
|
||
- **x, y:** Denotes the horizontal and vertical coordinates of the starting point of the widget. You can use the debug UI to determine these values.
|
||
- **w, h:** Represents the width and height of the widget. You can adjust these values using the debug UI.
|
||
- **required:** Set to false if you want to make the widget optional. By default, it's true. Not applicable for signature-type widgets.
|
||
- **name:** Provides a different name for widgets if you are providing more than one widget.
|
||
- **color:** Specifies the color of the widget content. Available options include black, blue, red, and yellow, with black as the default selection if no color is specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox.
|
||
- **fontsize:** Specifies the fontsize of the widget content. Available options include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, and 28, with a default fontsize of 12 if not specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox.
|
||
- **hide_text_with_asterisks:** When enabled, the text on the signed document is hidden from recipients using asterisks, but remains fully visible to the document owner in their OpenSign account. This option is available only on Teams and Enterprise plans.
|
||
- **hint:** Specify the hint for widgets. This parameter is optional and is not applicable to the following widgets: checkbox, radio button, dropdown.
|
||
|
||
**List of all supported widgets:**
|
||
|
||
1. **signature**
|
||
```
|
||
{
|
||
"type": "signature",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options":{
|
||
"hint": "Provide signature"
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **stamp**
|
||
```
|
||
{
|
||
"type": "stamp",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "stamp",
|
||
"hint": "Provide stamp"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **initials**
|
||
```
|
||
{
|
||
"type": "initials",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "initials",
|
||
"hint": "Provide initials"
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **email**
|
||
```
|
||
{
|
||
"type": "email",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "email",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide email",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **name**
|
||
```
|
||
{
|
||
"type": "name",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "name",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide name",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
6. **job Title**
|
||
```
|
||
{
|
||
"type": "job title",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "job title",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide job title",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
7. **company**
|
||
```
|
||
{
|
||
"type": "company",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "company",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide company",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
8. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"default": "04-15-2024",
|
||
"format": "mm-dd-yyyy",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"signing_date": false,
|
||
"hint": "Provide date"
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide the date from which you want to start the date of the date widget. Must be provided in the specified format. By default, today's date provided.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **min_date:** Provide the minimum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **max_date:** Provide the maximum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **signing_date**: If signing_date is set to true, the signing date is shown to the signer during signing. You may set either signing_date or default, but not both. Using both is not supported.
|
||
|
||
9. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "textbox",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": "name",
|
||
"hint": "provide name",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide a default value for the textbox (Optional).
|
||
- **regularexpression:** A custom regex pattern for validation - for example, /^\d+$/ to permit only digits, /^[A-Z]+$/ to permit only uppercase letters, etc. [help](https://www.w3schools.com/jsref/jsref_obj_regexp.asp) (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
|
||
10. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"selectedvalues": ["male", "female"],
|
||
"readonly": false,
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical",
|
||
"validation": {
|
||
"minselections": 0,
|
||
"maxselections": 0
|
||
}
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **selectedvalues:** Provide values that need to be selected by default (Optional).
|
||
- **readonly:** Set to true if you want to set the checkbox as readonly. By default, it's false.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **minselections:** Provide the minimum number of checkboxes that must be selected by the user.
|
||
- **maxselections:** Provide the maximum number of checkboxes that can be selected by the user.
|
||
|
||
11. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"hint": "Provide image"
|
||
}
|
||
}
|
||
```
|
||
|
||
12. **number**
|
||
```
|
||
{
|
||
"type": "number",
|
||
"page": 1,
|
||
"x": 107,
|
||
"y": 528,
|
||
"w": 60,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "number",
|
||
"required": true,
|
||
"default": 0,
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide number",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **formula:** Compute the value from other number widgets using +, -, *, /, (, ). Reference widgets by their name in double curly braces, e.g. {{quantity}} * {{rate}}. to know more [visit here](https://docs.opensignlabs.com/docs/help/New-Document/widgets) (optional).
|
||
- **default:** Provide a default number (Optional).
|
||
- **decimalplaces:** Number of digits to display after the decimal point. e.g: 2 => 12.00, 0 => 12 (default 2)
|
||
|
||
13. **cells**
|
||
```
|
||
{
|
||
"type": "cells",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 100,
|
||
"w": 114,
|
||
"h": 50,
|
||
"options": {
|
||
"name": "cells",
|
||
"required": true,
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **cell_count:** Specify the number of cells that should be returned to the user.
|
||
operationId: selfsign
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/selfsigndocument_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Document created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_1'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/draftdocument:
|
||
post:
|
||
tags:
|
||
- Documents
|
||
summary: Draft Document
|
||
description: |
|
||
The Draft Document API allows users to generate new documents by providing data with a base64 encoded file.
|
||
|
||
Tip: Upload your PDF document to our [**Debug UI**](https://app.opensignlabs.com/debugpdf), where you can easily add widgets, then copy coordinates, page numbers, and more in a ready-to-use JSON format. Plus, you can directly copy the document's base64 string, making it quick to send to the API.
|
||
|
||
**Supported Widgets:**
|
||
|
||
Below are the common parameters that are required with all widgets:
|
||
- **name:** Unique identifier for this widget.
|
||
- **type:** Indicates the type of widget.
|
||
- **page:** Specifies the page number on which you want to place the respective widget.
|
||
- **x, y:** Denotes the horizontal and vertical coordinates of the starting point of the widget. You can use the debug UI to determine these values.
|
||
- **w, h:** Represents the width and height of the widget. You can adjust these values using the debug UI.
|
||
- **required:** Set to false if you want to make the widget optional. By default, it's true. Not applicable for signature-type widgets.
|
||
- **name:** Provides a different name for widgets if you are providing more than one widget.
|
||
- **color:** Specifies the color of the widget content. Available options include black, blue, red, and yellow, with black as the default selection if no color is specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **fontsize:** Specifies the fontsize of the widget content. Available options include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, and 28, with a default fontsize of 12 if not specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **hide_text_with_asterisks:** When enabled, the text on the signed document is hidden from recipients using asterisks, but remains fully visible to the document owner in their OpenSign account. This option is available only on Teams and Enterprise plans.
|
||
- **hint:** Specify the hint for widgets. This parameter is optional and is not applicable to the following widgets: checkbox, radio button, dropdown.
|
||
|
||
**List of all supported widgets:**
|
||
|
||
1. **signature**
|
||
```
|
||
{
|
||
"type": "signature",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options":{
|
||
"hint": "Provide signature"
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **stamp**
|
||
```
|
||
{
|
||
"type": "stamp",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "stamp",
|
||
"hint": "Provide stamp"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **initials**
|
||
```
|
||
{
|
||
"type": "initials",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "initials",
|
||
"hint": "Provide initials"
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **email**
|
||
```
|
||
{
|
||
"type": "email",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "email",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide email",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **name**
|
||
```
|
||
{
|
||
"type": "name",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "name",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide name",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
6. **job Title**
|
||
```
|
||
{
|
||
"type": "job title",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "job title",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide job title",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
7. **company**
|
||
```
|
||
{
|
||
"type": "company",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "company",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide company",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
8. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"default": "04-15-2024",
|
||
"format": "mm-dd-yyyy",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"readonly": false,
|
||
"signing_date": false,
|
||
"hint": "Provide date"
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide the date from which you want to start the date of the date widget. Must be provided in the specified format. By default, today's date provided.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **min_date:** Provide the minimum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **max_date:** Provide the maximum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **signing_date**: If signing_date is set to true, the signing date is shown to the signer during signing. You may set either signing_date or default, but not both. Using both is not supported.
|
||
|
||
9. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "textbox",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": "name",
|
||
"hint": "provide name",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide a default value for the textbox (Optional).
|
||
- **regularexpression:** A custom regex pattern for validation - for example, /^\d+$/ to permit only digits, /^[A-Z]+$/ to permit only uppercase letters, etc. [help](https://www.w3schools.com/jsref/jsref_obj_regexp.asp) (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
|
||
10. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"selectedvalues": ["male", "female"],
|
||
"readonly": false,
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical",
|
||
"validation": {
|
||
"minselections": 0,
|
||
"maxselections": 0
|
||
}
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **selectedvalues:** Provide values that need to be selected by default (Optional).
|
||
- **readonly:** Set to true if you want to set the checkbox as readonly. By default, it's false.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **minselections:** Provide the minimum number of checkboxes that must be selected by the user.
|
||
- **maxselections:** Provide the maximum number of checkboxes that can be selected by the user.
|
||
|
||
11. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the dropdown as readonly. By default, it's false.
|
||
|
||
12. **radio Button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "male",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical"
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the radio button as readonly. By default, it's false.
|
||
|
||
13. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"hint": "Provide image"
|
||
}
|
||
}
|
||
```
|
||
|
||
14. **number**
|
||
```
|
||
{
|
||
"type": "number",
|
||
"page": 1,
|
||
"x": 107,
|
||
"y": 528,
|
||
"w": 60,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "number",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": 0,
|
||
"hint": "Provide number",
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **formula:** Compute the value from other number widgets using +, -, *, /, (, ). Reference widgets by their name in double curly braces, e.g. {{quantity}} * {{rate}}. to know more [visit here](https://docs.opensignlabs.com/docs/help/New-Document/widgets) (optional).
|
||
- **default:** Provide a default number (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
- **decimalplaces:** Number of digits to display after the decimal point. e.g: 2 => 12.00, 0 => 12 (default 2)
|
||
|
||
15. **cells**
|
||
```
|
||
{
|
||
"type": "cells",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 100,
|
||
"w": 114,
|
||
"h": 50,
|
||
"options": {
|
||
"name": "cells",
|
||
"required": true,
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **cell_count:** Specify the number of cells that should be returned to the user.
|
||
|
||
16. **attachments**
|
||
```
|
||
{
|
||
"type": "attachments",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "attachment widget",
|
||
"hint": "Provide files"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Prefill Widgets:** Prefill widgets are elements that are inserted into a document **before** it is shared with a user. Only the document creator has permission to add them.
|
||
|
||
**List of widgets supported in Prefill**
|
||
1. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 290,
|
||
"y": 165,
|
||
"w": 150,
|
||
"h": 20,
|
||
"options": {
|
||
"required": true,
|
||
"name": "textbox",
|
||
"response": "joe",
|
||
"color": "red",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the text you would like to display inside the textbox.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
2. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 588,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"response": "04/15/2024",
|
||
"format": "mm/dd/yyyy",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the date you would like to display inside the date box.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
3. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 172,
|
||
"y": 630,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"response": ["male", "female"],
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **response:** Provide values that need to be selected.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
4. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 718,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"values": ["male", "female", "other"],
|
||
"response": "male",
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **hidelabel:** Set to true if you want to hide labels of the radio button. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
5. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 95,
|
||
"w": 92,
|
||
"h": 55,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"response":"iVBORw0KGgoAAAANSUhEUgAAAmoAAA..."
|
||
}
|
||
}
|
||
```
|
||
- **response:** Provide image in base64 format like iVBORw0KGgoAAAANSUhEUgA... or data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA....
|
||
|
||
operationId: draftdocument
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/draftdocument_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Document created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_draft_doc_res_200_1'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/createdocument:
|
||
post:
|
||
tags:
|
||
- Documents
|
||
summary: Create Document
|
||
description: |
|
||
The Create Document API allows users to generate new documents by providing data with base64 encoded file.
|
||
|
||
Tip: Upload your PDF document to our [**Debug UI**](https://app.opensignlabs.com/debugpdf), where you can easily add widgets, then copy coordinates, page numbers, and more in a ready-to-use JSON format. Plus, you can directly copy the document's base64 string, making it quick to send to the API.
|
||
|
||
**Supported Widgets:**
|
||
|
||
Below are the common parameters that are required with all widgets:
|
||
- **name:** Unique identifier for this widget.
|
||
- **type:** Indicates the type of widget.
|
||
- **page:** Specifies the page number on which you want to place the respective widget.
|
||
- **x, y:** Denotes the horizontal and vertical coordinates of the starting point of the widget. You can use the debug UI to determine these values.
|
||
- **w, h:** Represents the width and height of the widget. You can adjust these values using the debug UI.
|
||
- **required:** Set to false if you want to make the widget optional. By default, it's true. Not applicable for signature-type widgets.
|
||
- **name:** Provides a different name for widgets if you are providing more than one widget.
|
||
- **color:** Specifies the color of the widget content. Available options include black, blue, red, and yellow, with black as the default selection if no color is specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **fontsize:** Specifies the fontsize of the widget content. Available options include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, and 28, with a default fontsize of 12 if not specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **hide_text_with_asterisks:** When enabled, the text on the signed document is hidden from recipients using asterisks, but remains fully visible to the document owner in their OpenSign account. This option is available only on Teams and Enterprise plans.
|
||
- **hint:** Specify the hint for widgets. This parameter is optional and is not applicable to the following widgets: checkbox, radio button, dropdown.
|
||
|
||
**List of all supported widgets:**
|
||
|
||
1. **signature**
|
||
```
|
||
{
|
||
"type": "signature",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options":{
|
||
"hint": "Provide signature"
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **stamp**
|
||
```
|
||
{
|
||
"type": "stamp",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "stamp",
|
||
"hint": "Provide stamp"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **initials**
|
||
```
|
||
{
|
||
"type": "initials",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "initials",
|
||
"hint": "Provide initials"
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **email**
|
||
```
|
||
{
|
||
"type": "email",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "email",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide email",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **name**
|
||
```
|
||
{
|
||
"type": "name",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "name",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide name",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
6. **job Title**
|
||
```
|
||
{
|
||
"type": "job title",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "job title",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide job title",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
7. **company**
|
||
```
|
||
{
|
||
"type": "company",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "company",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide company",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
8. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"default": "04-15-2024",
|
||
"format": "mm-dd-yyyy",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"readonly": false,
|
||
"signing_date": false,
|
||
"hint": "Provide date"
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide the date from which you want to start the date of the date widget. Must be provided in the specified format. By default, today's date provided.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **min_date:** Provide the minimum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **max_date:** Provide the maximum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **signing_date**: If signing_date is set to true, the signing date is shown to the signer during signing. You may set either signing_date or default, but not both. Using both is not supported.
|
||
|
||
9. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "textbox",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": "name",
|
||
"hint": "provide name",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide a default value for the textbox (Optional).
|
||
- **regularexpression:** A custom regex pattern for validation - for example, /^\d+$/ to permit only digits, /^[A-Z]+$/ to permit only uppercase letters, etc. [help](https://www.w3schools.com/jsref/jsref_obj_regexp.asp) (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
|
||
10. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"selectedvalues": ["male", "female"],
|
||
"readonly": false,
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical",
|
||
"validation": {
|
||
"minselections": 0,
|
||
"maxselections": 0
|
||
}
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **selectedvalues:** Provide values that need to be selected by default (Optional).
|
||
- **readonly:** Set to true if you want to set the checkbox as readonly. By default, it's false.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **minselections:** Provide the minimum number of checkboxes that must be selected by the user.
|
||
- **maxselections:** Provide the maximum number of checkboxes that can be selected by the user.
|
||
|
||
11. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the dropdown as readonly. By default, it's false.
|
||
|
||
12. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "male",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical"
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the radio button as readonly. By default, it's false.
|
||
|
||
13. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"hint": "Provide image"
|
||
}
|
||
}
|
||
```
|
||
|
||
14. **number**
|
||
```
|
||
{
|
||
"type": "number",
|
||
"page": 1,
|
||
"x": 107,
|
||
"y": 528,
|
||
"w": 60,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "number",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": 0,
|
||
"hint": "Provide number",
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **formula:** Compute the value from other number widgets using +, -, *, /, (, ). Reference widgets by their name in double curly braces, e.g. {{quantity}} * {{rate}}. to know more [visit here](https://docs.opensignlabs.com/docs/help/New-Document/widgets) (optional).
|
||
- **default:** Provide a default number (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
- **decimalplaces:** Number of digits to display after the decimal point. e.g: 2 => 12.00, 0 => 12 (default 2)
|
||
|
||
15. **cells**
|
||
```
|
||
{
|
||
"type": "cells",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 100,
|
||
"w": 114,
|
||
"h": 50,
|
||
"options": {
|
||
"name": "cells",
|
||
"required": true,
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **cell_count:** Specify the number of cells that should be returned to the user.
|
||
|
||
16. **attachments**
|
||
```
|
||
{
|
||
"type": "attachments",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "attachment widget",
|
||
"hint": "Provide files"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Prefill Widgets:** Prefill widgets are elements that are inserted into a document **before** it is shared with a user. Only the document creator has permission to add them.
|
||
|
||
**List of widgets supported in Prefill**
|
||
1. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 290,
|
||
"y": 165,
|
||
"w": 150,
|
||
"h": 20,
|
||
"options": {
|
||
"required": true,
|
||
"name": "textbox",
|
||
"response": "joe",
|
||
"color": "red",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the text you would like to display inside the textbox.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
2. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 588,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"response": "04/15/2024",
|
||
"format": "mm/dd/yyyy",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the date you would like to display inside the date box.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
3. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 172,
|
||
"y": 630,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"response": ["male", "female"],
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **response:** Provide values that need to be selected.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
4. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 718,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"values": ["male", "female", "other"],
|
||
"response": "male",
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **hidelabel:** Set to true if you want to hide labels of the radio button. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
5. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 95,
|
||
"w": 92,
|
||
"h": 55,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"response":"iVBORw0KGgoAAAANSUhEUgAAAmoAAA..."
|
||
}
|
||
}
|
||
```
|
||
- **response:** Provide image in base64 format like iVBORw0KGgoAAAANSUhEUgA... or data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA....
|
||
|
||
|
||
operationId: createdocument
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/createdocument_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Document created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_doc'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/createdocument/{template_id}:
|
||
post:
|
||
tags:
|
||
- Documents
|
||
summary: Create Document from Template
|
||
description: |
|
||
The Create Document from template API allows you to generate new documents by just providing template_id instead of uploading a new file(in the form of base64 or binary) every time you need to create a document. Templates for repeatedly used files can be created from user interface at [**Debug UI**](https://app.opensignlabs.com/debugpdf) or using the Create Template API.
|
||
|
||
You can provide default value for all widgets based on their name all widgets support except signature, stamp, initials, image.
|
||
|
||
**hide_text_with_asterisks:** When enabled, the text on the signed document is hidden from recipients using asterisks, but remains fully visible to the document owner in their OpenSign account. This option is available only on Teams and Enterprise plans.
|
||
|
||
**hint:** Specify the hint for widgets. This parameter is optional and is not applicable to the following widgets: checkbox, radio button, dropdown.
|
||
|
||
1. **email**
|
||
```
|
||
{
|
||
"name": "email",
|
||
"readonly": false,
|
||
"default": "email@example.com",
|
||
"hint": "Provide email",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
```
|
||
|
||
2. **name**
|
||
```
|
||
{
|
||
"name": "name",
|
||
"readonly": false,
|
||
"default": "joe",
|
||
"hint": "Provide name",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
```
|
||
|
||
3. **job Title**
|
||
```
|
||
{
|
||
"name": "job title",
|
||
"readonly": false,
|
||
"default": "ceo",
|
||
"hint": "Provide job title",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
```
|
||
|
||
4. **company**
|
||
```
|
||
{
|
||
"name": "company",
|
||
"readonly": false,
|
||
"default": "example pvt ltd",
|
||
"hint": "Provide company",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
```
|
||
|
||
5. **date**
|
||
```
|
||
{
|
||
"name": "date",
|
||
"readonly": false,
|
||
"default": "11-05-2025",
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"signing_date": false,
|
||
"hint": "Provide date"
|
||
}
|
||
```
|
||
- **min_date:** Provide the minimum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **max_date:** Provide the maximum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **signing_date**: If signing_date is set to true, the signing date is shown to the signer during signing. You may set either signing_date or default, but not both. Using both is not supported.
|
||
|
||
6. **textbox**
|
||
```
|
||
{
|
||
"name": "textbox",
|
||
"readonly": false,
|
||
"default": "my text",
|
||
"hint": "Provide text",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
```
|
||
|
||
7. **checkbox**
|
||
```
|
||
{
|
||
"name": "checkbox",
|
||
"readonly": false,
|
||
"default": ["option-2"]
|
||
}
|
||
```
|
||
- **default:** You can have one or more than one value that needs to be selected by default.
|
||
|
||
8. **dropdown**
|
||
```
|
||
{
|
||
"name": "dropdown",
|
||
"readonly": false,
|
||
"default": "option1"
|
||
}
|
||
```
|
||
|
||
9. **radio button**
|
||
```
|
||
{
|
||
"name": "radio",
|
||
"readonly": false,
|
||
"default": "option1"
|
||
}
|
||
```
|
||
|
||
10. **number**
|
||
```
|
||
{
|
||
"name": "number",
|
||
"readonly": false,
|
||
"default": 0,
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"hint": "Provide number",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
```
|
||
|
||
11. **cells**
|
||
```
|
||
{
|
||
"name": "cells",
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
```
|
||
- **cell_count:** Specify the number of cells that should be returned to the user.
|
||
|
||
**response:** Provide the value that should replace the existing response.
|
||
|
||
**Prefill Widgets:** Prefill widgets are elements that are inserted into a document **before** it is shared with a user. Only the document creator has permission to add them.
|
||
|
||
**List of widgets supported in Prefill**
|
||
1. **textbox**
|
||
```
|
||
{
|
||
"name":"textbox",
|
||
"response":"andrew bee"
|
||
}
|
||
```
|
||
2. **date**
|
||
```
|
||
{
|
||
"name": "date",
|
||
"response": "04/15/2024"
|
||
}
|
||
```
|
||
3. **checkbox**
|
||
```
|
||
{
|
||
"name": "checkbox",
|
||
"response": ["male", "female"]
|
||
}
|
||
```
|
||
- **response:** Must be chosen from the existing values of checkbox defined in the template.
|
||
|
||
4. **radio button**
|
||
```
|
||
{
|
||
"name": "radio button",
|
||
"response": "male"
|
||
}
|
||
```
|
||
- **response:** Must be chosen from the existing values of radio button defined in the template.
|
||
5. **image**
|
||
```
|
||
{
|
||
"name": "image",
|
||
"response":"iVBORw0KGgoAAAANSUhEUgAAAmoAAA..."
|
||
}
|
||
|
||
```
|
||
6. **dropdown**
|
||
```
|
||
{
|
||
"name": "dropdown",
|
||
"response": "female"
|
||
}
|
||
```
|
||
- **response:** Must be chosen from the existing values of dropdown defined in the template.
|
||
operationId: createdocumentwithtemplateid
|
||
parameters:
|
||
- name: template_id
|
||
in: path
|
||
description: objectId of Template
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: pH1bhc2hpb
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/createdocument_template_id_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Document created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_doc'
|
||
"400":
|
||
description: If you haven't add widgets and signers in template or not provide signers along with their roles in body
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_cc'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/document/{document_id}:
|
||
get:
|
||
tags:
|
||
- Documents
|
||
summary: Get Document
|
||
description: The Get Document API enables you to retrieve details about a specific document.
|
||
operationId: getdocument
|
||
parameters:
|
||
- name: document_id
|
||
in: path
|
||
description: objectId of Document
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: pH1bhc2hpb
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/documentwithstatus'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Document not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_3'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
put:
|
||
tags:
|
||
- Documents
|
||
summary: Update Document
|
||
description: "The Update Document API allows users to modify and update the details of a specific document. Note that this API only allows to update a few parameters, you cannot change the file once it the document is created."
|
||
operationId: updateDocument
|
||
parameters:
|
||
- name: document_id
|
||
in: path
|
||
description: ID of the document that needs to be updated
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
requestBody:
|
||
description: Provide below parameter to update templates (at least one parameter required)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/document_document_id_body'
|
||
responses:
|
||
"200":
|
||
description: Document updated successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_3'
|
||
"400":
|
||
description: Please provide valid field names!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400'
|
||
"404":
|
||
description: Document not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_4'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
post:
|
||
tags:
|
||
- Documents
|
||
summary: Revoke Document
|
||
description: The Revoke document API allows you to revoke specific document from your documents.
|
||
operationId: revokedocument
|
||
parameters:
|
||
- name: document_id
|
||
in: path
|
||
description: Provide objectId of document to revoke
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: ph2bh2asd
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/revokedocument'
|
||
responses:
|
||
"200":
|
||
description: Document revoked successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/revoke'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Document not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_3'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
delete:
|
||
tags:
|
||
- Documents
|
||
summary: Delete Document
|
||
description: The Delete document API allows you to remove specific document from your documents.
|
||
operationId: deletedocument
|
||
parameters:
|
||
- name: document_id
|
||
in: path
|
||
description: Provide objectId of document to delete
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: ph2bh2asd
|
||
responses:
|
||
"200":
|
||
description: Document deleted successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/delete'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Document not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_3'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/documentlist/{doctype}:
|
||
get:
|
||
tags:
|
||
- Documents
|
||
summary: Get Document list from status
|
||
description: |
|
||
### Document Types:
|
||
Retrieve a list of documents based on type
|
||
|
||
1. **Draft Documents:**
|
||
- Documents that are currently in draft status.
|
||
|
||
2. **In-Progress Documents:**
|
||
- Documents that are currently in progress.
|
||
|
||
3. **Completed Documents:**
|
||
- Documents that have been successfully completed with all required signatures.
|
||
|
||
4. **Expired Documents:**
|
||
- Documents that have expired and are no longer accessible.
|
||
|
||
5. **Declined Documents:**
|
||
- Documents that have been declined by the user.
|
||
operationId: getdocumentlist
|
||
parameters:
|
||
- name: doctype
|
||
in: path
|
||
description: The type of documents to retrieve
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
enum:
|
||
- draft
|
||
- inprogress
|
||
- completed
|
||
- expired
|
||
- declined
|
||
- name: limit
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
maximum: 500
|
||
type: number
|
||
example: 10
|
||
- name: skip
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
type: number
|
||
example: 0
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_4'
|
||
"404":
|
||
description: Report not available!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_5'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/resendmail:
|
||
post:
|
||
tags:
|
||
- Documents
|
||
summary: Resend request mail
|
||
description: |
|
||
Resend request mail to user for signing document.
|
||
operationId: Resendrequestmail
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/resendmail_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: ""
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_10'
|
||
"400":
|
||
description: ""
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_2'
|
||
"404":
|
||
description: |
|
||
- document not found if document id is not correct.
|
||
- user not found if provided user email is not present in signer list of document
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
|
||
/signerips/{document_id}:
|
||
get:
|
||
tags:
|
||
- Documents
|
||
summary: Get Signer IPs
|
||
description: |
|
||
The Get Signer IPs API enables you to retrieve IPs of signers who signed the document.
|
||
|
||
Note: This API is only available for Teams and Enterprise plans.
|
||
operationId: getsignerips
|
||
parameters:
|
||
- name: document_id
|
||
in: path
|
||
description: objectId of Document
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: aB2cc2hpbh
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/signerIpsResponse'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Document not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_3'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
|
||
/formdata/{document_id}:
|
||
get:
|
||
tags:
|
||
- Documents
|
||
summary: Get Formdata
|
||
description: |
|
||
The Get Formdata API enables you to retrieve widget data filled by signers who signed the document.
|
||
|
||
Note: This API is only available for Teams and Enterprise plans.
|
||
operationId: getformdata
|
||
parameters:
|
||
- name: document_id
|
||
in: path
|
||
description: objectId of Document
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: aB2cc2hpbh
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/formdataResponse'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Document not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_3'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/signinglinks/{document_id}:
|
||
get:
|
||
tags:
|
||
- Documents
|
||
summary: Get Signing Links
|
||
description: |
|
||
The Get Signing Links API enables you to retrieve signing urls of signers for the document.
|
||
operationId: getsigninglinks
|
||
parameters:
|
||
- name: document_id
|
||
in: path
|
||
description: objectId of Document
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: aB2cc2hpbh
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/getsigninglinks'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Document not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_3'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/drafttemplate:
|
||
post:
|
||
tags:
|
||
- Templates
|
||
summary: Draft Template
|
||
description: |
|
||
The Template Drafting API enables users to create customizable templates, serving as blueprints for generating documents with predefined structures. Upon successful creation of a template, the API returns a unique **objectId** (designated as template_id), which can be used to generate documents based on the specified template. Additionally, a **url** is provided, which offers a user interface for editing the template and facilitating document distribution.
|
||
|
||
Tip: Upload your PDF document to our [**Debug UI**](https://app.opensignlabs.com/debugpdf), where you can easily add widgets, then copy coordinates, page numbers, and more in a ready-to-use JSON format. Plus, you can directly copy the document's base64 string, making it quick to send to the API.
|
||
|
||
**When document is created this webhook event will trigger**
|
||
```
|
||
{
|
||
"event": "created",
|
||
"type": "DOCUMENT_TYPE",
|
||
"objectId": "DOCUMENT_ID",
|
||
"file": "DOCUMENT_URL",
|
||
"name": "DOCUMENT_NAME",
|
||
"note": "Please review and sign this document",
|
||
"description": "",
|
||
"signers": [
|
||
{
|
||
"name": "SIGNER_NAME",
|
||
"email": "SIGNER_EMAIL",
|
||
"phone": "SIGNER_PHONE",
|
||
"url": "SIGNING_URL"
|
||
}
|
||
],
|
||
"createdAt": "TIMESTAMP"
|
||
}
|
||
```
|
||
|
||
**Supported Widgets:**
|
||
|
||
Below are the common parameters that are required with all widgets:
|
||
- **name:** Unique identifier for this widget.
|
||
- **type:** Indicates the type of widget.
|
||
- **page:** Specifies the page number on which you want to place the respective widget.
|
||
- **x, y:** Denotes the horizontal and vertical coordinates of the starting point of the widget. You can use the debug UI to determine these values.
|
||
- **w, h:** Represents the width and height of the widget. You can adjust these values using the debug UI.
|
||
- **required:** Set to false if you want to make the widget optional. By default, it's true. Not applicable for signature-type widgets.
|
||
- **name:** Provides a different name for widgets if you are providing more than one widget.
|
||
- **color:** Specifies the color of the widget content. Available options include black, blue, red, and yellow, with black as the default selection if no color is specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **fontsize:** Specifies the fontsize of the widget content. Available options include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, and 28, with a default fontsize of 12 if not specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **hide_text_with_asterisks:** When enabled, the text on the signed document is hidden from recipients using asterisks, but remains fully visible to the document owner in their OpenSign account. This option is available only on Teams and Enterprise plans.
|
||
- **hint:** Specify the hint for widgets. This parameter is optional and is not applicable to the following widgets: checkbox, radio button, dropdown.
|
||
|
||
**List of all supported widgets:**
|
||
|
||
1. **signature**
|
||
```
|
||
{
|
||
"type": "signature",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"hint": "Provide signature"
|
||
}
|
||
|
||
}
|
||
```
|
||
|
||
2. **stamp**
|
||
```
|
||
{
|
||
"type": "stamp",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "stamp",
|
||
"hint": "Provide stamp"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **initials**
|
||
```
|
||
{
|
||
"type": "initials",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "initials",
|
||
"hint": "Provide initials"
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **email**
|
||
```
|
||
{
|
||
"type": "email",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "email",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide email",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **name**
|
||
```
|
||
{
|
||
"type": "name",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "name",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide name",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
6. **job Title**
|
||
```
|
||
{
|
||
"type": "job title",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "job title",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide job title",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
7. **company**
|
||
```
|
||
{
|
||
"type": "company",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "company",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide company",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
8. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"default": "04-15-2024",
|
||
"format": "mm-dd-yyyy",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"readonly": false,
|
||
"signing_date": false,
|
||
"hint": "Provide date"
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide the date from which you want to start the date of the date widget. Must be provided in the specified format. By default, today's date provided.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **min_date:** Provide the minimum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **max_date:** Provide the maximum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **signing_date**: If signing_date is set to true, the signing date is shown to the signer during signing. You may set either signing_date or default, but not both. Using both is not supported.
|
||
|
||
9. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "textbox",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": "name",
|
||
"hint": "provide name",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide a default value for the textbox (Optional).
|
||
- **regularexpression:** A custom regex pattern for validation - for example, /^\d+$/ to permit only digits, /^[A-Z]+$/ to permit only uppercase letters, etc. [help](https://www.w3schools.com/jsref/jsref_obj_regexp.asp) (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
|
||
10. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"selectedvalues": ["male", "female"],
|
||
"readonly": false,
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical",
|
||
"validation": {
|
||
"minselections": 0,
|
||
"maxselections": 0
|
||
}
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **selectedvalues:** Provide values that need to be selected by default (Optional).
|
||
- **readonly:** Set to true if you want to set the checkbox as readonly. By default, it's false.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **minselections:** Provide the minimum number of checkboxes that must be selected by the user.
|
||
- **maxselections:** Provide the maximum number of checkboxes that can be selected by the user.
|
||
|
||
11. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the dropdown as readonly. By default, it's false.
|
||
|
||
12. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "male",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical"
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the radio button as readonly. By default, it's false.
|
||
|
||
13. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"hint": "Provide image"
|
||
}
|
||
}
|
||
```
|
||
|
||
14. **number**
|
||
```
|
||
{
|
||
"type": "number",
|
||
"page": 1,
|
||
"x": 107,
|
||
"y": 528,
|
||
"w": 60,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "number",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": 0,
|
||
"hint": "Provide number",
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **formula:** Compute the value from other number widgets using +, -, *, /, (, ). Reference widgets by their name in double curly braces, e.g. {{quantity}} * {{rate}}. to know more [visit here](https://docs.opensignlabs.com/docs/help/New-Document/widgets) (optional).
|
||
- **default:** Provide a default number (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
- **decimalplaces:** Number of digits to display after the decimal point. e.g: 2 => 12.00, 0 => 12 (default 2)
|
||
|
||
15. **cells**
|
||
```
|
||
{
|
||
"type": "cells",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 100,
|
||
"w": 114,
|
||
"h": 50,
|
||
"options": {
|
||
"name": "cells",
|
||
"required": true,
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **cell_count:** Specify the number of cells that should be returned to the user.
|
||
|
||
16. **attachments**
|
||
```
|
||
{
|
||
"type": "attachments",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "attachment widget",
|
||
"hint": "Provide files"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Prefill Widgets:** Prefill widgets are elements that are inserted into a document **before** it is shared with a user. Only the document creator has permission to add them.
|
||
|
||
**List of widgets supported in Prefill**
|
||
1. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 290,
|
||
"y": 165,
|
||
"w": 150,
|
||
"h": 20,
|
||
"options": {
|
||
"required": true,
|
||
"name": "textbox",
|
||
"response": "joe",
|
||
"color": "red",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the text you would like to display inside the textbox.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
2. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 588,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"response": "04/15/2024",
|
||
"format": "mm/dd/yyyy",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the date you would like to display inside the date box.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
3. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 172,
|
||
"y": 630,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"response": ["male", "female"],
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **response:** Provide values that need to be selected.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
4. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 718,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"values": ["male", "female", "other"],
|
||
"response": "male",
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **hidelabel:** Set to true if you want to hide labels of the radio button. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
5. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 95,
|
||
"w": 92,
|
||
"h": 55,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"response":"iVBORw0KGgoAAAANSUhEUgAAAmoAAA..."
|
||
}
|
||
}
|
||
```
|
||
- **response:** Provide image in base64 format like iVBORw0KGgoAAAANSUhEUgA... or data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA....
|
||
6. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 528,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"values": ["male", "female", "other"],
|
||
"response": "female",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
operationId: drafttemplate
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/createtemplate_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Template created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_draft_200'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/createtemplate:
|
||
post:
|
||
tags:
|
||
- Templates
|
||
summary: Create Template
|
||
description: |
|
||
The Template Creation API allows users to create customizable templates, which serve as blueprints for generating documents with predefined structures. Upon successful template creation, the API returns a unique **template_id** that can be used to generate documents based on the specified template.
|
||
|
||
Tip: Upload your PDF document to our [**Debug UI**](https://app.opensignlabs.com/debugpdf), where you can easily add widgets, then copy coordinates, page numbers, and more in a ready-to-use JSON format. Plus, you can directly copy the document's base64 string, making it quick to send to the API.
|
||
|
||
**Supported Widgets:**
|
||
|
||
Below are the common parameters that are required with all widgets:
|
||
- **name:** Unique identifier for this widget.
|
||
- **type:** Indicates the type of widget.
|
||
- **page:** Specifies the page number on which you want to place the respective widget.
|
||
- **x, y:** Denotes the horizontal and vertical coordinates of the starting point of the widget. You can use the debug UI to determine these values.
|
||
- **w, h:** Represents the width and height of the widget. You can adjust these values using the debug UI.
|
||
- **required:** Set to false if you want to make the widget optional. By default, it's true. Not applicable for signature-type widgets.
|
||
- **name:** Provides a different name for widgets if you are providing more than one widget.
|
||
- **color:** Specifies the color of the widget content. Available options include black, blue, red, and yellow, with black as the default selection if no color is specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **fontsize:** Specifies the fontsize of the widget content. Available options include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, and 28, with a default fontsize of 12 if not specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **hide_text_with_asterisks:** When enabled, the text on the signed document is hidden from recipients using asterisks, but remains fully visible to the document owner in their OpenSign account. This option is available only on Teams and Enterprise plans.
|
||
- **hint:** Specify the hint for widgets. This parameter is optional and is not applicable to the following widgets: checkbox, radio button, dropdown.
|
||
|
||
**List of all supported widgets:**
|
||
|
||
1. **signature**
|
||
```
|
||
{
|
||
"type": "signature",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"hint": "Provide signature"
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **stamp**
|
||
```
|
||
{
|
||
"type": "stamp",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "stamp",
|
||
"hint": "Provide stamp"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **initials**
|
||
```
|
||
{
|
||
"type": "initials",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "initials",
|
||
"hint": "Provide initials"
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **email**
|
||
```
|
||
{
|
||
"type": "email",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "email",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide email",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **name**
|
||
```
|
||
{
|
||
"type": "name",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "name",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide name",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
6. **job Title**
|
||
```
|
||
{
|
||
"type": "job title",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "job title",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide job title",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
7. **company**
|
||
```
|
||
{
|
||
"type": "company",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "company",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide company",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
8. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"default": "04-15-2024",
|
||
"format": "mm-dd-yyyy",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"readonly": false,
|
||
"signing_date": false,
|
||
"hint": "Provide date"
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide the date from which you want to start the date of the date widget. Must be provided in the specified format. By default, today's date provided.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **min_date:** Provide the minimum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **max_date:** Provide the maximum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **signing_date**: If signing_date is set to true, the signing date is shown to the signer during signing. You may set either signing_date or default, but not both. Using both is not supported.
|
||
|
||
9. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "textbox",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": "name",
|
||
"hint": "provide name",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide a default value for the textbox (Optional).
|
||
- **regularexpression:** A custom regex pattern for validation - for example, /^\d+$/ to permit only digits, /^[A-Z]+$/ to permit only uppercase letters, etc. [help](https://www.w3schools.com/jsref/jsref_obj_regexp.asp) (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
|
||
10. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"selectedvalues": ["male", "female"],
|
||
"readonly": false,
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical",
|
||
"validation": {
|
||
"minselections": 0,
|
||
"maxselections": 0
|
||
}
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **selectedvalues:** Provide values that need to be selected by default (Optional).
|
||
- **readonly:** Set to true if you want to set the checkbox as readonly. By default, it's false.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **minselections:** Provide the minimum number of checkboxes that must be selected by the user.
|
||
- **maxselections:** Provide the maximum number of checkboxes that can be selected by the user.
|
||
|
||
11. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the dropdown as readonly. By default, it's false.
|
||
|
||
12. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "male",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical"
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the radio button as readonly. By default, it's false.
|
||
|
||
13. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"hint": "Provide image"
|
||
}
|
||
}
|
||
```
|
||
|
||
14. **number**
|
||
```
|
||
{
|
||
"type": "number",
|
||
"page": 1,
|
||
"x": 107,
|
||
"y": 528,
|
||
"w": 60,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "number",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": 0,
|
||
"hint": "Provide number",
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **formula:** Compute the value from other number widgets using +, -, *, /, (, ). Reference widgets by their name in double curly braces, e.g. {{quantity}} * {{rate}}. to know more [visit here](https://docs.opensignlabs.com/docs/help/New-Document/widgets) (optional).
|
||
- **default:** Provide a default number (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
- **decimalplaces:** Number of digits to display after the decimal point. e.g: 2 => 12.00, 0 => 12 (default 2)
|
||
|
||
15. **cells**
|
||
```
|
||
{
|
||
"type": "cells",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 100,
|
||
"w": 114,
|
||
"h": 50,
|
||
"options": {
|
||
"name": "cells",
|
||
"required": true,
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **cell_count:** Specify the number of cells that should be returned to the user.
|
||
|
||
16. **attachments**
|
||
```
|
||
{
|
||
"type": "attachments",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "attachment widget",
|
||
"hint": "Provide files"
|
||
}
|
||
}
|
||
```
|
||
|
||
|
||
**Prefill Widgets:** Prefill widgets are elements that are inserted into a document **before** it is shared with a user. Only the document creator has permission to add them.
|
||
|
||
**List of widgets supported in Prefill**
|
||
1. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 290,
|
||
"y": 165,
|
||
"w": 150,
|
||
"h": 20,
|
||
"options": {
|
||
"required": true,
|
||
"name": "textbox",
|
||
"response": "joe",
|
||
"color": "red",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the text you would like to display inside the textbox.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
2. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 588,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"response": "04/15/2024",
|
||
"format": "mm/dd/yyyy",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the date you would like to display inside the date box.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
3. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 172,
|
||
"y": 630,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"response": ["male", "female"],
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **response:** Provide values that need to be selected.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
4. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 718,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"values": ["male", "female", "other"],
|
||
"response": "male",
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **hidelabel:** Set to true if you want to hide labels of the radio button. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
5. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 95,
|
||
"w": 92,
|
||
"h": 55,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"response":"iVBORw0KGgoAAAANSUhEUgAAAmoAAA..."
|
||
}
|
||
}
|
||
```
|
||
- **response:** Provide image in base64 format like iVBORw0KGgoAAAANSUhEUgA... or data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA....
|
||
6. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 528,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"values": ["male", "female", "other"],
|
||
"response": "female",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
operationId: createtemplate
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/createtemplate_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Template created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_5'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/publictemplate:
|
||
post:
|
||
tags:
|
||
- Templates
|
||
summary: Public Template
|
||
description: |
|
||
The Public Template API allows users to create templates that serve as blueprints for generating documents with predefined structures. When a template is successfully created, the API returns a unique **template_id** and a **public_url**. The **public_url** is publicly accessible and may be shared with any user, enabling them to generate and sign documents based on the template. However, the template itself cannot be modified through this URL; it can only be used for document creation and signing.
|
||
|
||
Tip: Upload your PDF document to our [**Debug UI**](https://app.opensignlabs.com/debugpdf), where you can easily add widgets, then copy coordinates, page numbers, and more in a ready-to-use JSON format. Plus, you can directly copy the document's base64 string, making it quick to send to the API.
|
||
|
||
**Supported Widgets:**
|
||
|
||
Below are the common parameters that are required with all widgets:
|
||
- **name:** Unique identifier for this widget.
|
||
- **type:** Indicates the type of widget.
|
||
- **page:** Specifies the page number on which you want to place the respective widget.
|
||
- **x, y:** Denotes the horizontal and vertical coordinates of the starting point of the widget. You can use the debug UI to determine these values.
|
||
- **w, h:** Represents the width and height of the widget. You can adjust these values using the debug UI.
|
||
- **required:** Set to false if you want to make the widget optional. By default, it's true. Not applicable for signature-type widgets.
|
||
- **name:** Provides a different name for widgets if you are providing more than one widget.
|
||
- **color:** Specifies the color of the widget content. Available options include black, blue, red, and yellow, with black as the default selection if no color is specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **fontsize:** Specifies the fontsize of the widget content. Available options include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, and 28, with a default fontsize of 12 if not specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox, radio button, and dropdown.
|
||
- **hide_text_with_asterisks:** When enabled, the text on the signed document is hidden from recipients using asterisks, but remains fully visible to the document owner in their OpenSign account. This option is available only on Teams and Enterprise plans.
|
||
- **hint:** Specify the hint for widgets. This parameter is optional and is not applicable to the following widgets: checkbox, radio button, dropdown.
|
||
|
||
**List of all supported widgets:**
|
||
|
||
1. **signature**
|
||
```
|
||
{
|
||
"type": "signature",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"hint": "Provide signature"
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **stamp**
|
||
```
|
||
{
|
||
"type": "stamp",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "stamp",
|
||
"hint": "Provide stamp"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **initials**
|
||
```
|
||
{
|
||
"type": "initials",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "initials",
|
||
"hint": "Provide initials"
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **email**
|
||
```
|
||
{
|
||
"type": "email",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "email",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide email",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **name**
|
||
```
|
||
{
|
||
"type": "name",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "name",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide name",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
6. **job Title**
|
||
```
|
||
{
|
||
"type": "job title",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "job title",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide job title",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
7. **company**
|
||
```
|
||
{
|
||
"type": "company",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "company",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hint": "Provide company",
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
8. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"default": "04-15-2024",
|
||
"format": "mm-dd-yyyy",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"readonly": false,
|
||
"signing_date": false,
|
||
"hint": "Provide date"
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide the date from which you want to start the date of the date widget. Must be provided in the specified format. By default, today's date provided.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **min_date:** Provide the minimum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **max_date:** Provide the maximum restriction date. The date must be in **YYYY-MM-DD** format.
|
||
- **signing_date**: If signing_date is set to true, the signing date is shown to the signer during signing. You may set either signing_date or default, but not both. Using both is not supported.
|
||
|
||
9. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "textbox",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": "name",
|
||
"hint": "provide name",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **default:** Provide a default value for the textbox (Optional).
|
||
- **regularexpression:** A custom regex pattern for validation - for example, /^\d+$/ to permit only digits, /^[A-Z]+$/ to permit only uppercase letters, etc. [help](https://www.w3schools.com/jsref/jsref_obj_regexp.asp) (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
|
||
10. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"selectedvalues": ["male", "female"],
|
||
"readonly": false,
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical",
|
||
"validation": {
|
||
"minselections": 0,
|
||
"maxselections": 0
|
||
}
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **selectedvalues:** Provide values that need to be selected by default (Optional).
|
||
- **readonly:** Set to true if you want to set the checkbox as readonly. By default, it's false.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **minselections:** Provide the minimum number of checkboxes that must be selected by the user.
|
||
- **maxselections:** Provide the maximum number of checkboxes that can be selected by the user.
|
||
|
||
11. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the dropdown as readonly. By default, it's false.
|
||
|
||
12. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "male",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical"
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **default:** Provide the value that needs to be selected by default. Only one value is accepted. (Optional).
|
||
- **readonly:** Set to true if you want to set the radio button as readonly. By default, it's false.
|
||
|
||
13. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image"
|
||
}
|
||
}
|
||
```
|
||
|
||
14. **number**
|
||
```
|
||
{
|
||
"type": "number",
|
||
"page": 1,
|
||
"x": 107,
|
||
"y": 528,
|
||
"w": 60,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "number",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": 0,
|
||
"hint": "Provide number",
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **formula:** Compute the value from other number widgets using +, -, *, /, (, ). Reference widgets by their name in double curly braces, e.g. {{quantity}} * {{rate}}. to know more [visit here](https://docs.opensignlabs.com/docs/help/New-Document/widgets) (optional).
|
||
- **default:** Provide a default number (Optional).
|
||
- **readonly:** Set to true if you want to set the textbox as readonly. By default, it's false.
|
||
- **decimalplaces:** Number of digits to display after the decimal point. e.g: 2 => 12.00, 0 => 12 (default 2)
|
||
|
||
15. **cells**
|
||
```
|
||
{
|
||
"type": "cells",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 100,
|
||
"w": 114,
|
||
"h": 50,
|
||
"options": {
|
||
"name": "cells",
|
||
"required": true,
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
- **cell_count:** Specify the number of cells that should be returned to the user.
|
||
|
||
16. **attachments**
|
||
```
|
||
{
|
||
"type": "attachments",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "attachment widget",
|
||
"hint": "Provide files"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Prefill Widgets:** Prefill widgets are elements that are inserted into a document **before** it is shared with a user. Only the document creator has permission to add them.
|
||
|
||
**List of widgets supported in Prefill**
|
||
1. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 290,
|
||
"y": 165,
|
||
"w": 150,
|
||
"h": 20,
|
||
"options": {
|
||
"required": true,
|
||
"name": "textbox",
|
||
"response": "joe",
|
||
"color": "red",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the text you would like to display inside the textbox.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
2. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 588,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"response": "04/15/2024",
|
||
"format": "mm/dd/yyyy",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **response:** Enter the date you would like to display inside the date box.
|
||
- **format:** Specify the date format of your choice from the options below.
|
||
- "mm/dd/yyyy",
|
||
- "dd-mm-yyyy",
|
||
- "yyyy-mm-dd",
|
||
- "mm.dd.yyyy",
|
||
- "mm-dd-yyyy",
|
||
- "mmm dd, yyyy",
|
||
- "mmmm dd, yyyy",
|
||
- "dd mmm, yyyy",
|
||
- "dd mmmm, yyy",
|
||
- "dd/mm/yyyy",
|
||
- "dd.mm.yyyy".
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
3. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 172,
|
||
"y": 630,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"response": ["male", "female"],
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the checkbox list.
|
||
- **response:** Provide values that need to be selected.
|
||
- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
4. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 718,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"values": ["male", "female", "other"],
|
||
"response": "male",
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the radio button list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **hidelabel:** Set to true if you want to hide labels of the radio button. By default, it's false.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
|
||
5. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 95,
|
||
"w": 92,
|
||
"h": 55,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"response":"iVBORw0KGgoAAAANSUhEUgAAAmoAAA..."
|
||
}
|
||
}
|
||
```
|
||
- **response:** Provide image in base64 format like iVBORw0KGgoAAAANSUhEUgA... or data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA....
|
||
6. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 528,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"values": ["male", "female", "other"],
|
||
"response": "female",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
- **values:** Provide options for the dropdown list.
|
||
- **response:** Provide the value that needs to be selected. Only one value is accepted.
|
||
- **color:** Choose the text color (options: black, blue, or red).
|
||
operationId: publictemplate
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/createtemplate_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: Template created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_publictemplate'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/template/{template_id}:
|
||
get:
|
||
tags:
|
||
- Templates
|
||
summary: Get Template
|
||
description: |
|
||
The Get Template API allows you to retrieve details about a specific template. Templates serve as blueprints for creating documents with predefined structures.
|
||
|
||
**Responses of Signer Widgets:**
|
||
|
||
1. **signature**
|
||
```
|
||
{
|
||
"type": "signature",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21
|
||
}
|
||
```
|
||
|
||
2. **stamp**
|
||
```
|
||
{
|
||
"type": "stamp",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "stamp"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **initials**
|
||
```
|
||
{
|
||
"type": "initials",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "initials"
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **email**
|
||
```
|
||
{
|
||
"type": "email",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "email",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **name**
|
||
```
|
||
{
|
||
"type": "name",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "name",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
6. **job Title**
|
||
```
|
||
{
|
||
"type": "job title",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "job title",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
7. **company**
|
||
```
|
||
{
|
||
"type": "company",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "company",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
8. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"default": "04-15-2024",
|
||
"format": "mm-dd-yyyy",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"min_date": "",
|
||
"max_date": "",
|
||
"readonly": false,
|
||
"signing_date": false
|
||
}
|
||
}
|
||
```
|
||
|
||
9. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "textbox",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": "name",
|
||
"hint": "provide name",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
10. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"selectedvalues": ["male", "female"],
|
||
"readonly": false,
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical",
|
||
"validation": {
|
||
"minselections": 0,
|
||
"maxselections": 0
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
11. **dropdown**
|
||
```
|
||
{
|
||
"type": "dropdown",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "dropdown",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
|
||
12. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"readonly": false,
|
||
"values": ["male", "female", "other"],
|
||
"default": "male",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"layout": "vertical"
|
||
}
|
||
}
|
||
```
|
||
|
||
13. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 327,
|
||
"y": 628,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image"
|
||
}
|
||
}
|
||
```
|
||
|
||
14. **number**
|
||
```
|
||
{
|
||
"type": "number",
|
||
"page": 1,
|
||
"x": 107,
|
||
"y": 528,
|
||
"w": 60,
|
||
"h": 21,
|
||
"options": {
|
||
"name": "number",
|
||
"required": true,
|
||
"readonly": false,
|
||
"default": 0,
|
||
"hint": "Enter number",
|
||
"formula": "",
|
||
"decimalplaces": 2,
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
15. **cells**
|
||
```
|
||
{
|
||
"type": "cells",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 100,
|
||
"w": 114,
|
||
"h": 50,
|
||
"options": {
|
||
"name": "cells",
|
||
"required": true,
|
||
"readonly": false,
|
||
"cell_count": 5,
|
||
"default": "",
|
||
"hint": "",
|
||
"regularexpression": "",
|
||
"color": "black",
|
||
"fontsize": 12,
|
||
"hide_text_with_asterisks": false
|
||
}
|
||
}
|
||
```
|
||
|
||
**Responses of Prefill widgets**
|
||
1. **textbox**
|
||
```
|
||
{
|
||
"type": "textbox",
|
||
"page": 1,
|
||
"x": 290,
|
||
"y": 165,
|
||
"w": 150,
|
||
"h": 20,
|
||
"options": {
|
||
"required": true,
|
||
"name": "textbox",
|
||
"response": "joe",
|
||
"color": "red",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **date**
|
||
```
|
||
{
|
||
"type": "date",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 588,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "date",
|
||
"response": "04/15/2024",
|
||
"format": "mm/dd/yyyy",
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **checkbox**
|
||
```
|
||
{
|
||
"type": "checkbox",
|
||
"page": 1,
|
||
"x": 172,
|
||
"y": 630,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "checkbox",
|
||
"values": ["male", "female", "other"],
|
||
"response": ["male", "female"],
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
|
||
4. **radio button**
|
||
```
|
||
{
|
||
"type": "radio button",
|
||
"page": 1,
|
||
"x": 173,
|
||
"y": 718,
|
||
"w": 114,
|
||
"h": 21,
|
||
"options": {
|
||
"required": true,
|
||
"name": "radio button",
|
||
"values": ["male", "female", "other"],
|
||
"response": "male",
|
||
"hidelabel": false,
|
||
"color": "black",
|
||
"fontsize": 12
|
||
}
|
||
}
|
||
```
|
||
|
||
5. **image**
|
||
```
|
||
{
|
||
"type": "image",
|
||
"page": 1,
|
||
"x": 100,
|
||
"y": 95,
|
||
"w": 92,
|
||
"h": 55,
|
||
"options": {
|
||
"required": true,
|
||
"name": "image",
|
||
"response":"iVBORw0KGgoAAAANSUhEUgAAAmoAAA..."
|
||
}
|
||
}
|
||
```
|
||
|
||
operationId: getTemplate
|
||
parameters:
|
||
- name: template_id
|
||
in: path
|
||
description: ID of template that needs to be fetched
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: strng
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/template_details'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Template not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_6'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
put:
|
||
tags:
|
||
- Templates
|
||
summary: Update Template
|
||
description: The Update Template API enables you to modify and update the details of a specific template.
|
||
operationId: updateTemplate
|
||
parameters:
|
||
- name: template_id
|
||
in: path
|
||
description: ID of the template that needs to be updated
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
requestBody:
|
||
description: Provide below parameter to update templates (at least one parameter required)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/template_template_id_body'
|
||
responses:
|
||
"200":
|
||
description: Template updated successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_3'
|
||
"400":
|
||
description: Please provide valid field names!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400'
|
||
"404":
|
||
description: Template not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_7'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
delete:
|
||
tags:
|
||
- Templates
|
||
summary: Delete Template
|
||
description: The Delete Template API provides you with the ability to remove a specific template from the templates. If a template is no longer needed
|
||
operationId: deleteTemplate
|
||
parameters:
|
||
- name: template_id
|
||
in: path
|
||
description: ID of the template that needs to be deleted
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
responses:
|
||
"200":
|
||
description: Template deleted successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/delete'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: Template not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_6'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/templatelist:
|
||
get:
|
||
tags:
|
||
- Templates
|
||
summary: Get Template list
|
||
description: "The Get Template List API allows you to retrieve a list of available templates. This functionality provides an overview of all templates, enabling users to choose from existing templates when creating documents."
|
||
operationId: gettemplatelist
|
||
parameters:
|
||
- name: limit
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
maximum: 500
|
||
type: number
|
||
example: 10
|
||
- name: skip
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
type: number
|
||
example: 0
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_6'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/webhook:
|
||
get:
|
||
tags:
|
||
- Webhook
|
||
summary: Get Webhook
|
||
description: The Get Webhook API allow you to get webhook url
|
||
operationId: getWebhook
|
||
responses:
|
||
"200":
|
||
description: Successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_7'
|
||
"404":
|
||
description: User not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
post:
|
||
tags:
|
||
- Webhook
|
||
summary: Save or Update Webhook
|
||
description: |
|
||
The save or update Webhook API allows you to save a webhook URL which is used to trigger events.
|
||
|
||
### Events:
|
||
|
||
**1. viewed:**
|
||
- When a signer views a document, this event will trigger.
|
||
```
|
||
{
|
||
"event": "viewed",
|
||
"type": "DOCUMENT_TYPE",
|
||
"objectId": "DOCUMENT_ID",
|
||
"file": "DOCUMENT_URL",
|
||
"name": "DOCUMENT_NAME",
|
||
"note": "Please review and sign this document",
|
||
"description": "",
|
||
"signers": [
|
||
{
|
||
"name": "SIGNER_NAME",
|
||
"email": "SIGNER_EMAIL",
|
||
"phone": "SIGNER_PHONE"
|
||
}
|
||
],
|
||
"viewedBy": "SIGNER_EMAIL",
|
||
"viewedAt": "TIMESTAMP",
|
||
"createdAt": "TIMESTAMP"
|
||
}
|
||
```
|
||
|
||
**2. created:**
|
||
- When a document is created, this event will trigger.
|
||
```
|
||
{
|
||
"event": "created",
|
||
"type": "DOCUMENT_TYPE",
|
||
"objectId": "DOCUMENT_ID",
|
||
"file": "DOCUMENT_URL",
|
||
"name": "DOCUMENT_NAME",
|
||
"note": "Please review and sign this document",
|
||
"description": "",
|
||
"signers": [
|
||
{
|
||
"name": "SIGNER_NAME",
|
||
"email": "SIGNER_EMAIL",
|
||
"phone": "SIGNER_PHONE"
|
||
}
|
||
],
|
||
"createdAt": "TIMESTAMP"
|
||
}
|
||
```
|
||
- When a document is created through the draft template API, this event will trigger.
|
||
```
|
||
{
|
||
"event": "created",
|
||
"type": "DOCUMENT_TYPE",
|
||
"objectId": "DOCUMENT_ID",
|
||
"file": "DOCUMENT_URL",
|
||
"name": "DOCUMENT_NAME",
|
||
"note": "Please review and sign this document",
|
||
"description": "",
|
||
"signers": [
|
||
{
|
||
"name": "SIGNER_NAME",
|
||
"email": "SIGNER_EMAIL",
|
||
"phone": "SIGNER_PHONE",
|
||
"url": "SIGNING_URL"
|
||
}
|
||
],
|
||
"createdAt": "TIMESTAMP"
|
||
}
|
||
```
|
||
|
||
**3. signed:**
|
||
- When a document is signed by a signer, this event will trigger.
|
||
```
|
||
{
|
||
"event": "signed",
|
||
"type": "DOCUMENT_TYPE",
|
||
"objectId": "DOCUMENT_ID",
|
||
"file": "DOCUMENT_URL",
|
||
"name": "DOCUMENT_NAME",
|
||
"note": "Please review and sign this document",
|
||
"description": "",
|
||
"signer": {
|
||
"name": "SIGNER_NAME",
|
||
"email": "SIGNER_EMAIL",
|
||
"phone": "SIGNER_PHONE"
|
||
},
|
||
"signedAt": "TIMESTAMP",
|
||
"createdAt": "TIMESTAMP"
|
||
}
|
||
```
|
||
|
||
**4. completed:**
|
||
- When a document is signed by all signers, this event will trigger.
|
||
```
|
||
{
|
||
"event": "completed",
|
||
"type": "DOCUMENT_TYPE",
|
||
"objectId": "DOCUMENT_ID",
|
||
"file": "DOCUMENT_URL",
|
||
"name": "DOCUMENT_NAME",
|
||
"note": "Please review and sign this document",
|
||
"description": "",
|
||
"signers": [
|
||
{
|
||
"name": "SIGNER_NAME",
|
||
"email": "SIGNER_EMAIL",
|
||
"phone": "SIGNER_PHONE"
|
||
}
|
||
],
|
||
"certificate": "CERTIFICATE_URL",
|
||
"completedAt": "TIMESTAMP",
|
||
"createdAt": "TIMESTAMP"
|
||
}
|
||
```
|
||
|
||
**5. declined:**
|
||
- When a document is declined by a signer, this event will trigger.
|
||
```
|
||
{
|
||
"event": "declined",
|
||
"type": "DOCUMENT_TYPE",
|
||
"objectId": "DOCUMENT_ID",
|
||
"file": "DOCUMENT_URL",
|
||
"name": "DOCUMENT_NAME",
|
||
"note": "Please review and sign this document",
|
||
"description": "",
|
||
"signers": [
|
||
{
|
||
"name": "SIGNER_NAME",
|
||
"email": "SIGNER_EMAIL",
|
||
"phone": "SIGNER_PHONE"
|
||
}
|
||
],
|
||
"declinedBy": "SIGNER_EMAIL",
|
||
"declinedAt": "TIMESTAMP",
|
||
"createdAt": "TIMESTAMP"
|
||
}
|
||
```
|
||
operationId: save&updateWebhook
|
||
requestBody:
|
||
description: Provide url to create Webhook
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/webhook_body'
|
||
responses:
|
||
"200":
|
||
description: Successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_8'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"401":
|
||
description: Webhook url already exists!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_401_w'
|
||
"404":
|
||
description: User not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
delete:
|
||
tags:
|
||
- Webhook
|
||
summary: Delete Webhook
|
||
description: The Delete Webhook API allow you to delete webhook url
|
||
operationId: deleteWebhook
|
||
responses:
|
||
"200":
|
||
description: Successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_9'
|
||
"404":
|
||
description: User not found!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/createfolder:
|
||
post:
|
||
tags:
|
||
- Folder
|
||
summary: Create Folder
|
||
description: The Create Folder API allows you to create folder.
|
||
operationId: createfolder
|
||
requestBody:
|
||
description: Provide below parameter to create folder
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/folder_body'
|
||
required: true
|
||
responses:
|
||
"200":
|
||
description: folder created successfully!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/folder'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/folder/{folder_id}:
|
||
get:
|
||
tags:
|
||
- Folder
|
||
summary: Get Folder
|
||
description: The Get Folder API allows you to retrieve details about a specific folder.
|
||
operationId: getfolder
|
||
parameters:
|
||
- name: folder_id
|
||
in: path
|
||
description: objectId of folder
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: pH1bhc2hpb
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/folder_res'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: folder not found.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_8'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
put:
|
||
tags:
|
||
- Folder
|
||
summary: Update Folder
|
||
description: The Update Folder API allows you to uodate folder name as well as parentFolderId.
|
||
operationId: updatefolder
|
||
parameters:
|
||
- name: folder_id
|
||
in: path
|
||
description: objectId of folder
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: bK1cfd2hpb
|
||
requestBody:
|
||
description: Provide below parameter to create folder
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/folder_body'
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_11'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"404":
|
||
description: folder not found.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_8'
|
||
"405":
|
||
description: Invalid API token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
delete:
|
||
tags:
|
||
- Folder
|
||
summary: Delete Folder
|
||
description: The delete Folder API allows you to delete folder.
|
||
operationId: deletefolder
|
||
parameters:
|
||
- name: folder_id
|
||
in: path
|
||
description: objectId of folder
|
||
required: true
|
||
style: simple
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: bK1cfd2hpb
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_12'
|
||
"400":
|
||
description: |
|
||
- folder is not empty, contains document or folder.
|
||
- Something went wrong, please try again later!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_3'
|
||
"404":
|
||
description: folder not found.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_404_8'
|
||
"405":
|
||
description: Invalid API token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
/folderlist:
|
||
get:
|
||
tags:
|
||
- Folder
|
||
summary: Get folder list
|
||
description: The Folder List API empowers you to retrieve a list of folder with or without parentFolderId
|
||
operationId: folderlist
|
||
parameters:
|
||
- name: parentFolderId
|
||
in: query
|
||
description: objectId of folder
|
||
required: false
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
- name: limit
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
maximum: 500
|
||
type: number
|
||
example: 10
|
||
- name: skip
|
||
in: query
|
||
required: false
|
||
style: form
|
||
explode: true
|
||
schema:
|
||
type: number
|
||
example: 0
|
||
responses:
|
||
"200":
|
||
description: successful operation
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_200_13'
|
||
"400":
|
||
description: "Something went wrong, please try again later!"
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/inline_response_400_1'
|
||
"405":
|
||
description: Invalid API Token!
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/invalidtoken'
|
||
security:
|
||
- x-api-token: []
|
||
components:
|
||
schemas:
|
||
date:
|
||
type: string
|
||
example: 2023-10-07T16:49:56.000Z
|
||
xml:
|
||
name: date
|
||
template:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: x1Hbnms2Pg
|
||
title:
|
||
type: string
|
||
example: sample template
|
||
note:
|
||
type: string
|
||
example: template note
|
||
file:
|
||
type: string
|
||
example: https://templateuser.com
|
||
owner:
|
||
type: string
|
||
example: template creator name
|
||
signers:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
example: ceo
|
||
name:
|
||
type: string
|
||
example: joe bee
|
||
email:
|
||
type: string
|
||
example: joebee@example.com
|
||
phone:
|
||
type: string
|
||
example: "456213871"
|
||
sendInOrder:
|
||
type: boolean
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: "Whether signers can submit a copy of this template signed using an external tool for owner review. Defaults to false."
|
||
example: false
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
enableTour:
|
||
type: boolean
|
||
example: true
|
||
redirect_url:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
allow_modifications:
|
||
type: boolean
|
||
example: false
|
||
auto_reminder:
|
||
type: boolean
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
example: 0
|
||
prefill:
|
||
$ref: '#/components/schemas/prefill'
|
||
xml:
|
||
name: template
|
||
template_details:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: x1Hbnms2Pg
|
||
title:
|
||
type: string
|
||
example: sample template
|
||
note:
|
||
type: string
|
||
example: template note
|
||
description:
|
||
type: string
|
||
example: template description
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
sender_name:
|
||
type: string
|
||
example: "opensign"
|
||
sender_email:
|
||
type: string
|
||
example: "mailer@opensignlabs.com"
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
merge_certificate:
|
||
type: boolean
|
||
example: false
|
||
file:
|
||
type: string
|
||
example: https://templateuser.com
|
||
owner:
|
||
type: string
|
||
example: template creator name
|
||
signers:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/template_Signers_details'
|
||
sendInOrder:
|
||
type: boolean
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: "Whether signers can submit a copy of this template signed using an external tool for owner review. Defaults to false."
|
||
example: false
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
enableTour:
|
||
type: boolean
|
||
example: true
|
||
redirect_url:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
allow_modifications:
|
||
type: boolean
|
||
example: false
|
||
auto_reminder:
|
||
type: boolean
|
||
example: false
|
||
timeToCompleteDays:
|
||
type: number
|
||
description: time to complete days is used to calculate expiry date of your document
|
||
format: number
|
||
example: 15
|
||
remind_once_in_every:
|
||
type: number
|
||
example: 0
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
prefill:
|
||
$ref: '#/components/schemas/prefill'
|
||
xml:
|
||
name: template_details
|
||
contact:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: ph1bhx2jp
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: joe bee
|
||
email:
|
||
type: string
|
||
format: string
|
||
example: joebee@example.com
|
||
phone:
|
||
type: string
|
||
format: string
|
||
example: "4131231231"
|
||
company:
|
||
type: string
|
||
format: string
|
||
example: opensign
|
||
job_title:
|
||
type: string
|
||
format: string
|
||
example: dev
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
xml:
|
||
name: contactdetails
|
||
folder:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: ph1bhx2jp
|
||
folderName:
|
||
type: string
|
||
format: string
|
||
example: new folder
|
||
parentFolderId:
|
||
type: string
|
||
format: string
|
||
example: J2nas5kiPe
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
xml:
|
||
name: folderdetails
|
||
folder_res:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: ph1bhx2jp
|
||
folderName:
|
||
type: string
|
||
format: string
|
||
example: new folder
|
||
parentFolderId:
|
||
type: string
|
||
format: string
|
||
example: J2nas5kiPe
|
||
parentFolderName:
|
||
type: string
|
||
format: string
|
||
example: new sub folder
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
user:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: FGik23bhUJ
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: Joe Bee
|
||
email:
|
||
type: string
|
||
format: string
|
||
example: joebee@example.com
|
||
phone:
|
||
type: string
|
||
format: string
|
||
example: "4567832123"
|
||
jobTitle:
|
||
type: string
|
||
format: string
|
||
example: dev
|
||
company:
|
||
type: string
|
||
format: string
|
||
example: opensign
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
xml:
|
||
name: user
|
||
documentwithstatus:
|
||
type: object
|
||
properties:
|
||
status:
|
||
type: string
|
||
format: string
|
||
example: in-progress
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: FGik23bhUJ
|
||
file:
|
||
type: string
|
||
format: string
|
||
example: https://exampleurl.com
|
||
certificate:
|
||
type: string
|
||
format: string
|
||
example: https://certificateurl.com
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: sample doc
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: please sign document
|
||
folder:
|
||
$ref: '#/components/schemas/document_folder'
|
||
owner:
|
||
type: string
|
||
format: string
|
||
example: joe bee
|
||
signers:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/template_Signers'
|
||
sendInOrder:
|
||
type: boolean
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: "Whether signers can submit a copy of this document signed using an external tool for owner review. Defaults to false."
|
||
example: false
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
enableTour:
|
||
type: boolean
|
||
example: true
|
||
redirect_url:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
allow_modifications:
|
||
type: boolean
|
||
example: false
|
||
audit_trail:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/documentwithstatus_audit_trail'
|
||
template_id:
|
||
type: string
|
||
example: template_id is only available when the document is created from a template.
|
||
auto_reminder:
|
||
type: boolean
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
example: 0
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
xml:
|
||
name: documentwithstatus
|
||
signerIpsResponse:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: FGik23bhUJ
|
||
signer_ips:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/signer_ips'
|
||
xml:
|
||
name: signerIpsResponse
|
||
signer_ips:
|
||
type: object
|
||
properties:
|
||
email:
|
||
type: string
|
||
example: joebee@example.com
|
||
ip_address:
|
||
type: string
|
||
example: "193.186.4.187"
|
||
xml:
|
||
name: signerIpsResponse
|
||
|
||
getsigninglinks:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: hji2zxcv2P
|
||
signurl:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/inline_response_doc_signurl'
|
||
formdataResponse:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: FGik23bhUJ
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: sample doc
|
||
sent_date:
|
||
type: string
|
||
format: string
|
||
example: "11/11/2025"
|
||
status:
|
||
type: string
|
||
format: string
|
||
example: "completed"
|
||
form_data:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/form_data'
|
||
xml:
|
||
name: formdataResponse
|
||
form_data:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
example: "job bee"
|
||
email:
|
||
type: string
|
||
example: "jobbee@exampl.com"
|
||
widgets:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
example: "job title"
|
||
response:
|
||
type: string
|
||
example: "ceo"
|
||
xml:
|
||
name: form_data
|
||
document:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: FGik23bhUJ
|
||
file:
|
||
type: string
|
||
format: string
|
||
example: https://exampleurl.com
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: sample doc
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: please sign document
|
||
folder:
|
||
$ref: '#/components/schemas/document_folder'
|
||
owner:
|
||
type: string
|
||
format: string
|
||
example: joe bee
|
||
signers:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
example: ceo
|
||
name:
|
||
type: string
|
||
example: joe bee
|
||
email:
|
||
type: string
|
||
example: joebee@example.com
|
||
phone:
|
||
type: string
|
||
example: "456213871"
|
||
sendInOrder:
|
||
type: boolean
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: "Whether signers can submit a copy of this document signed using an external tool for owner review. Defaults to false."
|
||
example: false
|
||
createdAt:
|
||
$ref: '#/components/schemas/date'
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
enableTour:
|
||
type: boolean
|
||
example: true
|
||
redirect_url:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
allow_modifications:
|
||
type: boolean
|
||
example: false
|
||
template_id:
|
||
type: string
|
||
example: template_id is only available when the document is created from a template.
|
||
auto_reminder:
|
||
type: boolean
|
||
description: "Set to true to enable automatic reminders. Set to false to disable them (default behavior)."
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
description: "Number of days between reminders. This is only applicable when auto_reminder is set to true."
|
||
example: 0
|
||
xml:
|
||
name: document
|
||
invalidtoken:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Invalid API token!
|
||
xml:
|
||
name: invalidtoken
|
||
delete:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
example: Bxh2aspHp3
|
||
deletedAt:
|
||
$ref: '#/components/schemas/date'
|
||
xml:
|
||
name: delete
|
||
revoke:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
example: Bxh2aspHp3
|
||
revokedAt:
|
||
$ref: '#/components/schemas/date'
|
||
xml:
|
||
name: revoke
|
||
inline_response_404:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: User not found!
|
||
createcontact_body:
|
||
required:
|
||
- email
|
||
- name
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: joe bee
|
||
email:
|
||
type: string
|
||
format: string
|
||
example: joebee@example.com
|
||
phone:
|
||
type: string
|
||
format: string
|
||
example: "1232131321"
|
||
company:
|
||
type: string
|
||
format: string
|
||
example: opensign
|
||
job_title:
|
||
type: string
|
||
format: string
|
||
example: dev
|
||
folder_body:
|
||
required:
|
||
- foldername
|
||
type: object
|
||
properties:
|
||
folderName:
|
||
type: string
|
||
format: string
|
||
example: new folder
|
||
parentFolderId:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
inline_response_401_1:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Contact already exists!
|
||
inline_response_400_1:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: "Something went wrong, please try again later!"
|
||
inline_response_401_w:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Webhook url already exists!
|
||
inline_response_404_2:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Contact not found!
|
||
inline_response_200:
|
||
type: object
|
||
properties:
|
||
result:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/contact'
|
||
selfsigndocument_body:
|
||
required:
|
||
- file
|
||
- signers
|
||
- title
|
||
type: object
|
||
properties:
|
||
file:
|
||
type: string
|
||
format: base64
|
||
example: base64 encoded pdf
|
||
file_password:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: sample document
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: sample Note
|
||
description:
|
||
type: string
|
||
format: string
|
||
example: sample Description
|
||
timeToCompleteDays:
|
||
type: number
|
||
description: time to complete days is used to calculate expiry date of your document
|
||
format: number
|
||
example: 15
|
||
signer:
|
||
$ref: '#/components/schemas/selfsigndocument_body_signer'
|
||
folderId:
|
||
type: string
|
||
example: ""
|
||
send_email:
|
||
type: boolean
|
||
description: "This parameter allows you to specify whether you want emails to be sent to signers. The default value is \"true\". If the value of this parameter is \"true\" and no 'email_subject'/'email_body' parameters are specified default email templates will be used. \n"
|
||
example: true
|
||
email_subject:
|
||
type: string
|
||
description: "Custom mail subject for signature request. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "{{sender_name}} has requested you to sign {{document_title}}"
|
||
email_body:
|
||
type: string
|
||
description: "Custom signature request email body. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "<p>Hi {{receiver_name}},</p><p>We hope this email finds you well. <strong>{{sender_name}}</strong> has requested you to review and sign <strong>{{document_title}}</strong>.</p><p>Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.</p><p><a href='{{signing_url}}'>Sign here</a></p><p>If you have any questions or need further clarification, please contact the sender.</p><p>Thanks,<br>Team OpenSign™</p>"
|
||
enableTour:
|
||
type: boolean
|
||
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
|
||
example: false
|
||
redirect_url:
|
||
type: string
|
||
description: Specifies the URL where the signer will be redirected upon completing the document signing process.
|
||
example: ""
|
||
sender_name:
|
||
type: string
|
||
description: The name of the person or organization on whose behalf the email is being sent.
|
||
example: opensign™
|
||
sender_email:
|
||
type: string
|
||
description: The email address of the person or organization that users can reply to.
|
||
example: mailer@opensignlabs.com
|
||
merge_certificate:
|
||
type: boolean
|
||
description: |
|
||
**true** - This will ensure that the completion certificate is included in the completed PDF document. However, please note that once merged, the certificate cannot be separated from the main document.
|
||
|
||
**false** - If you choose not to merge, the completion certificate will be provided as a separate signed PDF file along with the signed document.
|
||
|
||
If nothing is set, it will use the owner’s preferences. If the owner’s preferences are also not set, it will default to false.
|
||
example: false
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
description: |
|
||
**true** - The document creator will receive an email notification whenever a signer signs the document.
|
||
|
||
**false** - The document creator will not receive an email notification whenever a signer signs the document.
|
||
|
||
Note: Regardless of this setting, a completion email with the signed document and completion certificate attached is depend on 'send_email' parameter.
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
bcc (blind carbon copy): Users added here will receive a notification email once the document is completed.
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
cc (carbon copy): Users added here will receive a notification email once the document is completed.
|
||
draftdocument_body:
|
||
required:
|
||
- file
|
||
- title
|
||
type: object
|
||
properties:
|
||
file:
|
||
type: string
|
||
format: base64
|
||
example: base64 encoded pdf
|
||
file_password:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: sample document
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: sample Note
|
||
description:
|
||
type: string
|
||
format: string
|
||
example: sample Description
|
||
timeToCompleteDays:
|
||
type: number
|
||
description: time to complete days is used to calculate expiry date of your document
|
||
format: number
|
||
example: 15
|
||
signers:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/createdocument_body_signers'
|
||
folderId:
|
||
type: string
|
||
example: ""
|
||
send_email:
|
||
type: boolean
|
||
description: "This parameter allows you to specify whether you want emails to be sent to signers. The default value is \"true\". If the value of this parameter is \"true\" and no 'email_subject'/'email_body' parameters are specified default email templates will be used. \n"
|
||
example: true
|
||
email_subject:
|
||
type: string
|
||
description: "Custom mail subject for signature request. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "{{sender_name}} has requested you to sign {{document_title}}"
|
||
email_body:
|
||
type: string
|
||
description: "Custom signature request email body. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "<p>Hi {{receiver_name}},</p><p>We hope this email finds you well. <strong>{{sender_name}}</strong> has requested you to review and sign <strong>{{document_title}}</strong>.</p><p>Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.</p><p><a href='{{signing_url}}'>Sign here</a></p><p>If you have any questions or need further clarification, please contact the sender.</p><p>Thanks,<br>Team OpenSign™</p>"
|
||
sendInOrder:
|
||
type: boolean
|
||
description: "If set to 'true', only the first signer will receive the signature request email initially. Emails to subsequent signers will be triggered sequentially, with each sent only after the previous signer has completed their signing. By default, sendInOrder is set to 'true'."
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
description: "When set to 'true', each signer is blocked from accessing the document until all preceding signers have completed their action. Enforces strict sequential signing. Only applies when 'sendInOrder' is also 'true'. Defaults to 'false'."
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: "If set to 'true', signers can submit a copy of this document signed using an external tool for owner review. Defaults to 'false'."
|
||
example: false
|
||
hide_signer_signing_links:
|
||
type: boolean
|
||
description: "If set to 'true', signer signing links are hidden in the draft document response. Defaults to 'false'."
|
||
example: false
|
||
enableOTP:
|
||
type: boolean
|
||
description: "true - this option will enable OTP verification. Users will receive a verification code via email, which they must enter to sign the document. false - this option will disable OTP verification, allowing users to sign the document directly without additional steps."
|
||
example: false
|
||
enableTour:
|
||
type: boolean
|
||
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
|
||
example: false
|
||
redirect_url:
|
||
type: string
|
||
description: Specifies the URL where the signer will be redirected upon completing the document signing process.
|
||
example: ""
|
||
sender_name:
|
||
type: string
|
||
description: The name of the person or organization on whose behalf the email is being sent.
|
||
example: opensign™
|
||
sender_email:
|
||
type: string
|
||
description: The email address of the person or organization that users can reply to.
|
||
example: mailer@opensignlabs.com
|
||
allow_modifications:
|
||
type: boolean
|
||
description: "true - Permits signers to add elements such as signatures, initials, stamps, or text on top of existing widgets in the document. false - Restricts signers from adding any additional elements to the document. This is the default value."
|
||
example: false
|
||
auto_reminder:
|
||
type: boolean
|
||
description: "Set to true to enable automatic reminders. Set to false to disable them (default behavior)."
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
description: "Number of days between reminders. This is only applicable when auto_reminder is set to true."
|
||
example: 5
|
||
merge_certificate:
|
||
type: boolean
|
||
description: |
|
||
**true** - This will ensure that the completion certificate is included in the completed PDF document. However, please note that once merged, the certificate cannot be separated from the main document.
|
||
|
||
**false** - If you choose not to merge, the completion certificate will be provided as a separate signed PDF file along with the signed document.
|
||
|
||
If nothing is set, it will use the owner’s preferences. If the owner’s preferences are also not set, it will default to false.
|
||
example: false
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
description: |
|
||
**true** - The document creator will receive an email notification whenever a signer signs the document.
|
||
|
||
**false** - The document creator will not receive an email notification whenever a signer signs the document.
|
||
|
||
Note: Regardless of this setting, a completion email with the signed document and completion certificate attached is depend on 'send_email' parameter.
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
bcc (blind carbon copy): Users added here will receive a notification email once the document is completed.
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
cc (carbon copy): Users added here will receive a notification email once the document is completed.
|
||
prefill:
|
||
$ref: '#/components/schemas/prefill'
|
||
createdocument_body:
|
||
required:
|
||
- file
|
||
- signers
|
||
- title
|
||
type: object
|
||
properties:
|
||
file:
|
||
type: string
|
||
format: base64
|
||
example: base64 encoded pdf
|
||
file_password:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: sample document
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: sample Note
|
||
description:
|
||
type: string
|
||
format: string
|
||
example: sample Description
|
||
timeToCompleteDays:
|
||
type: number
|
||
description: time to complete days is used to calculate expiry date of your document
|
||
format: number
|
||
example: 15
|
||
signers:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/createdocument_body_signers'
|
||
folderId:
|
||
type: string
|
||
example: ""
|
||
send_email:
|
||
type: boolean
|
||
description: "This parameter allows you to specify whether you want emails to be sent to signers. The default value is \"true\". If the value of this parameter is \"true\" and no 'email_subject'/'email_body' parameters are specified default email templates will be used. \n"
|
||
example: true
|
||
email_subject:
|
||
type: string
|
||
description: "Custom mail subject for signature request. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "{{sender_name}} has requested you to sign {{document_title}}"
|
||
email_body:
|
||
type: string
|
||
description: "Custom signature request email body. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "<p>Hi {{receiver_name}},</p><p>We hope this email finds you well. <strong>{{sender_name}}</strong> has requested you to review and sign <strong>{{document_title}}</strong>.</p><p>Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.</p><p><a href='{{signing_url}}'>Sign here</a></p><p>If you have any questions or need further clarification, please contact the sender.</p><p>Thanks,<br>Team OpenSign™</p>"
|
||
sendInOrder:
|
||
type: boolean
|
||
description: "If set to 'true', only the first signer will receive the signature request email initially. Emails to subsequent signers will be triggered sequentially, with each sent only after the previous signer has completed their signing. By default, sendInOrder is set to 'true'."
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
description: "When set to 'true', each signer is blocked from accessing the document until all preceding signers have completed their action. Enforces strict sequential signing. Only applies when 'sendInOrder' is also 'true'. Defaults to 'false'."
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: "If set to 'true', signers can submit a copy of this document signed using an external tool for owner review. Defaults to 'false'."
|
||
example: false
|
||
enableOTP:
|
||
type: boolean
|
||
description: "true - this option will enable OTP verification. Users will receive a verification code via email, which they must enter to sign the document. false - this option will disable OTP verification, allowing users to sign the document directly without additional steps."
|
||
example: false
|
||
enableTour:
|
||
type: boolean
|
||
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
|
||
example: false
|
||
redirect_url:
|
||
type: string
|
||
description: Specifies the URL where the signer will be redirected upon completing the document signing process.
|
||
example: ""
|
||
sender_name:
|
||
type: string
|
||
description: The name of the person or organization on whose behalf the email is being sent.
|
||
example: opensign™
|
||
sender_email:
|
||
type: string
|
||
description: The email address of the person or organization that users can reply to.
|
||
example: mailer@opensignlabs.com
|
||
allow_modifications:
|
||
type: boolean
|
||
description: "true - Permits signers to add elements such as signatures, initials, stamps, or text on top of existing widgets in the document. false - Restricts signers from adding any additional elements to the document. This is the default value."
|
||
example: false
|
||
auto_reminder:
|
||
type: boolean
|
||
description: "Set to true to enable automatic reminders. Set to false to disable them (default behavior)."
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
description: "Number of days between reminders. This is only applicable when auto_reminder is set to true."
|
||
example: 5
|
||
merge_certificate:
|
||
type: boolean
|
||
description: |
|
||
**true** - This will ensure that the completion certificate is included in the completed PDF document. However, please note that once merged, the certificate cannot be separated from the main document.
|
||
|
||
**false** - If you choose not to merge, the completion certificate will be provided as a separate signed PDF file along with the signed document.
|
||
|
||
If nothing is set, it will use the owner’s preferences. If the owner’s preferences are also not set, it will default to false.
|
||
example: false
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
description: |
|
||
**true** - The document creator will receive an email notification whenever a signer signs the document.
|
||
|
||
**false** - The document creator will not receive an email notification whenever a signer signs the document.
|
||
|
||
Note: Regardless of this setting, a completion email with the signed document and completion certificate attached is depend on 'send_email' parameter.
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
bcc (blind carbon copy): Users added here will receive a notification email once the document is completed.
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
cc (carbon copy): Users added here will receive a notification email once the document is completed.
|
||
prefill:
|
||
$ref: '#/components/schemas/prefill'
|
||
inline_response_200_1:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: hji2zxcv2P
|
||
url:
|
||
type: string
|
||
format: string
|
||
example: https://url-to-sign-document.com
|
||
inline_response_doc:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: hji2zxcv2P
|
||
signurl:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/inline_response_doc_signurl'
|
||
message:
|
||
type: string
|
||
format: string
|
||
example: Document sent successfully!
|
||
inline_draft_doc_res_200_1:
|
||
type: object
|
||
properties:
|
||
document_id:
|
||
type: string
|
||
format: string
|
||
example: hji2zxcv2P
|
||
url:
|
||
type: string
|
||
format: string
|
||
example: https://url-to-send-document.com
|
||
createdocumenttemplate_id_Signers:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
example: Accoutnant
|
||
email:
|
||
type: string
|
||
format: mail
|
||
example: joe@example.com
|
||
name:
|
||
type: string
|
||
example: joe bee
|
||
phone:
|
||
type: string
|
||
example: "123123131"
|
||
company:
|
||
type: string
|
||
format: string
|
||
example: opensign
|
||
job_title:
|
||
type: string
|
||
format: string
|
||
example: dev
|
||
signer_role:
|
||
type: string
|
||
format: string
|
||
description: |
|
||
Specifies the role of the recipient in the signing process. Allowed values:
|
||
- **signer** (default): Must have at least one signature widget.
|
||
- **viewer**: Receives the document to view only; must have no widgets.
|
||
- **approver**: Reviews and approves the document; no signature widget required.
|
||
enum:
|
||
- signer
|
||
- viewer
|
||
- approver
|
||
example: signer
|
||
access_code:
|
||
type: string
|
||
format: number
|
||
description: "Optional numeric access code required for the signer to access and sign the document."
|
||
example: 123456
|
||
widgets:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/createdocumenttemplate_id_Signers_widgets'
|
||
createdocument_template_id_body:
|
||
required:
|
||
- signers
|
||
type: object
|
||
properties:
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: New document title
|
||
description: |
|
||
An optional parameter specifying the title for the newly created document. If omitted, the template’s title will be used by default.
|
||
signers:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/createdocumenttemplate_id_Signers'
|
||
folderId:
|
||
type: string
|
||
example: ""
|
||
send_email:
|
||
type: boolean
|
||
description: |
|
||
This parameter allows you to specify whether you want emails to be sent to signers. The default value is "true". If the value of this parameter is "true" and no 'email_subject'/'email_body' parameters are specified default email templates will be used.
|
||
|
||
If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: true
|
||
email_subject:
|
||
type: string
|
||
description: "Custom mail subject for signature request. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "{{sender_name}} has requested you to sign {{document_title}}"
|
||
email_body:
|
||
type: string
|
||
description: "Custom signature request email body. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "<p>Hi {{receiver_name}},</p><p>We hope this email finds you well. <strong>{{sender_name}}</strong> has requested you to review and sign <strong>{{document_title}}</strong>.</p><p>Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.</p><p><a href='{{signing_url}}'>Sign here</a></p><p>If you have any questions or need further clarification, please contact the sender.</p><p>Thanks,<br>Team OpenSign™</p>"
|
||
sendInOrder:
|
||
type: boolean
|
||
description: |
|
||
**true** - Only the first signer receives the signature request email initially. Each subsequent signer is notified in sequence, only after the previous signer has completed their signing. This is the default behavior.
|
||
|
||
**false** - All signers receive the signature request email simultaneously.
|
||
|
||
If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
description: |
|
||
**true** - Each signer is blocked from accessing the document until all preceding signers have completed their action. Enforces strict sequential signing. Only applies when sendInOrder is also true.
|
||
|
||
**false** - Signers can access the document regardless of whether previous signers have completed.
|
||
|
||
If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: |
|
||
**true** - Signers can submit a copy of this document signed using an external tool for owner review.
|
||
|
||
**false** - Signers must complete signing within OpenSign.
|
||
|
||
If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: false
|
||
timeToCompleteDays:
|
||
type: number
|
||
description: time to complete days is used to calculate expiry date of your document. If this field is present in the request body, it overrides the template value, even when set to 0. If omitted, the template value is used.
|
||
format: number
|
||
example: 15
|
||
enableOTP:
|
||
type: boolean
|
||
description: |
|
||
**true** - this option will enable OTP verification. Users will receive a verification code via email, which they must enter to sign the document.
|
||
|
||
**false** - this option will disable OTP verification, allowing users to sign the document directly without additional steps.
|
||
|
||
If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: false
|
||
enableTour:
|
||
type: boolean
|
||
description: |
|
||
**true** - this option will enable a guided tour for signers, providing instructions during the signing process.
|
||
|
||
**false** - disable the guided tour, ensuring a faster, uninterrupted signing experience.
|
||
|
||
If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: false
|
||
sender_name:
|
||
type: string
|
||
description: |
|
||
The name of the person or organization on whose behalf the email is being sent. If this field is present in the request body, it overrides the template value, even when set to an empty string (""). If omitted, the template value is used.
|
||
|
||
If nothing is set, it will use the owner’s preferences. If the owner’s preferences are also not set, it will default to "".
|
||
example: opensign™
|
||
sender_email:
|
||
type: string
|
||
description: |
|
||
The email address of the person or organization that users can reply to. If this field is present in the request body, it overrides the template value, even when set to an empty string (""). If omitted, the template value is used.
|
||
|
||
If nothing is set, it will use the owner’s preferences. If the owner’s preferences are also not set, it will default to "".
|
||
|
||
example: mailer@opensignlabs.com
|
||
allow_modifications:
|
||
type: boolean
|
||
description: |
|
||
**true** - Permits signers to add elements such as signatures, initials, stamps, or text on top of existing widgets in the document.
|
||
|
||
**false** - Restricts signers from adding any additional elements to the document. This is the default value.
|
||
|
||
If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: false
|
||
file:
|
||
type: string
|
||
description: You may provide the base64 encoded PDF file to replace the existing one
|
||
format: base64
|
||
example: ""
|
||
file_password:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
auto_reminder:
|
||
type: boolean
|
||
description: Set to true to enable automatic reminders. Set to false to disable them (default behavior). If the field is omitted or provided as an empty/invalid value, the template value is used.
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
description: Number of days between reminders. This is only applicable when auto_reminder is set to true. If this field is present in the request body, it overrides the template value, even when set to 0. If omitted, the template value is used.
|
||
example: 5
|
||
merge_certificate:
|
||
type: boolean
|
||
description: |
|
||
**true** - This will ensure that the completion certificate is included in the completed PDF document. However, please note that once merged, the certificate cannot be separated from the main document.
|
||
|
||
**false** - If you choose not to merge, the completion certificate will be provided as a separate signed PDF file along with the signed document.
|
||
|
||
If nothing is set, it will use the owner’s preferences. If the owner’s preferences are also not set, it will default to false.
|
||
example: false
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
description: |
|
||
**true** - The document creator will receive an email notification whenever a signer signs the document.
|
||
|
||
**false** - The document creator will not receive an email notification whenever a signer signs the document.
|
||
|
||
Note: Regardless of this setting, a completion email with the signed document and completion certificate attached is depend on 'send_email' parameter.
|
||
redirect_url:
|
||
type: string
|
||
description: Specifies the URL where the signer will be redirected upon completing the document signing process. If this field is present in the request body, it overrides the template value, even when set to an empty string (""). If omitted, the template value is used.
|
||
example: ""
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
bcc (blind carbon copy): Users added here will receive a notification email once the document is completed.
|
||
If this field is present in the request body, it overrides the template value, even when provided as an empty array ([]).
|
||
If omitted or provided empty string ("") the template value is used.
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
cc (carbon copy): Users added here will receive a notification email once the document is completed.
|
||
If this field is present in the request body, it overrides the template value, even when provided as an empty array ([]).
|
||
If omitted or provided empty string ("") the template value is used.
|
||
prefill:
|
||
type: object
|
||
properties:
|
||
widgets:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: textbox
|
||
response:
|
||
type: string
|
||
format: string
|
||
example: andrew bee
|
||
revokedocument:
|
||
type: object
|
||
properties:
|
||
reason:
|
||
type: string
|
||
example: ""
|
||
resendmail_body:
|
||
required:
|
||
- document_id
|
||
- email
|
||
type: object
|
||
properties:
|
||
document_id:
|
||
type: string
|
||
example: provide document id
|
||
email:
|
||
type: string
|
||
description: |
|
||
provide user mail from signers to re-send request mail.
|
||
example: user@example.com
|
||
email_subject:
|
||
type: string
|
||
description: "Custom signature request email subject in text/html format. Can include following variables {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "{{sender_name}} has requested you to sign {{document_title}}"
|
||
email_body:
|
||
type: string
|
||
description: "Custom signature request email body in text/html format. Can include following variables {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}."
|
||
example: "<p>Hi {{receiver_name}},</p><p>We hope this email finds you well. <strong>{{sender_name}}</strong> has requested you to review and sign <strong>{{document_title}}</strong>.</p><p>Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.</p><p><a href='{{signing_url}}'>Sign here</a></p><p>If you have any questions or need further clarification, please contact the sender.</p><p>Thanks,<br>Team OpenSign™</p>"
|
||
inline_response_404_3:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Document not found!
|
||
document_document_id_body:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: sample document
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: Please review and sign this document
|
||
description:
|
||
type: string
|
||
format: string
|
||
example: document description
|
||
folderId:
|
||
type: string
|
||
example: ""
|
||
enableOTP:
|
||
type: boolean
|
||
description: "true - this option will enable OTP verification. Users will receive a verification code via email, which they must enter to sign the document. false - this option will disable OTP verification, allowing users to sign the document directly without additional steps."
|
||
example: false
|
||
enableTour:
|
||
type: boolean
|
||
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
|
||
example: false
|
||
allow_modifications:
|
||
type: boolean
|
||
description: "true - Permits signers to add elements such as signatures, initials, stamps, or text on top of existing widgets in the document. false - Restricts signers from adding any additional elements to the document. This is the default value."
|
||
example: false
|
||
send_in_order_strict:
|
||
type: boolean
|
||
description: "When set to 'true', each signer is blocked from accessing the document until all preceding signers have completed their action. Enforces strict sequential signing. Only applies when 'sendInOrder' is also 'true'. Defaults to 'false'."
|
||
example: false
|
||
redirect_url:
|
||
type: string
|
||
description: Specifies the URL where the signer will be redirected upon completing the document signing process.
|
||
example: ""
|
||
auto_reminder:
|
||
type: boolean
|
||
description: "Set to true to enable automatic reminders. Set to false to disable them (default behavior)."
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
description: "Number of days between reminders. This is only applicable when auto_reminder is set to true."
|
||
example: 5
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
description: |
|
||
**true** - The document creator will receive an email notification whenever a signer signs the document.
|
||
|
||
**false** - The document creator will not receive an email notification whenever a signer signs the document.
|
||
|
||
Note: Regardless of this setting, a completion email with the signed document and completion certificate attached is depend on 'send_email' parameter.
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
bcc (blind carbon copy): Users added here will receive a notification email once the document is completed.
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
cc (carbon copy): Users added here will receive a notification email once the document is completed.
|
||
inline_response_200_3:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
example: asd2HsP4Hp
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
inline_response_400:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
format: string
|
||
example: Please provide valid field names!
|
||
inline_response_404_4:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
format: string
|
||
example: Document not found!
|
||
inline_response_200_4:
|
||
type: object
|
||
properties:
|
||
result:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/document'
|
||
inline_response_404_5:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Report not available!
|
||
createtemplate_body:
|
||
required:
|
||
- file
|
||
- signers
|
||
- title
|
||
type: object
|
||
properties:
|
||
file:
|
||
type: string
|
||
format: base64
|
||
example: base64 encoded pdf
|
||
file_password:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
title:
|
||
type: string
|
||
format: string
|
||
example: sample template
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: sample note
|
||
description:
|
||
type: string
|
||
format: string
|
||
example: sample description
|
||
signers:
|
||
type: array
|
||
description: You can provide signer optionally if you it as default signer
|
||
items:
|
||
$ref: '#/components/schemas/createtemplate_body_signers'
|
||
sendInOrder:
|
||
type: boolean
|
||
description: "If set to 'true', only the first signer will receive the signature request email initially. Emails to subsequent signers will be triggered sequentially, with each sent only after the previous signer has completed their signing. By default, sendInOrder is set to 'true'."
|
||
example: true
|
||
send_in_order_strict:
|
||
type: boolean
|
||
description: "When set to 'true', each signer is blocked from accessing the document until all preceding signers have completed their action. Enforces strict sequential signing. Only applies when 'sendInOrder' is also 'true'. Defaults to 'false'."
|
||
example: false
|
||
allow_offline_sign:
|
||
type: boolean
|
||
description: "If set to 'true', signers can submit a copy of documents created from this template signed using an external tool for owner review. Defaults to 'false'."
|
||
example: false
|
||
enableOTP:
|
||
type: boolean
|
||
description: "true - this option will enable OTP verification. Users will receive a verification code via email, which they must enter to sign the document. false - this option will disable OTP verification, allowing users to sign the document directly without additional steps."
|
||
example: false
|
||
enableTour:
|
||
type: boolean
|
||
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
|
||
example: false
|
||
redirect_url:
|
||
type: string
|
||
description: Specifies the URL where the signer will be redirected upon completing the document signing process.
|
||
example: ""
|
||
sender_name:
|
||
type: string
|
||
description: The name of the person or organization on whose behalf the email is being sent.
|
||
example: opensign™
|
||
sender_email:
|
||
type: string
|
||
description: The email address of the person or organization that users can reply to.
|
||
example: mailer@opensignlabs.com
|
||
allow_modifications:
|
||
type: boolean
|
||
description: "true - Permits signers to add elements such as signatures, initials, stamps, or text on top of existing widgets in the document. false - Restricts signers from adding any additional elements to the document. This is the default value."
|
||
example: false
|
||
auto_reminder:
|
||
type: boolean
|
||
description: "Set to true to enable automatic reminders. Set to false to disable them (default behavior)."
|
||
example: false
|
||
timeToCompleteDays:
|
||
type: number
|
||
description: time to complete days is used to calculate expiry date of your document
|
||
format: number
|
||
example: 15
|
||
remind_once_in_every:
|
||
type: number
|
||
description: "Number of days between reminders. This is only applicable when auto_reminder is set to true."
|
||
example: 5
|
||
merge_certificate:
|
||
type: boolean
|
||
description: |
|
||
**true** - This will ensure that the completion certificate is included in the completed PDF document. However, please note that once merged, the certificate cannot be separated from the main document.
|
||
|
||
**false** - If you choose not to merge, the completion certificate will be provided as a separate signed PDF file along with the signed document.
|
||
|
||
If nothing is set, it will use the owner’s preferences. If the owner’s preferences are also not set, it will default to false.
|
||
example: false
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
description: |
|
||
**true** - The document creator will receive an email notification whenever a signer signs the document.
|
||
|
||
**false** - The document creator will not receive an email notification whenever a signer signs the document.
|
||
|
||
Note: Regardless of this setting, a completion email with the signed document and completion certificate attached is depend on 'send_email' parameter.
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
bcc (blind carbon copy): Users added here will receive a notification email once the document is completed.
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
cc (carbon copy): Users added here will receive a notification email once the document is completed.
|
||
prefill:
|
||
$ref: '#/components/schemas/prefill'
|
||
inline_response_draft_200:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
example: Bh2Hspnmch
|
||
url:
|
||
type: string
|
||
example: https://app.opensignlabs.com/drafttemplate/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2VtYWlsIjoicHJhZnVsbC5uYXZrYXIrYWRtaW5AbnhnbGFicy5jb20iLCJ0ZW1wbGF0ZV9pZCI6IkF0Zkk0cmNCbnAiLCJpYXQiOjE3MzEzMTExMzl9.aNqjCxc9MkE6-ZIr-MObKjqtpR5d3NXi68eMeWnT0Lc
|
||
inline_response_publictemplate:
|
||
type: object
|
||
properties:
|
||
template_id:
|
||
type: string
|
||
example: Av8Pmpnmch
|
||
public_url:
|
||
type: string
|
||
example: https://app.example.com/publicsign?templateid=Av8Pmpnmch
|
||
message:
|
||
type: string
|
||
example: Public template created successfully!
|
||
inline_response_200_5:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
example: Bh2Hspnmch
|
||
message:
|
||
type: string
|
||
example: Template created successfully!
|
||
inline_response_404_6:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: Template not found!
|
||
template_template_id_body:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: sample template
|
||
note:
|
||
type: string
|
||
format: string
|
||
example: Please review and sign this document
|
||
description:
|
||
type: string
|
||
format: string
|
||
example: template description
|
||
folderId:
|
||
type: string
|
||
example: ""
|
||
enableOTP:
|
||
type: boolean
|
||
description: "true - this option will enable OTP verification. Users will receive a verification code via email, which they must enter to sign the document. false - this option will disable OTP verification, allowing users to sign the document directly without additional steps."
|
||
example: false
|
||
enableTour:
|
||
type: boolean
|
||
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
|
||
example: false
|
||
allow_modifications:
|
||
type: boolean
|
||
description: "true - Permits signers to add elements such as signatures, initials, stamps, or text on top of existing widgets in the document. false - Restricts signers from adding any additional elements to the document. This is the default value."
|
||
example: false
|
||
send_in_order_strict:
|
||
type: boolean
|
||
description: "When set to 'true', each signer is blocked from accessing the document until all preceding signers have completed their action. Enforces strict sequential signing. Only applies when 'sendInOrder' is also 'true'. Defaults to 'false'."
|
||
example: false
|
||
file:
|
||
type: string
|
||
description: You may provide the base64 encoded PDF file to replace the existing one
|
||
format: base64
|
||
example: ""
|
||
file_password:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
redirect_url:
|
||
type: string
|
||
description: Specifies the URL where the signer will be redirected upon completing the document signing process.
|
||
example: ""
|
||
auto_reminder:
|
||
type: boolean
|
||
description: "Set to true to enable automatic reminders. Set to false to disable them (default behavior)."
|
||
example: false
|
||
remind_once_in_every:
|
||
type: number
|
||
description: "Number of days between reminders. This is only applicable when auto_reminder is set to true."
|
||
example: 5
|
||
notify_on_signatures:
|
||
type: boolean
|
||
example: false
|
||
description: |
|
||
**true** - The document creator will receive an email notification whenever a signer signs the document.
|
||
|
||
**false** - The document creator will not receive an email notification whenever a signer signs the document.
|
||
|
||
Note: Regardless of this setting, a completion email with the signed document and completion certificate attached is depend on 'send_email' parameter.
|
||
pen_colors:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["blue", "red", "black"]
|
||
bcc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
bcc (blind carbon copy): Users added here will receive a notification email once the document is completed.
|
||
cc:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example: ["user@example.com","user2@example.com"]
|
||
description: |
|
||
cc (carbon copy): Users added here will receive a notification email once the document is completed.
|
||
inline_response_404_7:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
format: string
|
||
example: Template not found!
|
||
inline_response_200_6:
|
||
type: object
|
||
properties:
|
||
result:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/template'
|
||
inline_response_200_7:
|
||
type: object
|
||
properties:
|
||
webhook:
|
||
type: string
|
||
example: https://your-webhook-url@example.com
|
||
webhook_body:
|
||
required:
|
||
- Url
|
||
type: object
|
||
properties:
|
||
url:
|
||
type: string
|
||
format: string
|
||
example: https://your-webhook-url@example.com
|
||
inline_response_200_8:
|
||
type: object
|
||
properties:
|
||
result:
|
||
type: string
|
||
example: Webhook updated successfully!
|
||
inline_response_200_9:
|
||
type: object
|
||
properties:
|
||
result:
|
||
type: string
|
||
example: Webhook deleted successfully!
|
||
template_Signers:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
example: ceo
|
||
name:
|
||
type: string
|
||
example: joe bee
|
||
email:
|
||
type: string
|
||
example: joebee@example.com
|
||
phone:
|
||
type: string
|
||
example: "456213871"
|
||
widgets:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/template_Signers_widgets'
|
||
template_Signers_details:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
example: ceo
|
||
name:
|
||
type: string
|
||
example: joe bee
|
||
email:
|
||
type: string
|
||
example: joebee@example.com
|
||
phone:
|
||
type: string
|
||
example: "456213871"
|
||
widgets:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/template_Signers_widgets_details'
|
||
inline_response_400_cc:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
format: string
|
||
example: Please setup template properly!
|
||
createdocument_body_widgets:
|
||
type: object
|
||
properties:
|
||
type:
|
||
type: string
|
||
description: "Allowed values include signature, stamp, initials, email, name, job title, company, date, textbox, checkbox, dropdown, radio button, image, number, cells, attachments."
|
||
format: string
|
||
example: signature
|
||
page:
|
||
type: number
|
||
description: "The page number on which the widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 1
|
||
x:
|
||
type: number
|
||
description: "x co-ordinate (left upper corner) from which widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 244
|
||
y:
|
||
type: number
|
||
description: "y co-ordinate (left upper corner) from which widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 71
|
||
w:
|
||
type: number
|
||
description: "Width of widget. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 38
|
||
h:
|
||
type: number
|
||
description: "Height of widget. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 46
|
||
createdocument_body_signers:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
format: string
|
||
example: ceo
|
||
email:
|
||
type: string
|
||
format: string
|
||
example: joebee@example.com
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: joe bee
|
||
phone:
|
||
type: string
|
||
format: string
|
||
example: "123121312"
|
||
company:
|
||
type: string
|
||
format: string
|
||
example: opensign
|
||
job_title:
|
||
type: string
|
||
format: string
|
||
example: dev
|
||
signer_role:
|
||
type: string
|
||
format: string
|
||
description: |
|
||
Specifies the role of the recipient in the signing process. Allowed values:
|
||
- **signer** (default): Must have at least one signature widget.
|
||
- **viewer**: Receives the document to view only; must have no widgets.
|
||
- **approver**: Reviews and approves the document; no signature widget required.
|
||
enum:
|
||
- signer
|
||
- viewer
|
||
- approver
|
||
example: signer
|
||
access_code:
|
||
type: number
|
||
format: number
|
||
description: "Optional numeric access code required for the signer to access and sign the document."
|
||
example: 123456
|
||
widgets:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/createdocument_body_widgets'
|
||
createtemplate_body_widgets:
|
||
type: object
|
||
properties:
|
||
type:
|
||
type: string
|
||
description: "Allowed values include signature, stamp, initials, email, name, job title, company, date, textbox, checkbox, dropdown, radio button, image, number, cells, attachments."
|
||
format: string
|
||
example: signature
|
||
page:
|
||
type: number
|
||
description: "The page number on which the widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 1
|
||
x:
|
||
type: number
|
||
description: "x co-ordinate (left upper corner) from which widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 244
|
||
y:
|
||
type: number
|
||
description: "y co-ordinate (left upper corner) from which widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 71
|
||
w:
|
||
type: number
|
||
description: "Width of widget. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 38
|
||
h:
|
||
type: number
|
||
description: "Height of widget. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 46
|
||
createtemplate_body_signers:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
format: string
|
||
example: ceo
|
||
email:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
phone:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
company:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
job_title:
|
||
type: string
|
||
format: string
|
||
example: ""
|
||
signer_role:
|
||
type: string
|
||
format: string
|
||
description: |
|
||
Specifies the role of the recipient in the signing process. Allowed values:
|
||
- **signer** (default): Must have at least one signature widget.
|
||
- **viewer**: Receives the document to view only; must have no widgets.
|
||
- **approver**: Reviews and approves the document; no signature widget required.
|
||
enum:
|
||
- signer
|
||
- viewer
|
||
- approver
|
||
example: signer
|
||
access_code:
|
||
type: number
|
||
format: number
|
||
description: "Optional numeric access code required for the signer to access and sign the document."
|
||
example: 123456
|
||
widgets:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/createtemplate_body_widgets'
|
||
document_folder:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: FGik23bhUJ
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: folder name
|
||
template_Signers_widgets:
|
||
type: object
|
||
properties:
|
||
type:
|
||
type: string
|
||
format: string
|
||
example: textbox
|
||
page:
|
||
type: number
|
||
format: number
|
||
example: 1
|
||
x:
|
||
type: number
|
||
format: number
|
||
example: 244
|
||
y:
|
||
type: number
|
||
format: number
|
||
example: 71
|
||
w:
|
||
type: number
|
||
format: number
|
||
example: 38
|
||
h:
|
||
type: number
|
||
format: number
|
||
example: 46
|
||
options:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: "textbox"
|
||
template_Signers_widgets_details:
|
||
type: object
|
||
properties:
|
||
type:
|
||
type: string
|
||
format: string
|
||
example: textbox
|
||
page:
|
||
type: number
|
||
format: number
|
||
example: 1
|
||
x:
|
||
type: number
|
||
format: number
|
||
example: 244
|
||
y:
|
||
type: number
|
||
format: number
|
||
example: 71
|
||
w:
|
||
type: number
|
||
format: number
|
||
example: 38
|
||
h:
|
||
type: number
|
||
format: number
|
||
example: 46
|
||
options:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: "textbox"
|
||
color:
|
||
type: string
|
||
format: string
|
||
example: "black"
|
||
fontSize:
|
||
type: number
|
||
format: number
|
||
example: 12
|
||
hide_text_with_asterisks:
|
||
type: boolean
|
||
format: boolean
|
||
example: false
|
||
inline_response_200_10:
|
||
type: object
|
||
properties:
|
||
result:
|
||
type: string
|
||
format: string
|
||
example: mail sent successfully.
|
||
inline_response_400_2:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
format: string
|
||
example: Something went wrong.
|
||
inline_response_404_1:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
format: string
|
||
example: document not found or user not found.
|
||
inline_response_404_8:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
format: string
|
||
example: folder not found.
|
||
inline_response_200_11:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: Hks2JpewIp
|
||
updatedAt:
|
||
$ref: '#/components/schemas/date'
|
||
inline_response_200_12:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
format: string
|
||
example: Hks2JpewIp
|
||
deletedAt:
|
||
$ref: '#/components/schemas/date'
|
||
inline_response_400_3:
|
||
type: object
|
||
oneOf:
|
||
- properties:
|
||
error:
|
||
type: string
|
||
example: "folder is not empty, contains document or folder."
|
||
- properties:
|
||
error:
|
||
type: string
|
||
example: "Something went wrong, please try again later!"
|
||
inline_response_200_13:
|
||
type: object
|
||
properties:
|
||
result:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/folder_res'
|
||
selfsigndocument_body_signer:
|
||
type: object
|
||
properties:
|
||
role:
|
||
type: string
|
||
format: string
|
||
example: ceo
|
||
email:
|
||
type: string
|
||
format: string
|
||
example: joebee@example.com
|
||
name:
|
||
type: string
|
||
format: string
|
||
example: joe bee
|
||
phone:
|
||
type: string
|
||
format: string
|
||
example: "123121312"
|
||
company:
|
||
type: string
|
||
format: string
|
||
example: opensign
|
||
job_title:
|
||
type: string
|
||
format: string
|
||
example: dev
|
||
widgets:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/createtemplate_body_widgets'
|
||
inline_response_doc_signurl:
|
||
type: object
|
||
properties:
|
||
email:
|
||
type: string
|
||
format: string
|
||
example: mail@example.com
|
||
url:
|
||
type: string
|
||
format: string
|
||
example: https://url-to-sign-document.com
|
||
createdocumenttemplate_id_Signers_widgets:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
example: textbox_1
|
||
readonly:
|
||
type: boolean
|
||
example: false
|
||
default:
|
||
type: string
|
||
example: my textbox
|
||
documentwithstatus_audit_trail:
|
||
type: object
|
||
properties:
|
||
email:
|
||
type: string
|
||
example: joebee@example.com
|
||
viewed:
|
||
$ref: '#/components/schemas/date'
|
||
signed:
|
||
$ref: '#/components/schemas/date'
|
||
prefill:
|
||
type: object
|
||
description: You can provide widgets which can embed before sending to signer
|
||
properties:
|
||
widgets:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
type:
|
||
type: string
|
||
format: string
|
||
example: textbox
|
||
page:
|
||
type: number
|
||
description: "The page number on which the widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 1
|
||
x:
|
||
type: number
|
||
description: "x co-ordinate (left upper corner) from which widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 100
|
||
y:
|
||
type: number
|
||
description: "y co-ordinate (left upper corner) from which widget should appear. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 30
|
||
w:
|
||
type: number
|
||
description: "Width of widget. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 40
|
||
h:
|
||
type: number
|
||
description: "Height of widget. use our [**Debug UI**](https://app.opensignlabs.com/debugpdf) to calculate the value."
|
||
format: number
|
||
example: 80
|
||
options:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
example: textbox
|
||
response:
|
||
type: string
|
||
example: joe
|
||
color:
|
||
type: string
|
||
example: red
|
||
fontsize:
|
||
type: number
|
||
example: 12
|
||
credits_res:
|
||
type: object
|
||
properties:
|
||
plan_credits:
|
||
type: number
|
||
example: 0
|
||
addon_credits:
|
||
type: number
|
||
example: 0
|
||
total_credits:
|
||
type: number
|
||
example: 0
|
||
renewal_date:
|
||
type: string
|
||
format: date
|
||
example: '2026-09-17T00:00:00.000Z'
|
||
securitySchemes:
|
||
x-api-token:
|
||
type: apiKey
|
||
name: x-api-token
|
||
in: header
|