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

# Offers

> Short customer URLs with selected inputs, access rules, and checkout flow

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/akua-1dce587a/NTgnQstkErDoAPAb/images/heros/offers-light.svg?fit=max&auto=format&n=NTgnQstkErDoAPAb&q=85&s=6bab343227a1777d9683889c3c6fdb70" alt="A Package version input schema feeds a short Offer link with pre-filled fields, locked inputs, and access rules; the link opens an install wizard that can include checkout before creating an installation" width="1536" height="864" data-path="images/heros/offers-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/akua-1dce587a/NTgnQstkErDoAPAb/images/heros/offers-dark.svg?fit=max&auto=format&n=NTgnQstkErDoAPAb&q=85&s=13506dcc62d7e7587f30b8e396f0ea2e" alt="A Package version input schema feeds a short Offer link with pre-filled fields, locked inputs, and access rules; the link opens an install wizard that can include checkout before creating an installation" width="1536" height="864" data-path="images/heros/offers-dark.svg" />
</Frame>

An Offer is a shareable URL (`akua.dev/i/<hash>`) that sends a customer into the generated install wizard for a Product or Package version. The wizard is rendered from the pinned Package version's input schema, so customers configure their install without a custom form.

## The flow

```mermaid theme={null}
flowchart TB
    PKG["Package version<br/>Input schema + @ui annotations"]
    PRODUCT["Product<br/>catalog metadata"]
    OFFER["Offer<br/>short hash + access rules"]
    ORDER["Order draft<br/>customer workspace + configuration"]
    CHECKOUT["Checkout<br/>optional payment"]
    INSTALL["Installation<br/>running in a workspace"]

    PKG --> PRODUCT
    PKG --> OFFER
    PRODUCT --> OFFER
    OFFER --> ORDER
    ORDER --> CHECKOUT
    CHECKOUT --> INSTALL
```

The customer opens the Offer, signs in if required, chooses or creates a workspace, fills the generated form, completes checkout when payment is required, and receives an installation. Each redemption is tracked as an [order draft](/marketplace/order-drafts) that moves through those states one at a time.

## What an Offer controls

| Control                | What it does                                                                  |
| ---------------------- | ----------------------------------------------------------------------------- |
| **Target and version** | Selects the Product or Package version used by the wizard                     |
| **Field values**       | Pre-fills Package inputs and can lock fields the customer should not change   |
| **Access**             | Restricts redemption by email, expiry, maximum uses, or private customer flow |
| **Commercial terms**   | Selects the payment or private-sale path allowed for this customer            |
| **Support visibility** | Lets the seller understand where the customer is in the order flow            |

Sensitive values are handled as write-only configuration. Saved offers should show that a value exists, not reveal secret material.

## Generated fields

Each Package input becomes a wizard field. Akua uses:

* KCL docstrings as help text.
* `@ui(order=...)` to sort fields.
* `@ui(group=...)` to group related fields.
* `@ui(widget=...)` for controls such as sliders, password fields, text areas, and selects.
* `@ui(placeholder=...)`, `@ui(min=...)`, and `@ui(max=...)` for form hints and bounds.

See [Package format](/akua/package-format#ui-annotations) for authoring details.

## Public catalog vs private offer

| Path                    | Use when                                                                    |
| ----------------------- | --------------------------------------------------------------------------- |
| **Marketplace listing** | Customers should discover the Product publicly and start from the catalog.  |
| **Reusable Offer**      | You want a shareable campaign or partner URL with a specific configuration. |
| **Private Offer**       | You want per-customer terms, email restrictions, expiry, or locked inputs.  |

All paths create the same kind of [order draft](/marketplace/order-drafts) and installation. The difference is how much context the seller chooses before the customer starts.

To distribute offers through a partner, a private audience, or a beta cohort under reviewed pricing and approval terms, group them behind an [Offer channel](/marketplace/offer-channels). Channels are a restricted, request-only entitlement enabled per workspace by Akua.

## API

<CardGroup cols={2}>
  <Card title="Offers API" icon="link" href="/api-reference/offers/list-offers-in-workspace">
    Create, inspect, archive, unarchive, and resolve offers.
  </Card>

  <Card title="Order Drafts API" icon="cart-shopping" href="/api-reference/order-drafts/list-order-drafts">
    Track customer configuration, workspace selection, checkout, and install progress.
  </Card>

  <Card title="Packages API" icon="cube" href="/api-reference/packages/list-packages">
    Fetch Package versions and input schemas used by generated forms.
  </Card>

  <Card title="Authentication" icon="key" href="/apis/authentication">
    Set up API tokens for seller-side automation.
  </Card>
</CardGroup>

## Related topics

<CardGroup cols={2}>
  <Card title="Order drafts" icon="store" href="/marketplace/order-drafts">
    Track the customer flow started by an offer.
  </Card>

  <Card title="Products" icon="box" href="/products">
    Sellable wrappers around Package versions.
  </Card>

  <Card title="Packages" icon="cube" href="/packages">
    Versioned install definitions and input schemas.
  </Card>

  <Card title="Products" icon="credit-card" href="/products">
    Configure commercial terms on the product an offer distributes.
  </Card>
</CardGroup>
