Transaction costs
Increase donation amount by encouraging supporters to cover transaction costs.
During their donation, you can present supporters with the option to cover the transaction costs associated with the donation they're making. When a supporter elects to cover transaction costs, they donate an additional amount that approximately covers the Fundraise Up platform fees and the payment processing fees charged by Stripe or PayPal.
Cost coverage modes
When you open the Transaction costs section of your campaign settings, there are five cost covering modes that can be configured — they are described below.
- Adaptive cost coverage: this fee covering mode uses AI to determine when a supporter should be prompted to cover transaction costs. By using AI to learn about supporters who are most likely to cover transaction costs, this approach optimizes conversion.
While the goal of some other fee covering models is to maximize the number of donations with cost coverage, the objective of our adaptive cost coverage is to increase revenue output, even if fewer supporters ultimately cover transaction costs.
Adaptive cost coverage is our recommended mode for transaction costs, and it is enabled by default in newly-created campaigns.
From the blog: The Science Behind Adaptive Cost Coverage - Show and preselect the option to cover costs: in this mode, the option to cover transaction costs is displayed to a supporter and is selected by default. If you cannot use the Adaptive cost coverage option for some reason, this is our recommended alternative. When the option to cover costs is preselected, a majority of supporters will opt to cover transaction costs.
- Show the option to cover costs: when this mode is enabled, a supporter is shown the option to cover transaction costs, but it is not preselected.
- Require that donors cover costs: when this mode is enabled, a supporter’s total donation amount will include the additional amount required to cover the donation’s transaction fees.
- Hide the option to cover costs: when this mode is enabled, supporters are not shown the option to cover transaction costs. The net donation amount that your organization receives is the supporter’s donation amount minus the fees assessed by Stripe and Fundraise Up. We do not recommend using this setting for typical implementations.
Tax deductibility
The tax deductibility of a supporter’s donation extends to the transaction fees covered by the supporter. This is because the supporter is simply increasing the amount of their donation. It is as if the supporter is making a second “cost of business” donation. The supporter’s donation receipt reflects the total donation amount, including the fees they covered.
Reconciliation
For accounting purposes, you may want to track the fees assessed on donations, even if they are covered by supporters. You can do this through Exports — by adding fee-related fields to a donation report — or by syncing fee data to a connected app through Fundraise Up's built-in integrations.
Across exports and integrations, Fundraise Up records donation amounts at three distinct points in the payment lifecycle. Each represents something different, and they are not always equal.
- Donation Amount is the total charged to the supporter. If the supporter covered transaction costs, this includes their original donation plus the fee coverage amount. If cost coverage was off, this equals what they entered in the donation field.
- Donation Amount Before Fees Covered is the amount the supporter typed into the donation field — their intended donation, before fee coverage was calculated and added. If the supporter did not cover costs, this equals Donation Amount.
- Donation Payout Amount is the net amount your organization receives, as reported by the payment processor after all fees are deducted: Fundraise Up's platform fee and the payment processor's own fees.
Why Donation Amount Before Fees Covered and Donation Payout Amount differ
When a supporter opts into cost coverage, Fundraise Up calculates an estimated fee amount before the payment is processed and adds it to the total charge. The actual fees applied by Stripe or PayPal are determined later, during processing, and may differ from that estimate.
Payment method is the main variable: American Express carries higher processing fees than Visa or Mastercard, for example. Processors may also apply additional charges for currency conversion, taxes, or account-specific settings.
As a result, Donation Amount Before Fees Covered reflects the supporter's original input with fee coverage based on an estimate, while Donation Payout Amount reflects the final net amount after actual processor fees are applied. The difference is typically small but will rarely be zero when cost coverage is on. See how fee coverage and payout amounts are calculated →
Refunds and disputes
When a donation is refunded, Donation Payout Amount becomes a negative number. Payment processors do not return their fees on refunded transactions, so the payout does not cancel out to zero.
In a lost dispute, Donation Payout Amount is also negative, and includes both the transaction fee and the processor's dispute fee.
Export fields and integration properties
Below are the available fields and properties related to cost coverage.
| Export field | Integration property |
|---|---|
| Converted Donation Amount Before Fees Covered Option ([account currency]) | Converted amount ([account currency]) before fees covered |
| Donation Amount Before Fees Covered | Amount before fees covered |
| Converted Payment Processing Fee ([account currency]) | converted payment processing fee ([account currency]) |
| Payment Processing Fee | payment processing fee |
| Payment Processing Fee Currency | payment processing fee currency |
| Converted Platform Fee ([account currency]) | converted platform fee [account currency] |
| Donation Platform Fee | platform fee |
| Donation Platform Fee Currency | platform fee currency |
| Refunded Platform Fee | refunded platform fee |
| Supporter Covered Fee | supporter covered fee |
This data can also be sent to other apps and services using the JavaScript API. Learn more →