License Fulfillment

Instant delivery for digital products

Fernet-encrypted license key storage, automatic allocation on purchase, bulk upload, stock monitoring, and auto-replenishment.

Encrypted
Storage
Instant
Delivery
Auto-Replenish
Stock Management
Bulk Upload
CSV Import

Secure fulfillment, zero manual work

From encrypted storage to instant delivery, every part of the license key lifecycle is automated and secure.

Encrypted Key Vault

Every license key is encrypted at rest using Fernet symmetric encryption, ensuring keys are never stored in plaintext in the database.

  • Fernet symmetric encryption
  • Keys decrypted only on delivery
  • Secure DATA_ENCRYPTION_KEY

Atomic Allocation

One key per order item, allocated atomically with database-level concurrency safety. No double-allocation, even under high load.

  • One key per order item
  • Concurrency-safe allocation
  • Transaction-level locking

Bulk Upload

Import thousands of license keys at once via CSV upload. Map columns, validate formats, and add keys to your inventory in seconds.

  • CSV file import
  • Column mapping
  • Format validation

Auto-Replenishment

Configure automatic key generation when stock falls below a threshold, ensuring you never run out of keys during peak sales.

  • Low-stock threshold triggers
  • Automatic key generation
  • Celery task retry every 5 min

Stock Monitoring

Track available key inventory in real time with low-stock alerts and email notifications so you can replenish before running out.

  • Real-time stock levels
  • Low-stock email alerts
  • Per-product monitoring

Download URLs

Provide direct file download links alongside or instead of license keys, with download status tracking and expiry controls.

  • Direct download links
  • Download status tracking
  • Configurable URL expiry

From upload to delivery

A fully automated pipeline that encrypts, stores, allocates, and delivers keys without manual intervention.

Upload & encrypt

Add license keys individually or in bulk via CSV. Every key is immediately encrypted with Fernet and stored securely in the database, never in plaintext.

  • Single or bulk CSV upload
  • Instant Fernet encryption on import
  • Duplicate detection and validation
  • Per-product key inventory tracking

Allocate & deliver

When a customer completes payment, a key is atomically allocated to their order and delivered instantly. If stock runs out, orders queue for automatic retry.

  • Instant allocation on payment confirmation
  • Concurrency-safe atomic operations
  • Automatic retry for out-of-stock orders
  • Key displayed in order portal and email

Frequently asked questions

License keys are encrypted using Fernet symmetric encryption from the Python cryptography library. Fernet uses AES-128-CBC with HMAC-SHA256 authentication, ensuring both confidentiality and integrity. Keys are only decrypted at the moment of delivery to the customer.
Orders placed when no keys are available are set to a "paid pending keys" status. A Celery task retries allocation every 5 minutes. Once new keys are uploaded or auto-generated, they are automatically allocated to waiting orders in the sequence they were placed. You also receive low-stock email alerts to replenish inventory proactively.
Bulk upload accepts standard CSV files with one license key per row. You can map columns during import if your file contains additional metadata. The system validates each key for format and duplicates before encrypting and adding it to inventory.
A license key is a unique activation code delivered to the customer after purchase, typically used to unlock software. A download URL is a direct link to a file (installer, archive, etc.) that the customer can download. Products can use one or both methods. Download URLs support status tracking and configurable expiry periods.

Ready to start selling globally?

Join CreativeMark and let us handle payments, tax, and fulfillment so you can focus on building great products.

Free to apply. No credit card required.