> ## Documentation Index
> Fetch the complete documentation index at: https://andcze.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Digital delivery

> Sell license keys, files and messages — no plugin needed. The buyer gets the content after payment on the order page and by e-mail.

A product doesn't have to run commands on a game server. In any shop — including **general** shops (`general`, e.g. licenses, Discord bots, FiveM resources, courses) — you can sell digital content that ItemShop delivers itself, right after the order is paid. No plugin is involved, and orders with digital content never enter its queue.

## Four delivery kinds

In the product form you pick a **delivery kind**:

| Kind | What the buyer gets | What you set up |
| - | - | - |
| **Commands** (default) | The plugin fulfils the purchase on the game server. | Fulfilment commands — [Products](https://andcze.mintlify.site/en/shop/products.md). |
| **License keys** | One key from the pool for every unit bought. | A key pool (import), an optional note, a low-stock threshold (default 5). |
| **File** | A link to download a private file. | The file (up to 25 MB), link lifetime (1–720 h, default 72) and download limit (1–50, default 5). |
| **Message** | The text you wrote (e.g. instructions, an invite link, a code). | The message text. |

The note for keys or a file is attached to the delivered content — a good place for activation instructions. Message and note text is stored encrypted.

> [!NOTE]
>
> You add the keys, file and message after you save the product for the first time. Fulfilment commands are optional for the digital kinds.

## License keys

The key pool belongs to the product — or to a **variant** if you sell variants (a variant without its own pool uses the shared one). You add keys by:

* pasting a list — **one line = one key**,
* uploading a CSV — a column named `key`, `klucz` or `code` (or the first column if there's none).

Duplicates are skipped. The key list in the panel is masked and shows pool counters: available and issued. Keys that haven't been issued can be deleted one by one or in bulk; issued keys can't be deleted. You can export the full pool to CSV (needs the permission to manage products, and the export is logged).

One order can contain up to **100 keys**.

### When keys run out

If a buyer pays and the pool is empty, the order gets the **awaiting stock** state (`awaiting_stock`). You get a single alert. When you add keys, the missing units are sent automatically in order (FIFO), and the buyer gets them on the order page and by e-mail. The low-stock threshold warns you before the pool runs dry.

## File download

The file goes to **private storage** — never to a public CDN. The buyer gets a signed link that:

* expires after the lifetime you set,
* has a download limit — every opening of the link uses one download,
* answers `410` once it has expired or the limit is used up.

You upload the file in the panel (up to 25 MB). For larger material, put a link to your own hosting in the file and use the **Message** kind.

## What the buyer sees

1. At checkout they enter an **e-mail** — it's required for digital products (also in a `game` shop).
2. After payment the order moves to **completed** right away, and the order page shows the keys, the download link or the message. Collecting the content needs the order number and the status key from the order page address — the number alone isn't enough.
3. A separate e-mail with the content (independent of the order confirmation) goes to that address. The content is rendered only when the e-mail is sent.

An order with several lines (digital and regular) behaves as usual: each line is fulfilled separately — see [Orders](https://andcze.mintlify.site/en/shop/orders.md).

## Refunds, disputes and cancellation

A refund, a dispute (chargeback) or a cancellation **revokes** the issued keys (they don't return to the pool) and the download link. A buyer who tries to collect gets a message that the delivery was revoked.

## Order actions

In the details of an order with digital content (permission to manage orders) you see the **issued content** and the e-mail and download status — every such view is logged. You can also:

* **resend the content** (up to 5 times per hour per order),
* resend it with a **new download link** — the previous link stops working.

## For developers

Your site reads delivery data from the [Storefront API](https://andcze.mintlify.site/en/developers/storefront-api.md): a product has a `deliveryKind` field, the order status contains `delivery`, and the content is collected from the delivery endpoint. Render "message" content as plain text, not HTML. The panel and server integrations manage the key pool and the file through the shop API (the Digital delivery section of the [reference](https://andcze.mintlify.site/en/api-reference/overview.md)).

> **[Products](https://andcze.mintlify.site/en/shop/products.md)**
>
> Prices, variants and fulfilment commands.

> **[Orders](https://andcze.mintlify.site/en/shop/orders.md)**
>
> Statuses, payment groups and manual actions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.