Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Quality Gate Status

======================== DO NOT USE MASTER BRANCH

Signaturit Python SDK

This package is a wrapper for Signaturit Api. If you didn't read the documentation yet, maybe it's time to take a look here.

You can install the package through pip.

sudo pip install signaturit_sdk


Just import the Signaturit Client this way

from signaturit_sdk.signaturit_client import SignaturitClient

Then you can authenticate yourself using your AuthToken

client = SignaturitClient('TOKEN')

Remember, the default calls are made to our Sandbox server. If you want to do in production, just set the flag when you do the call.

client = SignaturitClient('TOKEN', SignaturitClient.PRODUCTION)


Signature request

Get all signature requests

Retrieve all data from your signature requests using different filters.

All signatures
response = client.get_signatures()
Getting the last 50 signatures
response = client.get_signatures(limit=50)
Getting the following last 50 signatures
response = client.get_signatures(limit=50, offset=50)
Getting only the finished signatures
response = client.get_signatures(conditions={'status': 3})
Getting the finished signatures created since July 20th of 2014
response = client.get_signatures(conditions={'since': '2014-7-20', 'status': 3})
Getting signatures with custom field "crm_id"
response = client.get_signatures(conditions={'crm_id': 'CUSTOM_ID'})
Getting signatures inside a set of ids
response = client.get_signatures(conditions={'ids': ['ID1', 'ID2]})
Count signature requests
response = client.count_signatures()
Get a signature request
response = client.get_signature('SIGNATURE_ID')

Signature request

Create a new signature request. You can check all signature params.

recipients =  [{'name': 'Bob', 'email': ''}]
sign_params = {'subject': 'Receipt number 250', 'body': 'Please, can you sign this document?'}
file_path = '/documents/contracts/125932_important.pdf'
response = client.create_signature(file_path, recipients, sign_params)

You can enable the security mode, by setting the recipient phone.

recipients =  [{'name': 'Bob', 'email': '', 'phone': 'XXXXX}]'}]

Then, the user will receive a SMS in the phone number with a security code, needed to begin the sign process.

And if you have some templates created, you can use them too.

recipients =  [{'name': 'Bob', 'email': ''}]
sign_params = {'subject': 'Receipt number 250', 'body': 'Please, can you sign this document?', 'templates': ['id1',...]}
file_path = []
response = client.create_signature(file_path, recipients, sign_params)

You can send templates with the fields filled

recipients =  [{'name': 'Bob', 'email': ''}]
sign_params = {'subject': 'Receipt number 250', 'body': 'Please, can you sign this document?', 'templates': {'TEMPLATE_ID'}, 'data': {'WIDGET_ID': 'DEFAULT_VALUE'}}

response = client.create_signature({}, recipients, sign_params)

You can add custom info in your requests

recipients =  [{'name': 'Bob', 'email': ''}]
sign_params = {'subject': 'Receipt number 250', 'body': 'Please, can you sign this document?', 'data': {'crm_id': '45673'}}
file_path = '/documents/contracts/125932_important.pdf'
response = client.create_signature(file_path, recipients, sign_params)
Cancel signature request
response = client.cancel_signature('SIGNATURE_ID');
Send reminder email
response = client.send_signature_reminder('SIGNATURE_ID');
Get audit trail

Get the audit trail of a signature request document

response = client.download_audit_trail('SIGNATURE_ID','DOCUMENT_ID')
Get signed document

Get the signed document of a signature request document

response = client.download_signed_document('SIGNATURE_ID','DOCUMENT_ID')


Get brandings

Get all account brandings.

response = client.get_brandings()

Get a single branding

Get a single account branding.

response = client.get_branding('BRANDING_ID')

Create branding

Create a new account branding. You can check all branding params.`

branding_params = {'layout_color': '#FFBF00',
                   'text_color': '#2A1B0A',
                   'application_texts': {'sign_button': 'Sign!'}
response = client.create_branding(branding_params)

Update a single branding

Update a single account branding

branding_params = {'application_texts': {'send_button': 'Send!'}}
response = client.update_branding('BRANDING_ID', branding_params)


Get templates

Retrieve all data from an accounts templates.

response = client.get_templates()


Get emails

Get all certified emails

response = client.get_emails()

Get last 50 emails

response = client.get_emails(50)

Navigate through all emails in blocks of 50 results

response = client.get_emails(50, 50)

Count emails

Count all certified emails

response = client.count_emails()

Get email

Get a single email


Create email

Create a new certified emails.

response = client.create_email(
    [ 'demo.pdf', 'receipt.pdf' ],
    [{'email': '', 'name': 'Mr John'}],
    'Python subject',
    'Python body',

Get audit trail document

Get the audit trail document of an email request

response = client.download_email_audit_trail('EMAIL_ID','CERTIFICATE_ID')


Get sms

Get all certified sms

response = client.get_sms()

Get last 50 sms

response = client.get_sms(50)

Navigate through all sms in blocks of 50 results

response = client.get_sms(50, 50)

Count all sms

response = client.count_sms()

Get single sms


Create a new certified sms.

response = client.create_sms(
    [{'phone': '34123456', 'name': 'Mr John'}],
    'Python body',

Get audit trail document

Get the audit trail document of an sms request

response = client.download_sms_audit_trail('SMS_ID','CERTIFICATE_ID')


Get users

response = client.get_users()

Get user

response = client.get_user(USER_ID)

Invite user to your team

response = client.invite_user('', 'admin')

Change user role

response = client.change_role(USER_ID, 'member')

Delete a user from your team

response = client.remove_user(USER_ID)

Get groups

response = client.get_groups()

Get group

response = client.get_group(GROUP_ID)

Create group

response = client.crate_group('SDK group')

Update group

response = client.update_group(GROUP_ID, 'SDK updated group')

Delete a group from your team

response = client.delete_group(GROUP_ID)

Add user to a group as a manager

response = client.add_manager_to_group(GROUP_ID, USER_ID)

Add user to a group as a member

response = client.add_member_to_group(GROUP_ID, USER_ID)

Remove user from group managers

response = client.remove_manager_from_group(GROUP_ID, USER_ID)

Remove user from group members

response = client.remove_members_from_group(GROUP_ID, USER_ID)


Get subscriptions

response = client.get_subscriptions()

Get subscription

response = client.get_subscription(SUBSCRIPTION_ID)

Create subscription

response = client.create_subscription('https://example_url.json', ['email_delivered'])

Update subscription

response = client.update_subscription(subscription_id=SUBSCRIPTION_ID, url='https://new_example_url.json')

Delete subscription

response = client.delete_subscription(SUBSCRIPTION_ID)


Get contacts

response = client.get_contacts()

Get contact

response = client.get_contact(CONTACT_ID)

Create contact

response = client.create_contact('', 'bob')

Update contact

response = client.update_contact(contact_id=CONTACT_ID, name='Bob')

Delete contact

response = client.delete_contact(CONTACT_ID)