SignupDesk's event ticket refund system lets you set a refund policy per event and lets attendees request refunds themselves. Full refund up to N days before, partial percent up to M days before, none after. Every confirmation email carries a Manage Booking link. Attendees see their eligible amount computed live, submit a request, done. One admin approval in the refunds queue and the money returns via the tenant's own Razorpay. Zero support inbox, zero WhatsApp back-and-forth.
One JSON blob per event. Defaults are 7 / 1 / 50, override per event.
full_refund_dayspartial_refund_dayspartial_percentAny paid event that sells more than 200 tickets will get a refund cluster in the final week. Attendee falls sick, work meeting shifts, kid has a school event, mother-in-law flies in. On our biggest ticket volume client, the pattern was clear: 40 refund WhatsApps between Thursday and Sunday for a Monday event. Each one required checking the payment, computing the refund amount against a policy that lived in someone's head, initiating the refund on Razorpay dashboard, replying with confirmation. 40 conversations × ~10 minutes each = the ops person's entire Friday.
Half those conversations were also arguments: "your policy said 50%, why am I only getting 40%?" — because someone had computed with the wrong days-to-event. The audit trail was a WhatsApp thread. Chargebacks followed.
So we made the policy a JSON blob on the event. The days-to-event computation happens server-side. The attendee sees the eligible amount before they even click submit — no argument possible. The refund lands in the refunds queue with a full audit trail. Admin approves in one click. Razorpay refund API fires. Attendee gets an email confirmation.
The ops person got their Friday back. Chargebacks went to zero because attendees stopped feeling ambushed by the number.