Pricing
Simple, manual pricing
No billing module. No Stripe. Subscriptions are issued by hand so we stay close to every customer.
T.01 — Trial
Full viewer + basic annotations. Watermarked. Premium engines refuse to construct.
- Viewer + basic annotation tools
- "TruPDF Trial — Not for Production" watermark
- Burned into every save / export
- Hard cliff at 15 days (non-dismissible overlay)
T.02 — Pro
Every engine: redaction, sign, convert, compare, collab, OCR, AI. No watermark.
- All trial features, no watermark
- Redaction · sign · convert · compare · collab
- OCR · AI copilot (summarise / extract / parse)
- Daily reminder for 30 days before exp
- License covers *.<your-domain> + subdomains
- GitHub Packages registry access (PAT)
T.03 — Enterprise
Pro plus offline mode, SSO hooks, audit-log export, and encrypted source maps.
- All Pro features
- Offline tokens — no outbound traffic
- SSO hooks for licensing telemetry
- Audit-log export pipeline
- Encrypted source maps for production debugging
Q.01Is there a free tier beyond the trial?
No. The 15-day trial is the only free path. After expiry, the SDK rejects every call until a paid license is bound.
Q.02Do you offer per-seat or usage-based pricing?
No. Pricing is flat annual per customer so the heartbeat stays liveness + revocation only — never usage-metered.
Q.03How is the license delivered?
Two artefacts: (1) a signed Ed25519 token string the SDK accepts in LicenseManager.init(...), and (2) a read-only GitHub Packages PAT for @trupdf/viewer installation. Both go out by email same-day.
Q.04Can a license cover multiple domains?
One license covers all subdomains of your primary domain (*.acme.com). For multiple unrelated domains, email sales — we re-issue with both globs in the token's domains[] array.
Q.05What happens at renewal?
We email at exp - 30 days. Drop the new token in place of the old one — LicenseManager.init() accepts it with no state migration. The old license stays valid until its own exp, so no cutover window.