All posts
Tutorial Store

Setting Up a License Store: Selling Keys Directly to Customers

PC
PermitCore
September 15, 2026 · 8 min read
The License Store admin panel showing several products with pricing

Everything so far in this series assumed you already had a license key to hand to a customer. This post covers the other end: getting a customer to pay you and receive a working key, without you writing a checkout flow or an email-delivery system yourself. That's what the License Store is for.

What the Store Actually Is

It's a real, hosted storefront — your own product pages, your own pricing (one-time, monthly, annual, or a free trial), connected to your own Stripe account. PermitCore doesn't sit in the payment path as a reseller; Stripe pays you directly, and PermitCore's job is turning a completed checkout into a real, encrypted license key delivered to the buyer.

Step 1: Add a Store Product

Go to License Store → Products → Add Product. A store product wraps one of your existing PermitCore products with everything a storefront needs: a public description, one or more prices, a trial period if you want one, and which features/flags a purchase should grant.

License Store products grid with pricing and activation limits

Each card shows its live pricing, activation limit, and trial length at a glance.

Step 2: Connect Stripe

Under Settings, paste in your own Stripe publishable and secret keys. This is a bring-your-own-Stripe model deliberately — your customers' payment details go straight to Stripe, PermitCore never touches a card number, and the money lands in your account with no extra hop.

Step 3: See What Customers See

Your storefront is live at a URL scoped to your own tenant slug — a real product page with pricing tiers, ready for a customer to buy from:

A real customer-facing storefront with product cards and pricing

This is what a customer sees when they land on your store — no PermitCore branding required.

What Happens After a Purchase

The moment Stripe confirms payment, PermitCore's webhook handler generates a real license key, encrypts it the same way an admin-created one is encrypted, and emails it to the buyer — or, if they register a store account, links it directly to that account so they can find it again later without digging through old emails.

Worth knowing: because keys are generated server-side at purchase time (there's no interactive customer-side passphrase step like the admin-created flow), PermitCore encrypts that key at rest immediately after generation — it's never held as bare plaintext in the database, even for this automated path.

What's Next

That's the core loop this series set out to cover: create a product, generate or sell a key, activate it on a real device, and keep working offline when the network doesn't. From here, the full documentation covers everything else — webhooks, resellers, metered billing, and the complete API reference.

Previous: Node-Locked vs. Floating All posts