Skip to content

Tickets

The Keshless User App includes a ticketing feature that allows users to browse events, purchase tickets, and manage their ticket collection.

Overview

The ticketing system enables:

  • Browse upcoming events
  • Purchase tickets with wallet balance
  • View purchased tickets with QR codes
  • Transfer tickets to other users
  • Use tickets at event entry

Browse Events

Event List

Events are displayed with:

  • Event image/banner
  • Event name
  • Date and time
  • Venue location
  • Price range
  • Available tickets count

Event Categories

CategoryExamples
MusicConcerts, festivals
SportsFootball, rugby matches
EntertainmentMovies, comedy shows
BusinessConferences, seminars
CommunityMarkets, exhibitions

Event Filtering

FilterDescription
categoryEvent category
fromDateStart date range
toDateEnd date range
maxPriceMaximum price
locationEvent location

Event Details

The event details page shows:

  • Full event description
  • Multiple ticket types/tiers
  • Seating map (if applicable)
  • Organizer information
  • Terms and conditions
  • Share button

Ticket Types

TypeDescription
GeneralStandard entry
VIPPremium access, perks
Early BirdDiscounted early purchase
GroupBundle for multiple people

Purchase Tickets

Purchase Flow

┌─────────────────┐
│  Select Event   │
│                 │
└────────┬────────┘


┌─────────────────┐
│  Select Ticket  │
│  Type & Quantity│
└────────┬────────┘


┌─────────────────┐
│  Enter Attendee │
│  Details        │
└────────┬────────┘


┌─────────────────┐
│  Review Order   │
│  (Total + Fees) │
└────────┬────────┘


┌─────────────────┐
│  Confirm & Pay  │
│  (Enter PIN)    │
└────────┬────────┘


┌─────────────────┐
│  Success        │
│  (View Tickets) │
└─────────────────┘

Purchase Request Fields

FieldTypeRequiredDescription
eventIdstringYesEvent ID
ticketTypeIdstringYesTicket type ID
quantitynumberYesNumber of tickets
attendeesarrayYesAttendee info per ticket

Pricing

  • Service fee: 5% of ticket price

My Tickets

Ticket List

View all purchased tickets:

  • Upcoming events (sorted by date)
  • Past events (collapsed)
  • Ticket status indicators

Ticket Statuses

StatusDescriptionIcon
validReady to useGreen
usedAlready scannedGray
expiredEvent passedRed
transferredSent to another userBlue
refundedPurchase refundedYellow

Ticket View

Each ticket displays:

  • Event name and banner
  • Date, time, venue
  • Ticket type
  • Attendee name
  • QR code (expandable)
  • Ticket number

QR Code Ticket

QR Code Format

FieldDescription
typekeshless_ticket
ticket_idUnique ticket ID
event_idEvent ID
validation_hashValidation hash

Display Options

ModeDescription
Normal viewSmall QR with ticket details
Present viewFull-screen QR, high brightness
Offline modeCached QR code, works without internet

Transfer Tickets

Transfer Flow

┌─────────────────┐
│  Select Ticket  │
│  to Transfer    │
└────────┬────────┘


┌─────────────────┐
│  Enter Phone    │
│  Number         │
└────────┬────────┘


┌─────────────────┐
│  Confirm        │
│  Recipient      │
└────────┬────────┘


┌─────────────────┐
│  Enter PIN      │
│                 │
└────────┬────────┘


┌─────────────────┐
│  Transfer       │
│  Complete       │
└─────────────────┘

Transfer Rules

RuleLimit
Transfers per ticket1
Transfer deadline24h before event
FeeFree

API Endpoints

EndpointMethodDescription
/eventsGETList events
/events/:idGETEvent details
/events/:id/ticketsGETAvailable ticket types
/tickets/purchasePOSTPurchase tickets
/tickets/myGETUser's tickets
/tickets/:idGETTicket details
/tickets/:id/transferPOSTTransfer ticket

Error Handling

ErrorCauseAction
TKT_001Sold outView other ticket types
TKT_002Event cancelledAutomatic refund
TKT_003Purchase limitMax per user reached
TKT_004Transfer failedCheck recipient
TKT_005Already scannedContact organizer
FilePurpose
lib/screens/tickets/events_list_screen.dartEvents list
lib/screens/tickets/event_details_screen.dartEvent details
lib/screens/tickets/purchase_screen.dartPurchase
lib/screens/tickets/my_tickets_screen.dartMy tickets
lib/screens/tickets/ticket_details_screen.dartTicket details
lib/controllers/ticket_controller.dartTicket controller
lib/services/ticket_service.dartTicket service

Internal use only - Keshless Payment Platform