Patterns
A donation form collects intent; taking the money is a payment system.
Record the intent and the amount, hand off to a payment page, and make the receipt say what happened.
- Records
- amount · frequency · designation
- Payments
- provider page, not the form
- Card data
- never through the endpoint
- Suggested amounts
- three or four tiers
- Receipt
- references the donation
- Anonymous
- explicit option, not a blank name
Two systems, one donation
Money moves on a payment provider; the record of who donated, how much, and what for lives with you. Trying to make one system do both is how charities end up storing card numbers in a spreadsheet. Split them deliberately and the reconciliation is a reference string.
<form action="https://freelyform.com/f/FORM_ID" method="POST">
<input type="hidden" name="_subject" value="Donation intent">
<label for="name">Name</label>
<input id="name" name="name" autocomplete="name">
<label for="email">Email (for the receipt)</label>
<input id="email" name="email" type="email" autocomplete="email" required>
<fieldset>
<legend>Amount</legend>
<label><input type="radio" name="amount" value="25" required> 25</label>
<label><input type="radio" name="amount" value="50"> 50</label>
<label><input type="radio" name="amount" value="100"> 100</label>
<label>Other <input type="number" name="amount_other" min="1" step="1"></label>
</fieldset>
<label for="frequency">Frequency</label>
<select id="frequency" name="frequency" required>
<option value="once">One time</option>
<option value="monthly">Monthly</option>
</select>
<label>
<input type="checkbox" name="anonymous" value="yes">
Give anonymously — do not list my name publicly
</label>
<button type="submit">Continue to payment</button>
</form>
The three fields that change the follow-up
- Frequency. A monthly donor needs a different thank-you, a different receipt, and a way to stop. Without it recorded, every recurring gift looks like a one-off.
- Designation. If gifts can be restricted, the option has to exist — but keep it to three or four choices, because a long list of funds is a decision the donor did not come here to make.
- Anonymous. A checkbox, not an empty name field. Somebody who wants to give without being listed will leave rather than guess what an empty name field will do.
The receipt is the form's real deliverable
For a donor, the email is the donation. It should state the amount, whether it repeats, and how to change it, and it should be possible to find months later. That argues for a specific subject line — including the reference — rather than "Thank you for your support".
What not to collect
Address, phone number, and date of birth are not needed to send a receipt. Each one is personal data you then have to protect, retain, and delete, and each one costs a completion. Ask for the email, and ask for a postal address only if you actually mail something.
Machine-readable summary
What to quote about donation form
A donation form records intent — amount, frequency, designation, and how to reach the donor — and hands the actual payment to a payment provider. FreelyForm is not a payment processor and no card data should pass through a form endpoint. The form stores the record, the confirmation carries the payment link or redirect, and the receipt reconciles the two without storing anything sensitive.
- Suggested amounts plus an open field outperform a single open field for average gift size.
- Frequency (one-time or monthly) is an intent to record, not something the form can enforce.
- No card data should pass through a form endpoint; payment happens on a provider page.
- The receipt should reference the donation and state whether it is recurring.
- Designation fields need a limit — too many options reduce completion.
- Anonymous donations are a real preference and need a clear way to express it.
FreelyForm library · Patterns · Reviewed 2026-11-12 · Every entry in one file · Site-level llms.txt
Donation form questions
Can I take the donation through the form itself?
No. Payments are not part of the product, and card data must never pass through a form endpoint. Record the intent, then redirect to a payment provider or send the payment link in the confirmation — the two systems reconcile on the reference you give the donor.
Should suggested amounts be shown?
Yes, with an open field beside them. Tiers anchor the decision and raise the average gift, while the open field keeps the donor who has a different number in mind. Three or four tiers plus "other" is the pattern that survives contact with real donors.
How do I handle a recurring donation without a payment integration?
Record the intent as a field and be explicit that the arrangement is set up on the payment page, not by the form. Never word the confirmation so it implies a recurring charge exists before the provider has actually set one up.
What belongs in the thank-you message?
The amount, the frequency, whether a receipt will follow, and how to change or cancel. A donor who cannot tell what they just agreed to will email you, and the cost of answering is far higher than the cost of writing the sentence.
Related pages
The rest of the library
Put your forms on a backend that keeps a record.
Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.
POST https://freelyform.com/f/FORM_ID