Skip to content

Tickets

Vendors can sell event tickets and scan tickets at venue entry points using the Vendor App.

Overview

Ticket operations for vendors:

  • Sell tickets to customers
  • Scan tickets at entry gates
  • View ticket sales history
  • Manage event check-ins

Sell Tickets

Sales Flow

┌─────────────────────────────────────────────────────────┐
│                    Ticket Sales Flow                     │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  ┌─────────────┐     ┌─────────────┐     ┌─────────────┐│
│  │   Select    │────▶│   Enter     │────▶│   Collect   ││
│  │   Event     │     │   Quantity  │     │   Payment   ││
│  └─────────────┘     └─────────────┘     └──────┬──────┘│
│                                                  │       │
│                                                  ▼       │
│  ┌─────────────┐     ┌─────────────┐     ┌─────────────┐│
│  │   Receipt   │◀────│   Confirm   │◀────│   Customer  ││
│  │   & Ticket  │     │   Sale      │     │   Phone     ││
│  └─────────────┘     └─────────────┘     └─────────────┘│
│                                                          │
└─────────────────────────────────────────────────────────┘

Sales Steps

  1. Select event from active events list
  2. Choose ticket type and quantity
  3. Customer pays (cash or digital)
  4. Enter customer phone number
  5. Confirm and process sale
  6. Tickets sent to customer's app

Event Display

FieldDescription
NameEvent name
DateEvent date
ImageEvent banner
AvailableRemaining tickets

Scan Tickets

Scan Flow

┌─────────────────────────────────────────────────────────┐
│                    Ticket Scan Flow                      │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  ┌─────────────┐     ┌─────────────┐     ┌─────────────┐│
│  │   Select    │────▶│   Scan QR   │────▶│   Validate  ││
│  │   Event     │     │   Code      │     │   Ticket    ││
│  └─────────────┘     └─────────────┘     └──────┬──────┘│
│                                                  │       │
│                            ┌─────────────────────┤       │
│                            │                     │       │
│                            ▼                     ▼       │
│                     ┌──────────┐          ┌──────────┐  │
│                     │  Valid   │          │ Invalid  │  │
│                     │  Entry   │          │ Rejected │  │
│                     └──────────┘          └──────────┘  │
│                                                          │
└─────────────────────────────────────────────────────────┘

Validation Results

ResultMeaningDisplay
validTicket is valid, first scanGreen checkmark
already_usedTicket already scannedRed X, "Already used"
wrong_eventTicket for different eventRed X, "Wrong event"
expiredEvent has passedRed X, "Expired"
invalidTicket not foundRed X, "Invalid ticket"

Scan Feedback

  • Valid: Green success with sound
  • Invalid: Red error with different sound

Scan History

View all scans for current event:

FieldDescription
AttendeePerson name
Ticket TypeVIP, General, etc.
TimeScan timestamp
StatusValid/Rejected
ReasonIf rejected, why

Statistics

MetricDescription
Total TicketsTickets sold for event
ScannedNumber checked in
Scan RatePercentage checked in
RejectedInvalid scan attempts

API Endpoints

EndpointMethodDescription
/vendor/tickets/eventsGETActive events
/vendor/tickets/sellPOSTSell tickets
/vendor/tickets/validatePOSTValidate ticket
/vendor/tickets/history/:eventIdGETScan history
/vendor/tickets/stats/:eventIdGETEvent statistics

Error Handling

ErrorCauseAction
TKT_V01Event not foundSelect valid event
TKT_V02Sold outNo tickets available
TKT_V03Invalid QRAsk for valid ticket
TKT_V04Already scannedInform customer
TKT_V05Wrong eventDirect to correct gate
FilePurpose
lib/screens/tickets/sell_ticket_screen.dartSell tickets
lib/screens/tickets/scan_ticket_screen.dartScan tickets
lib/screens/tickets/scan_history_screen.dartScan history
lib/controllers/ticket_controller.dartTicket controller
lib/services/ticket_service.dartTicket service

Internal use only - Keshless Payment Platform