Setu Aadhaar eSign API client.
Legally enforceable Aadhaar-based electronic signatures on PDF documents. Supports up to 6 signers. Built on NSDL and eMudra infrastructure.
Flow
create/2— upload base64 PDF, specify signers- Redirect each signer to their URL from
signerUrls - Poll
get/2or receive webhook untilcomplete?/1returnstrue download/2— retrieve the signed PDF as base64
Setu docs: https://docs.setu.co/data/esign
Summary
Functions
Returns true when all signers have signed (status == "COMPLETED").
Initiates an Aadhaar eSign workflow.
Downloads the signed PDF as a base64 string.
Retrieves the current status of an eSign request.
Functions
Returns true when all signers have signed (status == "COMPLETED").
@spec create(SetuClient.Config.t(), map()) :: {:ok, map()} | {:error, SetuClient.Error.t()}
Initiates an Aadhaar eSign workflow.
Required params
:document_base64— base64-encoded PDF:document_name:signers— list of 1–6 maps, each with:nameand:mobile
POST /api/esign/request
@spec download(SetuClient.Config.t(), String.t()) :: {:ok, map()} | {:error, SetuClient.Error.t()}
Downloads the signed PDF as a base64 string.
Call only after complete?/1 returns true.
GET /api/esign/request/:id/download
@spec get(SetuClient.Config.t(), String.t()) :: {:ok, map()} | {:error, SetuClient.Error.t()}
Retrieves the current status of an eSign request.
GET /api/esign/request/:id