Private preview
Let donors help cover processing fees Private preview
Private preview
Fee coverage is in private preview and is only available to eligible US non-profits. Request access to fee coverage.
You can enable fee coverage for one-time donations on Checkout Sessions and Payment Links. This lets a donor add an optional amount to their donation to help cover your card processing fees. Stripe presents the option in Checkout, updates the order total when the donor adds or removes it, and records the amount on the completed Checkout Session.
How fee coverage works
Stripe selects fee coverage by default, and donors can choose to remove it before completing the payment. The default selection and fee coverage calculation are fixed.
Stripe uses a fixed calculation based on the donation amount and shows the resulting fee coverage amount to the donor before payment. The calculation doesn’t add additional coverage for processing fees on the fee coverage contribution itself.
The fixed calculation is based on Stripe’s US non-profit pricing, rather than your account’s actual processing rate. Non-profit discounted pricing isn’t a separate fee coverage eligibility requirement, so fee coverage approximates the processing fees for a payment.
Before you begin
Fee coverage has the following requirements:
- Your Stripe account must be in the United States and classified as an eligible non-profit .
- Your account must use MCC 8398 (Charitable and Social Service Organisations - Fundraising).
- Use API version 2026-08-26. preview or later when you create a Checkout Session or Payment Link.
- Create card-only sessions. Link , Apple Pay and Google Pay are supported and appear when the buyer and session are eligible. Other payment methods aren’t available with fee coverage.
- Use a Stripe-hosted checkout page, Embedded Checkout or Payment Links.
Fee coverage isn’t supported with Connect platform integrations, subscriptions, manual capture, automatic tax, invoice creation, promotion codes, Adaptive Pricing or automatic surcharge. Additionally, you can’t enable fee coverage in the Stripe Dashboard.
Create a Checkout Session
Set the Stripe-Version header when initialising your Stripe client.
Set fee_coverage[enabled] to true and set payment_method_types to card when you create the Checkout Session.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Add a custom disclosure
You can provide a custom disclosure of up to 150 characters with fee_coverage[disclosure]. Checkout displays the disclosure with the fee coverage offer. Consult your legal or tax advisors about the language you show donors, including whether the additional amount is tax deductible.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Create a Payment Link
To offer fee coverage with a Payment Link, set fee_coverage[enabled] to true. Payment Links have the same eligibility requirements and support the same optional disclosure as Checkout Sessions.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Handle completed payments
When a donor adds fee coverage, the Checkout Session’s amount_total includes the donation and fee coverage amount. The fee_coverage_cost.amount_total property contains only the fee coverage amount, in the smallest currency unit. If the donor doesn’t add fee coverage, fee_coverage_cost isn’t present.
Stripe shows the donation and fee coverage as separate items on the donor’s receipt and records Fee coverage as an amount details line item on the PaymentIntent. You can use these fields to identify the fee coverage amount in the Dashboard and in your reporting.
Test fee coverage
Fee coverage works in a sandbox without additional test configuration. Create a test Checkout Session or Payment Link, then verify both paths:
- Remove the default-selected fee coverage and complete the payment. Confirm that the total equals the donation and fee _ coverage _ cost isn’t present.
- Complete a payment after adding fee coverage. Confirm that Checkout updates the total and the completed Session includes fee _ coverage _ cost. amount _ total .
For custom-amount donations, verify that Checkout calculates and displays fee coverage after the donor enters an amount.