For school admins, PTAs & advisors

You run it. We keep it simple.

Fundly handles the payment infrastructure. You approve campaigns, set the rules, and your org’s bank receives the money. One flat fee per campaign — we take nothing from donations or sales.

How it works

  1. Create your organization account and get verified.
  2. An advisor or club leader builds a campaign — or you build it yourself.
  3. You review and approve it. Pay the flat launch fee. It goes live.
  4. Supporters give or buy as guests — no account, no password needed.
  5. Stripe deposits the money directly to your bank. Fundly keeps nothing else.

Three ways to raise money

Donation drive

Set a goal. Supporters give toward it as guests — no account needed. A progress bar updates live as gifts come in. Good for trips, equipment, or any single-purpose goal.

See an example

Product sale

Run an online store with as many products as you like — t-shirts, hoodies, snacks, anything. Fulfill orders yourself or connect Printful or Printify and let the printer handle production, inventory, and shipping. Run the store as a pre-sale window so you only order what actually sold.

See an example

Event table

For in-person events — a PTA table at a game, a quick donation drive at a concert, a spirit pop-up in the gym lobby. Set it up in minutes, print QR cards, run it for hours. Flat $15 launch fee, no per-student charge.

Event mode

More on event mode. Cash collection at school events is hard to reconcile. Event mode is the cashless version — people scan a QR code at your table and check out on their phone, for a specific item or a quick donation. No one needs a Fundly account. You set it up and launch it yourself in one click; there is no waiting on an approval cycle for something that starts in an hour. Campaigns close automatically when the end time passes.

Event mode also enables two sale-specific overlays: redeem at table (buyer pays on their phone and collects their item at the table with a QR scan — no cash, no guessing who paid) and time-gated promotions(tap “Go live now” to start a countdown discount — great for an intermission special).

Works well for:

  • Snack or merch sales at a game or concert
  • Supporters pay on their phone and collect their item at the table with a QR scan
  • Cashless contribution drives at a gala or banquet
  • Spirit store pop-ups at back-to-school night
  • Flash-sale promotions during intermissions or halftime

Sale campaigns

Tools built into every sale campaign

Donation drives stand alone. Sale campaigns add a product catalog, fulfillment workflow, and a set of tools that adapt to how your org sells — online, at an event, or both.

Multi-product campaigns

Add as many products as you like — a spirit store might carry a t-shirt, hoodie, mug, and tote all in one campaign. For each product you choose how it’s fulfilled:

Ship it yourself

Set a price and optional inventory count. Orders appear in your dashboard as they come in; inventory decrements when payment clears. Mark orders fulfilled and add tracking numbers manually.

Print-on-demand

Upload artwork, pick a product type from the provider catalog, select colors and sizes. Fundly fetches a mockup preview and shows the wholesale cost for reference. Orders route to the printer automatically when payment clears — you never touch stock.

Products can mix fulfillment modes in the same campaign — a self-fulfilled popcorn bag alongside a print-on-demand hoodie, all in one checkout.

Print-on-demand (Printful / Printify)

Connect your free Printful or Printify account once in org settings. After that, adding a custom product takes a few minutes:

  1. Connect your free Printful or Printify account once in org settings — that's the only one-time setup.
  2. For each product: upload your artwork (PNG or SVG), pick a product type from the provider catalog, select colors and sizes.
  3. Fundly calls the mockup API and shows a preview alongside the wholesale cost for that variant combination.
  4. Set your retail price and save — the product is live on your campaign storefront immediately.
  5. When a buyer purchases, Fundly submits the order to the provider automatically after Stripe confirms payment. A tracking link appears in your order dashboard when the item ships.
Your org owns and pays the provider account directly — Fundly acts on your behalf via OAuth and routes orders, but never handles your production costs. A per-order safety cap in org settings lets you hold large orders for your review before they are submitted.

Pre-sale mode — sell first, order what sold

Running a hoodie fundraiser but don’t want to guess how many to order? Toggle Run as pre-sale when creating the campaign and set a window close date. Supporters pay normally during the window; your fulfillment waits.

  1. Toggle "Run as pre-sale" when creating the campaign and set a window close date.
  2. Supporters pay normally during the window — their cards are charged at checkout, and order records are created.
  3. When the window closes, your dashboard shows aggregate counts: sizes sold, total revenue, and estimated wholesale cost.
  4. Tap "Submit all orders" to send every print-on-demand order to the provider at once. For self-fulfilled products, download the supplier summary CSV with aggregate quantities by SKU.
  5. You buy exactly what was sold — no leftover stock, no upfront inventory commitment.

If something falls through, a bulk-cancel sends Stripe refunds to every buyer automatically and emails them the reason you write.

Promotions & coupons

Three coupon modes — create them ahead of time, then choose when and how they activate:

One-tap manual activation (great for intermissions)

Pre-create a coupon before the event — for example, "20% off everything for 10 minutes." At intermission, open your campaign's Promotions strip and tap "Go live now (10 min)." A banner with a live countdown appears on the storefront. When the window expires, normal pricing resumes automatically.

Scheduled window

Set a start and end time in advance. The coupon activates and expires on schedule — useful for early-bird pricing at launch or a last-day push.

Code-entry

Issue a code like STUDENT15. Buyers type it at checkout; the discount is applied before Stripe charges and appears as a separate line item on every receipt and in the confirmation email.

Coupons can apply to all products or to specific ones. The discount appears as a line item on checkout, the buyer confirmation email, and the Stripe charge description — so every receipt reconciles cleanly.

Cashless pickup — pay on phone, collect with a code

Set the fulfillment method to Redeem at event table on any product. When a supporter pays, they receive a 6-character code and a QR — on their thank-you screen and in their confirmation email.

At the table, staff open the scanner page on their phone. They scan the buyer’s QR or type the 6-character code. The order summary appears — items, sizes, total. Tap Mark redeemed. The order closes and the audit trail records who redeemed it and when.

If a code is scanned a second time, the screen shows “Already redeemed at 7:42 PM by Coach Smith.” No ambiguity, no free refills, no disputes.

Students can be authorized to staff the table — set the “can redeem” flag on their campaign assignment and they get access to the scanner page only.

How students are involved

Under your supervision

Students aged 13 and up can be assigned to standard campaigns. They help write the story, share the link, and post updates. An adult advisor is always attached — students don’t run anything unsupervised.

Quests & tokens

Planned for after launch: students earn tokens for effort, not for dollars raised — sharing the campaign, posting an update, thanking a donor, helping with logistics. You define the rewards. Fundly never sets or prices them. Tokens can’t be cashed out.

How people find your campaign

Every campaign gets a shareable link. Post it in your school newsletter, email blast, or social media — or print a QR code for a flyer. Supporters don’t need a Fundly account. They give or buy as guests and each person receives an emailed record of their transaction.

Event mode adds item-specific QR codes that go straight to checkout — no navigating, just scan and pay. Useful if you’re staffing a table and want to keep a line moving.

The money side

A launch fee that scales with your team

Standard campaigns: $2 per student on the roster, $10 minimum. Event mode: flat $15. The fee is shown before you launch — no surprises, no fine print. Fundly never takes a percentage of what you raise or sell.

Straight to your bank

Your org connects a bank account through Stripe. Donations and purchases go directly to that account on Stripe’s normal payout schedule. Fundly never holds your money — there’s no release step, no waiting on us.

You stay in control

You see every donation and order in your dashboard. Co-admins can share the workload. You approve campaigns before they go live and can pause or close them at any time.

Platform details

How the platform is built

For administrators who want to understand the data model, access controls, and security posture before signing up.

Your organization’s space

Each organization is a separate tenant. Your campaigns, donors, orders, students, and payout data are strictly isolated — no user at another school can read or write anything in your account, and no query runs without being filtered to your organization. This is enforced at the database query layer, not just the UI.

Before your organization can launch campaigns, Fundly verifies it is real. 501(c)(3) EINs are checked against IRS public data; public schools are matched against the NCES national school database. Organizations that don’t auto-match go through manual review by platform staff. Verification drives the public “verified” badge on your campaigns and determines whether donors can use tax-deductibility language.

Branding & customization

Campaigns look like your school, not like a generic platform page. Two levels of theming:

Organization-level

Set your primary and secondary brand colors and upload a logo. These become the default for every campaign your org runs.

Campaign-level

Override colors, upload a custom hero image, and set a custom call-to-action label per campaign. Campaign settings take precedence over org settings.

If no branding is set, Fundly generates a consistent placeholder — a gradient hero and a monogram logo derived from your org name. The same name always yields the same placeholder, so even an unthemed campaign looks intentional. All theme colors are checked for WCAG contrast; a poorly chosen color is adjusted automatically so the page stays accessible.

Bringing students and advisors in

Three invitation paths, depending on how your org works:

Direct email inviteOne person at a time

Enter the name and email, choose their role. For student invites you check a box confirming they are 13 or older. They receive an email and follow a single-use link to finish their account.

Bulk CSV uploadA whole class at once

Upload a CSV with name and email. One checkbox at the top covers the whole list: you confirm every student is age 13 or older. Fundly validates each address and sends invitations in one batch.

Class share linkSelf-signup with your approval

Generate a link you post to your class roster or learning management system. Students fill out a short form. Each signup lands in your approval queue — you review name and email and confirm 13+ before the account activates. Nothing goes live without your sign-off.

Age attestation. Fundly does not store dates of birth. For every student account, an adult — the org admin, advisor, or approver — explicitly confirms the student is 13 or older. The attesting adult, their role, and the timestamp are recorded. A child mis-typing their own age is far less reliable than an accountable adult vouching for each student they add.

Roles & access

Five roles. Financial access is admin-only and cannot be delegated through campaign assignments.

Org admin

Everything: approve and launch campaigns, see payouts, connect your Stripe account, invite co-admins and advisors, manage students.

Co-admin

Identical to org admin — there is no owner tier. Any org admin can add another. Useful for splitting duties between a treasurer and a president.

Advisor

Create and edit campaigns for your org. Supervise and approve students on campaigns they are assigned to. No access to financial data or Stripe settings.

Student

Help edit the campaigns they are explicitly assigned to, post updates, earn tokens through effort. No financial data, no payment settings, no visibility into other campaigns.

Guest

View live campaign pages, donate, or buy — no Fundly account needed. Guests receive an emailed transaction record but have no login.

Per-campaign permissions. When an org admin assigns an advisor or student to a campaign, two flags control what they can change: content (title, description, updates, photos) and theme (colors, hero image, CTA label). Both can be granted or withheld independently. Org admins can edit any campaign in their org without an assignment.

Security

Payment security

Card details are entered directly into Stripe’s hosted fields — they never touch Fundly’s servers or logs. This keeps Fundly in PCI SAQ-A scope, the minimal tier. A donation or order is confirmed only when Stripe’s signature-verified webhook arrives, never from a browser redirect that could be faked or replayed.

Audit trail

Every privileged action writes an audit event: who did it, what they did, and when — campaign approvals, launch payments, invitation sends, role changes, reward edits. The log is append-only and tied to the acting user.

Student privacy

A student’s full name never appears on any guest-reachable page. Public-facing content uses only their chosen display name (e.g. “Alex M.”). This is enforced by test — not a UI convention that can drift. Fundly stores no student dates of birth.

General

HTTPS on all connections. Rich-text descriptions are sanitized server-side against an allowlist — no stored cross-site scripting. Rate limiting on auth, payment, campaign, and quest endpoints.

Ready to run a campaign?

Create your organization account — it takes a few minutes. Verification usually completes within a business day. Once verified, you can launch a campaign the same day.