Resending signature request
Note
If you are signing the file by the permanent link and already have the ID of the document, skip steps 2-5.
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
file_id
, and then assign the ID of signed file to this variable:>>> file_id = 'aa95bac7-33fd-4faa-9fa1-f4baeaca82cd'
Fetch the details about the file by sending a GET request to the
/stored-files/{file_id}
endpoint:>>> response = requests.get(f'{base_url}/stored-files/{file_id}', headers=auth)
Check the status code of the response:
>>> response.status_code 200
Status code 200 means that the request was successful.
A different status code means that an error has occurred. For the details, refer to “Status and error codes”.
Also, the response body contains the
file
key containing the details about the file formatted as a JSON text. When converted to an object, it will look as follows:>>> pprint.pprint(response.json()) {'file': {..., 'document': {...}, 'document_id': '8592b052a9979f8d651618092bb3ac8472beebc66d52ab980deb4d320e26b0cb'}}
Convert the JSON text that the response body contains to an object, and then fetch the ID of the document:
>>> doc_id = response.json()['file']['document_id'] >>> doc_id '8592b052a9979f8d651618092bb3ac8472beebc66d52ab980deb4d320e26b0cb'
Fetch the document by sending a GET request to the
/documents/{doc_id}
endpoint:>>> response = requests.get(f'{base_url}/documents/{doc_id}', headers=auth)
Check the status code of the response:
>>> response.status_code 200
Status code 200 means that the request was successful.
A different status code means that an error has occurred. For the details, refer to “Status and error codes”.
Also, the response body contains the
document
key containing the details about the document formatted as a JSON text. When converted to an object, it will look as follows:>>> pprint.pprint(response.json()) {'document': {'certificate_id': 'bbcf753ad4fef97a224ac1ead13f6938286665885ae0fae85a96949d970d6aea', 'id': '8592b052a9979f8d651618092bb3ac8472beebc66d52ab980deb4d320e26b0cb', 'phase': 2, 'signed_at': '2018-09-20T14:54:14.110023Z', 'signature_certificate_link': '/doc/8592b052a9979f8d651618092bb3ac8472beebc66d52ab980deb4d320e26b0cb/download', 'notarization_certificate_link': '/certificate/bbcf753ad4fef97a224ac1ead13f6938286665885ae0fae85a96949d970d6aea', 'signees': [{'email': 'john.smith@example.com', 'fullname': 'John Smith', 'id': '44a8d431-9e08-4b56-aff2-b40ffab9bc29', 'owner': False, 'signed_at': ''}, {'email': 'john.doe@example.com', 'fullname': 'John Doe', 'id': '867139bf-30ca-4c83-8683-a30c5db57046', 'owner': True, 'signed_at': '2019-11-11T13:54:38.619811Z'}, {'email': 'foobar@othercompany.com', 'fullname': 'Foo Bar', 'id': '32ff6407-605c-4203-a611-34deb036cda4', 'owner': False, 'signed_at': null}]}, 'document_id': '8eb2c5179b84a1b97a4f69eb0e97b4e910a1eace1b781926f83ee964f12e6922', ...}}
Fetch the list of signees from the document:
>>> signees = response.json()['document']['signees']
Find the signee by his email and fetch the ID of the signee:
>>> signee_id = None >>> for signee in signees: ... if signee['email'] == 'john.smith@example.com': ... signee_id = signee['id'] ... break >>> signee_id '44a8d431-9e08-4b56-aff2-b40ffab9bc29'
Resend the email to the signee by sending a POST request to the
/documents/{doc_id}/signees/{signee_id}/resend
endpoint:>>> response = requests.post(f'{base_url}/documents/{doc_id}/signees/{signee_id}/resend', headers=auth)
Check the status code of the response:
>>> response.status_code 200
Status code 200 means that the email has been resent to the signee.
A different status code means that an error has occurred. For the details, refer to “Status and error codes”.