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.
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 asku 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.
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.

