Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
    Overview
    Quickstarts
    Customize look and feel
    Collect additional information
    Collect taxes
    Dynamically update checkout
    Manage your product catalog
      Manage limited inventory
      Make line item quantities adjustable
      Let customers decide what to pay
    Subscriptions
    Manage payment methods
    Let customers pay in their local currency
    Add discounts, upsells, and optional items
    Set up future payments
    Save payment details during payment
    Manually approve payments on your server
    After the payment
    Elements with Checkout Sessions API beta changelog
    Migrate from legacy Checkout
    Migrate Checkout to use Prices
Build an advanced integration
Build an in-app integration
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsBuild a checkout pageManage your product catalog

Let customers decide what to pay

Accept tips and donations, or sell pay-what-you-want products and services.

Copy page

Inline pricing

If you maintain your product catalog outside of Stripe, you might want to use inline pricing. With inline pricing, you set inline prices for products or services when you create a Checkout Session.

You can also use inline pricing to collect donations. However, unlike pay-what-you-want pricing, you can’t reuse or update inline prices, and they’re only available through the API.

You can use this feature to collect a tip for a service provided, accept donations for a cause, or give your customers the option to pay what they want for your product or service. Go to Stripe Support to learn more about Stripe’s requirements for accepting tips or donations.

Pay-what-you-want payments have the following limitations:

  • You can’t add any other line items and the quantity can only be 1.
  • You can’t use promotion codes or discounts with them.
  • They don’t support recurring payments or optional items.
Custom amounts

Set up your product catalog

Stripe Checkout uses Products and Prices to structure pay-what-you-want payments. In the following example, Togethere is selling tickets to a fundraising dinner and wants to allow their customers to pay what they want for their tickets.

To create a pay-what-you-want model on Stripe through the Dashboard, complete these steps:

  1. Create the Fundraising dinner product.

    1. Go to More > Product catalog.
    2. Click +Add product.
    3. Enter the Name of the product (Fundraising dinner).
    4. (Optional) Add a Description. The customer sees the description at checkout.
  2. Create the price for the Fundraising dinner product:

    1. Click on More pricing options at the bottom.
    2. Select One-off.
    3. Select Customer chooses price in the Choose your pricing model dropdown.
    4. (Optional) Add a suggested price.
    5. (Optional) Specify limits that the customer can input.
    6. Click Next and Add product.

Create a Checkout Session

To enable customers to change the amount on the payment page, use the price ID when you create a Checkout Session. If you select Customer chooses price as your pricing model, you can’t add any other line items and the quantity can only be 1.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ --data-urlencode cancel_url="https://example.com" \ -d "line_items[0][price]"=
{{PRICE_ID}}
\ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success"
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc