How-To Guides6 min read

Donation Page Launch Checklist for Agencies

You built the nonprofit a gorgeous donation page. Before you flip it live, here is the checklist that keeps a 2am "donations are broken" call from being your fault.

KindLumen TeamNovember 25, 2025Updated November 25, 2025

Quick answer

  • Test a real gift and refund it before you ever go live.
  • Confirm payouts land in the client’s account, not yours.
  • Hand off a one-page "who to call" doc with every launch.

A donation page is the one part of a nonprofit site where a bug costs actual money. A broken contact form is annoying. A broken donate button on giving Tuesday is a board meeting. So the QA you do before handoff matters more here than almost anywhere else on the build.

This is the checklist we run before a client donation page goes live. It is deliberately boring and skimmable, because the whole point is to catch the dumb stuff before a donor does. Work through it top to bottom, and do the test gift for real, not in your head.

nonprofit operators planning website donation improvements together for Donation Page Launch Checklist for Agencies

First, confirm the money actually flows to the client

Everything else is cosmetic if the money lands in the wrong account. This is the part you check first and check twice.

  1. Stripe is connected to the client’s own account. Not yours, not a "we’ll move it later" placeholder. Log into the dashboard and confirm the business name, the bank account on file, and the email on the account all belong to the client.
  2. Payout schedule is set and the bank account is verified. A connected Stripe account with an unverified bank will happily take charges and then sit on the money. Confirm the first payout date.
  3. The org’s legal name and EIN are on the account if they’re a registered nonprofit, so they can apply for the discounted processing rate later.

If you’re using an embed tool rather than raw Stripe, the same rule holds: the form should pay out to the client’s connected account directly, with no pooled middle account holding funds. That’s the model we built KindLumen around for exactly this reason — agencies shouldn’t be in the custody business.

Make a real donation, then refund it

This is the single highest-value thing on the list, and the one people skip because it costs a few dollars and feels silly. Do it anyway.

  1. On the published page (not a staging preview), make a genuine $1–$5 donation with a real card.
  2. Confirm the charge appears in the client’s Stripe dashboard within a minute.
  3. Confirm a receipt email actually arrives — check spam too.
  4. Confirm a donor record was created wherever the client will look for it.
  5. Refund the gift from the dashboard and confirm the refund processes cleanly.

Test card numbers in a test environment are fine for catching obvious breakage, but they don’t prove the live keys are wired right. Live keys are a different switch, and "it worked in test mode" is how a lot of launches quietly fail. One real gift end to end is worth ten test-mode runs.

Confirm recurring giving actually recurs

Monthly donors are the most valuable thing most nonprofits have, so a broken recurring toggle is expensive in slow motion. You can’t wait a month to find out, so check the setup instead of the outcome.

  • The monthly option is visible and easy to pick, not buried.
  • Selecting monthly creates a subscription in Stripe, not a one-time charge that just says "monthly" on the button.
  • The subscription shows the right amount and interval in the dashboard.
  • There’s a sane plan for failed renewals — most tools retry and email the donor, but confirm it’s on.

If you want the deeper version of this for non-developer sites, collecting donations on a no-code website covers how recurring works when there’s no backend you control.

The donor-facing experience

Now the part the donor actually sees. Run each of these on a real phone, not a desktop browser shrunk down. Most giving happens on mobile, and a form that overflows an iPhone is a dead form.

  1. Mobile layout: nothing overflows, the amount buttons are tappable, the keyboard doesn’t cover the submit button.
  2. Suggested amounts are set with one sensible default highlighted, plus a working custom-amount field.
  3. Thank-you page or message exists and says something human. Don’t leave the donor staring at a spinner or a blank page after they give.
  4. Receipt email is branded with the client’s name and includes tax language — the org’s legal name, EIN, and a line about the gift being tax-deductible to the extent allowed. Get the client to sign off on this wording; it’s their compliance, not yours.
  5. The form loads without shoving your layout down as it appears. Reserve space for it so the page doesn’t jump.

Tracking, accessibility, and fees

The stuff that doesn’t break loudly but bites later.

CheckWhat "done" looks like
AnalyticsA conversion event fires on a completed gift, and campaign links carry UTMs so the client can tell which appeal worked.
AccessibilityFields have labels, the form is keyboard-navigable, contrast passes, and a screen reader can get through the flow.
Fees confirmedThe client knows the real processing rate (Stripe is 2.9% + 30¢ standard, 2.2% + 30¢ for approved nonprofits) and any tool fee, in writing. No surprises on the first statement.
Cover-fees optionIf you offer donor fee-coverage, it’s tested and the math is right.

None of these are glamorous, but they’re the items that generate "why is our number off?" emails three weeks after launch.

The handoff: a one-page "who to call" doc

The launch isn’t done when the page goes live. It’s done when the client can run it without you. Write a single page — literally one page — and include:

  • Where to log in to see donations and run a basic report.
  • How to edit suggested amounts and form copy themselves, with a screenshot.
  • Where receipts come from and how to resend one.
  • Who to contact for a payment issue (the processor) versus a form issue (you or the tool), so they don’t email the wrong party in a panic.
  • Their payout schedule and where the money lands.

This document is what turns a one-time project into a happy reference and, often, a referral. A client who can edit their own donation amounts at 9pm without a support ticket is a client who renews. For more on what they’re really judging you on, see what nonprofit clients actually want from a donation form.

Frequently asked questions

Do I really need to make a real donation to test?

Yes. Test-mode runs catch obvious breakage but don’t prove your live keys, live receipts, and live payouts are wired correctly. One real $1 gift, refunded afterward, is the cheapest insurance you’ll ever buy on a launch.

Should the donation funds ever pass through my agency account?

No. Connect the form or Stripe to the client’s own account so money flows directly to them. Holding donor funds, even briefly, creates custody, tax, and trust problems you do not want as an agency.

Who owns the tax language on receipts?

The nonprofit does. You set up the receipt template and get it sending, but the client signs off on the legal name, EIN, and deductibility wording. It’s their compliance obligation, so don’t guess it for them.

How do I hand off so I don’t get every support question?

Ship a one-page doc that separates "payment problem, call the processor" from "form problem, call us," and show the client how to edit amounts and resend receipts themselves. Self-service on the small stuff is what keeps the relationship clean.

Product links

Use the research, then choose the right donation setup.

Compare your options, then move into a donation setup your team can launch and maintain with confidence.

Related reading