Skip to main content
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.

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
  • Seamless checkout: Hosted checkout and receipts handled for you
  • Developer‑first: Clear APIs for creation, refunds, and webhooks
PWYW is available only for Single Payment (one‑time) products.

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 (required): Clear value statement customers see before paying
  • Product Image (required): PNG/JPG/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
Pick the most accurate tax category to ensure correct tax collection per region.

Pricing

  • Pricing Type: Choose Single Payment
  • 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
Use metadata to store identifiers from your system (e.g., orderId) so you can reconcile events and receipts later.

API Management

Use POST /checkout-sessions/create to create one‑time checkout sessions from products. Checkout will prompt buyers to enter an amount that meets your PWYW minimum.

API Reference

View the create checkout session API.
Use POST /refunds to create full or partial refunds. Customers are refunded the exact amount they paid.

API Reference

Learn how to refund a payment.
Use GET /payments to list payments and GET /payments/{payment_id} to retrieve one. Retrieve line items with GET /payments/{payment_id}/line-items.

List Payments

Browse the listing API.

Get Payment Detail

See the retrieval API.

Retrieve Line Items

Inspect purchased items for a payment.
React to events like payment.succeeded or payment.failed in your backend.

Webhook Guide

Handle payment lifecycle events.

Common Use Cases

  • Digital assets: Themes, templates, icon sets, media, or plugins
  • Content and education: E‑books, courses, workshops with supporter pricing
  • Community & 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.
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_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
PWYW is a flexible way to invite more customers in while preserving a revenue floor. Start simple, test thoroughly, and iterate based on conversion, contribution distribution, and refund rates.
I