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

# How fulfilment works

> What happens when you deliver an order: keys leave your stock, the buyer gets a private link by email, and how to refund, cancel, or complete an order.

Fulfilment is the moment an order turns into keys in the buyer's hands. Whether the order was created by hand or arrived from a sales channel, delivering it does the same thing: it pulls keys from your inventory, creates a private delivery link, and emails that link to the buyer.

## Delivering a manual order

When an order is set to manual delivery, you deliver it yourself from the order page.

<Steps>
  <Step title="Open the order">
    Go to **Orders** and open the one you want to fulfil. The **Mark as Delivered** control appears once the order is paid and not already delivered or cancelled.
  </Step>

  <Step title="Deliver">
    Select **Mark as Delivered** and confirm. The keys already reserved for the order are marked **Sold**, and a delivery link is generated for the buyer.
  </Step>

  <Step title="Wait for it to finish">
    The order moves to **Delivered**. Once it does, the order page shows the buyer's private delivery link, and the buyer is emailed the same link.
  </Step>
</Steps>

<Note>
  The delivery link is created at delivery time, not when the order is placed. An order that has not been delivered has no link yet.
</Note>

## Channel orders

Orders from a connected sales channel are fulfilled by the same engine. Depending on the channel, keys are assigned and released automatically once the buyer has paid, and the marketplace record is updated on the channel's side. The buyer still receives a delivery link built the same way, so a channel order and a manual order produce the same delivery experience.

The delivery control on a paid channel order depends on the channel. A Shopify order shows **Deliver now**. Other channel orders show **Release Key**, which hands over the key reserved for the order. G2A and Shopify orders do not show **Mark as Delivered**.

## Orders a channel already delivered

Some sales are delivered by the channel itself, for example when a marketplace's checkout takes the keys straight away. TokenSupply records these as they happen:

* There is one order per channel sale, with a line for each product sold. If the channel sends the same sale again, the existing order is kept rather than a second one being created.
* The order skips the steps above. It arrives already paid and **Completed**, so there is nothing for you to deliver, and no **Mark as Delivered** or **Mark as Completed** button appears.
* A credit is used for each key sold, just as with any other delivery.
* A delivery page is created only when there are keys to show on it. When the channel delivered from keys it holds itself, it does not tell TokenSupply which keys those were, so the order has no delivery page.

## What happens to your stock

Keys move through three states as an order is worked:

* **Available** keys are free stock, ready to sell.
* **Reserved** keys are held for an order that is placed but not yet delivered.
* **Sold** keys have been delivered to a buyer.

Delivering an order marks its reserved keys **Sold** and attaches them to the order. Each delivered key also consumes a credit from your billing balance. See [Plans and credits](/guides/billing/plans-and-credits).

## Complete an order

A delivered order moves to **Completed** on its own once the buyer has revealed every key on their delivery page. You can also close it yourself: open the order and select **Mark as Completed**.

## Refund or cancel an order

You can reverse an order from the actions menu on its detail page.

* **Cancel Order** applies before delivery. Confirm with **Cancel Order**, or choose **Keep Order** to back out. It releases any reserved keys back to available stock and marks the order **Cancelled**. If the order was already marked paid and the customer was charged, refund it instead.
* **Mark as Refunded** applies to a delivered or completed order. Confirm with **Confirm Refund**. It revokes the buyer's delivery link so the keys can no longer be collected, and marks the order **Refunded**. Its keys are set to **Reserved** and released back to available stock after 15 minutes, so they can be resold.

<Warning>
  Refunding revokes the delivery link. If the buyer already revealed and copied their keys, treat the keys as spent: a revealed key cannot be recalled. For a faulty key, a support ticket resolved with a replacement is often the better path. See [Handle tickets](/guides/support/handle-tickets).
</Warning>

## Resend the delivery email

If a buyer loses their email, you can resend it. Open the order and choose **Resend Keys** from the actions menu to send the same private delivery link again. You do not create a new link or deliver the keys twice. The option needs an email address on the order.

## Delete an order

You can also remove an order entirely with **Delete Order**. What happens to its keys depends on whether they were delivered. See [Delete an order](/guides/selling-fulfilment/delete-an-order).

## Next

<CardGroup cols={2}>
  <Card title="The delivery portal" icon="paper-plane" href="/guides/selling-fulfilment/the-delivery-portal">
    See the buyer's collection page from your side.
  </Card>

  <Card title="Handle tickets" icon="life-ring" href="/guides/support/handle-tickets">
    Replace a bad key or refund a buyer from a support ticket.
  </Card>
</CardGroup>
