Overview

With Signaturit’s API we want to help you speed up the adoption of eSignatures and facilitate the integration of our online document signing process into your workflows.

We provide you with a comprehensive documentation, sample code and SDKs.

You can test our API as much as you want without having to pay, you only need to create a developer account and start.

Introducing Signaturit

Signaturit is the easiest way to get documents signed with legal validity, and without having to install any applications. Our solution is very intuitive for the signer and is fully optimized for mobile devices like smartphones and tablets.

We meet all the EU requirements to provide an advanced electronic signature and, as an European-based company, we guarantee the protection and privacy of all the information needed to authenticate the parties involved in the transaction, like the biometric data captured during the signing process and the documents sent through our platform.

Types of integration

There are two ways to integrate Signaturit in your current workflows. In both scenarios you will get all the information required of the signature process, like events and different status updates for real-time updates and reporting.

embedded

Embedded Signing

By embedding Signaturit in your web application your customers will be able to sign documents on your site inside an iframe. This means that your users don't have to leave your website or wait for an email to start the signature workflow.

View Quick Start
embedded

Signature Request

You can send signature requests directly from your current system, either a BPM, ERP or intranet where you have the information of the people’s signatures you want. The signature process will be completed in Signaturit’s intuitive interface.

View Quick Start

The following steps will guide you through setting up a document that can be signed by your site users without ever having to leaving your site.

Your API key is ZjEyMmE1ZDFhYmZiYzI2ZjkyMmUzYjczZDAyMmY5MzI0ZGYzN2Y0NzFhZjA5YzNhMjk2MTV...

  • 1. Register a user in the sandbox server and retrieve the associated access token.

  • 2. Create a signature request from your back end and store the returned SIGN_URL that will be needed on the front end.

    $ curl

    -X POST

    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

    -F 'recipients[0][name]=John' -F 'recipients[0][email]=john.doe@gmail.com'

    -F 'files[0]=@NDA.pdf'

    -F 'delivery_type=url'

    https://api.sandbox.signaturit.com/v3/signatures.json

    client = SignaturitClient.new('YOUR_ACCESS_TOKEN')

    client.create_signature('NDA.pdf', {

    :name => 'John',

    :email => 'john.doe@gmail.com'

    }, {

    :delivery_type => 'url'

    })

    client = SignaturitClient('YOUR_ACCESS_TOKEN')

    client.create_signature('NDA.pdf', {

    'name': 'John',

    'email': 'john.doe@gmail.com'

    }, {

    'delivery_type': 'url'

    })

    $client = new Signaturit\Client('YOUR_ACCESS_TOKEN');

    $client->createSignature(

    ['NDA.pdf'],

    [

    'name' => 'John',

    'email' => 'john.doe@gmail.com'

    ],

    [

    'delivery_type' => 'url'

    ]

    );

    client = new SignaturitClient('YOUR_ACCESS_TOKEN');

    client.createSignature('NDA.pdf', {

    name: 'John',

    email: 'john.doe@gmail.com'

    }, {

    delivery_type: 'url'

    });

    let pdf = NSBundle.mainBundle().URLForResource("NDA", withExtension: "pdf")

    let signer = [["email": "john.doe@gmail.com", "name": "John"]]

    let params = ["delivery_type": "url"]

    let client: Signaturit = Signaturit(accessToken: "YOUR_ACCESS_TOKEN", production: false)

    client.createSignature([pdf], recipients: signer, params: params, successHandler: { response in

    })

    Client client = new Client("YOUR_ACCESS_TOKEN", false);

    ArrayList<File> filePath = new ArrayList<File>();

    File temp = new File("NDA.pdf");

    filePath.add(temp);

    ArrayList<HashMap<String, Object>> recipients = new ArrayList<HashMap<String,Object>>();

    HashMap<String, Object> recipient= new HashMap<String, Object>();

    recipient.put("email", "john.doe@gmail.com");

    recipient.put("name", "John");

    recipients.add(recipient);

    HashMap<String, Object> params= new HashMap<String, Object>();

    params.add("delivery_type", "url");

    Response response = client.createSignature(filePath, recipients, params);

    var files = new [] {

    "NDA.pdf"

    };

    var recipients = new [] {

    new { name = "John" , email = "john.doe@gmail.com"}

    };

    var parameters = new { delivery_type = "url" };

    Signaturit.Client client = new Signaturit.Client("YOUR_ACCESS_TOKEN", false);

    client.createSignature(files, recipients, parameters);

  • 3. Insert the following Javascript code on your page, with SIGN_URL being from the response given by the previous back end call.

    <script type="text/javascript" src="//code.jquery.com/jquery-2.1.1.min.js"></script>

    <script type="text/javascript">$('body').append('<iframe src="' + SIGN_URL + '" style="position: absolute; top: 0; left: 0; height: 320px; width: 240px" />')</script>

  • 4. You can listen for a signed event to close the iframe when appropiated.

    <script type="text/javascript">

    window.addEventListener('message', function (e) {

    // e.data.event = EVENT_TYPE

    // e.data.documentId = DOCUMENT_ID

    // e.data.signatureId = SIGNATURE_ID


    if (e.data.event === 'completed') {

    $('iframe').remove();

    }

    })

    </script>

    Use one of the JS events as a trigger to close the iframe when wanted.

    Find more information about these event here

  • 5. Go to your web page and watch Signaturit's magic.

The following steps will guide you through the process of using the Signaturit API to send a signature request, track its status, and retrieve the signed document and the audit trail document.

Your API key is ZjEyMmE1ZDFhYmZiYzI2ZjkyMmUzYjczZDAyMmY5MzI0ZGYzN2Y0NzFhZjA5YzNhMjk2MTV...

  • 1. Register a user in the sandbox server and retrieve the associated access token.

  • 2. Send your first signature request.

    $ curl

    -X POST

    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

    -F 'recipients[0][name]=John' -F 'recipients[0][email]=john.doe@gmail.com'

    -F 'files[0]=@NDA.pdf'

    -F 'subject=The NDA we talked about'

    -F 'body=Please sign this NDA and then we can discuss more. Let me know if you have any questions.'

    https://api.sandbox.signaturit.com/v3/signatures.json

    client = SignaturitClient.new('YOUR_ACCESS_TOKEN')

    client.create_signature('NDA.pdf', {

    :name => 'John',

    :email => 'john.doe@gmail.com'

    }, {

    :subject => 'The NDA we talked about',

    :body => 'Please sign this NDA and then we can discuss more. Let me know if you have any questions.'

    })

    client = SignaturitClient('YOUR_ACCESS_TOKEN')

    client.create_signature('NDA.pdf', {

    'name': 'John',

    'email': 'john.doe@gmail.com'

    }, {

    'subject': 'The NDA we talked about',

    'body': 'Please sign this NDA and then we can discuss more. Let me know if you have any questions.'

    })

    $client = new Signaturit\Client('YOUR_ACCESS_TOKEN');

    $client->createSignature(

    ['NDA.pdf'],

    [

    'name' => 'John',

    'email' => 'john.doe@gmail.com'

    ],

    [

    'subject' => 'The NDA we talked about',

    'body' => 'Please sign this NDA and then we can discuss more. Let me know if you have any questions.'

    ]

    );

    client = new SignaturitClient('YOUR_ACCESS_TOKEN');

    client.createSignature('NDA.pdf', {

    name: 'John',

    email: 'john.doe@gmail.com'

    }, {

    subject: 'The NDA we talked about',

    body: 'Please sign this NDA and then we can discuss more. Let me know if you have any questions.'

    });

    let pdf = NSBundle.mainBundle().URLForResource("NDA", withExtension: "pdf")

    let signer = [["email": "john.doe@gmail.com", "name": "John"]]

    let params = ["subject": "The NDA we talked about", "body": "Please sign this NDA and then we can discuss more. Let me know if you have any questions."]

    let client: Signaturit = Signaturit(accessToken: "YOUR_ACCESS_TOKEN", production: false)

    client.createSignature([pdf], recipients: signer, params: params, successHandler: { response in

    })

    Client client = new Client("YOUR_ACCESS_TOKEN", false);

    ArrayList<File> filePath = new ArrayList<File>();

    File temp = new File("NDA.pdf");

    filePath.add(temp);

    ArrayList<HashMap<String, Object>> recipients = new ArrayList<HashMap<String,Object>>();

    HashMap<String, Object> recipient= new HashMap<String, Object>();

    recipient.put("email", "john.doe@gmail.com");

    recipient.put("name", "John");

    recipients.add(recipient);

    Response response = client.createSignature(filePath, recipients);

    var files = new [] {

    "NDA.pdf"

    };

    var recipients = new [] {

    new { name = "John" , email = "john.doe@gmail.com"}

    };

    var parameters = new { subject = "The NDA we talked about", body = "Please sign this NDA and then we can discuss more. Let me know if you have any questions." };

    Signaturit.Client client = new Signaturit.Client("YOUR_ACCESS_TOKEN", false);

    client.createSignature(files, recipients, parameters);

  • 3. Check the status of your signature request (use the signature request id field returned in step #2).

    $ curl

    -X GET

    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

    https://api.sandbox.signaturit.com/v3/signatures/SIGNATURE_REQUEST_ID.json

    client = SignaturitClient.new('YOUR_ACCESS_TOKEN')

    client.get_signature('SIGNATURE_REQUEST_ID')

    client = SignaturitClient('YOUR_ACCESS_TOKEN')

    client.get_signature('SIGNATURE_REQUEST_ID')

    $client = new Signaturit\Client('YOUR_ACCESS_TOKEN');

    $client->getSignature('SIGNATURE_REQUEST_ID');

    client = new SignaturitClient('YOUR_ACCESS_TOKEN');

    client.getSignature('SIGNATURE_REQUEST_ID');

    let client: Signaturit = Signaturit(accessToken: "YOUR_ACCESS_TOKEN", production: false)

    client.getSignature("SIGNATURE_REQUEST_ID")

    Client client = new Client("YOUR_ACCESS_TOKEN", false);

    client.getSignature("6f6c974e-2910-11e4-b3d4-0aa7697eb409");

    Signaturit.Client client = new Signaturit.Client("YOUR_ACCESS_TOKEN", false);

    client.getSignature("6f6c974e-2910-11e4-b3d4-0aa7697eb409");

  • 4. Go to your inbox and follow the instuctions to sign the signature request. After doing so, you can redo step #3 and see the difference.

  • 5. Download the signed document usign the signature request id and the signature request document id fields returned in step #3).

    $ curl

    -X GET

    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

    https://api.sandbox.signaturit.com/v3/signatures/SIGNATURE_REQUEST_ID/documents/SIGNATURE_REQUEST_DOCUMENT_ID/download/signed

    client = SignaturitClient.new('YOUR_ACCESS_TOKEN')

    client.download_signed_document('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID')

    client = SignaturitClient('YOUR_ACCESS_TOKEN')

    client.download_signed_document('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID')

    $client = new Signaturit\Client('YOUR_ACCESS_TOKEN');

    $client->downloadSignedDocument('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID');

    client = new SignaturitClient('YOUR_ACCESS_TOKEN');

    client.downloadSignedDocument('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID');

    let destination = Alamofire.Request.suggestedDownloadDestination(directory: .DocumentDirectory, domain: .UserDomainMask)

    let client: Signaturit = Signaturit(accessToken: "YOUR_ACCESS_TOKEN", production: false)

    client.downloadSignedDocument("SIGNATURE_REQUEST_ID", documentId: "SIGNATURE_REQUEST_DOCUMENT_ID", path: destination)

    Client client = new Client("YOUR_ACCESS_TOKEN");

    client.downloadSignedDocument("6f6c974e-2910-11e4-b3d4-0aa7697eb409", "29109781-f42d-11e4-b3d4-0aa7697eb409");

    Signaturit.Client client = new Signaturit.Client("YOUR_ACCESS_TOKEN", false);

    client.downloadSignedDocument("6f6c974e-2910-11e4-b3d4-0aa7697eb409", "29109781-f42d-11e4-b3d4-0aa7697eb409");

  • 6. Download the audit trail document.

    $ curl

    -X GET

    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

    https://api.sandbox.signaturit.com/v3/signs/SIGNATURE_REQUEST_ID/documents/SIGNATURE_REQUEST_DOCUMENT_ID/download/signed

    client = SignaturitClient.new('YOUR_ACCESS_TOKEN')

    client.download_audit_trail('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID')

    client = SignaturitClient('YOUR_ACCESS_TOKEN')

    client.download_audit_trail('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID')

    $client = new Signaturit\Client('YOUR_ACCESS_TOKEN');

    $client->downloadAuditTrail('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID');

    client = new SignaturitClient('YOUR_ACCESS_TOKEN');

    client.downloadAuditTrail('SIGNATURE_REQUEST_ID', 'SIGNATURE_REQUEST_DOCUMENT_ID');

    let destination = Alamofire.Request.suggestedDownloadDestination(directory: .DocumentDirectory, domain: .UserDomainMask)

    let client: Signaturit = Signaturit(accessToken: "YOUR_ACCESS_TOKEN", production: false)

    client.downloadAuditTrail("SIGNATURE_REQUEST_ID", documentId: "SIGNATURE_REQUEST_DOCUMENT_ID", path: destination)

    Client client = new Client("YOUR_ACCESS_TOKEN");

    client.downloadAuditTrail("6f6c974e-2910-11e4-b3d4-0aa7697eb409", "29109781-f42d-11e4-b3d4-0aa7697eb409");

    Signaturit.Client client = new Signaturit.Client("YOUR_ACCESS_TOKEN", false);

    client.downloadAuditTrail("6f6c974e-2910-11e4-b3d4-0aa7697eb409", "29109781-f42d-11e4-b3d4-0aa7697eb409");