Skip to content
SignYu
TemplatesPricingAPIDocsAboutBlogContact
  1. Home
  2. API
  3. Integrations
  4. Zoho Creator

Aadhaar eSign from Zoho Creator with Deluge

Zoho Creator apps often hold exactly the data an agreement needs: the customer, the amount and the PDF. This guide uses Deluge's invokeurl task to send a PDF to SignYu for Aadhaar eSign when a record is approved, writes the signing links back into the record, and keeps the status in sync.

Updated 2026-10-01

What you need

  • A Zoho Creator app where you can add workflows and functions.
  • A SignYu API key (starts with sk_live_). API access costs ₹999/month with a 3-day free trial; create the key under Developers in the dashboard.
  • Signature credits for your signers, from ₹15 per signature (₹15 per signature on packs of 10 or more). Sending uses one credit per signer.
  • A form with fields for the signer's name, mobile and email, plus text fields for SignYu Document ID, Status and Sign Link.

Step 1: Create a connection for the API key

In Creator, open Microservices, then Connections, and create a Custom Service connection named signyu with API Key authentication. Add a header parameter called Authorization and enter Bearer followed by a space and your sk_live_ key as its value. Deluge then adds the header for you, and the key never appears in your scripts.

Step 2: Get the PDF as a file object

invokeurl can upload a file object as multipart. A simple source is a URL that returns your PDF, for example a Zoho Writer merge or a file stored elsewhere. Keep it under 10MB.

pdfFile = invokeurl
[
	url :input.Agreement_PDF_URL
	type :GET
];
pdfFile.setParamName("file");

Step 3: Create, add signers and send

Pass the file and the name field together in files; the name part is a string part. detailed: true returns the HTTP status code so you can react to 402 and 409.

base = "https://signyu.com/api/v1";

namePart = Map();
namePart.put("paramName","name");
namePart.put("content","Agreement " + input.ID);
namePart.put("stringPart","true");
parts = List();
parts.add(pdfFile);
parts.add(namePart);

created = invokeurl
[
	url :base + "/documents"
	type :POST
	files :parts
	connection :"signyu"
];
documentId = created.get("documentId");

signer = Map();
signer.put("name",input.Customer_Name);
signer.put("phone",input.Customer_Mobile.replaceAll("[^0-9]",""));
signer.put("email",input.Customer_Email);
signers = List();
signers.add(signer);
body = Map();
body.put("signers",signers);

invokeurl
[
	url :base + "/documents/" + documentId + "/signers"
	type :POST
	parameters :body.toString()
	headers :{"Content-Type":"application/json"}
	connection :"signyu"
];

sendResp = invokeurl
[
	url :base + "/documents/" + documentId + "/send"
	type :POST
	connection :"signyu"
	detailed :true
];
code = sendResp.get("responseCode");
if(code == 200)
{
	result = sendResp.get("responseText").toString().toMap();
	input.SignYu_Document_ID = documentId;
	input.eSign_Status = "SENT";
	input.Sign_Link = result.get("signers").get(0).get("signUrl");
}
else if(code == 402)
{
	input.eSign_Status = "NO CREDITS";
}

Verify webhooks

SignYu webhooks must be verified against the raw request body and the X-SignSetu-Signature header. If your Creator setup cannot give you both, do not trust incoming payloads directly. The safe pattern is a scheduled function that asks the API for the current status of every record still marked SENT, since that call is authenticated with your key. Run it every 15 or 30 minutes.

for each rec in Agreements[eSign_Status == "SENT"]
{
	doc = invokeurl
	[
		url :"https://signyu.com/api/v1/documents/" + rec.SignYu_Document_ID
		type :GET
		connection :"signyu"
	];
	if(doc.get("status") == "COMPLETED")
	{
		rec.eSign_Status = "COMPLETED";
		rec.Signed_PDF_URL = doc.get("downloadUrl");
		rec.Completed_On = now;
	}
}

Common mistakes

  • The downloadUrl expires. If you want to keep the signed PDF in Creator, download it in the same scheduled run and attach or store the file, rather than saving only the link.
  • Mobile numbers stored with +91, spaces or dashes fail validation; strip everything except digits, as in the example.
  • Without detailed: true, invokeurl returns only the body and you cannot tell a 402 from a 409; check the error field or use detailed mode.
  • The file part must be sent with Content-Type application/pdf. A part labelled application/octet-stream is rejected with 400 invalid_file even if the bytes are a valid PDF.
  • Send is one way. A second POST to /send returns 409 invalid_state, and signers cannot be added after sending. Add every signer (up to 6) before you call send.

Frequently asked questions

Does this work in Zoho CRM too?

Yes. Deluge and invokeurl work the same way in Zoho CRM functions. Create the connection in CRM and trigger the function from a workflow rule or a button.

Can the customer sign from the Creator portal?

Yes. Show the stored Sign_Link field in the portal report as a URL. The customer opens it and signs with Aadhaar OTP. SignYu also emails the link to the address you provided.

How many signers can one record send?

Up to 6. Add more maps to the signers list in the order they should sign; each uses one credit.

What does it cost to run from Creator?

API access at ₹999/month with a 3-day free trial, plus one credit per signer from ₹15 per signature (₹15 per signature on packs of 10 or more). Zoho's own invokeurl limits apply to your plan.

API reference

  • Quickstart
  • Documents
  • Authentication
  • Errors

Other integration guides

  • Aadhaar eSign API in Java with Spring Boot
  • Send Aadhaar eSign Requests from Google Sheets
  • Aadhaar eSign Automation with n8n

Get your API key

Start a 3-day free trial of API access and send your first document today.

Start free trialSee API pricing and features
SignYu

Pay-per-use Aadhaar eSign for Indian businesses, landlords, and individuals. Sign PDFs in 2 minutes at ₹15 per signature.

LinkedIn →

Product

  • Aadhaar eSign
  • Pricing
  • Templates
  • Rent Agreement eSign
  • Verify Signature
  • eSign Quiz
  • API
  • API Docs

Company

  • About
  • eSign Guide
  • Blog
  • Press
  • FAQ
  • Contact
Powered by eMudhra (CCA-licensed ESP)·IT Act 2000 Compliant·Aadhaar OTP Authenticated·Made in India 🇮🇳

© 2026 BN Habitat Pvt Ltd·CIN: U45400CH2010PTC043443·GST: 03AAECB5185C1Z3

Regd. Office: H.NO. 3355, 2nd Floor, Sector 37-D, Chandigarh, Chandigarh - 160036

Op. Office: Office 34, 13th Floor, Sushma Infinium, Chandigarh Ambala Expressway, Zirakpur, Punjab - 140603

TermsPrivacyRefundCookie