Convex
Why zSign is available on Convex (and why that matters)
If you build on Convex, you already live in reactive queries, actions, and webhooks. Signing a PDF still tends to mean bolting on a foreign HTTP client, then polling, then praying your status UI stays honest. That gap is why @zsign/convex exists.
zSign is API-first e-signature for agents and humans: prepaid envelope credits, no per-seat tax, REST plus a remote MCP server at https://zsign.io/mcp. Starter is $27 for 50 envelopes. Growth is $87 for 250. Scale is $297 for 1,000. Optional white-label is $49/mo with branding and 100 envelopes included. The Convex piece is the same product, mounted the way Convex apps already mount other components.

Package
What shipped
The package is on npm as @zsign/convex (latest 0.1.2 as of this draft). It is listed in the Convex Components Directory at https://www.convex.dev/components/zsign/convex, with source and docs in https://github.com/azlabsio/zsign-plugin. Peer dependency is convex ^1.24.0.
You install it, mount it in convex/convex.config.ts with your ZSIGN_API_KEY (and webhook secrets when you want verified deliveries), and talk to a Zsign client from your functions. The default API origin is https://zsign.io.
In the app
What you get in the app
- Send a PDF with a required
operationIdthat doubles as the Idempotency-Key, so a retry returns the stored envelope instead of creating a second one. - Reactive status and list queries so the UI updates as signing moves
created → sent → in_progress → completed(or declined / expired / voided). - Completion callbacks you drain into your own internal mutation when the deal should advance.
- Artifacts: signed PDF and completion certificate as bytes once the envelope is done.
- Webhook verification helper for an app-owned
/zsign/webhookroute, with HMAC checks, dedupe, and reconcile-on-conflict against the live zSign API.
The public quickstart targets a working integration in about ten minutes: install, mount, wire the webhook, send, subscribe to status, drain completions, fetch artifacts. Details live in the repo’s docs/quickstart.md.
Why it matters
Why it matters
Convex apps are workflows. A signature is usually a gate in that workflow, not a separate product tour. Putting zSign in as a component means send, watch, and complete stay inside the same reactive model you already trust for the rest of the product. You still pay zSign for envelopes (1 credit = 1 signed envelope; credits never expire), and you still get the audit trail and ESIGN/UETA-oriented consent flow described on zsign.io. You are not inventing a parallel signing stack.
Signup starts at 0 credits; email verification grants 3; a referral signup grants 25. Buy packs when you need more, including from agents via POST /api/v1/credits/checkout.
Install
Try it
npm install @zsign/convexThen follow the mount steps on npm or the Convex directory page. Product site: zsign.io. Package: https://www.npmjs.com/package/@zsign/convex. Directory: https://www.convex.dev/components/zsign/convex.