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

# Pay What You Want Pricing

> Let customers choose their price above a minimum. Optionally show a suggested price. Optimized for one-time purchases.

Pay What You Want (PWYW) lets customers decide how much they pay—at or above a merchant-defined minimum. It increases engagement, encourages community support, and provides flexible pricing for digital products.

<Frame>
  <iframe className="w-full aspect-video rounded-md" src="https://www.youtube.com/embed/Lh0Q01b33NY" title="Pay What You Want Pricing | Dodo Payments" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</Frame>

## What Is Pay What You Want?

PWYW is a pricing model where customers set their own price within guardrails you define. It's ideal for:

* **Digital products and media**: Templates, e-books, courses, plugins.
* **Experimental launches**: Early access, beta releases, time-boxed promos.
* **Bundles and extras**: Add a PWYW tier to boost participation.

## Key Benefits

* **Customer-driven pricing**: Buyers choose what they pay.
* **Revenue floor**: Enforce a minimum to protect margins.
* **Anchored expectations**: Optional suggested price to guide choices.
* **Hosted checkout**: Checkout and receipts handled for you.
* **Developer-first**: Clear APIs for creation, refunds, and webhooks.

<Warning>
  PWYW is available only for products with the **One Time** pricing type. The product's base currency must be USD, GBP, or EUR, and PWYW can't be combined with [Localized Pricing](/features/localized-pricing).
</Warning>

## Creating Pay What You Want

Create a one-time product and enable PWYW in your Dodo Payments dashboard. The sections below map directly to the creation form.

### Product Creation

#### Product Details

* **Product Name** (required): Display name shown in checkout and invoices.
* **Product Description**: Clear value statement customers see before paying.
* **Product Image**: PNG, JPG, or WebP up to 3 MB.
* **Brand**: Associate the product with a specific brand for theming and emails.
* **Tax Category** (required): Choose the correct category to determine tax rules.

<Tip>
  Pick the most accurate tax category to ensure correct tax collection per region.
</Tip>

#### Pricing

* **Pricing Type**: Choose **One Time**.
* **Pay What You Want** (toggle): Enable to let buyers choose the amount.
* **Minimum Price** (required): Lowest allowed amount a customer can pay.
* **Suggested Price** (optional): Recommended amount shown on the product page. It can't be lower than the minimum price.

<Tip>
  Use metadata to store identifiers from your system (e.g., orderId) so you can reconcile events and receipts later.
</Tip>

#### Sharing a Link With a Fixed Amount

When you share a checkout link for a PWYW product from **Products**, open **Advanced Settings** and set a **Payment amount** to charge exactly that value instead of letting the buyer choose. The amount must be at or above the product's Minimum Price, and it is carried on the link as the `paymentAmount` query parameter in major currency units (e.g., `12.5` for \$12.50). Leave the field empty to keep the buyer-chooses-amount behavior.

## API Management

<AccordionGroup>
  <Accordion title="Create Checkout Sessions (PWYW)">
    Use `POST /checkouts` to create one-time checkout sessions from products. Checkout will prompt buyers to enter an amount that meets your PWYW minimum.

    <Card title="API Reference" icon="code" href="/api-reference/checkout-sessions/create">
      View the create checkout session API.
    </Card>
  </Accordion>

  <Accordion title="Refund Payments">
    Use `POST /refunds` to create full or partial refunds. Customers are refunded the exact amount they paid.

    <Card title="API Reference" icon="code" href="/api-reference/refunds/post-refunds">
      Learn how to refund a payment.
    </Card>
  </Accordion>

  <Accordion title="List and Retrieve">
    Use `GET /payments` to list payments and `GET /payments/{payment_id}` to retrieve one. Retrieve line items with `GET /payments/{payment_id}/line-items`.

    <Card title="List Payments" icon="code" href="/api-reference/payments/get-payments">
      Browse the listing API.
    </Card>

    <Card title="Get Payment Detail" icon="code" href="/api-reference/payments/get-payments-1">
      See the retrieval API.
    </Card>

    <Card title="Retrieve Line Items" icon="code" href="/api-reference/payments/retrieve-line-items">
      Inspect purchased items for a payment.
    </Card>
  </Accordion>

  <Accordion title="Payment Webhooks">
    React to events like payment.succeeded or payment.failed in your backend.

    <Card title="Webhook Guide" icon="code" href="/developer-resources/webhooks/intents/payment">
      Handle payment lifecycle events.
    </Card>
  </Accordion>
</AccordionGroup>

## Common Use Cases

* **Digital assets**: Themes, templates, icon sets, media, or plugins.
* **Content and education**: E-books, courses, workshops with supporter pricing.
* **Community and donations**: Fundraisers, open-source sponsorships, creator support.
* **Launch experiments**: Beta access and time-boxed campaigns to gauge demand.

## Integration Examples

### Checkout Sessions (Single Payment, PWYW)

Add a PWYW product to the cart. Checkout collects the buyer's amount (respecting your minimum) — no extra fields are required.

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'pdt_pwyw_demo', quantity: 1 }
  ],
  return_url: 'https://yoursite.com/checkout/success'
});
```

## Best Practices

* **Choose a sensible minimum**: Cover costs while keeping participation easy.
* **Use a suggested price**: Anchor expectations to improve average order value.
* **Explain value clearly**: Tell buyers what their contribution unlocks.
* **A/B test campaigns**: Time-box offers and experiment with messaging.
* **Monitor distribution**: Track paid amounts to refine minimum and suggested price.


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