Update document group invite via Electronic Signature API

Facilitate team management and smooth workflow by creating teams using the airSlate SignNow API. Share access to all necessary documents and allow team members to work with them

  • Free to test
  • Fast to deploy
  • Powerful & secure

View team member documents and monitor activity regularly.

Gather members of your department or project parties in an airSlate SignNow team to share, edit, sign, and send documents along with restricting access for specified users.

                                        'use strict';
 
const signnow = require('@signnow/api-client')({
  credentials: 'BASE64_ENCODED_CLIENT_CREDENTIALS',
  production: true, // if false then uses eval server
});
const sendInvite = signnow.template.invite;
 
const id = 'TEMPLATE_ID_GOES_HERE';
const token = 'YOUR_ACCESS_TOKEN';
 
/**
 * @typedef {Object} SignerSettings
 * @property {string} email - signer's email
 * @property {string} role - ole name
 * @property {number} order - role signing order
 * @property {string} reassign - allow reassign signer
 * @property {string} decline_by_signature - signer can decline invite
 * @property {number} reminder - remind via email in days
 * @property {number} expiration_days - expiration of invite in days
 * @property {string} [subject] - specify subject of email
 * @property {string} [message] - specify body of email
 */
 
/**
 * @type {Object}
 * @property {string} document_id
 * @property {SignerSettings[]} to - array of signers
 * @property {string} from - email of sender
 * @property {string[]} [cc] - array with emails
 * @property {string} [subject] - specify subject of email
 * @property {string} [message] - specify body of email
 * @property {string} [on_complete] - on signing complete action
 */
const fieldInvite = {
  document_id: 'TEMPLATE_ID_GOES_HERE',
  to: [
    {
      email: 'EMAIL_OF_SIGNER_1',
      role: 'Signer 1',
      order: 1,
      reassign: '0',
      decline_by_signature: '0',
      reminder: 4,
      expiration_days: 27,
      subject: 'Field invite Signer1',
      message: 'Message1',
    },
    {
      email: 'EMAIL_OF_SIGNER_2',
      role: 'Signer 2',
      order: 1,
      reassign: '0',
      decline_by_signature: '0',
      reminder: 4,
      expiration_days: 27,
      subject: 'Field invite Signer2',
      message: 'Message2',
    },
  ],
  from: 'EMAIL_OF_SENDER',
};
 
/**
 * @param {Object} res
 * @param {string} res.status - e.g. 'success'
 */
const handleResponse = res => {
  console.log(res);
};
 
const handleError = err => {
  console.error(err);
};
 
sendInvite({
  data: {
    ...fieldInvite,
  },
  id,
  token,
}, (err, res) => {
  if (err) {
    handleError(err);
  } else {
    handleResponse(res);
  }
});
                                    
                                        public class SendInviteModel
    {
        public IEnumerable to { get; set; }
        public string from { get; set; }
        public object[] cc { get; set; }
        public string subject { get; set; }
        public string message { get; set; }
    }
 
    public class To
    {
        public string email { get; set; }
        public string role_id { get; set; }
        public string role { get; set; }
        public int order { get; set; }
        public string authentication_type { get; set; }
        public string password { get; set; }
        public int expiration_days { get; set; }
        public int reminder { get; set; }
        public string method { get; set; }
        public string phone { get; set; }
    }
public partial class RestSharpSamples
    {
        public static void SignatureInviteFromTemplate(string accessToken, string apiUrl, string templateId, SendInviteModel dataObj, string documentName = "", bool disableEmail = false)
        {
            var client = new RestClient { BaseUrl = new Uri(apiUrl) };
 
            var createDocumentrequest = new RestRequest("/template/" + templateId + "/copy", Method.POST)
                .AddHeader("Accept", "application/json")
                .AddHeader("Authorization", "Bearer " + accessToken);
 
            if (!string.IsNullOrEmpty(documentName))
            {
                createDocumentrequest.RequestFormat = DataFormat.Json;
                createDocumentrequest.AddBody(new { document_name = documentName });
            }
 
            var createDocumentResponse = client.Execute(createDocumentrequest);
 
            if (createDocumentResponse.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception($"Can't create document from template. {createDocumentResponse.Content}");
            }
 
            var document = JsonConvert.DeserializeObject(createDocumentResponse.Content);
 
            var disable = (disableEmail) ? "?email=disable" : "";
            var request = new RestRequest("/document/" + document.id + "/invite" + disable, Method.POST)
                .AddHeader("Accept", "application/json")
                .AddHeader("Authorization", "Bearer " + accessToken);
 
            request.RequestFormat = DataFormat.Json;
            request.AddBody(dataObj);
 
            var response = client.Execute(request);
            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception($"Cannot send invite. {response.Content}");
            }
        }
    }
                                    
                                        try {
    //Create signature field in document
    Document.Field sign = new Document.Field();
    sign.x = 10;
    sign.y = 10;
    sign.height = 30;
    sign.width = 150;
    sign.type = Document.FieldType.SIGNATURE;
    sign.required = true;
    sign.pageNumber = 0;
    sign.role = "Signer role";
    sign.label = "Your signature here";
 
    Document.Field sign2 = new Document.Field();
    sign2.x = 10;
    sign2.y = 60;
    sign2.height = 30;
    sign2.width = 150;
    sign2.type = Document.FieldType.SIGNATURE;
    sign2.required = true;
    sign2.pageNumber = 0;
    sign2.role = "Another signer role";
    sign2.label = "Your signature here";
     
    //update document with signature field
    cli.documentsService().updateDocumentFields(documentId, Arrays.asList(sign, sign2));
     
    //create signers to roles mapping
    Document.InviteRole role1 = new Document.InviteRole("signer@client.biz", "Another signer role");
    role1.password = "password";
    Document.InviteRole role2 = new Document.InviteRole("signer2@client.biz", "Signer role");
    role2.password = "other_password";
 
    //execute request for invite
    Document.SigningInviteWithRolesRequest request = new Document.SigningInviteWithRolesRequest(
        "author@yourcompany.com",
        Arrays.asList(role1, role2)
    );
    request2.subject = "Document to sign";
    request2.message = "test FFI sign from cli";
    cli.documentsService().sendDocumentSignInvite(documentId, request);
} catch (SNException e) {
    e.printStackTrace();
}
                                    
                                        import signnow_python_sdk

if __name__ == '__main__':
    signnow_python_sdk.Config(client_id="CLIENT_ID",
                              client_secret="CLIENT_SECRET",
                              environment="production")

    # Enter your own credentials
    username = "USER_NAME"
    password = "USER_PASSWORD"
    template_id = "TEMPLATE_ID"

    # Create access_token for the user
    access_token = signnow_python_sdk.OAuth2.request_token(username, password, '*')

    to = [{
        "email": "testemail@signnow.com",
        "role_id": "",
        "role": "Signer 1",
        "order": 1
    },
    {
        "email": "testemail1@signnow.com",
        "role_id": "",
        "role": "Signer 2",
        "order": 2

    }]

    invite_payload = {
        "to": to,
        "from": username
    }

    # Create a document from the template
    doc_id = signnow_python_sdk.Template.copy(access_token['access_token'], template_id, "New Doc From Template")

    # Get document data
    document_data = signnow_python_sdk.Document.get(access_token['access_token'], doc_id['id'])

    # Send signature invite
    invite_response = signnow_python_sdk.Document.invite(access_token['access_token'], doc_id['id'], invite_payload)
                                    
                                        curl -X POST 'https://{{url}}/document/{{document_id}}/invite' \
-H 'Authorization: Bearer {{bearer_token}}' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '
{
  "document_id": "{{document_id}}",
  "to": [
    {
      "email": "{{email1}}",
      "role_id": "{{role_id_1}}",
      "role": "{{role_1}}"
    },
    {
      "email": "{{email2}}",
      "role_id": "{{role_id_2}}",
      "role": "{{role_2}}"
    }
  ],
  "from": "{{email_from}}",
  "subject": "email_subject",
  "message": "email_message"
}'
                                    
  • We provide developers with complete SDKs for all popular languages, allowing them to integrate eSignature workflows without writing a single line of code.
  • With our detailed documentation, integrating the airSlate SignNow API is a breeze.
  • The airSlate SignNow API not only provides you with eSignatures: use it to create fillable forms, request payments, and download & archive documents using simple API calls.

airSlate SignNow regularly wins awards for ease of use and setup

Read our reviews on the trusted resources

Tech Data uses airSlate SignNow to improve our internal and external customer service while increasing our speed to revenue.
Bob Dutkowsky CEO
Bob Dutkowsky | CEO

Select an API package for your business

Integrate eSignatures into your software and get 250 legally-binding signature invites with your API free trial.

Check API pricing

Solution engineers

We are here to help you configure eSignature API to your workflow.

Review airSlate SignNow’s API documentation

The detailed API tutorial will guide you through the entire integration process and provide clear coding examples.

Video guides

Watch our video guides for instructions on how to easily build custom integrations.

Start with any of our SDKs

Get complete SDKs for Node.js, Python,
PHP, Java, C#.

Enterprise-grade security and compliance

airSlate SignNow is committed to protecting your sensitive information by complying with global industry-specific security standards.

GDPR compliance
GDPR compliance
Regulates the use and holding of personal data belonging to EU residents.
SOC 2 Type II Certified
SOC 2 Type II Certified
Guarantees the security of your data & the privacy of your clients.
PCI DSS certification
PCI DSS certification
Safeguards credit/debit card data for every monetary transaction a customer makes.
21 CFR Part 11
21 CFR Part 11
FDA-backed standards for electronic documentation and electronic signatures.
HIPAA compliance
HIPAA compliance
Protects the private health information of your patients.
CCPA compliance
CCPA compliance
Enhances the protection of personal data and the privacy of California residents.

Watch the airSlate SignNow API in action

Get started with uninterrupted eSignature API: update document group invite via Electronic Signature API

Consolidate and streamline your eSignature workflows and establish seamless processes. Try the airSlate SignNow API, implement eSignature workflows into your custom apps and websites in minutes, and seamlessly update document group invite via Electronic Signature API.

Update document group invite via Electronic Signature API the airSlate SignNow API for uninterrupted eSignature API

  1. Click API on the airSlate SignNow main page and create your API Sandbox account.
  2. Open your email to confirm the registration and specify a password for accessing your Developer Sandbox environment.
  3. Find the list of your apps at the top of the page. By default, you can also find a Test App for testing the API.
  4. Click its name to access the Client ID and Basic Authorization Token.
  5. Launch the API using the information from the previous step.
  6. Use the code samples from the airSlate SignNow library.
  7. When you're ready to go live, go to your airSlate SignNow account and choose a subscription plan.
  8. If you can't find a subscription that suits your needs, contact the Sales team.
  9. Change the test URL in your requests to the production environment URL.
  10. Delight your customers and partners with a streamlined eSignature experience.

The airSlate SignNow API is straightforward to embed, examine, and work with (no sales people involved). Gain the ability to update document group invite via Electronic Signature API easily. Choose airSlate SignNow for more streamlined eSignature workflows.

How it works

Create an account and get the required tokens
Use code samples to update document group invite via Electronic Signature API
Enjoy the power of eSignature in your workflows

Watch our instructions to build custom integrations with ease

airSlate SignNow offers a free testing environment to explore the eSignature.

Trusted eSignature solution — what our customers are saying

Explore how the airSlate SignNow eSignature platform helps businesses succeed. Hear from real users and what they like most about electronic signing.

Easy to use
5
Nikki J

What do you like best?

I love that my clients can sign with their actual signature if they choose to. I also love that it can be done in blue or black ink. I love using my iPad Pro and Apple Pencil for signatures. Because the Real Estate Industry is almost exclusively using electronic signatures and documents a eSignature application is a necessity and airSlate SignNow is my personal favorite.

Read full review
01  / 03

Ready to get started?

FAQs

Below is a list of the most common airSlate SignNow API questions and answers. Just choose a question to view a detailed answer.

Need help? Contact support

Searches related to Electronic Signature API

signnow
signnow php sdk
signnow github
electronic document signing
signnow api
esignature api
e signature

Ready to get started?

It’s time to watch the airSlate SignNow API in action. Create your developer account and upload documents, request signatures, and check the status of your document.

Why choose the airSlate SignNow API?:

  • Free to test and easy to deploy
  • SDKs for popular languages
  • Customizable for any workflow
  • Industry-leading security & compliance
Sign up with Google