Donating

Events & ticketing

A second product surface for in-person fundraisers. Same checkout pipeline as donation pages, but with ticket types, capacity, named attendees, and a check-in tool.

Selling tickets

Multiple ticket types per event

$50 individual / $250 patron / $2,500 table — set the names, prices, and sort order. Activate or deactivate tiers without deleting them. The event page renders them as a selectable list with quantity steppers.

Table tickets with seat counts

A $2,500 table-of-eight ticket type carries seats_per_ticket = 8. When a donor buys one, the attendee count increments by 8 so capacity tracking stays accurate.

Named attendees

Optional toggle that gates checkout submission until the donor fills in a name (and optionally an email) for every seat. Required for most ticketed political events.

Capacity enforcement

Set max_attendees on the event. The intent route checks available capacity against pending sales before issuing a PaymentIntent, so two donors racing for the last seat don't both succeed.

Running the day

Attendee list

One row per attendee (with named ticketholders) or per ticket purchase. Filter by paid status, ticket type, or search by name. CSV export for the door staff to take offline.

One-tap check-in

Marks an attendee as arrived. The event detail page shows live counts (sold / checked-in / no-show) so the campaign manager can stage-manage in real time.

Per-event receipt templates

Override the receipt subject, HTML, and plain-text per event — useful when the EC-compliant disclosure differs for ticketed purchases vs. straight donations (admission fee vs. eligible contribution split).

Branded everywhere

Event pages inherit your tenant theme by default and accept per-event overrides. Same brand colour and logo as the donation pages so the donor experience feels coherent across surfaces.