Selling Digital Products with License Keys
Learn how to sell software, plugins, and digital goods with automatic license key delivery using Ponkan.
Sarah Chen
March 18, 2026

Selling digital products is different from physical goods. There's no shipping, no inventory to manage — but you still need a way to deliver what the customer bought. For software, plugins, themes, and other digital goods, that usually means license keys.
Ponkan handles this natively. When a customer purchases a digital product, license keys are assigned and delivered automatically — no manual work, no custom code.
How it works
The flow is straightforward:
- You create a product and set its type to
digital_license - You upload license keys to that product (or let Ponkan auto-generate them)
- A customer purchases the product through a checkout link or invoice
- Ponkan assigns available license keys to the order and emails them to the customer
Everything happens in the background. The customer gets their keys within seconds of payment.
Setting up a digital product
Step 1: Create the product
Create a product with the digital_license type:
The product_type field is what tells Ponkan to trigger license key delivery on purchase.
Step 2: Add license keys
You can pre-load license keys for your product. In the Ponkan dashboard, go to your product and paste keys one per line. The system deduplicates them automatically.
If you don't pre-load keys, Ponkan auto-generates UUID-based license keys when a customer purchases. This is useful for products where you don't need custom key formats.
Step 3: Create a checkout link
Bundle the product into a checkout link like any other product:
Share the checkout URL and you're selling.
What happens at purchase
When a customer completes payment:
- An order is created with the purchased items
- Ponkan checks if the order contains
digital_licenseproducts - For each digital product, it grabs available license keys from your pool
- If no pre-loaded keys are available, it auto-generates new ones
- Keys are assigned to the order items with an
assigned_attimestamp - The customer receives an email with all their license keys, grouped by product
For orders with quantity greater than 1, multiple keys are assigned — one per unit purchased.
Validating license keys
Your application needs to verify that a license key is legitimate. Ponkan provides a validation endpoint for this:
The response tells you everything you need:
The valid field is true only when the key has been properly assigned to a customer. An available key that hasn't been purchased yet returns valid: false.
If the key doesn't exist at all, you get a 404.
Building license validation into your app
Here's a simple example of checking a license key in your software:
License key states
Each license key has one of three statuses:
| Status | Meaning |
|---|---|
available | In the pool, not yet purchased |
assigned | Purchased and delivered to a customer |
revoked | Manually revoked by you |
You can revoke a key if a customer requests a refund or if you detect abuse. Revoked keys fail validation.
Customer access to license keys
Customers can retrieve their license keys through two channels:
Email delivery
Immediately after purchase, Ponkan sends an email with all assigned keys grouped by product. The email includes the product name, the license key, and the assignment date.
Customer portal
If you've built a customer-facing account area using the customer session API, customers can look up their keys anytime:
They can also see keys attached to specific orders:
The response includes a license_keys array with the product name, key, and assignment timestamp.
Invoices with license keys
License keys aren't limited to checkout links. When you create an invoice with digital_license products and the customer pays, the same automatic delivery kicks in:
When this invoice is paid, 5 license keys are assigned and emailed to the customer.
Managing your key inventory
In the Ponkan dashboard, each digital product shows:
- Available keys — keys in the pool, ready to be assigned
- Total keys — all keys across all statuses
If your available count drops to zero, Ponkan auto-generates keys for new purchases so you never miss a sale. But if you need specific key formats (e.g., keys from a third-party service), keep your pool stocked.
Use cases
- Software licenses — Sell desktop apps, CLI tools, or IDE plugins with per-seat licensing
- Game keys — Distribute Steam, Epic, or custom game activation codes
- SaaS access — Provide API keys or activation tokens for your service
- Course access — Deliver enrollment codes for online learning platforms
- Themes and plugins — Sell WordPress themes, Figma plugins, or browser extensions
What's next
License keys are just one part of selling digital products with Ponkan. Combine them with checkout links for instant storefronts, or use the invoicing API for B2B software licensing. If you're building a full storefront, check out our guide on building with the Ponkan API.
More Articles
Continue reading from our blog.

Getting Started with Checkout Links
Learn how to create shareable payment pages and start accepting payments in minutes using Ponkan's checkout links.
Daniel Moreno
March 18, 2026

Building a Simple E-Commerce App with the Ponkan API
Build a fully functional storefront with product listing, shopping cart, and checkout using the Ponkan API and Next.js.
Daniel Moreno
March 16, 2026