Skip to main content
Inventory is the stock of keys and codes you have for a product. Loading inventory adds those keys so they are ready to sell. Each key is stored securely, stays masked, and is revealed only when a buyer collects it or you choose to reveal it.
Products and inventory are separate. A product is the listing; inventory is the actual keys behind it. If you have not created the product yet, start with Add a product.

Add keys to a product

1

Open the product's inventory upload

Open Products, select the product, and choose Manage Inventory to open its keys page. Then choose Add Inventory. You can also reach the upload from the Inventory list using the Add action on a product’s row.
2

Enter your keys

Use Manual to type or paste keys into the grid, one per row. Pasting a column of keys from a spreadsheet fills a row each, so a whole list lands as separate items rather than one. Switch to Bulk to paste a large list or drop a file.
3

Add expiry or notes if needed

Each key can carry an optional expiry date. In Manual mode you can set a batch expiry that fills the date on every row, then adjust individual rows. Account-type products also take an optional note per row.
4

Review and upload

The counter shows how many items you have entered. Choose Upload N items (for example, Upload 25 items) to add them. You will see how many were added and how many duplicates were skipped.

Supported layout

  • Keys go one per row (or one per line when you paste or upload a list).
  • A file can be .csv or .txt. For a CSV, the columns are the key, an optional expiry, and an optional note.
  • Expiry dates are recognized in a few common formats. Rows with an expiry that is not recognized are still imported, just with a blank expiry you can fill in later.
  • Account products expect each entry as email | password. The upload flags any entry missing the separator before it is sent.
On the upload screen you can download a sample CSV. It shows the header and the expiry and note columns, so it teaches the exact layout that is accepted.

Bulk upload

For large batches, switch to the Bulk tab and drop a .csv or .txt file, or paste the list. You can then choose Review in grid to move the parsed rows into the manual grid, where you can check each key, its expiry, and any note before uploading.

Import keys for many products at once

To load keys for several products in one go, open Inventory from the sidebar and choose Import. The Import inventory dialog takes a CSV with a sku column and a value column, plus optional expiry_date and note columns. Each key is added to the product whose SKU matches its row. You can download a sample file from the dialog. The same import is also available under Settings. See Import data.

Duplicate detection

TokenSupply removes duplicate keys automatically. If a batch of keys contains repeats, or a key already exists in stock, the duplicate is skipped rather than stored twice. Before you upload, any values entered more than once in the batch are flagged so you can fix the list first. After upload, the result tells you how many items were added and how many duplicates were skipped.

Masked storage and reveal

Every key is stored masked, so its full value never sits in plain view on the list. The real value is revealed only when it is needed:
  • A buyer reveals their key when they collect their order through the delivery portal.
  • You can reveal a key on demand from the product’s key list. Each reveal is logged.
See Key details for how to reveal a key and what else you can do with one.

Reserved keys

A key can be reserved, which holds it for a specific order so it is not sold to anyone else. Reserved keys show a Reserved status in your stock views. Most keys stay Available until they sell.

Next steps

Manage stock

See stock levels, spot low stock, and reveal a key when you need it.

Receive keys from a vendor

Approve a vendor’s stock file so the keys land in inventory.