Skip to content
SignYu
TemplatesPricingAPIDocsAboutBlogContact
Developer API

Aadhaar eSign API for developers

Add legally valid Aadhaar eSignatures to your product with a simple REST API. Upload a PDF, add signers, and get signing links back. Self serve with transparent pricing: ₹999/month plus credits from ₹15 per signature. No sales call.

Start 3-day free trialRead the quickstart

Send your first document

Three calls take a PDF to a signing link. Use an official SDK or call the REST API from any language.

// npm install signyu
import { readFile } from "node:fs/promises";
import { SignYu } from "signyu";

const signyu = new SignYu({ apiKey: process.env.SIGNYU_API_KEY });

// 1. Upload the PDF
const doc = await signyu.documents.create({
  file: await readFile("agreement.pdf"),
  name: "Service Agreement",
});

// 2. Add signers
await signyu.documents.addSigners(doc.documentId, [
  { name: "Asha Rao", phone: "9876543210", email: "[email protected]" },
]);

// 3. Send and get a signing link per signer
const sent = await signyu.documents.send(doc.documentId);
console.log(sent.signers[0].signUrl);
# pip install signyu
import os
from signyu import SignYu

client = SignYu(api_key=os.environ["SIGNYU_API_KEY"])

# 1. Upload the PDF
with open("agreement.pdf", "rb") as f:
    doc = client.documents.create(file=f, name="Service Agreement")

# 2. Add signers
client.documents.add_signers(doc["documentId"], [
    {"name": "Asha Rao", "phone": "9876543210", "email": "[email protected]"},
])

# 3. Send and get a signing link per signer
sent = client.documents.send(doc["documentId"])
print(sent["signers"][0]["signUrl"])
# 1. Upload the PDF
curl -X POST https://signyu.com/api/v1/documents \
  -H "Authorization: Bearer $SIGNYU_API_KEY" \
  -F "[email protected]" \
  -F "name=Service Agreement"

# 2. Add signers
curl -X POST https://signyu.com/api/v1/documents/{documentId}/signers \
  -H "Authorization: Bearer $SIGNYU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"signers":[{"name":"Asha Rao","phone":"9876543210","email":"[email protected]"}]}'

# 3. Send for signature
curl -X POST https://signyu.com/api/v1/documents/{documentId}/send \
  -H "Authorization: Bearer $SIGNYU_API_KEY"
<?php
// composer require guzzlehttp/guzzle
$client = new GuzzleHttp\Client([
    'base_uri' => 'https://signyu.com/api/v1/',
    'headers'  => ['Authorization' => 'Bearer ' . getenv('SIGNYU_API_KEY')],
]);

// 1. Upload the PDF
$doc = json_decode($client->post('documents', [
    'multipart' => [
        ['name' => 'file', 'contents' => fopen('agreement.pdf', 'r')],
        ['name' => 'name', 'contents' => 'Service Agreement'],
    ],
])->getBody(), true);

// 2. Add signers
$client->post("documents/{$doc['documentId']}/signers", ['json' => [
    'signers' => [['name' => 'Asha Rao', 'phone' => '9876543210', 'email' => '[email protected]']],
]]);

// 3. Send and get a signing link per signer
$sent = json_decode($client->post("documents/{$doc['documentId']}/send")->getBody(), true);
echo $sent['signers'][0]['signUrl'];
// Java 11+, after uploading the PDF (multipart POST /documents)
HttpClient http = HttpClient.newHttpClient();
String key = "Bearer " + System.getenv("SIGNYU_API_KEY");
String base = "https://signyu.com/api/v1/documents/" + documentId;

// 2. Add signers
http.send(HttpRequest.newBuilder(URI.create(base + "/signers"))
    .header("Authorization", key)
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(
        "{\"signers\":[{\"name\":\"Asha Rao\",\"phone\":\"9876543210\",\"email\":\"[email protected]\"}]}"))
    .build(), HttpResponse.BodyHandlers.ofString());

// 3. Send for signature; the JSON response has a signUrl per signer
HttpResponse<String> sent = http.send(HttpRequest.newBuilder(URI.create(base + "/send"))
    .header("Authorization", key)
    .POST(HttpRequest.BodyPublishers.noBody())
    .build(), HttpResponse.BodyHandlers.ofString());
System.out.println(sent.body());

Full walkthrough in the quickstart and SDK docs.

How the Aadhaar eSign API works

From PDF to signed document in four steps.

1. Create a document

Upload a PDF up to 10MB with a multipart POST.

2. Add signers

Add up to 6 signers with name, phone, and email.

3. Send for signature

We email each signer and return their signing links, so you can embed or share them too.

4. Get notified

Receive a webhook as each signer signs, then download the signed PDF and certificate.

API endpoints

A small, predictable surface. Authenticate every request with your secret key in an Authorization: Bearer header.

MethodEndpointWhat it does
POST/api/v1/documentsUpload a PDF (up to 10MB) and create a document.
POST/api/v1/documents/{id}/signersAdd up to 6 signers, with optional custom signature placement.
POST/api/v1/documents/{id}/sendSend for signature. Returns a signing link per signer.
GET/api/v1/documents/{id}Signing progress per signer, plus a download link once complete.
GET/api/v1/documents/{id}/certificateCompletion certificate and audit trail PDF.
GET/api/v1/documentsList your documents, newest first, with pagination.

Request and response details are in the API reference, the OpenAPI spec, and the Postman collection.

Everything you need to collect Aadhaar eSignatures

A focused API that covers the whole signing flow, from upload to certificate.

Aadhaar OTP eSign

Signers authenticate with an OTP sent to their Aadhaar linked mobile, through eMudhra, a licensed Certifying Authority. Signatures are valid under Section 3A of the IT Act 2000.

Signed webhooks

Receive signer.signed and document.completed events. Every delivery carries an HMAC SHA-256 signature so you can verify it came from us.

Custom signature placement

Place each signer's stamp on any page with exact coordinates, or use the default slot and skip placement entirely.

Completion certificate

Download a Signature Completion Certificate with a chronological audit trail for every completed document.

Official SDKs

Install signyu from npm or PyPI, or use the OpenAPI spec and Postman collection with any language.

Built for India

Our application servers run in Mumbai and signed documents are stored in India (AWS Mumbai).

Real time webhooks

Add webhook endpoints in your dashboard and we POST a JSON event to each one when a signer signs (signer.signed) and when the document is complete (document.completed). The completed event includes the certificate URL, so you can store the signed PDF and the audit trail together. Verify each request by computing an HMAC SHA-256 of the raw body with your endpoint secret and comparing it to the signature header.

Read the webhooks guide

Aadhaar eSign API pricing

Published prices, self serve signup, and no minimum volume. Most Aadhaar eSign API providers ask you to contact sales for a quote.

API access

₹999/month

API keys, webhooks, and SDK access. Starts with a 3-day free trial. Cancel anytime.

Signatures

₹15/signature

Pay as you go credits on packs of 10 or more, GST inclusive. One credit per signer, used when you send.

Get API accessCompare API pricing

Integration guides

Step by step guides for adding Aadhaar eSign to your stack, including webhook verification.

Languages and frameworks

  • Aadhaar eSign API in Node.js
  • Aadhaar eSign API in Next.js
  • Aadhaar eSign API in Python
  • Aadhaar eSign API in Django
  • Aadhaar eSign API in PHP (Laravel)
  • Aadhaar eSign API in Java (Spring Boot)
  • Aadhaar eSign API in .NET (C#)

No code and low code

  • Aadhaar eSign with Zoho Creator
  • Aadhaar eSign with Google Sheets
  • Aadhaar eSign with n8n
  • Aadhaar eSign with WordPress

Built for your industry

How teams in each industry use the SignYu API, which documents they sign, and what it costs.

  • NBFC and Digital LendingGet loan agreements, sanction letters and KYC consents Aadhaar eSigned from your loan origination system. REST API, webhooks, pay per signature.
  • HR and Employee OnboardingSend offer letters, NDAs and joining forms for Aadhaar eSign from your HRMS or ATS. One API call per step, webhooks on completion, pay per signature.
  • Rental and Property ManagementLet tenants and landlords Aadhaar eSign rent and leave and license agreements from your rental platform. Stamp duty and registration rules explained.
  • EdTech and AdmissionsCollect admission undertakings, anti ragging affidavits and fee agreements with Aadhaar eSign from your admissions portal. Parent and student signing.
  • InsuranceGet proposal forms, declarations and claim discharge vouchers Aadhaar eSigned from your policy admin or claims system. REST API with webhooks.
  • Real Estate BrokerageUse Aadhaar eSign for brokerage, mandate and rental documents from your proptech CRM. Learn which property documents can and cannot be eSigned.

Frequently asked questions

How much does the Aadhaar eSign API cost?

API access is ₹999 per month with a 3-day free trial. Signatures are paid with credits, from ₹15 per signature on packs of 10 or more, GST inclusive. One credit is used per signer when you send a document. There is no setup fee, no annual contract, and no sales call.

Are signatures made through the API legally valid?

Yes. Every signature is an Aadhaar OTP based electronic signature issued through eMudhra, a licensed Certifying Authority, and is valid under Section 3A of the Information Technology Act 2000. A few documents, listed in the First Schedule of the Act (such as wills, powers of attorney, trusts, and sale deeds for immovable property), cannot be signed electronically under Indian law.

Which eSign service provider do you use?

SignYu uses eMudhra's eSign gateway. eMudhra runs the Aadhaar OTP authentication and issues the signature certificate. Aadhaar numbers are entered on the gateway and are never sent to or stored by SignYu.

Do signers need to create an account?

No. Each signer gets a signing link by email (and in the API response). They open it, verify with an OTP on their Aadhaar linked mobile, and the document is signed.

How long does an integration take?

The core flow is four API calls: create a document, add signers, send, and receive a webhook. With the official SDKs most teams have a working integration in a day or less.

How many signers can a document have?

Up to 6 signers per document. Every signer gets their own signing link when you send, and the final PDF carries every signature, each in its own stamp position.

How do I know when a document has been signed?

Configure a webhook endpoint in your dashboard. We send signer.signed when each signer finishes and document.completed when everyone has signed. You can also poll GET /api/v1/documents/{id} for status.

Can I control where the signature appears on the PDF?

Yes. Pass custom placement per signer with the page number and box coordinates. If you omit it, the signature goes in a default slot.

Do you have SDKs?

Yes. Official SDKs for Node.js (npm install signyu) and Python (pip install signyu). For other languages, use the REST API directly with the OpenAPI spec or the Postman collection.

Do I get a GST invoice?

Yes. GST invoices are issued for both the API subscription and credit purchases, and are available from your dashboard.

Start building with the SignYu API

Get API keys in minutes. Your first 3 days of API access are free.

Start free trialRead the docs
Powered by eMudhra · CCA-licensed ESP
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