B2B Document Signing Platform
A secure, API-first document signing service that enables businesses to integrate legally-binding electronic signatures into their own products and workflows.
ctSignature is a B2B document signing platform that allows any business to add electronic signature capabilities to their existing products. Think of it as the engine behind the signing experience — businesses integrate via API or use our dashboard, and their customers sign documents through a secure, branded workflow.
RESTful API with simple authentication. Send a document for signing with a single API call. Integrate into any stack.
Self-service web portal for business customers to manage documents, API keys, billing, and account settings.
SHA-256 document hashing, device fingerprinting, geolocation tracking, and comprehensive audit trails.
Subscription tiers with included documents, pay-as-you-go pricing, free trials, and Stripe-powered billing.
Target Market: Any business that needs document signing — real estate platforms, HR/onboarding tools, legal tech, insurance, healthcare, construction management, loan origination, property management, and more.
ctSignature serves as invisible infrastructure for other businesses. Their customers never need to know ctSignature exists — the signing experience lives inside the business's own product.
| Capability | Description |
|---|---|
| Dashboard | Web portal to manage everything — documents, API keys, billing, account |
| REST API | Programmatic access to create, track, and retrieve documents |
| API Keys | Secure, hashed keys with prefix (ctds_live_) for easy identification |
| Document Templates | Save a PDF with pre-positioned fields, send it to unlimited signers |
| Webhooks | Real-time HTTP notifications for document events (signed, expired, viewed) |
| Embedded Signing | Embed the signing experience in an iframe within their own application |
| Audit Trail | Full forensic record: device fingerprint, IP, geolocation, timestamps, PDF hash |
| Signed PDF Download | Retrieve completed PDFs with embedded signatures via API or dashboard |
From document upload to signed PDF retrieval, here is the complete signing lifecycle.
The business uploads a PDF and specifies the recipient. This can be done via the dashboard UI or the API.
The business (or their operator) opens the Placement URL in a browser. The PDF is displayed with a drag-and-drop interface for positioning:
Fields are dragged, resized, and positioned on any page. When saved, the signing URL becomes active.
The business sends the Signing URL to the signer (via email, SMS, in-app notification, etc.). No account is needed — the token in the URL grants access.
The signer opens the URL and sees the PDF with highlighted signature areas. They:
Behind the scenes, the system captures a comprehensive device fingerprint including browser fingerprint, canvas fingerprint, screen resolution, timezone, language, platform, IP address, and optional geolocation.
The signature, printed name, timestamp, and audit stamp are rendered directly into the PDF. A SHA-256 hash is computed and stored for tamper detection. The signer can immediately download the completed PDF.
A webhook (document.signed) fires to the business's configured endpoint with the document ID
and status. The business can then retrieve the signed PDF via the API.
The dashboard is the web interface where business customers manage every aspect of their ctSignature account.
It's accessed at /dashboard/ and requires email/password authentication.
New businesses create an account by providing:
Upon registration, the account starts with a free trial of 3 document signings (configurable by platform admins). After using all trial documents, the business must choose a subscription plan to continue.
Authentication: The dashboard uses JWT tokens (24-hour expiry). Sessions automatically redirect to login when expired. All API calls from the dashboard include the JWT in the Authorization header.
The home screen provides an at-a-glance summary:
Full document management with two main areas:
API keys are how businesses authenticate programmatic access. The page provides:
ctds_live_aBcDeFg...xYz12345 (prefix + last 8 chars visible after creation)Security: API keys are hashed with SHA-256 before storage. The full key is shown exactly once at creation and cannot be retrieved again. This follows the same security model used by Stripe, GitHub, and other major platforms.
Businesses integrate ctSignature into their applications using our REST API. Authentication is via API key in the
X-Api-Key header.
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/documents |
Upload PDF and create a signing session |
| GET | /api/v1/documents |
List all documents (paginated, filterable by status) |
| GET | /api/v1/documents/{id} |
Get document details, status, and audit trail |
| GET | /api/v1/documents/{id}/status |
Lightweight status check (polling-friendly) |
| DELETE | /api/v1/documents/{id} |
Cancel/delete a document |
| GET | /api/v1/documents/signed/{id} |
Download the completed signed PDF |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/templates |
Upload PDF and create a reusable template |
| POST | /api/v1/templates/from-document/{id} |
Create template from an already-signed document |
| POST | /api/v1/templates/{id}/send |
Send a template to a new recipient |
| GET | /api/v1/templates |
List all templates |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/webhooks |
Register a webhook endpoint URL |
| GET | /api/v1/webhooks |
List configured webhook endpoints |
| GET | /api/v1/webhooks/{id}/deliveries |
View webhook delivery log and retry status |
| Scope | Limit | Window |
|---|---|---|
| General API (per tenant) | 100 requests | 1 minute |
| Signing operations | 10 requests | 1 minute |
| Document creation | Based on plan tier | Billing period |
Many business documents require more than one signature — contracts with two parties, approvals with multiple stakeholders, agreements involving buyers, sellers, and witnesses. ctSignature supports both sequential and parallel multi-signer workflows out of the box.
Signers complete the document in a defined order. Each signer can only access the document after all previous signers have completed. This is ideal for hierarchical approvals or when one party needs to review another's signature.
All signers receive their links immediately and can sign in any order, at any time. This is ideal when signers are independent parties who don't need to wait for each other.
| Scenario | Workflow | Signers |
|---|---|---|
| Real estate purchase agreement | Sequential | Buyer → Seller → Agent (witness) |
| Lease agreement | Sequential | Tenant → Landlord |
| Business partnership agreement | Parallel | Partner A, Partner B, Partner C |
| Employee offer letter | Sequential | HR Manager → Employee |
| Multi-party NDA | Parallel | All parties sign independently |
| Loan agreement | Sequential | Borrower → Co-signer → Lender |
Backwards compatible: Single-signer documents work exactly as before. Multi-signer is an additive feature — businesses choose single or multi-signer when creating each document.
Templates are the most powerful feature for businesses that send the same type of document repeatedly — contracts, NDAs, onboarding forms, consent documents, etc.
| Industry | Template Example | Volume |
|---|---|---|
| Real Estate | Lease agreement, disclosure forms | Hundreds per month |
| HR / Onboarding | Offer letters, NDAs, I-9 forms | Per new hire |
| Legal | Client engagement letters, retainers | Per client |
| Healthcare | Patient consent forms, HIPAA acknowledgments | Per patient |
| Insurance | Policy applications, claims forms | Per policy |
| Construction | Change orders, lien waivers, safety acknowledgments | Per project |
Document signing requires trust. ctSignature implements multiple layers of security to ensure document integrity, signer identity verification, and comprehensive forensic audit trails.
| Feature | Implementation |
|---|---|
| Document Integrity | SHA-256 hash computed after signing. Any post-signing modification is detectable via hash comparison. |
| Token-Based Access | Each document gets two unique 256-bit cryptographic tokens (placement + signing). No account needed to sign. |
| Constant-Time Comparison | Token validation uses constant-time comparison to prevent timing attacks. |
| Automatic Expiration | Tokens expire after a configurable period (default 72 hours). Background service nullifies expired tokens. |
| Path Traversal Prevention | All file operations validate paths to prevent directory traversal attacks. |
| Tenant Isolation | Every database query is scoped to the authenticated tenant. No cross-tenant data access is possible. |
Every signature event captures the following data points for forensic verification:
ctSignature uses a hybrid pricing model: subscription tiers with included documents plus overage charges, and a pure pay-as-you-go option. All billing is powered by Stripe.
Every new account starts with a free trial of 3 document signings (configurable by platform admins). No credit card required. After using all trial documents, the business must select a plan to continue. Platform admins can also manually mark any account as "no charge" to bypass billing entirely.
| Feature | How It Works |
|---|---|
| Document counting | A document is counted when created (uploaded + session started). Whether or not it gets signed, it counts toward the limit. |
| Billing period | Monthly, aligned to the subscription start date |
| Overage billing | Charged at the end of each billing period for documents exceeding the included amount |
| Plan changes | Upgrades take effect immediately. Downgrades take effect at the next billing period. |
| Payment methods | Credit/debit card via Stripe. Invoicing available for Enterprise. |
| No-charge override | Platform admins can mark any tenant as "no charge" to bypass all billing checks |
All tiers are stored in the database and are fully admin-editable. Platform administrators can:
Webhooks allow businesses to receive real-time HTTP notifications when events occur on their documents, eliminating the need to poll the API for status changes.
| Event | Trigger | Use Case |
|---|---|---|
document.signed |
A signer completes the signing process | Update CRM, send confirmation, archive signed PDF |
document.expired |
A document's signing link expires without being signed | Send reminder, create new document, flag for follow-up |
document.viewed |
A signer opens the signing page | Track engagement, update status in business app |
Businesses configure webhooks via the dashboard or API:
Businesses can embed the ctSignature signing experience directly within their own application using an iframe, creating a seamless, branded experience for their end users.
The signer is sent to a ctSignature-hosted URL. After signing, they can be redirected back to the business's app.
The signing page loads inside an iframe within the business's own app. The signer never leaves the business's domain.
https://app.yourbusiness.com)Security: Embedded signing dynamically adjusts X-Frame-Options and Content-Security-Policy
headers per tenant. Only domains explicitly allowlisted by the business can iframe the signing pages.
All other domains are blocked with X-Frame-Options: DENY.
ctSignature is built on a modern, proven stack designed for reliability, security, and straightforward deployment.
| Layer | Technology | Why |
|---|---|---|
| Runtime | ASP.NET Core 8.0 (C#) | High performance, cross-platform, long-term support |
| Database | MySQL 8.0+ | Reliable, widely supported, excellent tooling |
| ORM | Entity Framework Core 8.0 | Code-first migrations, LINQ queries, type safety |
| PDF Engine | PdfSharp 6.0 | Open-source, .NET-native PDF manipulation |
| Payments | Stripe | Industry standard, comprehensive API, customer portal |
| Auth | JWT + BCrypt | Stateless tokens, secure password hashing |
| Frontend | Vanilla JS + Tailwind CSS | Zero build step, fast loading, no framework lock-in |
| PDF Viewer | PDF.js (Mozilla) | In-browser PDF rendering, no plugins needed |
| Fingerprinting | FingerprintJS | Browser/device identification for audit trail |
| Deployment | Docker + Docker Compose | Consistent environments, easy scaling |
WHERE tenant_id = ? clause| Table | Purpose | Key Relationships |
|---|---|---|
doc_tenants |
Business accounts | Has many API keys, documents |
doc_api_keys |
Hashed API keys | Belongs to tenant |
doc_documents |
Signing sessions | Belongs to tenant, has signatures & initials |
doc_signatures |
Signature + audit data | Belongs to document |
doc_initials_fields |
Initials field positions & completions | Belongs to document |
doc_templates |
Reusable document templates | Belongs to tenant |
doc_subscription_tiers |
Pricing plans | Referenced by tenants |
doc_usage_records |
Per-document billing tracking | Belongs to tenant + document |
doc_webhook_endpoints |
Configured webhook URLs | Belongs to tenant |
doc_webhook_deliveries |
Delivery log + retry tracking | Belongs to webhook endpoint |
ctSignature is being built in phases. Here's where we are and where we're headed.
| Phase | Status | Features |
|---|---|---|
| Core Signing Engine | Complete | PDF upload, field placement, signature capture, audit trail, signed PDF generation, hash verification |
| Phase 1: Dashboard & Auth | Complete | Tenant registration, JWT login, dashboard UI, document management, API key generation |
| Multi-Signer Workflows | Complete | Sequential and parallel signing, per-signer tokens and fields, co-signer progress, progressive PDF rendering |
| Phase 2: Multi-Tenant API | In Progress | API key auth middleware, tenant isolation, /api/v1 endpoints, per-tenant rate limiting |
| Phase 3: Billing (Stripe) | Planned | Subscription tiers, usage tracking, Stripe checkout, overage billing, admin tier management |
| Phase 4: Templates | Planned | Reusable templates, create-from-document, template management, send-from-template |
| Webhooks | Planned | Event notifications, HMAC signing, retry logic, delivery logs |
| Embedded Signing | Planned | iframe support, domain allowlisting, dynamic CSP headers |
ctSignature provides a complete, secure, and scalable document signing infrastructure that businesses can integrate into their products with minimal effort. With self-service onboarding, flexible pricing, comprehensive APIs, and enterprise-grade security, it's designed to be the signing engine that powers thousands of business workflows.
Questions? This document covers the complete platform as designed and in development. For technical deep-dives, API documentation, or partnership discussions, reach out to the ctSignature team.