Generate, distribute and validate license keys

Securely sell software with license keys. Checkout Page can generate and distribute unique license keys on each checkout or subscription signup.

When selling software, license keys are a simple and secure way to validate access. Checkout Page helps you with generating, distributing and validating license keys upon purchases, subscription signups and form submissions.

When turned on, Checkout Page generates one license key per checkout. These are perpetual license keys, which means they’re valid forever. You can, however, still limit how, and how often the license is used, as well as what it’s valid for. That implementation is up to you.

We provide a unique (version 4 uuid) license key per checkout, tied to a charge or subscription and a [POST] API endpoint to validate the validity of the license. To validate a license, your customer enters their license key in your application or website. You send a POST request to our license key validation API endpoint. Based on the response, your system gives the user access or not.

Generating license keys

  1. Open your Checkout Page dashboard and click on the checkout you want to generate licenses for
  2. Stay in the Product tab and open License keys from the left-hand menu
  3. Toggle the option Generate license keys for each purchase (it will auto-save)

image-d04416.png

A license key will now be generated for every checkout on this page.

Distributing license keys

There are a few options to distribute the license key generated on a checkout.

Add the license key to your checkout confirmation message

  1. Open your Checkout Page dashboard and click on your checkout
  2. Go to the After payment tab and then Confirmation tab from the left-hand menu
  3. Choose Custom confirmation
  4. Click on the + to add your License key (scroll down to find it) to your Confirmation message
image-ffde1e.png

Add the license key to your email confirmation message

Your license key will be included in your Email confirmation by default (if you opt for Default email).

If you wish to customize your Email confirmation message and include your license key, follow these steps:

  1. Open your Checkout Page dashboard and click on your checkout
  2. Go to the After payment tab and click on Email confirmation
  3. Choose Custom email
  4. Click on the + to add your License key (scroll down to find it) to your Email body, and click Save

image-3a4270.png

Find the license key in Stripe metadata & distribute via Zapier

Another way to view your license key is from your Stripe account payment metadata, which you can then distribute via Zapier.

Learn more about Zapier integration here

Find the license key in your customer portal

Your customers can also access their license key in their customer portal.

image-b04d6c.png

Learn how to access your customer portal here

Validating license keys

You can validate a license key with our public POST API endpoint. The validation implementation is up to you. Our endpoint lets you:

  • increment the number of uses with the incrementUses property
  • enable/disable a license key via the Charge/Subscription page in the dashboard. This will set enabled to true/false

POST /api/v1/license-keys/validate

curl -X POST https://api.checkoutpage.co/api/v1/license-keys/validate \
  -d key="018ec4ef-4c0f-4845-bfa2-c1c7ed49d731" \
  -d incrementUses=true

RESPONSE

{
  "data": {
    "uses": 0,
    "enabled": true,
    "key": "018ec4ef-4c0f-4845-bfa2-c1c7ed49d731",
    "product": {
      "price": 9900,
      "currency": "usd",
      "type": "charge",
      "title": "The Art of Photography",
      "id": "60a4ca7ac2d2a000154644c9"
    },
    "variants": {
      "add-on-1": {
        "name": "Add-on 1",
        "selectedOption": "Yes",
        "price": 2900,
        "sku": "",
        "stripePriceId": "price_1NEUaeJ7i86GeQKlASSaG8S3",
        "stripeProductId": "prod_O0Vbl3cuaNc7UO"
      },
      "add-on-2": {
        "name": "Add-on 2",
        "selectedOption": "Yes",
        "price": 4900,
        "sku": "",
        "stripePriceId": "price_1NEUamJ7i86GeQKlbWvWDxcQ",
        "stripeProductId": "prod_O0VcqTjJjmyTiS"
      }
    },
    "charge": "60cb1b205cb2999b117cc905",
    "customer": "5b1910909bcc7200149245e7",
    "customerEmail": "jdoe@gmail.com",
    "customerName": "Jane Doe",
    "createdAt": "2021-06-17T09:51:32.245Z",
    "updatedAt": "2021-06-17T14:20:51.458Z",
    "vendor": "5aaa701149321a00145c99b9",
    "id": "60cb1b245cb2999b117cc90a"
  }
}

If you want to increment the uses property upon validation, you have to pass incrementUses: true in the request.

Response properties:

uses: integer the number of times the license has been validated with incrementUses: true

enabled: boolean a license key becomes enabled once the charge or subscription succeeded. When a charge or subscription is uncompleted, enabled will be false. You can enable and disable license keys via the Charge or Subscription page in the dashboard.

key: string Unique uuidv4 string

product: object Details of the product purchased

variants: object Object of variants purchased, using variant reference as object key

charge: string Charge ID, exists if the license belongs to a charge object

subscription: string Subscription ID, exists if the license belongs to a subscription object

customer: string Customer ID

customerEmail: string Customer email

customerName: string Customer name

createdAt: string Created date in UTC

updatedAt: string Last updated date in UTC

vendor: string Your vendor ID

id: string License ID