We use cookies on our website to ensure we provide you with the best experience on our website. By using our website, you agree to the use of cookies for analytics and personalized content.This website uses cookies. More Information
It seems like your browser didn't download the required fonts. Please revise your security settings and try again.
SignNow
SignNow

REST Endpoints API

  • Last updated on

Numeric values should be passed as integers.

Base URL

All URLs referenced in the documentation have the following base:  https://api-eval.signnow.com

For full documentation and an evaluation Application ID and access, please contact api@signnow.com[1].

Customers using the SignNow appliance must use the following base URL: https://YOUR.HOSTNAME/api/index.php/, replacing YOUR.HOSTNAME with the hostname of your appliance.

Security and Access Control

The SignNow REST API is served over HTTPS. To ensure data privacy, unencrypted HTTP is not supported.

With the exception of creating a user or requesting an access token, all requests must include the access token in the Authorization Header. The user creation and access token requests must include the client credentials in the Authorization Header as a base64 encoded string of CLIENT_ID:CLIENT_SECRET.

Please contact your account manager for  CLIENT_ID:CLIENT_SECRET strings.

Responses

Response Format

All responses will return a JSON response.

Error Responses

Authentication errors have the form:

{
   "error":ERROR_DESCRIPTION
}

 

Error description can be any one of:

  • invalid_client
  • invalid_request
  • invalid_token
  • access_denied

API errors have the form:

{
   "errors": [{
       "code": INTEGER,
       "message": ERROR_DESCRIPTION
   }]
}

   

/user

POST /user

 

Description Create a user. Recently changed to not generate a token. See POST /oauth2/token for instructions on generating a token for the new user.
Example request curl -H 'Authorization: Basic ENCODED_CLIENT_CREDENTIALS' --data '{"first_name":"Test", "last_name":"User","email":"user@test.com", "password":"test"}' https://api-eval.signnow.com/user
Authorization Basic
Accept application/json
Content-Type application/json
HTTP Method POST
Payload parameters  

 

required email Email of user
required password Password of user
optional first_name First name of user
optional last_name Last name of user

Example:

{
   "first_name":"Test",
   "last_name":"User",
   "email":"testUserEmail@test.com",
   "password":"password.com"
}
Example response
{
   "id": "23f2f9dc10e0f12883f78e91296207640dede6d1",
   "verified":0, "email":"jdoe@baracuda.com"
}

For users of the SignNow Appliance using LDAP to authenticate users, the POST /user api call will return an error. Users are created on demand when they acquire a token from POST /oauth2/token with their LDAP credentials.

 

GET /user

 

Description Retrieve a user resource
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/user
Authorization Bearer
Accept application/json
HTTP Method GET
Example response
{
    "id": "23f2f9dc10e0f12883f78e91296207640dede6d1",
    "first_name": "Test",
    "last_name": "User",
    "active": "1",
    "type": 1,
    "pro": 0,
    "created": "1358945328",
    "emails": ["user@test.com"],
    "identity": {
        "Identified": "No",
        "Status": "First attempt",
        "OKToRetry": true
    },
    "subscriptions": [],
    "credits": 0,
    "has_atticus_access": false,
    "is_logged_in": true,
    "teams": []
}

 

GET /user/documentsv2

 

Description Retrieve a list of the user's documents
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/user/documentsv2
Authorization Bearer
Accept application/json
HTTP Method GET
Example response
[{
    "id": "9e30bb3094e00abc291016a7a597ba1840a6d6ec",
    "user_id": "adb16da39e5ecc448e2aa4aec8a34a8158fa137a",
    "document_name": "sample.pdf",
    "page_count": "1",
    "created": "1358300444",
    "updated": "1358300444",
    "original_filename": "sample.pdf",
    "thumbnail": {
        "small": "https:\/\/api.signnow.com\/document\/9e30bb3094e00abc291016a7a597ba1840a6d6ec\/thumbnail?size=small",
        "medium": "https:\/\/api.signnow.com\/document\/9e30bb3094e00abc291016a7a597ba1840a6d6ec\/thumbnail?size=medium",
        "large": "https:\/\/api.signnow.com\/document\/9e30bb3094e00abc291016a7a597ba1840a6d6ec\/thumbnail?size=large"
    },
    "signatures": [],
    "seals": [],
    "texts": [],
    "inserts": [],
    "tags": [],
    "fields": [],
    "requests": [],
    "notary_invites": [],
    "version_time": "1358300444"
}, {
    "id": "321e1c74ada708f442bf3f9529ed0d44b3628796",
    "user_id": "adb16da39e5ecc448e2aa4aec8a34a8158fa137a",
    "document_name": "sample.pdf",
    "page_count": "1",
    "created": "1341248871",
    "updated": "1341248871",
    "original_filename": "sample.pdf",
    "thumbnail": {
        "small": "https:\/\/api.signnow.com\/document\/321e1c74ada708f442bf3f9529ed0d44b3628796\/thumbnail?size=small",
        "medium": "https:\/\/api.signnow.com\/document\/321e1c74ada708f442bf3f9529ed0d44b3628796\/thumbnail?size=medium",
        "large": "https:\/\/api.signnow.com\/document\/321e1c74ada708f442bf3f9529ed0d44b3628796\/thumbnail?size=large"
    },
    "signatures": [],
    "seals": [],
    "texts": [],
    "inserts": [],
    "tags": [],
    "fields": [],
    "requests": [{
        "unique_id": "1cb9d8e6b26d6ececc4f4c9d08aaaa28e10fa80f",
        "id": "1cb9d8e6b26d6ececc4f4c9d08aaaa28e10fa80f",
        "user_id": "adb16da39e5ecc448e2aa4aec8a34a8158fa137a",
        "created": "1349903957",
        "originator_email": "user@test.com",
        "signer_email": "signer@test.com"
    }],
    "notary_invites": [],
    "version_time": "1341248871"
}, {
    "id": "1db4c6ba33332f655cb2eda468743c1d040ae079",
    "user_id": "adb16da39e5ecc448e2aa4aec8a34a8158fa137a",
    "document_name": "sample.pdf",
    "page_count": "1",
    "created": "1335819071",
    "updated": "1335819071",
    "original_filename": "sample.pdf",
    "thumbnail": {
        "small": "https:\/\/api.signnow.com\/document\/1db4c6ba33332f655cb2eda468743c1d040ae079\/thumbnail?size=small",
        "medium": "https:\/\/api.signnow.com\/document\/1db4c6ba33332f655cb2eda468743c1d040ae079\/thumbnail?size=medium",
        "large": "https:\/\/api.signnow.com\/document\/1db4c6ba33332f655cb2eda468743c1d040ae079\/thumbnail?size=large"
    },
    "signatures": [],
    "seals": [],
    "texts": [],
    "inserts": [],
    "tags": [],
    "fields": [],
    "requests": [{
        "unique_id": "5d8ce45d8e27c7ed717d7d23117200c72442ee3e",
        "id": "5d8ce45d8e27c7ed717d7d23117200c72442ee3e",
        "user_id": "adb16da39e5ecc448e2aa4aec8a34a8158fa137a",
        "created": "1335819085",
        "originator_email": "jane@test.com",
        "signer_email": "signer@test.com"
    }],
    "notary_invites": [],
    "version_time": "1335819071"
}] 


/user/documentgroups

GET /user/documentgroups
Description

The call returns back all document groups the user owns.  If the group does not have an attached group invite, the invite fields will be null.  Each group includes an array of documents and their thumbnails within the group.  Thumbnail calls will need the query parameter &access_token=ACCESS_TOKEN to be used.

The call is paginated by last_updated, so offset and limit query parameters are required:

  1. Limit must be greater than 0 but less than or equal to 50.
  2. Offset must be 0 or greater.
Example request curl -X GET -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/user/documentgroups?limit=2&offset=0
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method GET
Example Response
{
    "document_groups": [{
        "group_id": "7f7e59c1cc7aa515ba93f49699bb11be7f1ed8a5",
        "group_name": "Document Group 2",
        "last_updated": "1449601185",
        "invite_id": "7dffb33ee08f2ff693e70d513f1d208f50379dfc",
        "invite_status": "pending",
        "documents": [{
            "id": "524c11994326e3059693de14083bcbdf9f084357",
            "name": "Document 1",
            "thumbnail": {
                "small": "https:\/\/eval.signnow.com/\api\/document\/524c11994326e3059693de14083bcbdf9f084357\/thumbnail?size=small",
                "medium": "https:\/\/eval.signnow.com/\api\/document\/524c11994326e3059693de14083bcbdf9f084357\/thumbnail?size=medium",
                "large": "https:\/\/eval.signnow.com/\api\/document\/524c11994326e3059693de14083bcbdf9f084357\/thumbnail?size=large"
            },
            "roles": ["buyer"]
        }, {
            "id": "5cfd39eb576ab6d2a729b3fa77fca383e0004c3c",
            "name": "Document 2",
            "thumbnail": {
                "small": "https:\/\/eval.signnow.com/\api\/document\/5cfd39eb576ab6d2a729b3fa77fca383e0004c3c\/thumbnail?size=small",
                "medium": "https:\/\/eval.signnow.com/\api\/document\/5cfd39eb576ab6d2a729b3fa77fca383e0004c3c\/thumbnail?size=medium",
                "large": "https:\/\/eval.signnow.com/\api\/document\/5cfd39eb576ab6d2a729b3fa77fca383e0004c3c\/thumbnail?size=large
            },
            "roles": ["seller"]
        }]
    }, {
       "group_id": "12f22d89913f75d032303327c79dd47d427b7d6b",
       "group_name": "Document Group 1",
       "last_updated": "1441318497",
       "invite_id": null,
       "invite_status": null,
       "documents": [{
           "id": "cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b",
           "name": "Document 3",
           "thumbnail": {
               "small": "https:\/\/eval.signnow.com/\api\/document\/cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b\/thumbnail?size=small",
               "medium": "https:\/\/eval.signnow.com/\api\/document\/cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b\/thumbnail?size=medium",
               "large": "https:\/\/eval.signnow.com/\api\/document\/cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b\/thumbnail?size=large"
           },
           "roles": ["role1", "role2", "role3"]
       }, {
           "id": "dd63da6fbe213863626a61d36b0c13ce61e4a2be",
           "name": "Document 4",
           "thumbnail": {
               "small": "https:\/\/eval.signnow.com/\api\/document\/dd63da6fbe213863626a61d36b0c13ce61e4a2be\/thumbnail?size=small",
               "medium": "https:\/\/eval.signnow.com/\api\/document\/dd63da6fbe213863626a61d36b0c13ce61e4a2be\/thumbnail?size=medium",
               "large": "https:\/\/eval.signnow.com/\api\/document\/dd63da6fbe213863626a61d36b0c13ce61e4a2be\/thumbnail?size=large"
           },
           "roles": ["roleA", "roleB", "roleC"]
       }]
   }],
   "document_group_total_count": 2
}
POST /documentgroup

 

Description Create a document group from a list of document ids.
Example request curl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"document_ids": [ "cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b","dd63da6fbe213863626a61d36b0c13ce61e4a2be"], "group_name":"Document Group 1"}' https://api-eval.signnow.com/documentgroup
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Post parameters  

 

required document_ids

Array of document ids, all document_ids:

1. Must be owned by the person creating the document group.

2. Cannot be templates.

3. Cannot already be a part of another document group (delete document group first to add them).

At least one of the documents must have fields.

required group_name String containing the group name
Example response
{"id":"68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0"}

 

/documentgroup/<id>

GET /documentgroup/<id>

 

Description Returns back document and role information for documents in a document group.  Only the owner of the document group can make this call.  The invite_id property will be null if there is no group invite for the group yet.
Example request curl -X GET -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method GET
Example Response
{
    "id": "12f22d89913f75d032303327c79dd47d427b7d6b",
    "group_name": "Document Group 1",
    "invite_id": "7dffb33ee08f2ff693e70d513f1d208f50379dfc",
    "documents": [{
        "roles": ["Role1", "Role2", "Role3"],
        "document_name": "Document 1",
        "id": "cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b",
        "thumbnail": {
            "small": "https:\/\/eval.signnow.com/\api/document\/cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b\/thumbnail?size=small",
            "medium": "https:\/\/eval.signnow.com/\api/document\/cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b\/thumbnail?size=medium",
            "large": "https:\/\/eval.signnow.com/\api/document\/cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b\/thumbnail?size=large"
        }
    }, {
        "roles": ["Role4", "Role5", "Role6"],
        "document_name": "Document 2",
        "id": "dd63da6fbe213863626a61d36b0c13ce61e4a2be",
        "thumbnail": {
            "small": "https:\/\/eval.signnow.com/\api/document\/dd63da6fbe213863626a61d36b0c13ce61e4a2be\/thumbnail?size=small",
            "medium": "https:\/\/eval.signnow.com/\api/document\/dd63da6fbe213863626a61d36b0c13ce61e4a2be\/thumbnail?size=medium",
            "large": "https:\/\/eval.signnow.com/\api/document\/dd63da6fbe213863626a61d36b0c13ce61e4a2be\/thumbnail?size=large"
        }
    }]
}

 

DELETE /documentgroup/<id>

 

Description Deletes the document group.  Documents within the group are not deleted.  Document groups cannot be deleted while they have an group invite.
Example request curl -X DELETE -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method DELETE
Example Response
{"status":"success"}

 

/documentgroup/<group_id>/groupinvite

POST /documentgroup/<group_id>/groupinvite

 

Description This call creates a multi-step invite for a document group. Each invite step consists of invite_email objects that set the email message sent in the user invites or can disable emails all together for that user.  Invite steps also are made of the invite_action objects that need to be completed before the step is considered complete.  Invite actions tell SignNow which users should sign which document roles.  Once all the invite_actions are completed, the next step's invite emails are sent out.  When all steps have been completed, completion emails are sent out, which are defined by the completion_email objects.
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST  --data '{"invite_steps":[{"order":1,"invite_emails":[{"email":"janedoe@barracuda.com","disabled":0,"subject":"The subject step1","message":"The message for step1"},{"email":"test@mailinator.com","subject":"subject step 1","message":"message step 1"},{"email":" bob@SignNow.com ","subject":"@signnow subject step 1","message":"@signnow message step 1"}],"invite_actions":[{"email":" janedoe@barracuda.com ","role_name":"role6","action":"sign","document_id":"dd63da6fbe213863626a61d36b0c13ce61e4a2be","allow_reassign":0,"authentication":{"type":"password","value":"abc123"}},{"email":" test@mailinator.com ","role_name":"role2","action":"sign","document_id":"cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b","allow_reassign":0}]},{"order":2,"invite_emails":[{"email":" janedoe@barracuda.com ","disabled":0,"subject":"The subject for step2","message":"The message for step2"},{"email":" test@mailinator.com ","subject":"subject step 2","message":" message step 2"}],"invite_actions":[{"email":" janedoe@barracuda.com ","role_name":"role4","action":"view","document_id":"dd63da6fbe213863626a61d36b0c13ce61e4a2be","allow_reassign":0},{"email":" test@mailinator.com ","role_name":"role5","action":"view","document_id":"dd63da6fbe213863626a61d36b0c13ce61e4a2be","allow_reassign":0}]},{"order":3,"invite_emails":[{"email":" janedoe@barracuda.com ","disabled":0,"subject":"The subject for step3","message":"The message for step3"},{"email":" test@mailinator.com ","subject":"subject step 3","message":"message step 3"}],"invite_actions":[{"email":" janedoe@barracuda.com ","role_name":"role1","action":"sign","document_id":"cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b","allow_reassign":0},{"email":" test@mailinator.com ","role_name":"role3","action":"sign","document_id":"cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b","allow_reassign":0}]}],"completion_emails":[{"email":" janedoe@barracuda.com ","disabled":0,"subject":"The subject COMPLETE ","message":"The COMPLETE message"},{"email":" test@mailinator.com ","subject":"COMPLETE subject ","message":"COMPLETE message"},{"email":"bob@SignNow.com","subject":"COMPLETED subject ","message":" message COMPLETED", "disabled":0}]}' https://api-eval.signnow.com/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0/groupinvite
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Post parameters  

Invite objects:

required invite_steps Array of invite_step objects
optional completion_emails Email objects containing completion email contents for each user

Invite step objects:

required order An integer from 1 to 100.  All invite steps must have a unique order.
required invite_actions Array of invite action objects.
optional invite_emails Email objects containing invite email contents for each user

Invite email objects:

required email Email of user receiving invite email.
optional disabled Determines whether email in the step should be disabled, values are 1 or 0. (0 is default)
optional subject The custom subject for the invite email.
optional message The custom message for the invite email.
optional reminder Number of days until a reminder is sent if user has not completed the signing actions.
optional expiration_days Number of days until the signing actions for the user expire.

Invite action objects:

required email Email of user who needs to sign/view the document.
required document_id Document id user is to sign/view.
required action Can be values of 'sign' or 'view'.
required/ optional role_name Role the user should sign, only required if the action is 'sign'.
optional allow_reassign Determines whether the invitee can reassign this invite.  Values are 1 or 0. (0 is default)
optional authentication An object consisting of a type field and a value field. Currently the only type allowed is "password". The value field will be the password you set.  If set the invite will be locked by this password. If authentication is not set the document will not be password protected.

Completion email objects:

required email Email of user receiving completion email.  In the completion email, the user will only receive document attachments for documents they previously signed or viewed in the document group.
optional disabled Determines whether compeltion email should be disabled. Values are 1 or 0. (0 is default)
optional subject The custom subject for the completion email.
optional message The custom message for the completion email.
optional disable_document_attachment If set to 1, when user received completed email, document pdfs will not be attached to the email. Values are 1 or 0. (0 is default)
Json Body Example
{
    "invite_steps":[
        {
            "order":1,
            "invite_emails":[
                {
                    "email":"<email1>",
                    "disabled":"<optional_1or0>",
                    "subject":"<optional_subject_here>",
                    "message":"<optional_email_messages_here>"
                },
                {
                    "email":"<email2id>",
                    "disabled":<optional_1or0>,
                    "subject":"<optional_subject_here>",
                    "message":"<optional_email_messages_here>"
                },
                "... more email invites per user"
            ],
            "invite_actions":[
                {
                    "email":"<email1>",
                    "role_name":"<rolename1>",
                    "action":"<signORview>",
                    "document_id":"<docid1>",
                    "allow_reassign": <optional_1or0>
                },
                {
                    "email":"<email2>",
                    "role_name":"<rolename2>",
                    "action":"<signORview>",
                    "document_id":"<docid2>",
                    "allow_reassign":<optional_integer>
                },
                "... more invite action objects"
            ]
        },
        {
            "order":2,
            "invite_emails":"...Another invite emails array here",
            "invite_actions":"...Another invite actions array here"
        },
        "... More invite_steps here"
    ],
    "completion_emails":[
        {
            "email":"<email1>",
            "disabled":<optional_1or0>,
            "subject":"<subject_here>",
            "message":"<email_messages_here>"
        },
        "... More completion email object (one for each user mentioned in invite_actions)"
    ]
}
Validation Rules

1. Document Group cannot already have a group invite (unless it has been canceled).

2. Documents specified cannot already have any pending invites.

3. User who created invite must have email verified.

4. There must be at least 1 invite_step and at least 1 invite_action per step.

5. All order numbers for invite steps must be unique and under the number between 1 and 100 and every invite_step must have an order number.

6. Every invite_action must have a user_id, action, and document_id attribute.  All 'sign' actions must also specify a role_name.

7. No document-role_name pair can be set for an invite_action more than once in the invite.

8. All roles for every document in the document group must have and invite_action object defined for them with the 'sign' action attribute.

9. Only one invite_action per invite step can contain an email-document pairing.  In other words a user cannot be asked to sign the same document for two different roles in the same step.

10. Every invite_email object must include an email attribute.  If subject, message is left off defaults are used.  If an invite email object is not specified for an email in an action, default invite emails will be sent out.

11. All completion emails must include an email attribute.  If subject, message is left off defaults are used.  If a completion email object is not specified for an email, default completion emails will be sent out.

Example response
{"id":"8755746dea8df75c6856d1fb8c346afe71f2329e"}

 

GET /documentgroup/<group_id>/groupinvite/<invite_id>

 

Description

Returns back invite action information for a group invite, including the status of each step and action.  This can only can be called by the owner of the document group.  Status can be:

  1. 'created': invite or action has been created but is not waiting to be signed
  2. 'pending': emails have been sent out for this invite action or step and are waiting to be viewed or signed
  3. 'fulfilled': actions and steps that have been finished by singing or viewing
Example request curl -X GET -H 'Authorization: Bearer ACCESS_TOKEN'  https://api-eval.signnow.com/api/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0/groupinvite /8755746dea8df75c6856d1fb8c346afe71f2329e
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method GET
Example Response
{
    "invite": {
        "id": "b1c07f1391f042333cf0ca96af5ac9f5b44ca54b",
        "status": "pending",
        "steps": [
            {
                "id": "abc07f1391f042333cf0ca96af5ac9f5b44ca54b",
                "status": "pending",
                "order": 1,
                "actions": [
                    {
                        "action": "sign",
                        "email": "janedoe@barracuda.com",
                        "document_id": "dd63da6fbe213863626a61d36b0c13ce61e4a2be",
                        "status": "pending",
                        "role_name": "role6"
                    },
                    {
                        "action": "sign",
                        "email": "test@test.com",
                        "document_id": "cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b",
                        "status": "pending",
                        "role_name": "role2"
                    }
                ]
            },
            {
                "id": "def07f1391f042333cf0ca96af5ac9f5b44ca54b",
                "status": "created",
                "order": 2,
                "actions": [
                    {
                        "action": "sign",
                        "email": "janedoe@barracuda.com",
                        "document_id": "dd63da6fbe213863626a61d36b0c13ce61e4a2be",
                        "status": "created",
                        "role_name": "role4"
                    },
                    {
                        "action": "sign",
                        "email": "test@test.com",
                        "document_id": "dd63da6fbe213863626a61d36b0c13ce61e4a2be",
                        "status": "created",
                        "role_name": "role5"
                    }
                ]
            },
            {
                "id": "c1207f1391f042333cf0ca96af5ac9f5b44ca54b",
                "status": "created",
                "order": 3,
                "actions": [
                    {
                        "action": "sign",
                        "email": "janedoe@barracuda.com",
                        "document_id": "cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b",
                        "status": "created",
                        "role_name": "role1"
                    },
                    {
                        "action": "sign",
                        "email": "test@test.com",
                        "document_id": "cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b",
                        "status": "created",
                        "role_name": "role3"
                    }
                ]
            }
        ]
    }
}
   

 

POST /documentgroup/<group_id>/groupinvite/<invite_id>/cancelinvite
Description Cancels a group invite.  All documents will be unshared with invitees.  Any signatures that occurred before canceling will remain on the documents.
Example request curl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/6e1e4988429913e086f71b20c810c02bafc930cb/groupinvite/03ee5b2c4da8366d1e321f61f857b14d937dfd01/cancelinvite
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Post Body Parameters There are no parameters.
Example Response
{"status":"success"}

 

GET /documentgroup/<group_id>/groupinvite/<invite_id>/pendinginvites

 

Description Returns back all pending invite information as well as invites already signed for a group invite for the user that makes the call.  If the user making the call is the document owner, it will return pending invites for that user and ALL actions that have already been fulfilled.
Example request curl -X GET -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/api/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0/pendinginvites
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method GET
Example Response
{
    "invites":[
        {
            "link": "https://eval.signnow.com/app/session/cddc2f79a3873af02ebc1d1ab0d45b2a1a3a2e7b?access_token=5ee3f8924ec5f413cf3d7ca5b949946e6e7f3410fcbcaa1a4be631487caac463&mobileweb=mobileweb_only",
            "document_name": "Receipt 1",
            "inviter_email": "janedoe@SignNow.com",
            "action": "sign",
            "status": "fulfilled"
        },
        {
            "link": "https://eval.signnow.com/app/session/dd63da6fbe213863626a61d36b0c13ce61e4a2be?access_token=9f8282785b859cd35358680d6c1b9c05524a8717e812c279e4e2105a77d93bc0&mobileweb=mobileweb_only",
            "document_name": "Contract 2",
            "inviter_email": "janedoe@SignNow.com",
            "action": "sign",
            "status": "pending"
        }]
    "document_group_name": "Contracts"
}

 

POST /documentgroup/<group_id>/groupinvite/<invite_id>/resendinvites

 

Description Resends invite emails to those with pending invites for the group invite.  Resend can also be used to resend invites to a single user if the user's email is specified in the POST Json body.
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST https://api-eval.signnow.com/api/documentgroup/12f22d89913f75d032303327c79dd47d427b7d6b/groupinvite/04ef78c38097d2f9b3c99ec1df1e6aef0c9f18f3/resendinvites
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Post Body Parameters
optional email Email of the user you want to resend email to.  If not present, emails will be resent to all pending users.
Example Response
{"status":"success"}

 

POST /documentgroup/<group_id>/groupinvite/<invite_id>/invitestep/<invitestep_id>/update
Description  Used to either replace inviters for a particular step or update the invite attributes for a user at a particular step.
Example request

Replace example.  Replace all of atest@example.com's invites with invites to ctest@example.com in invite step 4319a1bc69028fc5c44d69f2612f9aa015044918.  The invites will have the same roles and document ids and action types.  For the signing action for document id d8b9fa9ed065edb4e8dccd89cad7d7aca9e526c5 and c129fa9ed065edb4e8dccd89cad7d7aca9e526c5, the passwords and allow_reassigns are set to new values.  New invite emails will be sent to ctest@example.com when the call is complete.

curl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/1ce24c559a6191db3c6740fbc8140bfd0ad24199/groupinvite/b48f243f4a11877cdd18d0338264e56bf9f43556/invitestep/4319a1bc69028fc5c44d69f2612f9aa015044918/update --data '{"user_to_update":"atest@example.com","replace_with_this_user":"ctest@example.com","update_invite_action_attributes":[{"document_id":"d8b9fa9ed065edb4e8dccd89cad7d7aca9e526c5","allow_reassign":1,"authentication":{"type":"password","value":"pass1"}},{"document_id":"c129fa9ed065edb4e8dccd89cad7d7aca9e526c5","allow_reassign":0,"authentication":{"type":"password","value":"pass2"}}],"invite_email":{"email":"ctest@example.com'","reminder":5,"expiration_days":11,"message":"CTest Please sign these documents","subject":"CTest invite"}}'

Update example.  Update dtest@example.com's invite with new attributes.  A new invite email will be sent to dtest@example.com when the call is complete.

curl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/1ce24c559a6191db3c6740fbc8140bfd0ad24199/groupinvite/b48f243f4a11877cdd18d0338264e56bf9f43556/invitestep/786c1e9d9f342c0274f89de901fcec64b5ddba65/update --data '{"user_to_update":"dtest@example.com","invite_email":{"email":"dtest@example.com","reminder":5,"expiration_days":11,"message":"DDDTEST REPLACE MESSGE","subject":"DDDDTEST SUBJECT"},"update_invite_action_attributes":[{"document_id":"d6d875bc9d9fbf5102ae9fb220c6f80222aca47f","allow_reassign":1}]}'

Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Post Body Parameters
required user_to_update Email of user that needs to be updated.
optional replace_with_this_user Email of user that will replace the "user_to_update" user.
optional invite_email Email Object containing invite_email attributes to update.
optional update_invite_action_attributes Array of objects that indicate for which document, invite attributes need to be updated.

Invite_email object:

required email Email of the user that will have their invite attributes updated.  If "replace_with_this_user" is set, it must match that email.  If not set it must match the "user_to_update" email.
optional disabled Determines whether email in the step should be disabled, values are 1 or 0. (0 is default)
optional subject The custom subject for the invite email.
optional message The custom message for the invite email.
optional reminder Number of days until a reminder is sent if user has not completed the signing actions.
optional expiration_days Number of days until the signing actions for the user expire.

Update_invite_action_attribute object:

required document_id Indicates which action needs to be updated by document_id for user.
optional allow_reassign Determines whether the invitee can reassign this invite.  Values are 1 or 0. (0 is default)  Not carried over from previous invite and must be reentered.
optional authentication

An object consisting of a type field and a value field.  Currently the only type allowed is "password".  The value field will be the password you set.

If set the invite will be locked by this password. If not set the document will not be password protected.  Not carried over from previous invite and must be reentered.

 

 

Example Response
{"status":"success"}


/oauth2

POST /oauth2/token

 

Description Request an access token for a user
Example request curl -H 'Authorization: Basic ENCODED_CLIENT_CREDENTIALS' --data 'username=user@test.com&password=test&grant_type=password&scope=user%20documents%20user%2Fdocumentsv2' https://api-eval.signnow.com/oauth2/token
Authorization Basic
Accept application/json
Content-Type application/x-www-form-urlencoded
HTTP Method POST
Post parameters  

 

required username Email of user
required password Password of user
required grant_type Must be "password"
optional scope A space delimited list of API URIs e.g. "user%20documents%20user%2Fdocumentsv2"
Example response
{
    "access_token": "68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0",
    "token_type": "bearer",
    "expires_in": "2592000",
    "refresh_token": "8ee3c7371cd2b163cbe0e5c76080d059c5cc71ca4f3224abc0c4fb11ebef2feb",
    "id": "23f2f9dc10e0f12883f78e91296207640dede6d1",
    "scope":"user documents"
}

 

GET /oauth2/token

 

Description Verify an access token for a user
Example request curl -H 'Authorization: Bearer 68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0' https://api-eval.signnow.com/oauth2/token
Authorization Bearer
Accept application/json
HTTP Method GET
Example Response
{
    "access_token": "68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0",
    "token_type": "bearer",
    "expires_in": "2592000",
    "refresh_token": "8ee3c7371cd2b163cbe0e5c76080d059c5cc71ca4f3224abc0c4fb11ebef2feb",
    "scope": "user documents"
}

/document

POST /document

 

Description Uploads a file and creates a document. This endpoint accepts .doc, .docx, .pdf, and .png file types.
Example request

curl -H 'Authorization: Bearer TOKEN' https://api-eval.signnow.com/document
-H 'Content-Type: multipart/form-data'
-F 'file=@FILE_PATH'
-F 'integrations={"integration_id":"a27587a3df225014586175534dfee647140dd9a4","mydata1":"value1", "mydata2":"value2"}'

Authorization Bearer
Accept application/json
Content-Type multipart/form-data
HTTP Method POST
Optional Data
{"integration_id":"a27587a3df225014586175534dfee647140dd9a4","mydata1":"value1", "mydata2":"value2"}

Note that any number of mydata key/value pairs are supported.

Example response
{
   "id":"2586a3f5fe9a79106015602a5191938bfaf698e9"
}

 

POST /document/fieldextract

This call is not supported by the SignNow appliance.

Description

Uploads a file that contains SignNow Document Field Tags. This endpoint only accepts .pdf, .doc or .docx files.

There are two tag-types, one for simple field tags, and one for more complex field tags. See the Example Request samples below.

For complex field tags, the form data accepts the "Tags" Key which must have a tag_name and SignNow Field creation information as described in the call PUT /document/<id> at the reference link https://api-eval.signnow.com/document/fieldextract.

Simple Field Tag
Example Request

curl -X POST -H "Authorization: Bearer <your access token>"  "https://api-eval.signnow.com/document/fieldextract" -F file=@/<file location path>/FILE_NAME.pdf

Authorization Bearer
Content-Type multipart/form-data
HTTP Method POST
Field Tag Information

SignNow Document Field Tags are specially formatted text that can be placed anywhere within the content of your document specifying the location, size, type of fields such as signature, text, initial fields.

Adding Field Tags

The order in adding the test tags is:

KEY What does it mean? Accepted format & values When fields need this KEY?
t TYPE of the field

s (for signature)

i (for initials)

t (for text)

d (for dropdown)

For every field
r REQUIRED

y (for required)

n (for optional)

For every field
o ROLE "<role name>" For every field
l LABEL "<label of this field>" Only for Text and Drop down fields
dd DROPDOWN "option1, option2, option2, ...." Only for Drop down fields
f FILE "<filename>.pdf" File attachment
w WIDTH W (width) For every field
h HEIGHT H (height) For every field
v VALIDATOR_ID V (validator_id) Only for Text field

The full set looks like the following:
{{t:[s/i/t/d];r:[y/n];o:"text";l:"text";dd:"text,text,text";"f:text.pdf";w:width;h:height;v:”validator_id”;}}

 

Examples
  1. To create a field of TYPE signature, with required REQUIREMENT, ROLE 'CEO', WIDTH '100', and HEIGHT '15'
    {{t:s;r:y;o:"CEO";w:100;h:15;}}

  2. To create a field of TYPE initials, with optional REQUIREMENT, ROLE 'CEO', and WIDTH '50'
    {{t:i;r:n;o:"CEO";w:50;}}

  3. To create a field of TYPE text, with optional REQUIREMENT, ROLE 'CEO', LABEL 'Label', and HEIGHT '75'
    {{t:t;r:n;o:"CEO";l:"Label";h:75;}}

  4. To validate a date for TYPE text, with optional REQUIREMENT, ROLE 'CEO', LABEL 'Label', WIDTH '100', and VALIDATOR_ID '13435fa6c2a17f83177fcbb5c4a9376ce85befeb' {{t:t;r:n;o:"CEO";l:"Label";w:100;v:"13435fa6c2a17f83177fcbb5c4a9376ce85befeb";}}

  5. To validate a US phone number for TYPE text, with optional REQUIREMENT, ROLE 'CEO', LABEL 'Label', WIDTH '100', and VALIDATOR_ID '13cc1d661da456d27b249b73056ed4d1f2e72d8e'
    {{t:t;r:n;o:"CEO";l:"Label";w:100;v:"13cc1d661da456d27b249b73056ed4d1f2e72d8e";}}

  6. To validate a US zip code for TYPE text, with optional REQUIREMENT, ROLE 'CEO', LABEL 'Label', WIDTH '100', and VALIDATOR_ID '1671f4eb87444a24e1e00f149bade8b7cf3af5da'
    {{t:t;r:n;o:"CEO";l:"Label";w:100;v:"1671f4eb87444a24e1e00f149bade8b7cf3af5da";}}

  7. To validate an age for TYPE text, with optional REQUIREMENT, ROLE 'CEO', LABEL 'Label', WIDTH '100', and VALIDATOR_ID '1a203fa91791b0458608be045a454ba90557fb26'
    {{t:t;r:n;o:"CEO";l:"Label";w:100;v:"1a203fa91791b0458608be045a454ba90557fb26";}}

  8. To validate an email address for TYPE text, with optional REQUIREMENT, ROLE 'CEO', LABEL 'Label', WIDTH '100', and VALIDATOR_ID '7cd795fd64ce63b670b52b2e83457d59ac796a39'
    {{t:t;r:n;o:"CEO";l:"Label";w:100;v:“7cd795fd64ce63b670b52b2e83457d59ac796a39”;}}

  9. To validate a US state for TYPE text, with optional REQUIREMENT, ROLE 'CEO', LABEL 'Label', WIDTH '100', and VALIDATOR_ID '3123849de563f9e14acacc2739467e3d30e426b6'
    {{t:t;r:n;o:"CEO";l:"Label";w:100;v:“3123849de563f9e14acacc2739467e3d30e426b6”;}}

  10. To create a  field of TYPE signature, with required REQUIREMENT, and ROLE 'CFO'
    {{t:s;r:y;o:"CFO";}}
  11. To create a Field of TYPE Text, with optional REQUIREMENT, with ROLE 'CFO', and with LABEL "notes"
    {{t:t;r:n;o:"CFO";l:"notes";}} 
  12. To create a Field of TYPE Initial, with optional REQUIREMENT, and ROLE 'CFO'
    {{t:i;r:n;o:"CFO";}}
  13. To create a Field of Type Drop down, with required REQUIREMENT, with ROLE 'Employee', with LABEL 'Date', and with DROPDOWNS '2012,2013,2014'
    {{t:d;r:y;o:"Employee";l:"Date";dd:"2012,2013,2014";}}
  14. To create a File of TYPE Text, with a Date label which will auto-fill with current date
     {{t:t;r:y;o:"CFO";l:"Date";}}
  15. To create an Invite tag with signing order, with required REQUIREMENT, with ROLE 'Role1', 'Client', 'Manager'
    {{t:e;o:"Role1";e:"siri@mailinator.com";order:1;}}
    {{t:e;o:"Client";e:"siri2@mailinator.com";order:2;}}
    {{t:e;o:"Manager";e:"siri3@mailinator.com";order:3;}}
Example response
{
	"id":"519f97b02da37a411d624e758c631cb64c9d9eb6"
}

Complex Field Tag  

For complex field tags, the form data accepts the "Tags" Key which must have a tag_name and SignNow Field creation information as described in the call PUT /document/<id> (later in this article). The complex field tag allows you to include all the field types.
Example Request

Example 1:
curl -X POST -H 'Authorization: Bearer <your access token>' -H 'Content-Type: multipart/form-data' -F 'file=@/Users/SignNow/Desktop/SignNowtags/dualsignform1.pdf' --form 'Tags=[{"tag_name":"yourcompanyname","role":"signer1","label":"Client Signature Date","required":true,"type":"text","height":15,"width":100},{"tag_name":"mysignature","role":"CTO","label":"CTO Signature","required":true,"type":"signature","height":15,"width":100},{"tag_name":"yoursignature","role":"signer1","label":"you can sign here","required":true,"type":"signature","height":15,"width":100},{"tag_name":"myname","role":"CTO","label":"Myname","required":true,"type":"text","height":15,"width":100},{"tag_name":"yourname","role":"signer1","label":"My name","required":true,"type":"text","height":15,"width":100},{"tag_name":"mytitle","role":"CTO","label":"Myname","required":true,"type":"text","height":15,"width":100},{"tag_name":"yourtitle","role":"signer1","label":"My name","required":true,"type":"text","height":15,"width":100},{"tag_name":"mydate","role":"CTO","label":"date","required":true,"type":"text","height":15,"width":100},{"tag_name":"yourdate","role":"signer1","label":"Todaydate","required":true,"type":"text","height":15,"width":100}]' 'https://api-eval.signnow.com/document/fieldextract'

Example 2:
curl -X POST -H 'Authorization: Bearer <your access token>' -H 'Content-Type: multipart/form-data’ -F 'file=@/Users/SignNow/Desktop/SignNowtags/complex.pdf' --form 'Tags=[{"tag_name":"ClientSignatureDate","role":"CLIENT","label":"Client Signature Date","required":true,"type":"text","height":15,"width":100,"validator_id":"13435fa6c2a17f83177fcbb5c4a9376ce85befeb"},{"tag_name":"DateofBirth","role":"COAPP","label":"Date_of_Birth","required":true,"type":"text","height":15,"width":100,"validator_id":"13435fa6c2a17f83177fcbb5c4a9376ce85befeb"},{"tag_name":"DropDown","role":"COAPP","label":"Options","required":true,"type":"enumeration","height":15,"width":100,"custom_defined_option":false,"enumeration_options":["All"]},{"tag_name":"Text","role":"COAPP","label":"CaLifornia","required":true,"type":"text","height":15,"width":100},{"tag_name":"Initials","role":"CLIENT","required":true,"type":"initials","height":15,"width":40},{"tag_name":"Signature","role":"CLIENT","required":true,"type":"signature","height":15,"width":200},{tag_name:"Attachment",role:"Role2","label":"Attach Here","required":true,"type":"attachment",width:100,height:20}]' 'https://api-eval.signnow.com/document/fieldextract'

Authorization Bearer
Content-Type multipart/form-data
HTTP Method POST
Field Tag Information

SignNow Document Field Tags are specially formatted text that can be placed anywhere within the content of your document specifying the size, type of fields, and file attachments such as signature, text, initial fields.

  1. For complex field tags, the form data accepts the "Tags" Key which must have a tag_name and SignNow Field creation information as described in the call PUT /document/<id> (later in this article). The complex field tag allows you to include all the field types.

  2. The Complex tags in the document must appear in the format: {{<Tag_Name>}} such as {{my signature}} or {{ClientSignatureDate}}

Examples

{

   "Tags":[

      {

tag_name:'TextTagExample',

role:'Role1',

label:'Label1',

required:true,

type:'text',

prefilled_text:’family-name',

width:100,

height:20

},

{

"tag_name":"DateValidatorTagExample",

"role":"Role1",

"label":"Date of Birth",

"required":true,

" type":"text",

"height":15,

"width":100,

"validator_id":"13435fa6c2a17f83177fcbb5c4a9376ce85befeb"

},

{

"tag_name":"InitialsTagExample",

"role":"CLIENT",

"required":true,

"type":"initials",

"height":15,

"width":40

},

{

"tag_name":"SignatureTagExample",

"role":"CLIENT",

"required":true,

"type":"signature",

"height":15,

"width":200

  },

{

"tag_name":"DropDownTagExample",

"role":"Role1",

"label":"Options",

"required":true,

"type":"enumeration",

"height":15,

"width":100,

"custom_defined_option":false,

"enumeration_options":["All","None"]

  },

{

tag_name:'AttachmentTagExample',

role:'Role2',

label:'Label2',

required:true,

type:'attachment',

width:100,

height:20

}

    ]

 }

 

Complex Field Tag for Checkbox Example
{
"tag_name":"CheckboxTagExample",
"role":"CLIENT",
"required":true,
"type":"checkbox",
"height":12,
"width":12,
},
Example response
{
	"id":"519f97b02da37a411d624e758c631cb64c9d9eb6"
}


PUT /document/<id>

 

Description Update an existing document. Add fields [signature | text | initials | checkbox ], elements [signature | text | check]
Example request curl -X PUT -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"texts": [{ "size": 8, "x": 61, "y": 72, "page_number": 0, "font": "Arial", "data": "sample text", "line_height": 9.075 }]}' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method PUT
Example bodies

Adding a signature field for an invitee with a role you define:

{
"fields": [
{
"x": 305,
"y": 18,
"width": 122,
"height": 34,
"page_number": 0,
"role": "buyer",
"required": true,
"type": "signature"
}
]
}

A full sample body:

{
   "texts":[
      {
         "size":8,
         "x":61,
         "y":72,
         "page_number":0,
         "font":"Arial",
         "data":"a sample text field",
         "line_height":9.075
      }
   ],
   "checks":[
      {
         "width":12,
         "height":12,
         "x":234,
         "y":53,
         "page_number":0
      }
   ],
   "fields":[
      {
         "x":305,
         "y":18,
         "width":122,
         "height":34,
         "page_number":0,
         "role":"tatonka",
         "required":true,
         "type":"signature"
      },
      {
         "x":307,
         "y":67,
         "width":60,
         "height":12,
         "page_number":0,
         "label":"a sample label",
         "role":"tatonka",
         "required":true,
         "type":"text"
      },
      {
         "x":409,
         "y":67,
         "width":41,
         "height":26,
         "page_number":0,
         "role":"tatonka",
         "required":true,
         "type":"initials"
      },
      {
         "x":481,
         "y":69,
         "width":12,
         "height":12,
         "page_number":0,
         "role":"tatonka",
         "required":true,
         "type":"checkbox"
      },
	  {
         "x":38,
         "y":77,
         "width":87,
         "height":16,
         "page_number":0,
         "label":"Select Year",
         "role":"Client",
         "required":true,
         "custom_defined_option":false,
         "enumeration_options":[
            "2014",
            "2015",
            "2016"
         ],
	    "type":"enumeration"
      }
      {
         "x": 395,
         "y": 372,
         "width": 177,
         "height": 50,
         "page_number": 0,
         "role": "signer",
         "required": true,
         "type": "radiobutton",
"name": "GROUP_NAME" "radio": [ { "page_number": "0", "x": "10", "y": "20", "width": "25", "height": "25", "checked": "0", "value": "apple", "created": "123456789" }, { "page_number": "0", "x": "40", "y": "20", "width": "25", "height": "25", "checked": "0", "value": "cherry", "created": "123456789" } ] } ] }
Example response
{
  "id": "2586a3f5fe9a79106015602a5191938bfaf698e9" } 


GET /document/<id>

 

Description Retrieve a document resource
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9
Authorization Bearer
Accept application/json
HTTP Method GET
Example response
{
  "id": "54b280800a65fb5df0ac3453dba42d1c9e21d2f9",
  "user_id": "0c639417de0d79baec2dd8c5be77567b4a10b4a4",
  "document_name": "standard_eoi.pdf",
  "page_count": "2",
  "created": "1391639766",
  "updated": "1391640076",
  "original_filename": "standard_eoi.pdf",
  "origin_document_id": null,
  "owner": "lochnguyen@gmail.com",
  "thumbnail": {
    "small": "http://signnow.com/proxy/index.php/document/54b280800a65fb5df0ac3453dba42d1c9e21d2f9/thumbnail?size=small",
    "medium": "http://signnow.com/proxy/index.php/document/54b280800a65fb5df0ac3453dba42d1c9e21d2f9/thumbnail?size=medium",
    "large": "http://signnow.com/proxy/index.php/document/54b280800a65fb5df0ac3453dba42d1c9e21d2f9/thumbnail?size=large"
  },
  "signatures": [
    {
      "id": "577b01bcb81ec3cb91e631985875992e1844be58",
      "user_id": "0c639417de0d79baec2dd8c5be77567b4a10b4a4",
      "email": "tester1@gmail.com",
      "page_number": "0",
      "width": 170,
      "height": 38,
      "x": 145,
      "y": 29,
      "created": "1391639779",
      "data": "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"
    }
  ],
  "seals": [],
  "texts": [],
  "checks": [],
  "inserts": [],
  "tags": [
    {
      "type": "system",
      "name": "fields"
    }
  ],
  "fields": [
    {
		"originator": "email07.18.30.18@mailinator.com",
	 	"json_attributes": {
		  	"required': true, 
		 	 "height": 15, 
		  	"width": 200, 
		  	"page_number": 0, 
		  	"y": 500, 
		  	"x": 150, 
		  	"label": "Some Stuff"
		  	}, 
	  	"fulfiller": None,
	  	"template_field_id": "3518920db1bfee66d4b0d5d226a0a1854ac19aa5", 
	 	"field_request_id": None, 
	 	"field_id": None, 
  	 	"role_id": "09ed0547efbbc6d555f0af855a549041a814b66f", 
	  	"field_request_canceled": None, 
	 	"role": "Joe", 
	 	"element_id": None, 
	 	"type": "enumeration", 
	  	"id": "6f79fda2ad8b1e76e75a27dd3860df5a6ec21901"
 	  	}, 
	{ 
		"originator": "email07.18.30.18@mailinator.com",
		"json_attributes": {
			"required": true, 
			"height": 34, 
			"width": 122, 
			"page_number": 0, 
			"y": 18, 
			"x": 305
		}, 
		"fulfiller": None, 
		"template_field_id": "d8207da98049444fa5992a176c0a2e373707a659", 
		"field_request_id": None, 
		"field_id": None, 
		"role_id": "20620ede78841cd4eaea22c617e45fa2b9bc8515", 
		"field_request_canceled": None, 
		"role": "buyer", 
		"element_id": None, "
		"type": "signature", 
		"id": "c5ff90a4ab077737c5a207cd582c6043781cc9c7"
	  }
  ],
  "requests": [],
  "notary_invites": [],
  "roles": [
    {
      "unique_id": "86d9c7ffc505bf010eaa35d67fc02719f766b2e2",
      "signing_order": "1",
      "name": "Client Sigz"
    }
  ],
  "field_invites": [],
  "version_time": "1391640076",
  "enumeration_options": [],
  "exported_to": [
    {
      "export_domain": "copy.com",
      "is_exported": false
    }
  ],
  "parent_id": "fe58ced6393d7cbc59c36eaf84692a96543804eb",
  "pages": [
    {
      "src": "http://signnow.com/proxy/index.php/document/54b280800a65fb5df0ac3453dba42d1c9e21d2f9/thumbnail?size=large&page=0",
      "size": {
        "width": 890,
        "height": 1152
      }
    },
    {
      "src": "http://signnow.com/proxy/index.php/document/54b280800a65fb5df0ac3453dba42d1c9e21d2f9/thumbnail?size=large&page=1",
      "size": {
        "width": 890,
        "height": 1152
      }
    }
  ]
}

 

 

DELETE /document/<id>

 

Description Deletes a previously uploaded document.
Example request curl -X DELETE -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9
Authorization Bearer
Accept application/json
HTTP Method DELETE
Example response
{
   "status":"success"
}

 

GET /document/<id>/download

 

Description Download a collapsed document
HTTP Method GET
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9/download?type=collapsed
Query Parameters
required type

Possible values are "collapsed" or "zip". Collapsed returns the raw data of the pdf document that can be written to a blank .pdf file. Zip returns the raw data of a zip file containing the pdf and any attachments on that document that can be written to blank a .zip file.

Example response Document requested

 

 

GET /document/<id>/download/collapsed?with_history=1

 

Description Download a collapsed document with a table containing the document's history.
HTTP Method GET
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9/download/collapsed?with_history=1
Example response The requested document along with a table containing the document's history.

 

POST /document/<id>/move

 

Description Move a document to the Archive folder or one of it's subfolders.
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"folder_id":"d3d5e79a4a4bcabd18bcd136547be6851d19ce12"}' https://api-eval.signnow.com/document/dc07a45f23bd1bf1a248e72315417a90d29e32f7/move
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Example body
{
"folder_id": "d3d5e79a4a4bcabd18bcd136547be6851d19ce12"
}

 

Example response
{
  "result": "success" } 

 

POST /document/<id>/invite

 

Description Create an invite to sign a document. You can create a simple free form invite or a role-based invite.
Example request

Free-form invite (Document doesn't have any fields and signer will be able to sign anywhere on the document:

curl -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"from":"user@test.com","to":"invitee@test.com"}'  https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9/invite?

Role-based invite (Document has fields):

curl -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"to":[{"email":"tm1@mailinator.com","role_id":"2e55f53dd32e77753b35d537ed6e65c6d9b5df1e","role":"Client","order":1},{"email":"tm2@mailinator.com","role_id":"54e0c633b9dedcd5af37bd6bf69a3984e58c383c","role":"Sales","order":1}],"from":"ln@SignNow.com","cc":[],"subject":"ln@SignNow.com Needs Your Signature","message":"ln@SignNow.com invited you to sign \"document.pdf\"."}' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9/invite?email=disable

Pre-populate the name field:

curl -H 'Authorization: bearer 0bd68f39528ae413b4725fedbd25d592e0ad78f12d88f5fd0a87f7132fb977f3' --data  '{"document_id":"","to":[{"email":"email1@mailinator.com","role_id":"","role":"buyer","order":1,"prefill_signature_name":"Jane Doe", "force_new_signature":1}, {"email":"email2@mailinator.com","role_id":"","role":"seller","order":2, "prefill_signature_name":"John Jacob", "force_new_signature":1}],"from":"bstrader@signnow.com","cc":[],"subject":"Need your Sig For Test","message":"Sign here"}' ' https://api-eval.signnow.com/document/57fdea14d7cce4dc11751bb74363dcde4daec406/invite'

Note that the prefill_signature_name and force_new_signature properties are mobile web only.

Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Payload parameters   Free form invite example:

 

required from The email of the inviter
required to The email of the invitee

 

Example:

{
   "from":"first_user_email@email.com",
   "to":"to_user_email@email.com"
}

 

Role-based invite example:

required to An array of SIGNERS that you would like to send the invite to
required from The email of the owner of the document
optional cc An array of emails that will be cced in the invite
optional subject The subject of the email
optional message The message body of the email invite

 

Each SIGNER object should contain the following:

required email A string representing the email address of the signer.
required role A string representing the name of the role the signer will be required to fulfill.
required order A string representing the order the signer will sign the document in. Multiple signers can have the same order and they will be asked to sign at the same time.
required role_id

""

A value is required for this legacy parameter. We suggest using an empty string.

optional authentication_type "password"
optional password A string representing the password that will be required by the signer to open and sign the document.
optional expiration_days Integer representing the number of days in which the invite will expire.
optional reminder Integer representing the number of days after the invite is sent in which the user will be reminded with another email if the invite hasn't been fulfilled.

 

{
   "to":[
      {
         "email":"tm1@mailinator.com",
         "role_id":"2e55f53dd32e77753b35d537ed6e65c6d9b5df1e",
         "role":"Client",
         "order":1
      },
      {
         "email":"tm2@mailinator.com",
         "role_id":"",
         "role":"Sales",
         "order":1,
         "authentication_type": "password",
         "password": "testing123",
         "expiration_days": 15,
         "reminder": 5
      }
   ],
   "from":"ln@SignNow.com",
   "cc":[],
   "subject":"ln@SignNow.com Needs Your Signature",
   "message":"ln@SignNow.com invited you to sign \"document.pdf\"."
}
Query parameters  

 

optional email Email send setting for invite. Allowed value: disable  
Example response
{
    "result":"success"
} 

 

PUT /document/<id>/fieldinvitecancel
Description Cancel an invite to a document.
Example request

curl -X PUT -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/5b5bc1722f20295f678afb78ca3390f0609b6a7b/fieldinvitecancel

Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method PUT
Example response
{
    "status":"success"
}
Description Creates a one-time use URL for anyone to download the document as a PDF.
Example Request curl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/6abad1ec2cea2dc144cc6cd108094f53ce92f434/download/link
Authorization Bearer
Accept application/json
HTTP Method POST
Route parameters document id
Example response
{
    "link":"https://signnow.com/dispatch?route=onetimedownload&document_download_id=67de624701a70cdfe208b5c537f61fefa48b410a"
}

 

POST /document/<id>/custom_history_event

 

Description Allows third party developers to add custom events to the audit log. For example, if you are using a single SignNow account to make API calls but authenticating multiple people, use this call to add a record to the audit log for that specific document that references the authentication method.
HTTP Method POST
Example request

curl -X POST -H 'Authorization: bearer TOKEN’
--data '{"client_timestamp":1460739202,"event_type":"test_event"}’
http://api-eval.signnow.com/document/ID/custom_history_event

 

POST /document/merge

 

Description Merges existing documents into one.
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST https://api-eval.signnow.com/document/merge
Authorization Bearer
Accept application/json
Content-Type application/pdf
HTTP Method POST
Payload parameters
required document_ids An array of document IDs to merge
required name The name of the newly merged document
              {
            
	"name": "the merged doc"
	"document_ids": ["84a18d12bf7473ea3dd0e4dd1cdcded6ba6281aa", "a71d963c49f33176e90c5827069c422616b1500c"]
}
Example response
              download.pdf
            
 

 

GET /document/<id>/historyfull

 

Description Get the history of a document
HTTP Method GET
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9/historyfull
Example response
[
   {
      "email":"janedoe@barracuda.com",
      "ip_address":"192.168.15.59",
      "created":"1395171751",
      "event":"created_document",
      "client_app_name":"signnow web application",
      "user_agent":"Mozilla\\\/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/33.0.1750.149 Safari\\\/537.36",
      "origin":"original",
      "version":"0",
      "client_timestamp":"1395171749"
   },
   {
      "unique_id":"e4ec02a194c3a9f3936cf4032431e4363f614765",
      "created":"1395171794",
      "client_timestamp":"1395171792",
      "event":"document_viewed",
      "client_app_name":"signnow web application",
      "ip_address":"192.168.15.59",
      "user_id":"d64a8170a19f1489c495f0de659ff42efe4c1f7b",
      "email":"janedoe@barracuda.com",
      "document_id":"b306621c176c32ab739f7713b9016a5a418e5a16",
      "field_id":null,
      "element_id":null
   },
   {
      "unique_id":"b8b96fc736cdc1d78bf78224db27d163733f8941",
      "created":"1395171798",
      "client_timestamp":"1395171797",
      "event":"document_signing_session_completed",
      "client_app_name":"signnow web application",
      "ip_address":"192.168.15.59",
      "user_id":"d64a8170a19f1489c495f0de659ff42efe4c1f7b",
      "email":"janedoe@barracuda.com",
      "document_id":"b306621c176c32ab739f7713b9016a5a418e5a16",
      "field_id":null,
      "element_id":null
   }
]

 

/template

POST /template

 

Description Create a template by flattening an existing document.
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"document_id": "8a8fb421a75a605625d273045a687e588628e43c"}' https://api-eval.signnow.com/template
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Payload parameters
required document_id The id of the document
required document_name The name of the template

Example:

{
   "document_name":"my template",
   "document_id":"8a8fb421a75a605625d273045a687e588628e43c"
}
Example response
{
	"id":"ce97706ea19b42c19aced4a6ac353153e86c09f1"
}

 

POST /template/<id>/copy

 

Description Create a new document by copying a flattened document. If a name is not supplied than it will default to the original document's name.
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST https://api-eval.signnow.com/template/ce97706ea19b42c19aced4a6ac353153e86c09f1/copy
Authorization Bearer
Accept application/json
Content-Type application/json
HTTP Method POST
Payload parameters
required document_name The name of the newly copied document
{
"document_name": "New Template Name" }
Example response
{
"id":"ce97706ea19b42c19aced4a6ac353153e86c09f1", "document_name": "a document" }

 

 

/folder

GET /folder/<folder_id>?<optional_filters>

 

Description Gets all folder information including an array of all documents inside that folder. You can provide optional filter parameters for the documents returned.
Example request

Without Filter:

curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/folder/1893180697eb9bc2965f5e1b5a502a0942718d04

With Filters:

curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/folder/1893180697eb9bc2965f5e1b5a502a0942718d04?filters=signing-status&filter-values=signed&sortby=updated&order=desc

With Pagination:

curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/folder/1893180697eb9bc2965f5e1b5a502a0942718d04?offset=0&limit20 

Authorization Bearer
Accept application/json
HTTP Method GET
Filter Options

Optional query parameters are expected in pairs:

filter= signing-status &filter-value= signed                 //filter data 

sortby= document-name &order= asc                       //sorting data

 

filters filter-values sortby order
signing-status {waiting-for-me, waiting-for others, signed,pending} {document name,updated,created}

asc/

desc

documents-updated timestamp( should return all documents modified from that timestamp to now()) {document name,updated,created}

asc/

desc

documents-created timestamp( should return all documents modified from that timestamp to now()) {document name,updated,created}

asc/

desc

 

If the folder contains a lot of documents we recommend paging the documents with the following query parameters:

offset An integer representing the starting index of documents in the folder starting with 0.
limit An integer representing the number of documents returned in the documents array of the GET /folder/<id> call.

 

 

Example response
{
"id": "1893180697eb9bc2965f5e1b5a502a0942718d04",
"created": "1409253077",
"name": "Documents",
"user_id": "38b7eb73d859cd9f6a8695817635fa14d58d0fe3",
"parent_id": "07813645c2052dd0f18ce23a798411fd16e64720",
"system_folder": true,
"shared": false,
"folders": [],
"total_documents": 1,
"documents": [
                {
                        "id": "85fecd9634b6d653f73ee96e7312947c5836834d",
                         "user_id": "38b7eb73d859cd9f6a8695817635fa14d58d0fe3",
                        "document_name": "forfun",
                        "page_count": "1",
                        "created": "1413307342",
                        "updated": "1413485018",
                        "original_filename": "forfun.pdf",
                        "origin_document_id": "4a97327d3c8a45d0d257d24dc6f020ef9208d854",
                        "owner": "sophiahelp@mailinator.com",
                         "origin_user_id": "38b7eb73d859cd9f6a8695817635fa14d58d0fe3",
                         "thumbnail": {
                         "small": "http:\/\/api.vm.signnow.com\/document\/85fecd9634b6d653f73ee96e7312947c5836834d\/thumbnail?size=small",
                         "medium": "http:\/\/api.vm.signnow.com\/document\/85fecd9634b6d653f73ee96e7312947c5836834d\/thumbnail?size=medium",
                         "large": "http:\/\/api.vm.signnow.com\/document\/85fecd9634b6d653f73ee96e7312947c5836834d\/thumbnail?size=large"
                         },
                        "template": false,
                        "signatures": [
                         {
                         "id": "5cff77fd67f7620e5efa07a335f28f05480e91f5",
                                        "user_id": "ab33e0689cd3419f8f6e1200156d4c0105b0b961",
                                        "email": "cpelletier@barracuda.com",
                                        "page_number": "0",
                                        "width": "122",
                                        "height": "25",
                                        "x": "91",
                                        "y": "195",
                                        "created": "1413485018"
                                  }
                        ],
                        "seals": [],
                        "texts": [
                         {
                                "id": "d2c2aaf73875e537db25ad30191dd6fdfa8766c4",
                                "user_id": "ab33e0689cd3419f8f6e1200156d4c0105b0b961",
                                "page_number": "0",
                                "email": "cpelletier@barracuda.com",
                                "font": "Arial",
                                "size": "8",
                                "data": "10\/16\/14",
                                 "x": "281",
                                "y": "195",
                                 "line_height": "9.08",
                                 "created": "1413485018"
                         }],
                        "checks": [ ],
                        "inserts": [],
                        "tags": [{
                         "type": "system",
                                "name": "fields"
                        }],
                        "fields": [
                        {
                         "id": "ecbd4d8594c3c279ab77dc3d630f0a7865e13ec5",
                                "type": "text",
                                "role_id": "1025e1f678944126d55fa8244adb40dbfbe4eae5",
                                "json_attributes": {
                                                "page_number": 0,
                                                "x": 281,
                                                "y": 195,
                                                "width": 102,
                                                "height": 21,
                                                "required": true,
                                                "label": "Date",
                                                "prefilled_text": ""
                         },
                         "role": "Client",
                                "originator": "sophiahelp@mailinator.com",
                                "fulfiller": "cpelletier@barracuda.com",
                                "field_request_id": "40df08b6b97e5448795d666d945bac6feb7cfe47",
                                "element_id": "d2c2aaf73875e537db25ad30191dd6fdfa8766c4",
                                "field_request_canceled": null,
                                "template_field_id": "726f1cd9b3777ffe19e087e509eb1777588bb36b",
                                "field_id": "40df08b6b97e5448795d666d945bac6feb7cfe47"
                        },
                        {
                         "id": "43a434da73c0127beb49954869c94347a3af496e",
                                "type": "signature",
                                "role_id": "1025e1f678944126d55fa8244adb40dbfbe4eae5",
                                "json_attributes": {
                                                "page_number": 0,
                                                "x": 91,
                                                "y": 186,
                                                "width": 122,
                                                "height": 34,
                                                "required": true
                                 },
                         "role": "Client",
                                "originator": "sophiahelp@mailinator.com",
                                "fulfiller": "cpelletier@barracuda.com",
                                "field_request_id": "4d766371aca992ec963dae1704a015cf5e8eb14f",
                                "element_id": "5cff77fd67f7620e5efa07a335f28f05480e91f5",
                                "field_request_canceled": null,
                                "template_field_id": "e9536f562ec1edc27070ae097b2a40339a172645",
                                "field_id": "4d766371aca992ec963dae1704a015cf5e8eb14f"
                        }],
                        "requests": [],
                        "notary_invites": [],
                        "roles": [
                        {
                         "unique_id": "1025e1f678944126d55fa8244adb40dbfbe4eae5",
                                "signing_order": "1",
                                "name": "Client"
                        }],
                        "field_invites": [
                         {
                         "id": "73f0a1f97afb21309f0248dbf460f24eea0bd36a",
                                "status": "fulfilled",
                                "updated": "1413485018",
                                "email": "cpelletier@barracuda.com",
                                "role": "Client"
                         }],
                        "version_time": "1413485018",
                        "enumeration_options": [],
                        "attachments": [],
                        "exported_to": [
                        {
                         "export_domain": "copy.com",
                                "is_exported": false,
                                "exported_user_ids": []
                        } ],
                        "parent_id": "1893180697eb9bc2965f5e1b5a502a0942718d04"
} ]
}

 

/event_subscription

GET /event_subscription

 

Description Get an event subscription.
Example request curl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/event_subscription
Authorization Bearer
Accept application/json
HTTP Method GET
Example response
{
"subscriptions":[
{
"id”:"event_id",
"event":"document.update",
"created":"1410301010"
},
{
"id”:"event_id",
"event":"document.create",
"created":"1410301010"
}
]
}

 

POST /event_subscription
Description Used for creating webhooks that will be triggered when the specified event takes place.
Example requests

curl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST --data '{"event":"document.update","callback_url":"YOUR_CALLBACK_URL"}' https://api-eval.signnow.com/event_subscription

curl -X POST -H 'Authorization: bearer ACCESS_TOKEN' --data '{"callback_url":"MY_URL","event":"EVENT","use_tls_12":1}' https://api-eval.signnow.com/event_subscription

Authorization Bearer
Content-Type application/json
HTTP Method POST
Payload parameters
required event The event that triggers the webhook (see "Events Table")
required callback_url The URL called when event is triggered
optional use_tls_12 Value can be 0 or 1
 
{
   "event": "document.update",
   "callback_url": "https://www.myapp.com/path/to/callback.php"
}

 

 

Events Table
Event Description Data passed when triggered
document.create

Webhook is triggered when a document is uploaded to user's
account in SignNow

{
"meta":{
"timestamp":1414442211,
"event":"document.create",
"environment":"https:\/\/api.signnow.com",
"callback_url":"http:\/\/www.mywebapp.com\/156732k1"
},
"content":{
"document_id":"3afddf18a5b472a8df0a0ly4ni7797393ba0d244",
"document_name":"forfun",
"user_id":"c3399759607076512856128cd053bl6mc9j7ca58"
}
}
document.update

Webhook is triggered when a document is updated
(fields added, text added, signature added, etc.)

{
"meta":{
"timestamp":1414443785,
"event":"document.update",
"environment":"https:\/\/api.signnow.com",
"callback_url":"http:\/\/www.mywebapp.com\/156732k1"
},
"content":{
"document_id":"3afddf18a5b472a8df0a0ly4ni7797393ba0d244",
"document_name":"forfun",
"user_id":"c3399759607076512856128cd053bl6mc9j7ca58"
}
}
document.delete Webhook is triggered when a document is deleted from
{
"meta":{
"timestamp":1414444079,
"event":"document.delete",
"environment":"https:\/\/api.signnow.com",
"callback_url":"http:\/\/www.mywebapp.com\/156732k1"
},
"content":{
"document_id":"3afddf18a5b472a8df0a0ly4ni7797393ba0d244",
"document_name":"forfun",
"user_id":"c3399759607076512856128cd053bl6mc9j7ca58"
}
}
invite.create

Webhook is triggered when an invitation to a SignNow document is created.

{
"meta":{
"timestamp":1414444677,
"event":"invite.create",
"environment":"https:\/\/api.signnow.com",
"callback_url":"http:\/\/requestb.in\/12nb0c41"
},
"content":{
"invite_id":"d4407149db6604a3f6c548m4ns32b993c14d0905",
"signer":"tester1@gmail.com",
"status":"created",
"document_id":"d9dadf729963db44a649kl3nfc5136c7ef53ed4e"
}
}
invite.update

Webhook is triggered when an invite to SignNow document is updated. Ex. A signer has signed the document.

{
"meta":{
"timestamp":1414445026,
"event":"invite.update",
"environment":"https:\/\/api.signnow.com",
"callback_url":"http:\/\/requestb.in\/12nb0c41"
},
"content":{
"invite_id":"d4407149db6604a3f6c548m4ns32b993c14d0905",
"signer":"tester1@gmail.com",
"status":"fulfilled",
"document_id":"d9dadf729963db44a649kl3nfc5136c7ef53ed4e"
}
}
Example response
{
   "id":"5a8123c4059a03f6eli47d66ef84694b9109845e",
"created":1414441545    "updated":1414442202 }

 

DELETE /event_subscription/<subscription_id>

 

Description Delete an event subscription.
Example request curl -X DELETE -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/event_subscription/<subscription_id>
Authorization Bearer
Accept application/json
HTTP Method DELETE
Example response
{
   "id":"b11512055b136d1615efbaec911bcb81b581a655",
"status": "deleted" }

 

 

Description Creates a Signing Link
Example request curl -H ‘Authorization: Bearer ACCESS_TOKEN’  —data ‘{“document_id”:”DOCUMENT_ID”}' http://api.signnow.com/link
 
Authorization Bearer
Accept application/json
HTTP Method POST
Payload parameters
required document_id The ID of the document
Example response
{
   "url":"http://signnow.com/s/1IFqEIt","url_no_signup":"http://signnow.com/s/1IFqFvT"
}

 

About REST (REpresentational State Transfer)

We designed the SignNow API in a very RESTful way, so that your consumption of it is simple and straightforward. From Wikipedia[2]:

REST's proponents argue that the Web's scalability and growth are a direct result of a few key design principles:

  1. Application state and functionality are divided into resources
  2. Every resource is uniquely addressable using a universal syntax for use in hypermedia links
  3. All resources share a uniform interface for the transfer of state between client and resource, consisting of
    • A constrained set of well-defined operations
    • A constrained set of content types, optionally supporting code on demand
  4. A protocol which is:
    1. Client-server
    2. Stateless
    3. Cacheable
    4. Layered

REST's client/server separation of concerns simplifies component implementation, reduces the complexity of connector semantics, improves the effectiveness of performance tuning, and increases the scalability of pure server components. Layered system constraints allow intermediaries-proxies, gateways, and firewalls-to be introduced at various points in the communication without changing the interfaces between components, thus allowing them to assist in communication translation or improve performance via large-scale, shared caching.

REST enables intermediate processing by constraining messages to be self-descriptive: interaction is stateless between requests, standard methods and media types are used to indicate semantics and exchange information, and responses explicitly indicate cacheability.

If you are looking for more information about RESTful web services, the O'Reilly RESTful Web Services book[3] is excellent.

 

 

 

curl -X POST -H 'Authorization: bearer ACCESS_TOKEN’  
--data '{"callback_url":"MY_URL","event":"EVENT","use_tls_12":1}’  

https://api-eval.signnow.com/event_subscription[4]

Last updated on