Flow: Mobile Quota Claiming (Email-Based Invitation)¶
Actor¶
Quota or subquota recipient using the HNS mobile app (deeplink-based with email verification)
Preconditions¶
- Admin has created quota and assigned to recipient email address, OR
- Parent quota holder has created subquota and assigned to sub-recipient email address
- Recipient has valid email address
- User has HNS mobile app installed or can download it
Flow Steps¶
-
Email Invitation with Push Notification
- Recipient receives email with personalized allocation details (quantity, sectors, match, expiration)
- Email includes deeplink button/URL to claim via HNS app
- Deeplink format: hnsapp://quota/claim?quota_email={recipient_email}"a_id={quota_id}
- Push notification sent to HNS app (if installed): "You have [X] tickets allocated for [Match]. Claim by [Date]"
-
Deeplink & Email Verification
- Recipient taps deeplink → opens HNS app (or App Store if not installed)
- If user is already logged in:
- App checks if logged-in account email matches quota email (from deeplink parameter)
- If emails match: Proceed to Step 3 (Quota Dashboard)
- If emails don't match:
- App shows notification: "This quota is assigned to [quota_email]. Please login with the correct account to access your quota allocation."
- Options provided: "Login with Different Account" or "Cancel"
- If "Login with Different Account" selected: User logged out and redirected to login screen with quota_email pre-filled
- If user is not logged in:
- App shows login/registration screen
- Email field pre-filled with quota_email from deeplink
- User can either:
- Login with quota_email if account exists
- Create new account with quota_email if first-time user
- After successful login/registration, proceed to Step 3 (Quota Dashboard)
-
Quota Dashboard
- Shows quota status breakdown:
- ALLOCATED: Seats assigned, not yet claimed
- RESERVED: Ticket info filled, pending payment
- SOLD: Payment completed, tickets issued
- Displays quota details:
- Match name, date, venue
- Allocated sectors with visible seat numbers (e.g., Sector D1: Row 5 Seats 1-10)
- Expiration date (visual reminder only - can still claim after deadline until admin cancels)
- Discount/price information
- Action Buttons:
- "Claim Tickets" - Primary CTA to start claiming process for yourself
- "Send tickets to someone else" - Secondary CTA (visible only if can_create_subquotas = TRUE) to delegate tickets to another person
- "Open Web Dashboard" - Opens quota web portal in browser (available to all quota holders)
- Uses same credentials as HNS mobile app
- Provides desktop-friendly interface for managing quota
- See Quota Holder Web Delegation
- If can_create_subquotas = TRUE:
- Badge/indicator showing delegation capability
- Subquota list showing delegated tickets with status
- Shows quota status breakdown:
-
View Allocated Tickets (Step 1 of 3)
- Seats were pre-assigned when admin created quota using selected algorithm:
- NM (Best Seats): Best available seats in allocated sectors
- REDOM (Distributed): Seats distributed across the sector
- For numbered matches:
- System displays allocated tickets as cards in a grid layout
- Each ticket card shows: Sector, row, and seat number (e.g., "Sector D1, Row 5, Seat 8")
- User taps cards to select which tickets to claim
- Selected cards are visually highlighted
- For non-numbered matches: User selects quantity only
- User clicks "Continue to Ticket Details"
- Seats were pre-assigned when admin created quota using selected algorithm:
-
Per-Ticket Identity Capture (Step 2 of 3)
-
Important Notice Displayed:
- System shows information banner: "Email Required: Each ticket will be delivered to the HNS mobile app linked to the email address you provide. All tickets with the same email must enter the stadium together on the same device."
- Additional note: "If someone doesn't have a mobile phone or email address, use the email of the person who will accompany them and have both tickets on the same device."
-
Note: Unlike regular ticket purchases where the primary buyer must be the logged-in user, quota claiming allows the quota holder to claim tickets for others without needing to be a ticket holder themselves. This supports use cases like sponsors or corporate representatives distributing allocated tickets.
-
For each ticket, user can either:
- Select from saved profiles: Choose from previously saved profiles (family, friends) in account
- Enter new details: Manually enter name, date of birth, nationality, OIB (for Croatians) or passport (for foreigners), email, phone
-
Option to save new details as profile for future purchases
-
Email Field:
- Email address field visible, by default prefilled with quota holder's email
- System validates email format
- System allows same email for multiple tickets with warning: "These tickets will be on the same device and must enter together"
- If email left blank: Ticket remains on quota holder's app - quota holder must enter stadium together with this ticket holder
- Note: Email assignment is final at time of claiming and cannot be changed after
-
Minor Ticket Holder Restriction:
- If ticket holder is a minor (under 18 based on date of birth), email field is disabled
- Info message: "Tickets for minors cannot be assigned to a separate email. Minor must enter with accompanying adult."
- Ticket remains on quota holder's app; minor and adult must enter together
-
Identity Uniqueness (per match):
- Each ticket holder must have a unique OIB (Croatians) or passport number (foreigners) per match
- The same OIB/passport cannot appear on multiple tickets for the same match, even across different quotas or purchases
- If duplicate detected within the form: inline error on the field + submission blocked
- If duplicate detected against existing tickets for the match: server-side rejection with clear error message
- Real-time validation: format checks, required fields, OIB checksum validation
- Real-time blacklist check against HNS security database for all attendees (all selected profiles)
- Progress indicator shows completion status (e.g., "2 of 5 tickets completed")
-
-
Payment & Checkout (Step 3 of 3)
- At this point, ticket status changes to RESERVED (info filled, pending payment)
- If quota has discount: display original price, discount applied, and final price
- If quota is free (discount_code = GR): skip payment, proceed directly to confirmation
- If payment required: payment gateway integration with applied discount
- Payment confirmation thank you screen
- PDF invoice is generated by e-racuni.com and visible in mobile app and also received via email
- Upon completion, ticket status changes to SOLD
-
Confirm & Issue
- User confirms claim; order created/finalized
- Tickets delivered instantly to in-app wallet with revolving QR codes
- Confirmation screen with match details, seat numbers, and QR code access
- Confirmation email receipt sent with ticket details
Creating Subquotas via Mobile App (Delegation)¶
Prerequisite: Quota has can_create_subquotas = TRUE
This flow allows quota holders to delegate tickets to others directly from the mobile app.
M1. Initiate Subquota Creation¶
- From Quota Dashboard, user taps "Send tickets to someone else" button
- System displays subquota creation screen
M2. Select Tickets to Delegate¶
- For numbered matches:
- System displays only available tickets as cards in a grid layout
- Each ticket card shows:
- Sector, row, and seat number (e.g., "Sector D1, Row 5, Seat 8")
- Match details
- User taps cards to select/deselect tickets to send
- Selected cards are visually highlighted
- Selection summary at bottom: "Selected: 4 tickets"
- Note: Already claimed or delegated tickets are not shown (only available tickets visible)
- For non-numbered matches:
- System displays available quantity
- User enters number of tickets to delegate
- Selection summary: "Sending: 4 tickets"
- User taps "Continue"
M3. Enter Recipient Details¶
- User enters:
- Recipient Email (required, validated format)
- Real-time validation:
- Email format check
- Note: Multiple subquotas to same email allowed
- User taps "Send Tickets"
M4. System Processes Subquota¶
- System validates selected seats are available
- Subquota created with:
- Specific seats selected from parent allocation
- Same discount code as parent
- Same or earlier expiration date
- Same Transfer permission (YES/NO) as parent quota
- Email sent to recipient with:
- Allocated seat details
- Deeplink to claim via HNS mobile app
- Note: "Sent by [Quota Holder Name]"
- If recipient is registered user, push notification sent
- Subquota created with status: "ALLOCATED"
M5. Confirmation & Monitoring¶
- App displays success message: "Tickets sent to [Recipient Name]"
- Returns to Quota Dashboard
- Dashboard shows updated subquota list:
- Recipient email
- Seats delegated
- Status (ALLOCATED → RESERVED → SOLD)
- Selected seats marked as "Delegated" in available balance
M6. Manage Subquotas¶
- From Quota Dashboard, user can view all created subquotas
- For each subquota with status "ALLOCATED" (not yet claimed):
- "Retract" option available
- Tapping "Retract" shows confirmation: "Retract these tickets? [Recipient Name] will be notified."
- Upon confirmation: seats returned to available balance, recipient notified
- Subquotas with status "RESERVED" or "SOLD" cannot be retracted
- Post-Claim Actions
- If any allocated tickets remain unclaimed, app shows persistent banner with countdown
- Web Portal Access: All quota holders can access web portal via "Open Web Dashboard" button
- If can_create_subquotas = TRUE: Can create and manage subquotas via web portal
- If can_create_subquotas = FALSE: Can view quota status and claim tickets via web portal
- Transfer Permission Inherited:
- Claimed tickets inherit the quota's Transfer setting (YES/NO)
- If Transfer = YES: Ticket holders see "Reassign Ticket" option in app (self-service, no time restrictions)
- If Transfer = NO: Standard transfer rules apply (contact support, 48-hour deadline)
- See View My Tickets for transfer options
Alternative Flows¶
A3: Blacklist Rejection
- During identity capture (Step 5), system detects blacklisted individual
- App shows: "HNS is prevented from issuing a ticket to this person pursuant to applicable law. For all information regarding this restriction, please contact MUP (Ministry of Interior)."
- Specific ticket(s) with blacklisted identity cannot be claimed
- User can complete identity capture for remaining tickets (if claiming multiple)
- Rejected tickets return to quota holder's available balance
A4: Payment Failure
- During payment (Step 6), payment gateway returns error (card declined, insufficient funds, etc.)
- App shows payment error message with reason
- User can retry with different payment method
A5: Deadline Passed (Visual Reminder)
- Important: Quota expiration is a visual reminder only - there is no automatic expiry
- When deadline passes:
- App shows "Past Deadline" warning banner
- User can still claim tickets until admin manually cancels the quota
- This provides flexibility for late claims
- If admin cancels quota:
- App shows "Cancelled" state
- No further claiming possible
- Previously claimed tickets (SOLD status) remain valid
A6: Partial Claiming
- User claims only some tickets now (e.g., 2 out of 5 allocated)
- Remaining allocation stays available in quota dashboard
- Can return later via app to claim rest (until admin cancels)
- Each partial claim follows full 3-step flow: seat selection → ticket holder info → payment
- Dashboard updates to show status breakdown:
- SOLD: 2 (completed claims)
- ALLOCATED: 3 (available for claiming)
A7: Subquota Holder Workflow
- If quota holder has can_create_subquotas = TRUE:
- Option 1 - Mobile App:
- Tap "Send tickets to someone else" from Quota Dashboard
- Follow steps M1-M6 above to create and manage subquotas
- Monitor status and retract unclaimed subquotas directly in app
- Option 2 - Web Portal:
- Open web portal via "Open Web Dashboard" or email link
- Web portal authenticates using same HNS mobile app credentials
- See Quota Holder Web Delegation for web workflow
- Sub-recipients receive email invitation with deeplink
- Sub-recipients claim via HNS mobile app using the standard claiming flow (Steps 4-7)
- Parent can monitor subquota status from either mobile app or web portal
Quota Ticket Status Definitions¶
| Status | Description | User Can... |
|---|---|---|
| ALLOCATED | Seats assigned, not claimed yet | Start claiming process |
| RESERVED | Ticket info filled (Step 2), pending payment | Complete payment |
| SOLD | Payment completed, tickets issued | View tickets, enter stadium |
| Cancelled | Admin cancelled or refunded | Nothing - ticket invalid |
Last Updated: January 2026