Setting Up a Fundraiser

Collect donations toward a goal instead of selling seats — buckets, progress bars, a donor wall, and what Stripe requires before you can publish.

A fundraiser is an event built around raising money rather than selling seats — flower stands, group gifts, equipment funds, a guest's travel costs, anything anchored to your event. Attendees donate instead of RSVP, and you get a live progress bar toward a goal plus a public donor wall. Everything else — check-in, payments, your hosting hub — works the same as a standard event.

Stripe is required

You can't publish a fundraiser until Stripe is connected and identity verification is finished — you can save it as a draft in the meantime. Pick "Fundraiser" without Stripe connected and you'll see a warning blocking publish until it's done. Two reasons:

  • Identity verification. Stripe covers the KYC/AML check and gives you a real chargeback/fraud path — something a stack of Venmo screenshots can't.
  • Anonymous donations. Card is the only way to give anonymously (see below), and that only works through Stripe.

Stripe doesn't have to be your only method — you can still offer Venmo, Zelle, or any other method alongside it. It just has to be on.

Creating one

At the top of event creation there's a "What are you creating?" selector — pick Fundraiser instead of Standard event. This swaps RSVP language for donation language across the public page, and if you list the event in Discover it's auto-tagged under the Fundraising category. The rest of the create form is the same as any other event.

A fundraiser ignores the base Price field entirely — money comes either from Donation options (one row per cause or set amount), optional add-ons, or a simple name-your-amount donation, not a flat ticket price.

Donation options and add-ons

On a fundraiser the ticket-tier section becomes Donation options. Add one row per cause (e.g. two separate flower stands) or per set amount (Bronze / Silver / Gold) — donors pick one or several at checkout. Add-ons are extras on top of a donation (merch, perks); don't use them for separate causes. Every option and add-on doubles as a fundraising bucket with three extra controls beyond price:

  • What this funds (optional) — a short label (e.g. "Covers venue rental for the night") shown on the donate form, the progress bar, and the donor wall. Leave it blank and the bucket's name is used instead.
  • Goal (optional) — a per-bucket target. Set one and a progress bar appears for that bucket. No goal means no bar for it, but it still counts toward your overall total raised.
  • Accept custom amount (fill-in) — lets donors name their own amount instead of paying the fixed price, with optional Min/Max bounds.

Options aren't tickets — nobody is buying a seat. Name them after what the money is for, and donors pick and give.

Hosts can also record an offline donation directly — their own contribution, or money collected outside Offkai — via Record a donation on the event dashboard; it's added as verified right away and shows up on the donor wall.

Simple fundraiser (no options)

If you don't need separate causes or amounts, turn on "Let donors choose how much to give" in the price area. This gives you a single name-your-amount Donation amount field with an optional Min, Max, and Goal — no tiers required. The moment you add a donation option or add-on, this choice gets replaced by those buckets instead.

Stretch goals

Under a bucket's goal, click "+ Add stretch goal" to set a bigger target for after the main goal is met. Each stretch goal is an amount added on top of the goal (e.g. +$100) with an optional "What it funds" label, and you can stack up to 5 per bucket.

The progress bar runs from 0 to the final goal, filled in green toward the main goal; pending donations show as a striped grey tail. Each goal — the main goal and every stretch — is a round marker on the bar with its cumulative target underneath (e.g. "Goal $1,000", then $1,100). Reached markers turn solid green with a check. Once the main goal is met, money going into the next stretch goal shows in orange (its bar section, marker ring, label and ladder row) until that goal is reached and turns green. A small label reads "60% of goal" while the main goal fills, then "Next: Bigger banner", then "All goals met" (or "Closed · all goals met" if "Stop accepting at goal" is on), and the line under the bar reads "$600.00 of $1,300.00 final goal".

Below the bar, a milestone ladder has one row per goal. Reached rows get a green check and are struck through; the current row is highlighted (green for the main goal, orange for a stretch goal) with "$50.00 to go" and a small progress bar; later rows are locked and read "Stretch 2 · +$200.00 after Bigger banner". A capped bucket that has met every goal ends with "Donations closed when the final goal was met."

On the event page the ladder starts collapsed into a one-line summary row showing the current goal and what's left — e.g. "Bigger banner · $50.00 to go" with a "3 goals" count — and donors click it to expand the full ladder. It starts expanded automatically when exactly one bucket on the event has stretch goals. On the projected donor board the ladder is always fully shown, and goal bars stack in a single column.

Once a bucket has 2+ stretch goals, "Reveal stretch goals one at a time" appears in the editor. When it's on, later stretch goals stay hidden on the event page and donor board until the one before is reached: they show as "? ? ?" rows ("Stretch 3 · revealed when Stickers is reached"), the bar ends at the last revealed goal with a "+ more" chip, and the line under the bar says "so far" instead of "final goal". You always see every goal on your event dashboard, where hidden ones are marked "Hidden from donors". The goals are only hidden in the display, not private — anyone who knows where to look can see the full list of goals for a public event, so don't put anything confidential in a stretch goal label. Hidden goals still count toward "Stop accepting at goal".

You can add stretch goals at any time, including after the fundraiser is live, from the edit page.

If you clear a bucket's goal (or set it to 0) while it has stretch goals, the editor keeps the stretch rows but greys them out with a notice: "Set a goal above 0 to keep your 3 stretch goals". Set the goal again before saving to keep them; if you save without a goal, they're removed. You can still delete individual stretch rows while they're greyed out.

Stop accepting at goal (hard cap)

Any bucket with a goal set gets a "Stop accepting at goal" toggle:

  • Off (default) — keeps accepting past the goal. Overfunding is fine.
  • On — the bucket closes once confirmed donations hit the goal, and it shows a "Goal reached · closed" badge.

This is per-bucket, so you can cap one donation option while leaving others open. With stretch goals, the cap applies at the final goal — the base plus every stretch. Adding a stretch goal to a capped bucket that already filled reopens it.

A capped bucket can end up slightly over its goal. "Stop accepting at goal" looks at how much has been confirmed at the moment someone donates, so two donations made at the same instant can both get through, and donations that were still pending when the goal was hit will still be confirmed afterwards. The overshoot is kept.

What donors see

A headline "$X raised" total, plus — for every bucket that has a goal — a progress bar with two colors: green for confirmed donations, grey for ones still waiting on your review or Stripe's confirmation. The bar itself is capped at the goal, but the headline percentage can go over 100% once a bucket is overfunded. To show these bars on the projected donor board, turn on "Show goal progress" in the event's Settings (off by default); the total raised always shows either way. The toggle only appears once at least one donation option or add-on has a goal.

Below that sits a Donors wall listing every confirmed donation: name, amount, an optional message (up to 280 characters), and a relative timestamp. It's visible to signed-in attendees under the same "Show attendees" visibility rule you already use for the guest list.

Anonymous donations are card-only. If a donor pays by Stripe they can check a box to keep their name and amount off the public wall and out of your view. Manual methods (Venmo, cash, etc.) can't be anonymous — you need a visible name to match the payment to the donation.

Moderating donor messages

You and your co-hosts can Hide any donor message you'd rather not have public — the donation itself still counts toward the total, only the message drops off the public wall. Hidden messages still show to you, greyed out, with an Unhide button if you change your mind.

Donation receipts

Donors get an itemized receipt (donation amount + processing fee + total) by email and on their /my-rsvps page, framed as a donation rather than a QR ticket — there's no ticket to scan for a pure donation.

Important: these are payment receipts, not charitable tax receipts. They explicitly state the contribution is not tax-deductible and doesn't qualify as a 501(c)(3) charitable donation. Offkai is a platform, not a registered charity — don't imply otherwise to your donors.

Related

Related articles