Visitors vote at an exhibition: donations with the Charitips API
A museum funds a pot of 1 € per ticket for an exhibition. Each ticket is one vote on a screen at the exit; the pot is split by the votes when the exhibition closes.
- Who paysYour company
- Starts withA customer action
- Tax receiptIn your company's name
Needs API access on a validated account. Plans
One variant of Customers vote on a budget · Culture and events
1 € per ticket, split by the votes
See every variantkiosk.your-museum.example
Step by step
Click through the site. Each step shows what your customer does, what your server sends and what Charitips answers.
1When the ticket is scanned
To comeYour customer does…
Clicks “Scan my ticket”.
Your server sends…
Creates a vote of weight 1 for ticket 2026 10 18 0457 on the campaign “Oceans exhibition vote”.
POSTcreate-vote
Charitips answers…
Charitips creates the vote and returns its id.
Charitips will then tell your server the vote was created.
2When the visitor votes
To comeYour customer does…
Clicks “Choose the charity”.
Your server sends…
Casts that vote for the charity your customer picks.
POSTcast-vote
Charitips answers…
The vote counts for the charity your customer picks.
Charitips will then tell your server the vote was updated.
How to read this demo: the site shows what your customer does, and the panel what your server sends and what Charitips answers, step by step.
The site is made up and nothing is sent. The endpoints, fields and webhook events are the real ones, and so are the charities.
How it works
The screens of the demo in order, with the calls your server makes at each one. Its build spec
vote_createvote_updateOnce, before the first customer
- POST /v1/charities-selectionsCreate a charities selection: once: the charities you offer, from the catalog
- POST /v1/campaignsCreate a campaign: once: the campaign the donations go to
- POST /v1/campaigns/{campaignId}/activateActivate a campaign: once: the campaign starts taking donations
01
When the ticket is scanned
Button: Scan my ticket
Your server calls:
- POST /v1/votesCreate a vote: one vote per person; weight is how much it counts
Charitips then sends the
vote_createwebhook to your endpoint.02
When the visitor votes
The customer picks a charity from your selection. Button: Choose the charity
Your server calls:
- POST /v1/votes/{voteId}/castCast a vote: voteId from the create-vote response
Charitips then sends the
vote_updatewebhook to your endpoint.
Other ways to run it
The same calls in other sectors and products. Each card opens its own page, with its demo.
- RetailCustomers vote on a budgetA retailer sets a yearly budget, 20 000 € for example, and lets customers decide where it goes. Each customer casts one vote on a hosted ballot; the budget is billed at activation.A yearly budget split by the votesTry the demoCustomers vote on a budget: Customers vote on a budget
- Software and appsThe tournament winner picksAn e-sport league puts 2 € per entry into a charity pot. Players sign up and compete; the tournament winner picks the charity the whole pot goes to; the league pays.2 € per entry, the winner picks the charityTry the demoCustomers vote on a budget: The tournament winner picks
- Software and appsCollective adoption goalA SaaS ties a donation to a feature's adoption: once 500 users have turned it on, it gives 0,50 € per user. Each user picks their own charity.0,50 € per user, paid once the goal is reachedTry the demoCustomers vote on a budget: Collective adoption goal
- EducationPoll after a webinarA training company gives 5 % of each webinar ticket. When the live session ends, a poll opens and the attendees choose the charity together; the company pays.5 % of each ticket, the attendees chooseTry the demoCustomers vote on a budget: Poll after a webinar



