PDF Digital Signature API
Embed a PAdES-style digital signature directly into the PDF. Ideal for contracts, agreements, invoices, certificates and government filings that must verify in any PDF reader.
Home / Digital Signature API
Add legally valid Digital Signature Certificate signing to your application with one REST endpoint. Sign PDF, Word, Excel and text files using Indian CA-issued USB tokens — the private key never leaves the hardware.
# Sign a PDF with a DSC USB token POST https://api.amnoy.in/v1/sign Authorization: Bearer $AMNOY_KEY Content-Type: multipart/form-data document = contract.pdf format = pdf token = ETKN-4471 reason = "Approved by finance" location = "Mumbai, IN" # → 200 OK · signed & sealed { "status": "signed", "algorithm": "SHA256withRSA", "certificate": "O=…, Class 3, Indian CA", "timestamp": "2026-06-16T11:04:22Z", "file_url": ".../contract-signed.pdf" }
Each endpoint embeds the signature in the file's native container, so a signed PDF opens with a green verified badge and a signed DOCX validates inside Word.
Embed a PAdES-style digital signature directly into the PDF. Ideal for contracts, agreements, invoices, certificates and government filings that must verify in any PDF reader.
Sign DOCX files so the signature validates natively in Microsoft Word. Perfect for legal drafts, HR letters, board resolutions and policy documents.
Apply DSC signatures to XLSX workbooks — useful for financial statements, reconciliation sheets, audit schedules and regulatory returns.
Sign plain text or a pre-computed hash for custom workflows — message signing, tokenised payloads, blockchain anchors or your own document container.
Hardware-held keys via eToken / smart card. The signing key never touches your servers or ours.
Works with certificates from licensed Certifying Authorities — Class 2, Class 3 and organisational DSCs.
Predictable JSON, idempotent requests, clear error codes. No SDK lock-in required.
Bearer API keys, IP allow-listing and per-key scopes keep signing access tightly controlled.
Every signature is recorded with signatory, certificate, hash and timestamp for a complete evidence trail.
RFC 3161 timestamps from a TSA prove when each document was signed, independent of system clocks.
Built to sustain bulk signing — queue thousands of documents without blocking your application.
Attach signing reason, location and custom fields that travel with the signature.
Validate any signed file against the issuing CA chain — confirm integrity and signatory in one call.
If your framework can make an HTTPS request, it can sign documents. We provide copy-paste examples for the stacks our customers use most, and a sandbox to test against before you go live.
# PHP / Laravel $res = Http::withToken($key) ->attach('document', $pdf, 'contract.pdf') ->post('https://api.amnoy.in/v1/sign', [ 'format' => 'pdf', 'token' => 'ETKN-4471', ]); # Python / Django r = requests.post( "https://api.amnoy.in/v1/sign", headers={"Authorization": f"Bearer {key}"}, files={"document": open("contract.pdf","rb")}, data={"format":"pdf", "token":"ETKN-4471"}, )
/v1/sign with the document and the signatory's DSC token reference. The response contains the signed, timestamped file. Any language that speaks HTTPS works — start in our sandbox, then switch the key to go live.Get an API key, a test token and integration help for your framework. Most teams have a working proof of concept the same day.