Creating a template of e-sign document
Before you start
In order to create a template of e-sign document with embedded signature, the file must comply with the following requirements:
The file must be either in PDF or in one of the following file types that will be converted to PDF by the notary service:
.doc/.docx
.xls/.xlsx
.ppt/.pptx
.txt
Maximum file size limit is 32 MB.
The file must not be protected by password.
If the uploaded file is in PDF, “Changing the Document” and “Commenting” permissions must be set to “Allowed”.
Step-by-step procedure
Start the Python shell and configure its session.
The following variables should be available now:
>>> base_url # the base URL of the API 'https://eu2-cloud.acronis.com/api/notary/v2' >>> auth # the 'Authorization' header value with the access token {'Authorization': 'Bearer 8770b34b74f9e4d9424eff50c38182bb4ae7f5596582ae61900b1b6a23e3ec58'}
Define a variable named
template_data
, and then assign an object with a name that will be used for created e-sign document template to this variable:>>> template_data = { ... 'name': 'Example Contract Template' ... }
[Optional] Add PDF annotations to the template:
Follow the Generating PDF annotations procedure to fetch the list of PDF annotations.
Add the
annotations
key with the list of JSON objects containing PDF annotations:>>> template_data['annotations'] = [ ... '{\"bbox\":[129.81423950195312,216.01904296875,200,50], ...}', ... '{\"bbox\":[186.60797119140625,409.7261962890625,200,50], ...}' ... ]
Note
Annotations can be added later by following the Adding PDF annotations to existing template procedure.
Define a variable named
file_path
, and then assign the path to your file to this variable:>>> file_path = '<path to file>'
Important
If the path contains backslashes, remember to escape them with an additional backslash.
Open the file for reading in binary mode:
>>> file = open(file_path, 'rb')
Define a variable named
files
, and then assign an object containing the file in thefile
key to this variable:>>> files = { ... 'file': file ... }
Upload the file to the notary storage to create a template of e-sign document for the file by sending a POST request to the
/templates
endpoint:>>> response = requests.post(f'{base_url}/templates', headers=auth, files=files, data=template_data)
Close the file:
>>> file.close()
Check the status code of the response:
>>> response.status_code 201
Status code 201 means that the notary service has received the file, saved it to the storage, increased the usage of Document templates and Notary storage quotas and created an e-sign document template for the file.
A different status code means that an error has occurred. For the details, refer to “Status and error codes”.
Also, the response body contains an object containing the information about the created e-sign document template formatted as a JSON text. When converted to an object, it will look as follows:
>>> pprint.pprint(response.json()) {'template': {'created_at': '2021-04-15T07:09:29.148799071Z', 'document_count': 0, 'file_id': '99fb3a13-2545-4dd0-bb67-5c5b19c77b9e', 'file_name': 'file_name.pdf', 'id': '3922edc2-d70d-4d5d-9789-5d739a6e7bdc', 'name': 'Example Contract Template', 'updated_at': '2021-04-15T07:09:29.148799071Z'}}