PDF Signing

Full reference for PAdES PDF signing — visible and invisible signatures, multi-page, timestamps, and appearance customization.

All features supported

Every PDF signing capability listed below is implemented and working on Mobile App and Desktop Software. Visible appearance options are documented in Signature Customization.

Overview

SecureSign embeds PAdES-compliant digital signatures into PDF documents using the DSC token private key. Supports visible stamps with full appearance customization and invisible signatures for backend-only signing.

  • Input: base64-encoded PDF or PDF URL (mobile deep link).
  • Output: signed PDF with embedded signature field and optional visible appearance.
  • Coordinates use PDF points (1/72 inch); origin is bottom-left of the page.

Platform Support

FeatureMobile AppDesktop SoftwareREST API
PDF SignDeep linkDeep linkPOST /sign/pdf
Visible PDF SignatureSupportedvisible: truevisible: true
Invisible PDF SignatureSupportedvisible: falsevisible: false
Multi-Page PDFpage fieldpage fieldpage field
Multiple SignaturesSequential signssignatureIndexMultiple requests
PDF VerificationSupportedPOST /verify/pdfPOST /verify/pdf
PDF TimestampingTSA optiontimestamp: truetimestamp: true
Position Selectionposition objectposition objectposition object
Custom Appearanceappearance objectappearance objectappearance object

Request Fields

FieldTypeRequiredDescription
pdfBase64stringYes*Base64-encoded PDF (*or pdfUrl on mobile)
visiblebooleanNoShow visible stamp (default false)
pagenumberWhen visible1-based page number for stamp placement
positionobjectWhen visible{ x, y, width?, height? } in PDF points
appearanceobjectNoVisible stamp customization — see Signature Customization
reasonstringNoSigning reason metadata (also in appearance)
locationstringNoSigning location metadata
certSerialstringNoPre-select certificate
timestampbooleanNoEmbed TSA timestamp (default false)
signatureIndexnumberNoField name suffix for multiple signatures (Signature2, etc.)
callbackUrlstringREST onlyServer callback URL

Visible vs Invisible

ModevisibleAppearanceUse case
Visibletrueappearance + position requiredForms, contracts, government filings
InvisiblefalseIgnoredBackend document sealing, audit trails

Multi-Page & Multiple Signatures

Multi-page — set page to the target page number. Each sign operation adds one signature field.

Multiple signatures — sign the output PDF again with incremented signatureIndex. Each pass adds a new signature field without invalidating prior signatures.

{
  "pdfBase64": "JVBERi0x...",
  "visible": true,
  "page": 3,
  "signatureIndex": 2,
  "position": { "x": 72, "y": 120, "width": 220, "height": 80 },
  "appearance": { "templateId": "minimal", "signerName": "Rajesh Kumar" }
}

Examples

const params = new URLSearchParams({
  requestId: crypto.randomUUID(),
  hashBase64: sha256Base64,
  hashAlgo: 'SHA256',
  documentType: 'pdf',
  callbackUrl: 'https://portal.example.gov.in/sign/callback',
  apiKey: 'ss_live_abc123xyz'
});
window.location.href = `securesign://sign?${params}`;
// Add documentBase64 and appearance params to URLSearchParams

Response

{
  "success": true,
  "signedPdfBase64": "JVBERi0x...",
  "signatureField": "Signature1",
  "appearanceApplied": {
    "templateId": "gov_portal",
    "visible": true,
    "page": 1,
    "signerName": "Rajesh Kumar",
    "signedAt": "2026-06-22T10:30:00+05:30"
  }
}

Errors

CodeCauseResolution
SS_PDF_INVALIDCorrupt or non-PDF inputVerify base64 encoding and PDF structure
SS_PAGE_OUT_OF_RANGEpage exceeds document pagesCheck page count
POSITION_OUT_OF_BOUNDSStamp extends past page edgeAdjust position coordinates
APPEARANCE_REQUIRES_VISIBLEappearance with visible: falseSet visible: true
SS_PDF_ALREADY_SIGNEDSignature field name collisionIncrement signatureIndex

See also Signature Customization and Signing API — POST /sign/pdf.