Paycheck
Offline-first licensing for indie developers.
Paycheck is a payment flow with cryptographic receipts (signed JWTs) that work offline by default, with optional online features (validation, revocation, device limits) for apps that need them.
Choose Your Path
Hosted (paycheck.dev)
The fastest way to get started. We handle the infrastructure, you focus on your app.
- Quick Start — Sign up and integrate in minutes
- Console Guide — Manage projects, products, and licenses
Self-Hosted
Run Paycheck on your own infrastructure. Full control, same features.
- Deployment Guide — Production deployment instructions
Core Documentation
These apply to both hosted and self-hosted:
- SDK Guide — Integrate licensing into your app
- API Reference — Complete HTTP API documentation
- Core Concepts — How Paycheck works under the hood
How It Works
- Customer pays via Stripe or LemonSqueezy
- Webhook creates license with email hash (no PII stored)
- Customer receives activation code (30 min TTL, sent via email)
- Customer activates in your app, receives signed JWT
- Your app validates locally using the public key embedded at build time
No server contact needed after activation. Revocation propagates within the JWT's exp window (typically 1 hour).
Architecture
Payment Provider (Stripe/LemonSqueezy)
↓ webhook
Paycheck API
↓ creates
License → Activation Code → Email
↓ activates
Signed JWT ← Your App validates locally
Each project gets its own Ed25519 key pair. The private key never leaves the server. Embed the public key in your app at build time.