License Keys

Selling apps, software, themes, templates or any other digital product that uses License Keys is easy with Selz.

This guide will show you how.

How to use License Keys with Selz

To begin with you will need to have your own license keys as a list or have an existing system that we can query to return your license keys. Soon you will have the ability to automatically generate license keys within Selz and we’ll let you know when that feature is released.

To use license keys you need to have our License Key feature. It comes with our Pro plan.

Important: License keys are only issued during purchase no license keys are issued for item updates.

Once you have License Keys, create or edit an item as normal and select the Licences tab, you now have 4 options:

  • No license key issued
  • List
  • Remote
  • Auto

Here’s what those 4 options mean:-

No license key issued

This is the default for all items and we will not issue any license keys.

List

Allows you to add a list of license keys to an item. Each license is added as a new row within the ‘New license keys’ section. Once an order is processed we’ll assign the next available license key from the list.

Screen Shot 2016-08-25 at 2.27.44 PM

Once saved you can see licenses that have been used and unused for an item. Select ‘View licenses’ to see more detail.

Screen Shot 2016-08-25 at 10.37.41 AM Screen Shot 2016-08-25 at 10.35.36 AM
  • Unused: You can delete and they will be removed from the list of license keys for that item.
  • Used: You can select to view the related order.

You can add additional license keys at any time by pasting them in the the ‘New license keys’ field.

Remote

When you have an existing system to manage your licenses keys we will call this system via a defined URL to obtain the next license. Enter the URL and click ‘Test’, we’ll then verify that we can connect to the URL. Once an order is processed we’ll assign the license obtained via the URL.

Screen Shot 2016-08-25 at 3.33.52 PM

We will make a POST request to the URL with a JSON encoded body shown below. Use the Quantity property to determine how many licenses need to be returned.

Request

{
	"OrderId": "57be45fdcca918100c0156b1",
	"ReferenceId": "XZHQ59WA",
	"ProductId": "57be45fdcca918100c0156b3",
	"BuyerName": "John Doe",
	"BuyerFirstName": "John",
	"BuyerLastName": "Doe",
	"BuyerEmail": "support@selz.com",
	"Quantity": 3
}

Response

{
	"Keys": [
		"N3U5-7V5B-74A2",
		"K3N2-2TYP-U75L",
		"H0LU-9EEB-34W3"
	]
}

Verification key 

A verification key is provided to verify that the webhook originated from Selz. See our guide to securing webhooks.

Auto-generate:

Selecting “Auto-Generate” enables Selz to automatically assign a 16 character license that has the form XXXX-XXXX-XXXX-XXXX.

Using “Auto-Generate” means no other actions are required to maintain the generation and assigning of the licenses.

How license key enforcement works.

License key enforcement is completely up to you. As the seller, you can decide how many uses each key gets depending on the verify license API calls you make. Selz does no additional license key verification.

Remember that if you check for a valid license on each launch you will increment the usage count unless you set increment_usage_count flag to false. You can also make sure a user hasn’t refunded or charged back their purchase by checking the status fields of the order the license verify API call response.

Verifying a license key in your application.

Verifying a license key uses these parameters:

  • product_id (the unique id of the product)
  • key (the license key provided by your customer)
  • increment_usage_count (“true”/”false”, optional, default: “true”)

We use these parameters to call the Selz API and verify the provided license key

Example:

curl --request POST \
  --url https://api.selz.com/products/{product_id}/licenses/verify \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"key":"xxxx-xxxx-xxxx-xxxx","increment_usage_count":true}'

Response:

{
   "is_active":true,
   "usage_count":4,
   "order":{
      "id":"58200c2b131bbb308cc77700",
      "reference_id":"AAAAAAAA",
      "customer":{
         "first_name":"John",
         "last_name":"Doe",
         "email":"jd@selz.com",
         "company":null,
         "delivery_address":null,
         "billing_address":{
            "line1":"1 Surfview Road",
            "line2":null,
            "city":"Manly",
            "post_code":"2095",
            "state_code":"NSW",
            "country_code":"AU"
         }
      },
      "items":[
         {
            "product_id":"58200c2b131bbb308cc66603",
            "product_title":"Some awesome tool",
            "product_variant_title":null,
            "discount_code":null,
            "quantity":4,
            "unit_price":"1.00",
            "currency":"AUD"
         }
      ],
      "currency":"AUD",
      "total_price":"4.40",
      "total_shipping":"0.00",
      "total_tax":"0.40",
      "price_includes_tax":false,
      "created_time":"2016-11-07T05:59:48.229Z",
      "custom_fields":null
   }
}

Failed licenses

If an order is processed and a license key cannot be assigned then a notification is sent advising that the order and item require attention.

Common reasons for failed licenses:

  • Remote license keys: We couldn’t connect to your remote URL
  • List license keys: There are no more licenses available for the item

The order will still be processed and the customer will be notified within their order confirmation that the license key is pending. Orders with failed license keys will also be highlighted within the order list.

Screen Shot 2016-08-25 at 10.21.49 AM

To resolve failed licenses:

  • Remote license keys: Check that your URL is correctly configured and working.
  • List license keys: Check the item to ensure that there are licence keys available.

Once the above have been resolved license keys will need to be assigned for each failed order, within the order detail page select ‘Retry’ and we’ll attempt to reassign license keys for the order. Once successful we’ll automatically email the customer their license keys.

Screen Shot 2016-08-25 at 10.25.20 AM

Was this helpful?

6 1