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
Create checkout sessions (PWYW)
Create checkout sessions (PWYW)
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.
Refund payments
Refund payments
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.
List and retrieve
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
.List Payments
Browse the listing API.
Get Payment Detail
See the retrieval API.
Retrieve Line Items
Inspect purchased items for a payment.
Payment webhooks
Payment webhooks
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.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.