If you sell software, games, courses, or any product that requires a unique activation code, you have probably hit a familiar wall: Shopify does not natively support license key delivery. Most digital download apps on the Shopify App Store do not either. The usual workaround is to install one app for file delivery and a second app for license keys, paying two monthly subscriptions and managing two separate systems.
Alva Digital Downloads takes a different approach. License key management is built directly into the app — the same app that handles your file uploads, download delivery, and fraud prevention. You create or import keys, tag them by product, and they are automatically assigned to customers when they purchase. This guide covers the complete system: how it works, how to set it up, and practical examples for different types of businesses.
Why License Keys Are Different from File Downloads
To understand the setup, it helps to know why license keys need their own system rather than being treated as just another file download.
A downloadable file can be delivered to multiple customers. You upload a PDF once and every buyer gets the same file. License keys are fundamentally different: each key is a unique, consumable asset. Once a key is assigned to a customer, it cannot be given to anyone else. This creates several requirements that file delivery systems are not designed to handle:
- Inventory management: You need to know how many keys you have remaining, and you need alerts before you run out.
- Reliable assignment: Keys should be assigned one at a time, and the system must guarantee that no two customers ever receive the same key — even when multiple orders arrive simultaneously.
- Fraud sensitivity: If a fraudulent order consumes a license key, that key is gone. Recovering it requires revoking access and manually reassigning, which is far more disruptive than revoking a file download link.
- Bulk operations: You might need to import thousands of keys from a vendor, or generate hundreds of keys in a specific format for a product launch.
Alva's license key system is designed around these constraints. It is not an afterthought bolted onto a file delivery system — it is a purpose-built delivery channel with its own security rules and its own management interface.
How Alva's License Key System Works
The system has four core concepts: keys, tags, product mappings, and auto-assignment.
Keys
A license key is a unique string — it could be a UUID, an alphanumeric code, a serial number, or any arbitrary text. Each key has a status: available (not yet assigned), assigned (given to a customer), or revoked (deactivated after assignment). Keys are created either through auto-generation, bulk import via CSV, or manual entry.
Tags
Tags are the organizational layer. Every key belongs to exactly one tag. Think of a tag as a pool of keys for a specific purpose. You might have a tag called "Pro Plan Annual" containing 500 keys for your software's annual subscription, and another tag called "Starter Plan Monthly" with 1,000 keys for the monthly tier. Tags let you manage separate key inventories for different products, campaigns, or batches.
Product Mappings
Tags are linked to Shopify products (and specific variants) through the product mapping system — the same system that links files and packs to products. When a product is purchased, Alva checks whether any license key tags are mapped to that product or variant. If so, a key is drawn from the appropriate tag.
Auto-Assignment
When an order is placed and payment is confirmed, Alva automatically assigns one available key per mapped tag to the purchase. Each customer receives a unique key, and the system guarantees that no two orders ever receive the same key — even during high-traffic events. The assigned key immediately appears on the customer's download page, in their delivery email, on the checkout thank-you page, and in their customer account order history.
Built-In, Not Bolted On
Most Shopify digital download apps do not include license key management. Merchants who need both file delivery and license keys typically install two separate apps. Alva handles both in a single app with a single subscription, reducing cost and complexity.
Setup Guide: Selling License Keys with Alva
Here is the complete setup process from installation to first sale. If you already have Alva installed, skip to Step 2.
Install Alva Digital Downloads
Install Alva Digital Downloads from the Shopify App Store. The app includes a 14-day free trial on all paid plans. License key management is available on all paid plans (Basic, Pro, and Enterprise).
Create a License Key Tag
Navigate to License Keys in the Alva admin sidebar. Click Create Tag. Give your tag a descriptive name that identifies the key pool — for example, "PhotoEditor Pro – Lifetime License" or "Game Keys – Steam Edition".
Tags serve as containers for your keys. You will typically create one tag per product or per product variant. If your software has three pricing tiers, you would create three tags, each containing keys for that specific tier.
Add Keys to Your Tag
You have three methods for adding keys:
Option A: Auto-Generate Keys
Click Generate Keys within your tag. Choose the number of keys to generate and select a format:
- UUID: Standard universally unique identifiers (e.g.,
550e8400-e29b-41d4-a716-446655440000). Best for internal systems where human readability is not a concern. - Alphanumeric: Formatted codes with configurable segment length (e.g.,
A7X9-K2M4-P8R1-W5Z3). Best for customer-facing activation codes that users type manually. - ULID: Time-sortable unique identifiers (e.g.,
01ARZ3NDEKTSV4RRFFQ69G5FAV). Best when you need keys that sort chronologically.
All three formats support an optional custom prefix. If you set the prefix to PHOTO-PRO-, generated keys look like PHOTO-PRO-A7X9-K2M4-P8R1-W5Z3. Prefixes are useful for quickly identifying which product or campaign a key belongs to when you see it in support tickets or logs.
Option B: Import Keys via CSV
Click Import Keys and upload a CSV file. The CSV should contain one key per row. This is the right approach when you receive keys from a third-party vendor, a game publisher, or a bulk key generation service. Alva deduplicates during import — if any keys in the CSV already exist in the system, they are skipped automatically.
Option C: Manual Entry
For small batches, you can add keys individually through the admin interface. This is practical when you have a handful of keys to add, but CSV import is more efficient for anything beyond about 20 keys.
Map Tags to Products
Navigate to the Products section in Alva and select the Shopify product you want to deliver keys for. In the product mapping interface, you will see sections for Files, Packs, Links, and License Key Tags. Select the tag you created in Step 2.
If your product has variants (e.g., "Basic" and "Pro" tiers as separate Shopify variants), you can map different tags to different variants. The "Basic" variant gets keys from the "Basic License Keys" tag, and the "Pro" variant gets keys from the "Pro License Keys" tag.
A single product can deliver both files and license keys. For example, a software product might deliver an installer ZIP file from the files system and a unique activation key from the license key system. Both appear together in the customer's delivery email and download page.
Configure Low-Stock Alerts
In your tag settings, set a low-stock threshold. When the number of available (unassigned) keys in a tag drops below this threshold, Alva sends you an email notification. This gives you time to generate or import more keys before they run out.
Low-stock alerts are one-time per threshold crossing — you receive the alert once when stock drops below the threshold, not on every subsequent order. Once you add more keys and the stock rises above the threshold, the alert resets and will fire again if stock drops below the threshold in the future.
Test with a Real Order
Place a test order through your Shopify store using Shopify's test order process (or Shopify's Bogus Gateway). After the order is paid, verify that:
- A license key was assigned from your tag (check the tag's key list — one key should now show as "assigned")
- The key appears in the delivery email
- The key appears on the download page
- The key appears in the customer account extension (if you have it enabled)
- The order detail page in Alva shows the assigned key
That is the complete setup. Orders will now automatically receive keys going forward.
Fraud Protection: Keys Are Never Assigned Until Fraud Checks Pass
This is one of the most important aspects of Alva's license key system, and an area where competing solutions often fall short.
When fraud detection is enabled in Alva, license keys receive stronger protection than file downloads. Here is why:
File downloads in Alva are gated by secure, time-limited URLs (learn more about how Alva protects digital files from piracy and fraud). If a fraudulent order gets a download link, you can revoke access and the link expires. The file itself is not consumed — it still exists in your storage for legitimate customers.
License keys are different. A key is a finite, consumable resource. If a fraudulent order receives a key, that key is gone from your available inventory. To recover it, you would need to manually revoke the assignment and potentially deal with the key already being activated in an external system. That is why Alva treats keys with extra caution.
When a Shopify order is flagged as potentially fraudulent:
- The order enters Alva's manual approval queue
- No license key is assigned — no key is consumed from your inventory
- No delivery email is sent
- You review the order and either approve or reject it
- If approved, a key is assigned at that point and the customer receives their delivery
- If rejected, your key inventory remains intact
This means fraudulent orders can never deplete your key stock. The key assignment only happens after a human (you) has confirmed the order is legitimate. For high-value keys — think enterprise software licenses at $500+ each or limited-edition game keys — this level of protection is essential.
Fraud Protection Summary
- Keys are never assigned to flagged orders until manually approved
- Rejected orders consume zero keys from your inventory
- Fraud detection uses Shopify's risk analysis alongside Alva's own checks
- Keys get stricter protection than file downloads because they are consumable assets
What Happens When Keys Run Out
Despite low-stock alerts, there may be times when a customer purchases a product and no keys are available in the mapped tag. Rather than failing the order or requiring manual intervention, Alva handles this automatically.
When a key assignment is attempted and no keys are available:
- The order is placed in a pending assignment queue
- The customer's download page shows a message indicating their license key is being processed
- You receive a notification about the pending assignment
- When you add more keys to the tag (via generation, import, or manual entry), pending orders are fulfilled automatically in the order they were received
- The customer receives an updated delivery email with their key
This means you never lose a sale because of key inventory issues. The order goes through, the payment is captured, and the key is delivered as soon as stock is replenished. For merchants who receive key batches from vendors on a schedule, this queue system keeps fulfillment running smoothly even if there is a gap between batches.
Where Customers See Their License Keys
Alva displays license keys in every place a customer might look for their purchase:
| Delivery Channel | How It Works |
|---|---|
| Download Page | Keys appear prominently on the customer's download page alongside any file downloads. The key is displayed as selectable text for easy copying. |
| Delivery Email | The automated delivery email includes the assigned key in a clearly labeled section, separate from file download buttons. |
| Checkout Thank-You Page | Via Alva's Shopify checkout extension, keys appear immediately on the post-purchase thank-you page — no waiting for the email to arrive. |
| Customer Account | Keys are visible in the customer's Shopify account under their order history, so they can retrieve keys at any time. |
| Order Detail (Admin) | You can see which key was assigned to which order in Alva's admin panel, useful for customer support inquiries. |
This multi-channel display means customers never need to contact you to find their key. Whether they check their email, revisit the thank-you page, or log into their account months later, the key is there.
Tag-Based Organization: Practical Examples
The tag system is flexible enough to handle very different business models. Here are some practical approaches:
Software with Multiple Tiers
A software company selling three license tiers creates three tags:
- "PhotoEditor Starter" — 1,000 auto-generated alphanumeric keys with prefix
PE-START- - "PhotoEditor Pro" — 500 auto-generated alphanumeric keys with prefix
PE-PRO- - "PhotoEditor Enterprise" — 100 manually entered keys from the enterprise provisioning system
Each tag is mapped to the corresponding Shopify product variant. When a customer buys the "Pro" variant, they receive a key from the "PhotoEditor Pro" tag.
Game Key Reselling
A game key reseller receives batches of Steam keys from publishers via email. They create one tag per game title and import keys via CSV as new batches arrive:
- "Space Odyssey – Steam" — 2,000 keys imported from publisher CSV
- "Dungeon Crawler – Steam" — 500 keys imported from publisher CSV
- "Racing Legends – Epic" — 800 keys imported from publisher CSV
Low-stock alerts are set at 50 keys per tag, giving the reseller time to request additional keys from the publisher before inventory runs out.
Course Access Codes
An online educator creates access codes for a self-paced course platform. Each code unlocks 12 months of access:
- "Marketing Masterclass 2026" — 200 auto-generated UUID keys
- "SEO Fundamentals" — 500 auto-generated alphanumeric keys with prefix
SEO-
When a student purchases the course on Shopify, they receive the access code automatically and enter it on the course platform to unlock their enrollment.
Membership and Subscription Codes
A gym chain sells monthly membership activation codes through their Shopify store. They create a new tag each month:
- "March 2026 Memberships" — 300 auto-generated keys with prefix
GYM-MAR- - "April 2026 Memberships" — 300 auto-generated keys with prefix
GYM-APR-
They update the product mapping each month to point to the current month's tag. Previous months' tags are kept for record-keeping and support reference.
Event Tickets and Access Passes
A conference organizer generates unique check-in codes for attendees:
- "DevConf 2026 General Admission" — 1,000 alphanumeric keys with prefix
DC26-GA- - "DevConf 2026 VIP" — 100 alphanumeric keys with prefix
DC26-VIP-
Each attendee receives a unique code that doubles as their event ticket. The organizer's check-in system validates these codes at the door.
Combining Keys with File Downloads
One of the practical advantages of having license keys built into the same app as file delivery is that a single product can deliver both. This is common for software products where the customer needs both an installer and an activation key.
For example, a product mapped to:
- Files:
PhotoEditor-Setup-v3.2.exe(Windows installer) +PhotoEditor-v3.2.dmg(Mac installer) - License Key Tag: "PhotoEditor Pro Licenses"
When a customer purchases this product, they receive:
- Download buttons for both installers on their download page and in their email
- A unique license key displayed alongside the download buttons
Both the files and the key are delivered through the same email, displayed on the same download page, and visible in the same customer account view. No context-switching between apps, no fragmented customer experience.
This also means that products selling links (URLs) alongside license keys work the same way. A SaaS product could deliver an onboarding portal link and an API key in a single purchase.
One Product, Multiple Delivery Types
A single Shopify product in Alva can deliver files + license keys + links simultaneously. No other Shopify digital download app offers this kind of unified delivery without requiring multiple app installations.
Managing Keys After Assignment
The admin panel gives you full visibility and control over assigned keys:
- Order Detail View: Every order in Alva shows which license key was assigned, when it was assigned, and which tag it came from.
- Key Search: Search for a specific key to find the order it was assigned to. Useful when a customer contacts support with a key that is not working.
- Revocation: Revoke a key's assignment if needed (e.g., for a refund or chargeback). The revoked key returns to the available pool.
- Email Resend: Resend the delivery email from the order detail page if a customer cannot find their original email.
- Tag Analytics: View key counts by status (available, assigned, revoked) per tag at a glance.
Comparison: Alva vs. Separate License Key Apps
To put the value proposition in perspective, here is how Alva's built-in system compares to installing a dedicated license key app alongside a file delivery app:
| Capability | Alva (Built-In) | Separate License Key App |
|---|---|---|
| Monthly cost for file + key delivery | $8.99 – $28.99 (one app) | $10 – $50+ (two apps combined) |
| Unified delivery email | Yes — files and keys in one email | No — separate emails from each app |
| Unified download page | Yes — one page with files, keys, and links | No — separate pages or no download page |
| Fraud protection for keys | Yes — keys withheld until fraud check passes | Varies — most assign immediately |
| Auto-generation formats | UUID, Alphanumeric, ULID with custom prefixes | Varies by app |
| CSV bulk import | Yes, with deduplication | Varies by app |
| Low-stock alerts | Yes — email alerts per tag | Varies by app |
| Pending assignment queue | Yes — automatic fulfillment when restocked | Rarely available |
| Admin dashboards to manage | One | Two |
The core advantage is not just cost savings. It is the elimination of the seam between file delivery and key delivery. Customers get one email, one download page, and one place to find their purchases. Merchants manage one app, one set of settings, and one support channel.
Advanced: Variant-Level Key Mapping
For products with Shopify variants, Alva supports mapping different license key tags to different variants. This is essential when variants represent genuinely different products or tiers.
Consider a software product with three variants on the same Shopify product listing:
- Variant: "1 Device License" → mapped to tag "Single Device Keys"
- Variant: "5 Device License" → mapped to tag "Multi-Device Keys (5)"
- Variant: "Unlimited Devices" → mapped to tag "Unlimited Device Keys"
Each variant draws from its own key pool, and each pool can have its own low-stock threshold. The auto-assignment system checks the specific variant that was purchased and draws from the correct tag.
This also works with files. The "1 Device License" variant might deliver a basic installer, while the "Unlimited Devices" variant delivers both the installer and an admin console application. Different files, different keys, same Shopify product.
Shopify Flow Integration
Alva's license key system integrates with Shopify Flow for automation (see our full Shopify Flow integration guide). Flow triggers and actions let you build custom workflows around key events:
- Trigger: "Digital Purchase Delivered" — fires when a purchase (including license keys) is successfully delivered. Use this to update an external CRM, register the customer in a third-party system, or send a follow-up sequence.
- Trigger: "Fraud Check Approved" — fires when a flagged order is manually approved. Useful for logging approval decisions or triggering a welcome workflow.
- Action: "Approve Flagged Order" — approve orders programmatically based on your own logic, such as auto-approving orders under a certain dollar amount.
- Action: "Revoke Access" — revoke a customer's access to their downloads and keys, triggered by a chargeback or refund event.
These integrations mean license key delivery can be part of larger automated workflows without any custom code.
Frequently Asked Questions
No. Alva Digital Downloads includes a full license key management system built in. You can create, import, auto-generate, and auto-assign license keys without installing any additional apps. Most competing digital download apps require a separate license key app at extra cost.
Alva supports three auto-generation formats: UUID (e.g., 550e8400-e29b-41d4-a716-446655440000), Alphanumeric (e.g., A7X9-K2M4-P8R1-W5Z3), and ULID (e.g., 01ARZ3NDEKTSV4RRFFQ69G5FAV). All formats support optional custom prefixes. You can also import keys in any format via CSV — the system does not impose format restrictions on imported keys.
Yes, and more strictly than file downloads. License keys are never assigned to a purchase until the order passes fraud checks. If fraud detection flags an order, no key is consumed from your inventory. The order enters a manual approval queue, and keys are only assigned once you approve the order. This prevents fraudulent orders from depleting your key stock.
Alva handles this automatically. Orders that arrive when keys are out of stock are placed in a pending assignment queue. When you add more keys to the tag, pending orders are fulfilled automatically in the order they were received. You also receive low-stock email alerts before keys run out, so you can replenish proactively.
License keys are displayed everywhere your customers interact with their purchase: the download page, the delivery email, the Shopify checkout thank-you page extension, and the customer account order history page. Customers never need to contact support to find their keys.
Yes. A single Shopify product can deliver both downloadable files and license keys. For example, a software product can deliver the installer file plus a unique activation key in the same purchase. Both appear together in the delivery email and on the download page, all managed within one app.
Yes. The CSV import feature accepts keys in any format. Upload a CSV file with one key per row, and Alva imports them into the selected tag. The import process automatically deduplicates — if any keys in the CSV already exist in the system, they are skipped. This is ideal for game key resellers, SaaS vendors, and anyone who receives key batches from external sources.
There is no hard limit on the number of license keys you can store in Alva. Keys are stored separately from your files, so they do not count against your file storage quota. Whether you have 100 keys or 100,000 keys, the system handles them the same way.
Getting Started
If you are already an Alva Digital Downloads user, the license key system is available in your admin panel right now. Navigate to License Keys in the sidebar, create your first tag, add keys, and map the tag to a product.
If you are new to Alva, install from the Shopify App Store and start a free 14-day trial. The trial includes full access to the license key system, file delivery, link selling, fraud protection, and all other features on your selected plan.
Software licenses, game keys, course access codes, membership passes — any product that requires a unique code per customer works with the same system. Alva handles the entire workflow from key creation to customer delivery, with fraud protection at every step.
Ready to Sell License Keys on Shopify?
Auto-generate, import, and deliver unique license keys with every order. Built-in fraud protection ensures keys are never wasted on fraudulent purchases.
Start Free 14-Day Trial