Developer Platform

Automate contract signing with a few lines of code

Create contracts, send them for digital signing, manage templates, and track status. Official SDKs for TypeScript, Go, and Python.

Create and send a contract in seconds

Everything from creation to signing in one script.

from contractsign import ContractSign, CreateSigningInput, SignerInput

client = ContractSign(api_key="cs_...")

# Create a contract from a template
contract = client.contracts.create({
    "title": "Consulting Agreement — Acme Corp",
    "content": "<h1>Consulting Agreement</h1><p>...</p>",
})

# Send it for signing with SMS verification
signing = client.signing.create(CreateSigningInput(
    contract_id=contract["data"]["id"],
    signers=[
        SignerInput(
            name="Jane Doe",
            email="jane@acme.com",
            role="signer",
            signing_method="sms_otp",
            order=1,
        ),
        SignerInput(
            name="John Smith",
            email="john@example.com",
            role="signer",
            signing_method="sms_otp",
            order=2,
        ),
    ],
    signing_order="sequential",
))

# Download the signed PDF when complete
pdf = client.contracts.pdf(contract["data"]["id"])

What you can build

Common use cases for the ContractSign API.

Bulk contract generation

Generate hundreds of contracts from templates with dynamic data from your CRM, ERP, or database.

Embedded signing

Send signing requests directly from your app. Track progress with webhooks and display status in your UI.

Automated reminders

Build workflows that automatically remind signers, escalate to managers, or cancel expired contracts.

Template management

Sync templates from your codebase. Version control your contracts alongside your application code.

Full API coverage

Every resource, every method. Type-safe and documented.

Contracts

Create, update, duplicate, and manage contracts programmatically. Full-text search, folder and tag filtering, pagination.

.list().get().create().update().delete().duplicate().pdf()

Signing

Send contracts for signing with SMS OTP or MitID. Support for parallel or sequential signing, reminders, and direct signing links.

.create().get().cancel().remind()

Templates

Build reusable templates with variables and interactive fields. Pre-configure default signers for one-click contract creation.

.list().get().create().update().delete()

Folders

Organize contracts in a hierarchical folder structure. Nest folders, assign colors, and control sort order.

.list().get().create().update().delete()

Tags

Label contracts with color-coded tags for cross-cutting categorization and quick filtering.

.list().create().update().delete()

Account & API Keys

Manage your organization, team members, and API keys. Provision and revoke keys for CI/CD and integrations.

.me().getOrganization().listApiKeys().createApiKey().deleteApiKey()

Pick your language

Install an SDK and start building in minutes.

TypeScript

npm
npm install @happenings/contractsign-sdk
go get github.com/happenings-dk/contractsign-go

Python

PyPI
pip install contractsign