Write your guidelines first
Above the form, list what you fund, what you don't, how far ahead requests must arrive and how often a group can ask. Then paste the HTML below them and swap in your access key.
Form template · Donation Request Form Template
Updated · plan facts checked against /pricing
A donation request form is the page a business sends charities, schools and teams to when they ask for cash, products, gift cards or a raffle prize. This free HTML template has 15 fields covering the organization, the exact ask, the event and the date a decision is needed, so every request arrives complete.

This template is one of our free HTML form templates. See more form templates by industry. Want supporters to give money to you instead? Use the donation form with Stripe. Choosing a form setup for your nonprofit? Read the guide: Best Contact Form for Nonprofits (2026): Options by Use Case.
No server, API route, or SDK — your Donation Request Form posts straight to one endpoint.
Every submission is emailed to you and saved to a searchable dashboard — spam filtered before it reaches you.
It's plain HTML you own — paste the Donation Request Form snippet, swap in your access key, and ship.
Copy and ship
Plain HTML that posts to the /api/submit endpoint. Replace YOUR_ACCESS_KEY with the key from your dashboard; that's the only edit.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="subject" value="New donation request">
<input type="hidden" name="form_loaded_at" id="form_loaded_at">
<fieldset>
<legend>Your organization</legend>
<label>Organization name
<input type="text" name="org_name" autocomplete="organization" required>
</label>
<label>Type of organization
<select name="org_type" required>
<option value="">Choose one</option>
<option>Registered charity or nonprofit</option>
<option>School, PTA or parent group</option>
<option>Sports team or club</option>
<option>Community group (not registered)</option>
<option>Individual fundraiser</option>
<option>Other</option>
</select>
</label>
<label>Charity registration number, if registered (as shown on the public register)
<input type="text" name="registration_number">
</label>
<label>Contact name <input type="text" name="contact_name" autocomplete="name" required></label>
<label>Email <input type="email" name="email" autocomplete="email" required></label>
<label>Phone <input type="tel" name="phone" autocomplete="tel"></label>
</fieldset>
<fieldset>
<legend>What are you asking for?</legend>
<label><input type="radio" name="request_type" value="Cash donation" required> Cash donation</label>
<label><input type="radio" name="request_type" value="Products or gift cards"> Products or gift cards</label>
<label><input type="radio" name="request_type" value="Raffle or auction item"> Raffle or auction item</label>
<label><input type="radio" name="request_type" value="Services or volunteer time"> Services or volunteer time</label>
<label><input type="radio" name="request_type" value="Venue or equipment"> Venue or equipment</label>
</fieldset>
<label>Describe the request (item, quantity, or amount)
<textarea name="request_details" rows="3" required></textarea>
</label>
<label>Estimated value, in whole dollars
<input type="number" name="estimated_value" min="0" step="1">
</label>
<label>Who benefits, and how will the donation be used?
<textarea name="purpose" rows="4" required></textarea>
</label>
<fieldset>
<legend>Event and timing</legend>
<label>Event or campaign name <input type="text" name="event_name"></label>
<label>Event date <input type="date" name="event_date"></label>
<label>Date you need a decision by <input type="date" name="decision_needed_by" required></label>
</fieldset>
<label>How would you recognize the donation, and roughly how many people would see it?
<textarea name="recognition" rows="3"></textarea>
</label>
<label><input type="checkbox" name="guidelines_ack" value="yes" required>
I have read the donation guidelines on this page.</label>
<!-- honeypot: leave empty -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send donation request</button>
</form>
<script>
document.getElementById('form_loaded_at').value = Date.now();
</script>Field by field
org_type (select)registration_number (text, optional)request_type (radios)request_details + estimated_valuedecision_needed_by (date, required)recognition (optional)guidelines_ack (checkbox, required)How to add it
To add a Donation Request Form to your site you need three things: a free splitforms access key, the HTML snippet above, and your key pasted into it. No backend, database, or CAPTCHA library — the form posts to one URL and every submission lands in your inbox and dashboard.
Above the form, list what you fund, what you don't, how far ahead requests must arrive and how often a group can ask. Then paste the HTML below them and swap in your access key.
Each request is emailed to you and saved in the dashboard. Search by request type or organization; on paid plans, route product asks and cash asks to different inboxes.
Review requests weekly or monthly against the decision dates. Reply from your inbox (Reply goes to the requester's email), or turn on the paid auto-reply to confirm receipt and your timeline.
What's included
Most businesses that give locally get asks through every channel at once: a note at the till, an Instagram DM, an email to whoever looks senior. The yes-or-no decision rests on the same few facts every time: is the group a fit for your giving guidelines, what exactly they want, and whether there is enough time before their event to say yes. This template asks for those facts in that order and adds two fields most donation request forms skip: a required 'decision needed by' date, so urgent asks are visible the day they arrive, and a guidelines checkbox, so people read your rules before they write the request instead of after you decline it. Guidelines above the form, a decision date in it: requests you can answer in one read.

Where submissions go
Reply-to is wired to the visitor's email, so one tap on Reply answers them directly — while the built-in honeypot and automatic spam scoring filter out bots before they reach you. Every submission is emailed to your inbox and can forward to a webhook or Slack the moment a visitor hits send.

How SplitForms works
splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

Point your form to your unique SplitForms endpoint. That's it.

We instantly capture and organize every submission in your inbox.

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

No credit card required. Set up in under 60 seconds.
Connect & automate
On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Questions
It is the form a business, foundation or local shop puts on its website so charities, schools and teams can ask it for a donation: cash, products, gift cards, raffle prizes, services or a venue. This template is that kind. If you want supporters to give money to you, that is a donation form, not a request form: the splitforms donation form (linked under the intro) takes one-time gifts through Stripe Checkout on paid plans.
Pick a lead time that matches how often you review requests, state it in your guidelines above the form, and use the required 'decision needed by' date to spot requests that arrive too late. Businesses that review monthly usually need more notice than ones that decide weekly.
Ask for the registration number, as this template does, and look it up on the public charity register for your country before you approve. Many asks come from teams and school groups that are not registered charities; decide in your guidelines whether you give to them. Whether a donation is tax-deductible for your business depends on local tax rules, so check with your accountant.
Yes, on paid plans. Answer-based routing sends a submission to a different inbox depending on an answer, so the request_type radio can send product and raffle asks to a store manager and cash asks to whoever holds the giving budget. On the Free plan, every request goes to your main notification address.
Each notification email uses the requester's email as the Reply-To, so you can answer from your inbox. Keep a short decline template that points to your guidelines. On paid plans, the auto-reply can confirm every request on arrival and say when you review them, which cuts 'did you get my email?' follow-ups.
Each request is one submission, and the Free plan covers 500 submissions in total, not per month, with no card. Paid plans add answer-based routing, the auto-reply and CSV export for year-end giving reports; Pro is $5 per month.
Simple pricing
Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.
For side projects and indie devs.
Every paid feature, for agencies and growing products.
Every Pro feature with triple the volume — $0.27 per 1,000 at full use.
No credit card required on Free • Cancel anytime • Full pricing and FAQ