One-time unlocks
Charge once. Unlock forever.
Lifetime deals, feature unlocks, and pay-what-you-want — with the same signed entitlements as subscriptions. No renewals, no dunning, no “but I already paid” tickets.
Why one-time works
Some users hate subscriptions. Charge them once and move on.
A one-time purchase has no renewal, no dunning, no grace period — just a signed entitlement that never expires. Perfect for feature unlocks, pro upgrades, and founder-day lifetime offers.
{
"type": "one_time",
"entitlements": ["lifetime", "pro"],
"purchasedAt": "2026-04-14",
"expiresAt": null,
"sig": "v1.hmac-sha256:9f3c…"
}Signed forever-receipt
A purchase is a signed entitlement — not a database lookup.
When a one-time payment clears, crxpay writes an HMAC-signed receipt to chrome.storage.local. Your SDK reads it synchronously for the rest of the user’s life — no server roundtrip, no “I paid but the extension locked me out” tickets.
- ✓Forever-validNo expiry — the signature itself is the proof
- ✓Device-portableChrome Sync carries it to every installed profile
- ✓Refund-awareRefunds invalidate the receipt instantly via webhook
- ✓Tamper-proofAny edit breaks the signature; SDK rejects it
Pricing levers
Feature unlocks, pay-what-you-want, bundles — all one-time.
Configure any pricing model from the dashboard. The SDK returns the same typed entitlement regardless of how the user paid.
SDK, same shape
One-time purchases look exactly like subscriptions in code.
Check hasEntitlement() regardless of how the user paid. Trigger a purchase, handle refunds server-side, and the signed cache stays in sync — automatically.
- →Unified entitlementsSame check for subs and one-time
- →One-line checkout
crxpay.purchase("sku")opens Stripe - →Instant refund handlingReceipt invalidates in < 1s
import { crxpay } from '@crxpay/sdk'; // triggered when the user clicks "Unlock forever" const result = await crxpay.purchase({ sku: 'lifetime-pro', onSuccess: () => toast('Unlocked — enjoy!'), }); if (result.ok) { // signed receipt is already in chrome.storage.local window.location.reload(); }
Receipts
One-time isn’t a side-bet. For many extensions, it’s the main act.
Telemetry from production extensions selling one-time unlocks, lifetime deals, and feature SKUs — sampled across 90 days.
Ready to grow?
Our entire suite of features comes standard — and your first $2,500 in tracked revenue is free.