About SignNow

SignNow is a secure eSignature solution allowing organizations to obtain legally binding signatures from customers, partners, and employees in seconds, reducing document turnaround up to 90%. SignNow offers a range of deployment options:

  • Cloud
  • Virtual machine (VM) appliance

This paperless approach to document control allows you to electronically manage document workflow and securely store critical documents, eliminating scanners, faxes, printers, and document storage.


Create a Signing Session Invite with Fields

This article describes how to use the evaluation API environment to create a document, create an invitation to sign that document, and provide a signing link to the document invite.

The instructions in this article use the Evaluation API infrastructure only. None of the information or records created here are guaranteed available for more than 48 hours. No SignNow accounts or data are available in the Evaluation infrastructure. Contact your account manager for access to the SignNow production API.

This tutorial assumes some familiarity with REST API calls, the unix/linux command line tool 'curl' or similar tools that create https requests, and the JSON data format.


Use the steps in this article when using the SignNow API to build embedded signing sessions directly into your web or mobile applications. Create a single recipient account that you can reuse for every signing event; multiple recipient accounts are unnecessary.


You can cancel and resend invites if an email address or document changes via API calls or directly in the web interface.

PART 1: One-Time Setup


Part 1 describes a one-time setup process; you need complete these steps only once.

Step 1. Obtain Valid Client Application Details

To obtain access to the Eval API environment, go to and complete the form. You will receive a ClientID and ClientSecret, as well as ENCODED_CLIENT_CREDENTIALS, which will provide access to the Eval API environment.

For Production access and pricing information, contact SignNow in one of the following ways:

Step 2. Create Sender Account

  1. Go to
  2. Sign up for a new account, and make note of your email address and password, to use in place of USER_1_EMAIL and USER_1_PASSWORD below.

Step 3. Get Access Token for First User

curl -H 'Authorization: Basic ENCODED_CLIENT_CREDENTIALS' --data 'username=USER_1_EMAIL&password=USER_1_PASSWORD&grant_type=password'

Make a note of the access token you receive: ( USER_1_ACCESS_TOKEN )

Step 4. Create a Signer Account

Only one account is needed as it will be re-used for every signing event. Go to:

Sign up for a new account and make a note of your email address and password which are in the form USER_2_EMAIL and USER_2_PASSWORD below. Be sure to verify the email.

Step 5. Get the Signer Account Access Token

curl -H 'Authorization: Basic ENCODED_CLIENT_CREDENTIALS' --data 'username=USER_2_EMAIL&password=USER_2_PASSWORD&grant_type=password'

Make a note of the access token you receive: ( USER_2_ACCESS_TOKEN )

Step 6. Edit Signer Account Name

Edit the first and last name of the signer account, and turn off reusable signatures. This appears in the document signing process for your users. We suggest "Guest Signer". Make the following PUT call to accomplish this:

curl -H 'Authorization: Bearer USER_2_ACCESS_TOKEN' --data '{"first_name":"Guest","last_name":"Signer"}'

Turn off reusable signatures:

curl -X PUT -H 'Authorization: Bearer USER_2_ACCESS_TOKEN' --data '{"active":1}'

Part 2: Repeatable Process for Every Document

The steps in Part 2 describe how to upload new documents and generate a unique signing link for those documents.

Step 1. Create Document as First User

There are three methods:

Method 1: Use a template that has been previously created in your account. To do this go to, log in with your credentials for this account, upload a document, and turn it into a template as shown here: . Add one role to the template, name the role "Buyer" and place signature, text, and other fields as needed on this template. Get the template_id ( USER_1_TEMPLATE_ID ) as described here: . Then, to create a document from the template, use this CURL call:

curl -H 'Authorization: Bearer USER_1_ACCESS_TOKEN'

This will return a document ID.

Method 2: Upload a document with text tags on it. Click here to download an example.

For more information, see How to Generate Text Tags on a Document.

Use the following curl call to upload the document. This will auto-convert text tags to fields:

curl -H 'Authorization: Bearer USER_1_ACCESS_TOKEN' -F '[email protected]_NAME'

This will return a document ID.

Method 3: Upload a plain document and then put fields on it using the API.

curl -H 'Authorization: Bearer USER_1_ACCESS_TOKEN' -F '[email protected]_NAME'

This returns the document ID, then do a PUT to place fields on the document; adjust the x,y coordinates to place the signature field where needed:

curl -X PUT -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"fields":[{"x":305,"y":18,"width":122,"height":34,"page_number":0,"role":"Buyer","required":true,"type":"signature"}]}'

Step 2. Create Invite to Sign Uploaded Document

Make a POST /document//invite call, with email=disable to suppress the delivery of an email invite:

curl -H 'Authorization: Bearer ACCESS_TOKEN' --data '{"to":[{"email":"USER_2_EMAIL","role":"Buyer","order":1, "role_id":""}],"from":"USER_1_EMAIL","cc":[],"subject":"Please Sign","message":"Please Sign"}'

Step 3. Generate Restricted Scope Access Token for Signing Link

For document_id, use the document ID generated in the preceding section.

Get an access_token with a scope specific to that document by making a POST /oauth2/token request for USER_2:

curl -H 'Authorization: Basic ENCODED_CLIENT_CREDENTIALS' --data 'username=USER_2_EMAIL&password=USER_2_PASSWORD&grant_type=password&scope=signer_limited_scope_token document/DOCUMENT_ID'


Step 4. Generate Full Signing Link

The base URL for the link is:

The link requires the query parameters: document_id and access_token

The signing link accepts optional query parameters

  • redirect_uri
  • theme
  • disable_email

To use a neutral theme, send the user to a simple thank you page after they have successfully completed the signing session, suppress the sending of the signed document via email, and add this item to the query string:

  • redirect_uri=%2Fdocument-saved-successfully&theme=neutral&disable_email=true

The full link will then be:

Alternative Signing Link

This signing link automatically provides a mobile app signing link for iOS and Android device users:

Optional Parameters: redirect_uri=%2Fdocument-saved-successfully

If a user is signing from a mobile device, add the following to direct the user to the mobile web (if the user is on a desktop system, they are automatically directed to desktop signing): mobileweb=mobileweb_only

To allow users to sign using the mobileweb signature panel, add &use_signature_panel=1

Full URL

Example full URL including mobileweb and signature panel parameters:

Updated about a year ago

Create a Signing Session Invite with Fields

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.