It seems like your browser didn't download the required fonts. Please revise your security settings and try again.
Barracuda Campus Help Center / Reference

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.

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

 

DescriptionCreate a user. Recently changed to not generate a token. See POST /oauth2/token for instructions on generating a token for the new user.
Example requestcurl -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
AuthorizationBasic
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Payload parameters 

 

requiredemailEmail of user
requiredpasswordPassword of user
optionalfirst_nameFirst name of user
optionallast_nameLast 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

 

DescriptionRetrieve a user resource
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/user
AuthorizationBearer
Acceptapplication/json
HTTP MethodGET
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

 

DescriptionRetrieve a list of the user's documents
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/user/documentsv2
AuthorizationBearer
Acceptapplication/json
HTTP MethodGET
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 requestcurl -X GET -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/user/documentgroups?limit=2&offset=0
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodGET
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

 

DescriptionCreate 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
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Post parameters 

 

requireddocument_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.

requiredgroup_nameString containing the group name
Example response
{"id":"68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0"}

 

/documentgroup/

GET /documentgroup/

 

DescriptionReturns 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 requestcurl -X GET -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodGET
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/

 

DescriptionDeletes the document group.  Documents within the group are not deleted.  Document groups cannot be deleted while they have an group invite.
Example requestcurl -X DELETE -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodDELETE
Example Response
{"status":"success"}

 

/documentgroup//groupinvite

POST /documentgroup//groupinvite

 

DescriptionThis 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
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Post parameters 

Invite objects:

requiredinvite_stepsArray of invite_step objects
optional completion_emailsEmail objects containing completion email contents for each user

Invite step objects:

requiredorderAn integer from 1 to 100.  All invite steps must have a unique order.
requiredinvite_actionsArray of invite action objects.
optional invite_emailsEmail objects containing invite email contents for each user

Invite email objects:

requiredemailEmail of user receiving invite email.
optional disabledDetermines whether email in the step should be disabled, values are 1 or 0. (0 is default)
optional subjectThe custom subject for the invite email.
optional messageThe custom message for the invite email.
optional reminderNumber of days until a reminder is sent if user has not completed the signing actions.
optional expiration_daysNumber of days until the signing actions for the user expire.

Invite action objects:

requiredemailEmail of user who needs to sign/view the document.
requireddocument_idDocument id user is to sign/view.
requiredactionCan be values of 'sign' or 'view'.
required/ optional role_nameRole the user should sign, only required if the action is 'sign'.
optional allow_reassignDetermines whether the invitee can reassign this invite.  Values are 1 or 0. (0 is default)
optional authenticationAn 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:

requiredemailEmail 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 disabledDetermines whether compeltion email should be disabled. Values are 1 or 0. (0 is default)
optional subjectThe custom subject for the completion email.
optional messageThe custom message for the completion email.
optional disable_document_attachmentIf 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//groupinvite/

 

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 requestcurl -X GET -H 'Authorization: Bearer ACCESS_TOKEN'  https://api-eval.signnow.com/api/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0/groupinvite /8755746dea8df75c6856d1fb8c346afe71f2329e
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodGET
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//groupinvite//cancelinvite
DescriptionCancels a group invite.  All documents will be unshared with invitees.  Any signatures that occurred before canceling will remain on the documents.
Example requestcurl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/documentgroup/6e1e4988429913e086f71b20c810c02bafc930cb/groupinvite/03ee5b2c4da8366d1e321f61f857b14d937dfd01/cancelinvite
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Post Body ParametersThere are no parameters.
Example Response
{"status":"success"}

 

GET /documentgroup//groupinvite//pendinginvites

 

DescriptionReturns 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 requestcurl -X GET -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/api/documentgroup/68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0/pendinginvites
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodGET
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//groupinvite//resendinvites
DescriptionResends 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 requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST https://api-eval.signnow.com/api/documentgroup/12f22d89913f75d032303327c79dd47d427b7d6b/groupinvite/04ef78c38097d2f9b3c99ec1df1e6aef0c9f18f3/resendinvites
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Post Body Parameters
optional emailEmail 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//groupinvite//invitestep//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}]}'

AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Post Body Parameters
requireduser_to_updateEmail of user that needs to be updated.
optional replace_with_this_userEmail of user that will replace the "user_to_update" user.
optional invite_emailEmail Object containing invite_email attributes to update.
optional update_invite_action_attributesArray of objects that indicate for which document, invite attributes need to be updated.

Invite_email object:

requiredemailEmail 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 disabledDetermines whether email in the step should be disabled, values are 1 or 0. (0 is default)
optional subjectThe custom subject for the invite email.
optional messageThe custom message for the invite email.
optional reminderNumber of days until a reminder is sent if user has not completed the signing actions.
optional expiration_daysNumber of days until the signing actions for the user expire.

Update_invite_action_attribute object:

requireddocument_idIndicates which action needs to be updated by document_id for user.
optional allow_reassignDetermines 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

 

DescriptionRequest an access token for a user
Example requestcurl -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
AuthorizationBasic
Acceptapplication/json
Content-Typeapplication/x-www-form-urlencoded
HTTP MethodPOST
Post parameters 

 

requiredusernameEmail of user
requiredpasswordPassword of user
requiredgrant_typeMust be "password"
optionalscopeA 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

 

DescriptionVerify an access token for a user
Example requestcurl -H 'Authorization: Bearer 68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0' https://api-eval.signnow.com/oauth2/token
AuthorizationBearer
Acceptapplication/json
HTTP MethodGET
Example Response
{
    "access_token": "68a31715f60b8a2e0df3ef1b4bc1a22cece3876c4a9a029dc845e4fa098517a0",
    "token_type": "bearer",
    "expires_in": "2592000",
    "refresh_token": "8ee3c7371cd2b163cbe0e5c76080d059c5cc71ca4f3224abc0c4fb11ebef2feb",
    "scope": "user documents"
}

/document

POST /document

 

DescriptionUploads 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"}'

AuthorizationBearer
Acceptapplication/json
Content-Typemultipart/form-data
HTTP MethodPOST
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/ at the reference link https://api-eval.signnow.com/document/fieldextract.

Simple Field Tag
Example Request

curl -X POST -H "Authorization: Bearer "  "https://api-eval.signnow.com/document/fieldextract" -F file=@//FILE_NAME.pdf

AuthorizationBearer
Content-Typemultipart/form-data
HTTP MethodPOST
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:

KEYWhat does it mean?Accepted format & valuesWhen fields need this KEY?
tTYPE of the field

s (for signature)

i (for initials)

t (for text)

d (for dropdown)

For every field
rREQUIRED

y (for required)

n (for optional)

For every field
oROLE""For every field
lLABEL"Only for Text and Drop down fields
ddDROPDOWN"option1, option2, option2, ...."Only for Drop down fields
fFILE".pdf"File attachment
wWIDTHW (width)For every field
hHEIGHTH (height)For every field
vVALIDATOR_IDV (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/ (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 ' -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 ' -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'

AuthorizationBearer
Content-Typemultipart/form-data
HTTP MethodPOST
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/ (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: {{}} 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
{<br/>"tag_name":"CheckboxTagExample",<br/>"role":"CLIENT",<br/>"required":true,<br/>"type":"checkbox",<br/>"height":12,<br/>"width":12,<br/> },
Example response
{
	"id":"519f97b02da37a411d624e758c631cb64c9d9eb6"
}


PUT /document/

 

DescriptionUpdate an existing document. Add fields [signature | text | initials | checkbox ], elements [signature | text | check]
Example requestcurl -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
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPUT
Example bodies

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

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

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",<br/>         "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
{<br/>   "id": "2586a3f5fe9a79106015602a5191938bfaf698e9"
}<span style="color: rgb(0,0,0);"> </span>          


GET /document/

 

DescriptionRetrieve a document resource
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9
AuthorizationBearer
Acceptapplication/json
HTTP MethodGET
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/

 

DescriptionDeletes a previously uploaded document.
Example requestcurl -X DELETE -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9
AuthorizationBearer
Acceptapplication/json
HTTP MethodDELETE
Example response
{
   "status":"success"
}

 

GET /document//download

 

DescriptionDownload a collapsed document
HTTP MethodGET
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9/download?type=collapsed
Query Parameters
requiredtype

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 responseDocument requested

 

 

GET /document//download/collapsed?with_history=1

 

DescriptionDownload a collapsed document with a table containing the document's history.
HTTP MethodGET
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/2586a3f5fe9a79106015602a5191938bfaf698e9/download/collapsed?with_history=1
Example responseThe requested document along with a table containing the document's history.

 

POST /document//move

 

DescriptionMove a document to the Archive folder or one of it's subfolders.
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"folder_id":"d3d5e79a4a4bcabd18bcd136547be6851d19ce12"}' https://api-eval.signnow.com/document/dc07a45f23bd1bf1a248e72315417a90d29e32f7/move
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Example body
{<br/>   "folder_id": "d3d5e79a4a4bcabd18bcd136547be6851d19ce12"<br/>}
Example response
{<br/>   "result": "success"
}<span style="color: rgb(0,0,0);"> </span>            

 

POST /document//invite

 

DescriptionCreate 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.

AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Payload parametersFree form invite example:

 

requiredfromThe email of the inviter
requiredtoThe email of the invitee

 

Example:

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

 

Role-based invite example:

requiredtoAn array of SIGNERS that you would like to send the invite to
requiredfromThe email of the owner of the document
optionalccAn array of emails that will be cced in the invite
optionalsubjectThe subject of the email
optionalmessageThe message body of the email invite

 

Each SIGNER object should contain the following:

requiredemailA string representing the email address of the signer.
requiredroleA string representing the name of the role the signer will be required to fulfill.
requiredorderA 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.
requiredrole_id

""

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

optionalauthentication_type"password"
optionalpasswordA string representing the password that will be required by the signer to open and sign the document.
optionalexpiration_daysInteger representing the number of days in which the invite will expire.
optionalreminderInteger 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 

 

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

 

PUT /document//fieldinvitecancel
DescriptionCancel an invite to a document.
Example request

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

AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPUT
Example response
{
    "status":"success"
}
POST /document//download/link
DescriptionCreates a one-time use URL for anyone to download the document as a PDF.
Example Requestcurl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/document/6abad1ec2cea2dc144cc6cd108094f53ce92f434/download/link
AuthorizationBearer
Acceptapplication/json
HTTP MethodPOST
Route parametersdocument id
Example response
{
    "link":"https://signnow.com/dispatch?route=onetimedownload&document_download_id=67de624701a70cdfe208b5c537f61fefa48b410a"
}

 

POST /document//custom_history_event

 

DescriptionAllows 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 MethodPOST
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

 

DescriptionMerges existing documents into one.
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST https://api-eval.signnow.com/document/merge
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/pdf
HTTP MethodPOST
Payload parameters
requireddocument_idsAn array of document IDs to merge
requirednameThe name of the newly merged document

 

{
	"name": "the merged doc"
	"document_ids": ["84a18d12bf7473ea3dd0e4dd1cdcded6ba6281aa", "a71d963c49f33176e90c5827069c422616b1500c"]
}
Example response
<span>download.pdf</span>
            
 

 

GET /document//historyfull

 

DescriptionGet the history of a document
HTTP MethodGET
Example requestcurl -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

 

DescriptionCreate a template by flattening an existing document.
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"document_id": "8a8fb421a75a605625d273045a687e588628e43c"}' https://api-eval.signnow.com/template
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Payload parameters
requireddocument_idThe id of the document
requireddocument_nameThe name of the template

Example:

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

 

POST /template//copy

 

DescriptionCreate 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 requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' -X POST https://api-eval.signnow.com/template/ce97706ea19b42c19aced4a6ac353153e86c09f1/copy
AuthorizationBearer
Acceptapplication/json
Content-Typeapplication/json
HTTP MethodPOST
Payload parameters
requireddocument_nameThe name of the newly copied document
{<br/>	"document_name": "New Template Name"
}
Example response
{<br/>	"id":"ce97706ea19b42c19aced4a6ac353153e86c09f1",
	"document_name": "a document"
}

 

 

/folder

GET /folder/?

 

DescriptionGets 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 

AuthorizationBearer
Acceptapplication/json
HTTP MethodGET
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-updatedtimestamp( should return all documents modified from that timestamp to now()){document name,updated,created}

asc/

desc

documents-createdtimestamp( 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:

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

 

/event_subscription

GET /event_subscription

 

DescriptionGet an event subscription.
Example requestcurl -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/event_subscription
AuthorizationBearer
Acceptapplication/json
HTTP MethodGET
Example response
{<br/>    "subscriptions":[<br/>        {<br/>            "id”:"event_id",<br/>            "event":"document.update",<br/>            "created":"1410301010"<br/>        },<br/>        {<br/>            "id”:"event_id",<br/>            "event":"document.create",<br/>            "created":"1410301010"<br/>        }<br/>    ]<br/>}

 

POST /event_subscription
DescriptionUsed 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

AuthorizationBearer
Content-Typeapplication/json
HTTP MethodPOST
Payload parameters
requiredeventThe event that triggers the webhook (see "Events Table")
requiredcallback_urlThe URL called when event is triggered
optionaluse_tls_12Value can be 0 or 1
 
{
   "event": "document.update",
   "callback_url": "<span class="nolink">https://www.myapp.com/path/to/callback.php</span>"
}
Events Table
EventDescriptionData passed when triggered
document.create

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

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

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

{<br/>  "meta":{<br/>    "timestamp":1414443785,<br/>    "event":"document.update",<br/>    "environment":"https:\/\/api.signnow.com",<br/>    "callback_url":"http:\/\/www.mywebapp.com\/156732k1"<br/>  },<br/>  "content":{<br/>    "document_id":"3afddf18a5b472a8df0a0ly4ni7797393ba0d244",<br/>    "document_name":"forfun",<br/>    "user_id":"c3399759607076512856128cd053bl6mc9j7ca58"<br/>  }<br/>}
document.deleteWebhook is triggered when a document is deleted from
{<br/>    "meta":{<br/>    "timestamp":1414444079,<br/>    "event":"document.delete",<br/>    "environment":"https:\/\/api.signnow.com",<br/>    "callback_url":"http:\/\/www.mywebapp.com\/156732k1"<br/>},<br/>  "content":{<br/>    "document_id":"3afddf18a5b472a8df0a0ly4ni7797393ba0d244",<br/>    "document_name":"forfun",<br/>    "user_id":"c3399759607076512856128cd053bl6mc9j7ca58"<br/>  }<br/>}
document.completeWebhook is triggered when all invitees have signed the document.
/code {<br/>  "meta": {<br/>    "timestamp": 1498683927,<br/>    "event": "document.complete",<br/>    "environment": "<span class="nolink">https://api-eval.signnow.com</span>",<br/>    "callback_url": "CALLBACK_URL",<br/>    "access_token": "ACCESS_TOKEN"<br/>  },<br/>    "content": {<br/>    "document_id": "DOCUMENT_ID",<br/>    "document_name": “DOCUMENT_NAME",<br/>    "user_id": "USER_ID"<br/>  }<br/>}
invite.create

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

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

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

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

 

DELETE /event_subscription/

 

DescriptionDelete an event subscription.
Example requestcurl -X DELETE -H 'Authorization: Bearer ACCESS_TOKEN' https://api-eval.signnow.com/event_subscription/
AuthorizationBearer
Acceptapplication/json
HTTP MethodDELETE
Example response
{
   "id":"b11512055b136d1615efbaec911bcb81b581a655",<br/>   "status": "deleted"
}

 

/link

POST /link

 

DescriptionCreates a Signing Link
Example requestcurl -H ‘Authorization: Bearer ACCESS_TOKEN’  —data ‘{“document_id”:”DOCUMENT_ID”}' http://api.signnow.com/link
 
AuthorizationBearer
Acceptapplication/json
HTTP MethodPOST
Payload parameters
requireddocument_idThe ID of the document
Example response
{
   "url":"<span class="nolink">http://signnow.com/s/1IFqEIt","url_no_signup":"http://signnow.com/s/1IFqFvT</span>"
}

 

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:

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 is excellent.