Envelopes support sending multiple documents in a single go for signature request.
Initiate a new envelope signature request with fields. You get to choose where exactly in the document each signer has to fill in and sign, the type of fields and if each of those fields are required or not.
A sample Envelope API Request
{
"embedded_signing": true,
"is_ordered": false,
"message": "Envelope API Demo",
"sources": [
{
"id": {{template_id}},
"type": "template",
"name": "Template Filename",
"source_id": 1
},
{
"id": {{original_id}},
"type": "original",
"name": "Original Filename",
"source_id": 2
}
],
"recipients": [
{
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"recipient_id": 1
},
{
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]",
"recipient_id": 2
}
],
"merge_fields": [
{
"source_id": 1,
"label": "name",
"value": "Jane Doe"
}
],
"recipient_role_mapping": [
{
"role_id": 1,
"recipient_id": 1,
"source_id": 1
},
{
"role_id": 2,
"recipient_id": 2,
"source_id": 1
}
],
"signature_panel_types": [
"draw",
"type"
],
"initial_panel_types": [
"draw"
],
"fields_payload": [
{
"recipient_id": 1,
"source_id": 1,
"type": "signature",
"required": true,
"page_number": "all",
"position": {
"height": 100,
"width": 100,
"x": 400,
"y": 200,
"mode": "fixed"
},
"additional_info": {}
},
{
"recipient_id": 1,
"source_id": 2,
"type": "signature",
"required": true,
"page_number": "all",
"position": {
"height": 20,
"width": 40,
"text": "John",
"mode": "referenceText"
},
"additional_info": {}
},
{
"recipient_id": 2,
"source_id": 2,
"type": "signature",
"required": true,
"page_number": "all",
"position": {
"height": 20,
"width": 40,
"text": "Jane",
"mode": "referenceText"
},
"additional_info": {}
}
]
}
Fields Payload
Key | Type | Description |
---|---|---|
original_id | int | The original document to add the field. |
recipient_id | int | The recipient to add the field. |
required | boolean | If the field is mandatory to be filled in by the recipient. |
request_info | JSON | Additional metadata that you can pass and receive the metadata back when via callbacks |
position | JSON | Tag to place the signature at a specific position (fixed) or next to a specific text (referenceText) in the page |
mode | string | Two modes are supported : "fixed" or "referenceText". "fixed" - Allows you to place the signature or fields at a particular x,y coordinate in a page. p.s.:- the bottom left of a page is defined as 0,0 "referenceText" - Allows you to place the signature or fields next to a particular text |
x | float | The field's horizontal margin from the left side of the document in pixels. This represents the bottom left corner of the field. p.s:- this can be used only in the "fixed" mode |
y | float | The field's vertical margin from the bottom of the document in pixels. This represents the bottom left corner of the field. p.s:- this can be used only in the "fixed" mode |
xOffset | float | The field's horizontal margin from the left side of the referenceText in pixels. This represents the bottom left corner of the field. p.s:- this can be used only in the "reference" mode |
yOffset | float | The field's vertical margin from the bottom of the referenceText in pixels. This represents the bottom left corner of the field. p.s:- this can be used only in the "reference" mode |
additional_info | JSON | Used only in the case of field type date. You can use this to set the required date format of the field. Eg. {"format": "DD/MM/YYYY"}. For all other field types, use an empty JSON as value {}. |
page_number | string | The page_number field takes a string as input. You can provide a range such as : "1:8" - places the fields from pages 1 to 8. "all" - places the fields on all the pages "1:8,12,13" - places the fields on pages 1 to 8, 12 and 13 |
Panel Types for Signature and Initial Fields
The esignature laws of certain countries allow their users to only sign on the document using a pen / stylus and do not accept other forms such as as typed signatured generated by the signeasy system / an uploaded image from the user's machine.
To support these flows, the API supports passing the panel types in the signature request using the parameters signature_panel_types and initial_panel_types.
To allow flexibility to the developers according to the esignature laws, the parameter accepts a combination of "draw" (Allow users to draw using mouse / stylus), "upload" (Allow users to upload an image of the signature / initials ) and "type" ( Generate an image using the name / a custom provided text).