Skip to content
ZiaSignZiaSign
ZiaSign
  • How it works
  • Free PDF Tools
  • Documentation
  • Pricing
  • Company

    • About
    • Blog
    • Investors
    • Security

    Compare

    • vs DocuSign
    • vs Adobe Sign
    • vs PandaDoc
    • vs iLovePDF
    • vs Smallpdf
    • vs PDF24
    • vs Sejda
    Investor connectLatest blog
  • Free PDF ToolsFree
  • Browse use casesNew
  • How-to guides100+
  • How it works
  • Pricing
  • Documentation

Theme

Light mode

Sign Now
Sign Now
  1. Home
  2. Documentation
  3. Developer API
  4. Embedded Signing
Developer API

Embedded Signing

Embed the ZiaSign signing experience directly in your web application for a seamless user flow.

Last updated April 14, 2026
Quickstart GuideAccount & Organization SettingsDocument TemplatesSecurity & ComplianceHelp & Support
Sending Documents for SignatureThe Signing ExperienceAudit Trail & Legal ValidityBulk SendPDF ToolsDocument Editor & StudioDocument LibraryAnalytics & Reports
API AuthenticationDocuments APIWebhooksSandbox & TestingEmbedded SigningIntegrations
AI Contract AnalysisAI Smart Workflows
Plans & PricingBilling & InvoicesReferral Program
Mobile App Guide
Changelog & Release Notes

Overview

Embedded signing lets your users sign documents without leaving your application. Instead of receiving an email link, the signing experience appears directly within your product.

Integration Methods

1. JavaScript SDK (Recommended)

Install the SDK:


Create a signing session and embed it:


2. Generate Signing URL (Server-Side)

Your backend requests a signing URL from the ZiaSign API:


3. iframe Embed

For simpler integrations, use an iframe directly:


Note: The JavaScript SDK is preferred over raw iframes because it handles responsive resizing, cross-origin communication, and event callbacks.

Events

The SDK and iframe both emit events via postMessage:

EventDataDescription
ziasign:ready{}Signing interface loaded
ziasign:signed{ signerEmail }Signer completed their fields
ziasign:declined{ reason }Signer declined to sign
ziasign:completed{ documentId }All signers completed
ziasign:error{ code, message }An error occurred

Redirect Mode

Instead of embedding, you can redirect users to ZiaSign and back:

  1. Generate a signing URL with a redirectUrl parameter
  2. Redirect your user to the signing URL
  3. After signing, ZiaSign redirects back to your redirectUrl with the result
https://your-app.com/signing-complete?documentId=doc_abc123&status=completed&signerEmail=user@example.com

Frequently asked questions

Can I customize the embedded signing UI?

Yes. You can set your brand colors, logo, and hide ZiaSign branding (Business+ plans). The JavaScript SDK offers extensive customization options.

Is embedded signing secure?

Yes. Embedded signing uses the same security infrastructure as the standard experience: TLS 1.3, AES-256 encryption, and tamper-evident audit trails.

What plans support embedded signing?

Embedded signing is available on Professional plans and above. White-label (ZiaSign branding removed) requires a Business or Enterprise plan.

Related documentation

API Authentication

Authenticate your API requests using API keys with HMAC-SHA256 request signing for maximum security.

Documents API

Create, send, retrieve, download, and manage documents programmatically via the REST API.

Webhooks

Receive real-time HTTP notifications when documents are viewed, signed, completed, or declined.

Previous

Sandbox & Testing

Next

Integrations

On this page

OverviewIntegration Methods1. JavaScript SDK (Recommended)2. Generate Signing URL (Server-Side)3. iframe EmbedEventsRedirect Mode

Product

  • How it works
  • Pricing
  • About
  • Blog
  • Security

Documentation

  • All Docs
  • Quickstart
  • API Authentication
  • Webhooks
  • Templates
  • Integrations

Free PDF Tools

  • All Tools
  • How-To Guides
  • Use-Case Guides
  • Organize PDFs
  • Convert PDFs
  • Edit PDFs
  • Security
  • Optimize
  • AI Tools

Compare

  • vs DocuSign
  • vs Adobe Sign
  • vs PandaDoc
  • vs iLovePDF
  • vs Smallpdf
  • vs PDF24
  • vs Sejda

Company

  • FAQs
  • Investors
  • Privacy Policy
  • Terms of Services
ZiaSignZiaSign
ZiaSign

AI-native e-signature and document workflows for modern teams.

© 2026 ZiaSign. All rights reserved.

bash
npm install @ziasign/embed
typescript
import { ZiaSignEmbed } from "@ziasign/embed";

// 1. Create a signing session via your backend
const response = await fetch("/api/create-signing-session", {
  method: "POST",
  body: JSON.stringify({ documentId: "doc_abc123", signerEmail: "user@example.com" }),
});
const { signingUrl } = await response.json();

// 2. Mount the signing experience
const embed = new ZiaSignEmbed({
  container: document.getElementById("signing-container")!,
  url: signingUrl,
  // Customization options
  options: {
    showHeader: false,    // Hide the ZiaSign header
    showFooter: false,    // Hide the footer
    brandColor: "#4F46E5", // Your brand color
    locale: "en",
  },
});

// 3. Listen for events
embed.on("signed", (event) => {
  console.log("Document signed by:", event.signerEmail);
  // Update your UI
});

embed.on("declined", (event) => {
  console.log("Signer declined:", event.reason);
});

embed.on("completed", () => {
  console.log("All signers have signed");
  // Redirect or show success state
});

// 4. Mount
embed.mount();
python
# POST /documents/{id}/signing-sessions
response = ziasign_request("POST", f"/api/v1/documents/{doc_id}/signing-sessions", {
    "signerEmail": "user@example.com",
    "redirectUrl": "https://your-app.com/signing-complete",
    "expiresIn": 3600,  # URL valid for 1 hour
})

signing_url = response["signingUrl"]
# Return this URL to your frontend for embedding
html
<iframe
  src="SIGNING_URL_FROM_API"
  width="100%"
  height="800"
  style="border: none; border-radius: 12px;"
  allow="camera"
  title="Sign Document"
></iframe>