Surepass
Esign

Initialize Esign

View as Markdown
POST
/api/v1/esign/initialize-esign

Start an Esign session for one or more signers on an uploaded document.

  • page inside elements is zero-indexed: 0 is the first page.
  • Multiple elements can be added per signer on different pages.
  • email_template_overrides customizes invite email branding; when company_name is provided, default Surepass branding is hidden for white-label emails.
  • stamp optionally reserves e-stamps into the flow — either by search (amount + state_code + article_id, optionally narrowed by party names) or by explicit stamp_instance_ids. Reserved stamp PDFs are prefixed to the uploaded PDF before signing starts.

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication — paste your access token below.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

sign_type*SignType

aadhaar — OTP-based Aadhaar Esign. suresign — auto-signing by Surepass. pfx — PFX-certificate signing (requires pfx_id).

Value in

  • "aadhaar"
  • "suresign"
  • "pfx"
auth_mode?integer

Authentication mode for the signing session.

file_id*string

File ID returned by POST /api/v1/files/upload-pdf.

folder?string

Folder name to organize the session under.

expiry_seconds?integer

Session expiry. Min 3600 (1 hour), max 2592000 (30 days).

Range3600 <= value <= 2592000
email_template_overrides?

Optional invite email branding overrides. When company_name is provided, the default Surepass logo and branding are hidden, allowing white-label emails.

stamp?

Optional e-stamping configuration. Use either the amount-based reservation flow (amount + state_code + article_id, required together) or pass pre-reserved stamp_instance_ids.

signers*array<>
Items1 <= items

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/esign/initialize-esign" \  -H "Content-Type: application/json" \  -d '{    "sign_type": "aadhaar",    "auth_mode": 1,    "file_id": "file_onwEUoMxnWhewUzodZeW",    "folder": "lehddsun",    "expiry_seconds": 7200,    "email_template_overrides": {      "company_name": "Acme Corp",      "legal_name": "Acme Corporation Pvt Ltd.",      "support_email": "support@acme.com"    },    "signers": [      {        "full_name": "Test1",        "email": "test1@example.com",        "reason": "Test1 Sign",        "verify_email": false,        "verify_mobile": false,        "name_match": true,        "face_ref_file_id": "file_faceReferenceImage",        "face_match_threshold": 80,        "face_max_attempts": 5,        "notification": {          "invite": true,          "completion": true,          "whatsapp": true        },        "elements": [          {            "x": 100,            "y": 10,            "page": 0,            "type": "signature",            "allow_wet_signature": false          }        ]      },      {        "full_name": "Test2",        "email": "test2@example.com",        "mobile": "2222222222",        "reason": "Test2 Sign",        "verify_email": true,        "verify_mobile": false,        "notification": {          "invite": false,          "completion": true,          "whatsapp": false        },        "elements": [          {            "x": 100,            "y": 10,            "page": 0,            "type": "signature"          }        ]      }    ]  }'
{  "data": {    "client_id": "esign_lpHGXloMQwkNPPXvBHCH",    "status": "pending",    "file_id": "file_onwEUoMxnWhewUzodZeW",    "signers": []  },  "status_code": 200,  "message": "Success",  "success": true}