Skip to content

Price Sign: $0.50 per completed request, 5 a month on Free - #342

Merged
pumfleet merged 1 commit into
mainfrom
sign-pricing
Nov 6, 2026
Merged

pumfleet merged 1 commit into
mainfrom
sign-pricing

Conversation

@pumfleet

@pumfleet pumfleet commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Rate: sign.completed_requests costs $0.50, on the November 2026 card. Sign was switched on in production on 2026-11-06 (Switch Sign on in production, sealed by SSL.com eSealing #341), and no organization had completed a request there before. Our cost is one SSL.com eSigner signing per seal: about $0.19–0.25 at the 1,000-a-month tier, $1 at the smallest. Competitors charge $0.75 (BoldSign) to about $1.20 (DocuSign) per envelope.
  • Free plan: includes 5 completed requests a month, enforced with the existing UsageGate:
    • a live request reserves one when it is sent (create with send, or send), in the same transaction;
    • canceling a sent request releases its reservation to the period it was sent in;
    • declined and expired requests keep theirs.
    • SignService gains send and cancel bound to the gate, and the API (POST /v1/sign/requests/{id}/send|cancel) and the dashboard's cancel use them.
  • Sandbox seals: sealerFromEnv also returns a sandboxSealer, a self-signed test seal, and completion uses it for sandbox requests. Before this, sandbox tests spent paid SSL.com signings.
  • Docs:
    • Sign's guide has a Pricing section, and the testing guide explains the sandbox test seal.
    • packages/sign/AGENTS.md describes billing and finishes Going live, including the eSigner trial ending on 2026-12-06.
    • The root AGENTS.md no longer lists a Sign price as not built.

Testing

  • New tests (packages/sign/test/ship.test.ts):
    • a Free organization's 6th live send is refused (402 usage_limit_exceeded);
    • a draft doesn't count until it is sent;
    • canceling a sent request frees its place, and a retried cancel frees nothing more;
    • sandbox requests never count;
    • sandbox requests are sealed by the sandbox sealer and live ones by the real one.
  • Results:
    • Sign 106/106, billing 219/219, the API's Sign tests 23/23;
    • typechecks for sign, billing, api and worker pass;
    • turbo run typecheck test --affected passes 44 of 45 tasks. The one failure is @coss/risk's domain-age test, which fails only locally because of a stale cache row in the shared test database; it doesn't fail in CI.

Review

Codex round 1: no findings.

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

- Rate: sign.completed_requests at $0.50 on the November 2026 card (Sign
  was switched on in production on 2026-11-06; nothing completed before).
  A seal is one SSL.com eSigner signing, about $0.19-0.25 at our tier.
- Free includes 5 a month, enforced like other capped meters: a live
  request reserves one when it is sent (create with send, or send), and
  canceling a sent request releases it to the period it was sent in.
  SignService gains send/cancel bound to the usage gate; the API and the
  dashboard use them.
- Sandbox requests are sealed with a self-signed test seal
  (sealerFromEnv's sandboxSealer), so tests never spend the CA's
  signings.
- Docs: Sign's pricing section, the sandbox test seal, Going live.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pumfleet
pumfleet added this pull request to the merge queue Nov 6, 2026
Merged via the queue into main with commit 44ecd8d Nov 6, 2026
14 checks passed
@pumfleet
pumfleet deleted the sign-pricing branch November 6, 2026 08:57
@linear-code

linear-code Bot commented Nov 6, 2026

Copy link
Copy Markdown

ENG-8225

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant