Traveler App
End-to-end flows for the traveler app (UF IDs, steps, rules).
Surfaces: responsive web (trips-enjoy.com) and mobile apps. Roles: visitor, traveler. Parent features are in Parent Tracker.
Registration
| Field | Required | Notes |
|---|---|---|
| Full name | Yes | |
| One of email or phone | Must verify the one given (D-20) | |
| Phone | One of email or phone | E.164; must verify if given |
| Password | Yes, unless the traveler chooses code-only sign-in | 12+ characters, breached-password check |
| Country | Yes | Sets the account's market (BRL-23, BRL-27) |
| Language | Yes | Arabic or English; defaults from the device |
| Terms and privacy consent | Yes | Recorded with text version |
| Marketing consent | No | Separate from transactional messages |
Approval
None. The account is active on verification, on the Free plan.
Flows
UF-TRV-01. Browse as a visitor
Actor: visitor. Trigger: opens the site or app.
Home shows featured and upcoming public trips from live markets, with search by destination, date, organization, price and category.
Visitor opens a trip: description, organization, dates, route and stops, vehicles, programs with prices, base price in the trip's currency, seat mode, policy summary.
Book Now asks the visitor to sign up or sign in, then returns to the same trip.
Rules: FR-TRIP-02 (drafts and targeted trips hidden), FR-TRV-02 (VIP early access hidden), FR-MKT-03.
UF-TRV-02. Register and verify
Actor: visitor. Trigger: Sign up as traveler.
Fills the registration form above.
Receives a code by SMS, WhatsApp or email; enters it.
Lands on a short onboarding: profile photo (optional), notification preferences, plan choice (Free selected; Explorer and VIP offered).
Returns to the trip they were viewing, or to home.
Edge cases: code expired (resend after countdown); 5 wrong codes (paused 15 minutes); 3 failed deliveries (offer the other channel); email or phone already registered (offer sign-in and password reset). Rules: FR-AUTH-01 to FR-AUTH-03.
UF-TRV-03. Book a trip
Actor: traveler. Trigger: Book Now on a published trip.
Travelers: number of passengers; name per passenger; child flag where a passenger is a minor.
Programs: pre-required programs are added and locked; optional ones can be added by toggle, quantity, or tier; VIP-only programs are locked for Free and Explorer with an upgrade prompt; full programs show unavailable. The summary updates live with the plan discount on programs (5 or 10 percent).
Seats: if self-selection is on, a live seat map of the assigned vehicle; picking a seat holds it for 15 minutes with a visible countdown. During the priority window, Free travelers see the map read-only. If company-assigned, the step shows "seat assigned later".
Summary: base, programs, discounts, coupon field, optional tax number for a B2B invoice, total with currency code. The price is locked from the start of the hold.
Payment: methods of the trip's market; the gateway page or SDK opens; no card fields on the platform.
Result: Confirmed (ticket with booking reference and boarding code, receipt, invoice), Pending (confirming payment), or Failed (retry).
Edge cases: hold expires during payment (cart kept, seats re-checked, new hold if free); third failed attempt (stays Payment Failed until the hold ends); Fawry voucher (seats held 48 hours, voucher code shown, reminder before expiry); trip sells out while in cart (seat step shows unavailable, other vehicles offered). Rules: FR-BKG-01 to FR-BKG-05, FR-SEAT-02 to FR-SEAT-04, FR-PAY-07 to FR-PAY-09, FR-PRG-02, FR-PRG-03.
The engine view of this pipeline, including callback idempotency and escalation, is the booking and payment workflow.
UF-TRV-04. Apply a coupon
Enters a code at Summary.
Valid: discount line appears and the total updates. Invalid: the first failing reason (not found, paused, expired, not applicable to this booking, exhausted, already used, minimum spend not met).
A second non-stackable coupon is refused; the first stays.
UF-TRV-05. Manage bookings
My Bookings lists upcoming, past and cancelled bookings with state.
Booking detail: trip, passengers, seats, programs, totals, payment status, policy, ticket, receipt, invoice, and actions allowed by state.
Receipts and invoices list; export on VIP.
UF-TRV-06. Cancel a booking
From booking detail, Cancel shows the refund preview from the policy (placeholder: 80 percent at 48 hours or more, 50 percent from 24 to under 48, none under 24) and the coupon effect.
Confirms. The booking moves to Cancelled, then Refund Pending until the gateway confirms ("refund in progress"), then Refunded.
After the cut-off, the traveler can send a request to the organization instead (decided within 2 working days, then admin).
Edge cases: after departure or check-in, cancel is replaced by Open a dispute. Rules: FR-BKG-04, FR-PAY-03, BRL-11, BRL-12.
UF-TRV-07. Choose a remedy after a trip change
Trigger: the organization changes a program, seat mode, vehicle or time that affects the booking.
Notification and banner on the booking with the change.
Options: accept the change, switch option (another program or vehicle where offered), or cancel with a full refund.
Choice within 7 days; otherwise the case goes to admin.
Rules: FR-TRIP-06, BRL-24.
UF-TRV-08. Trip day
Ticket with boarding code, vehicle label, seat (when assigned), pickup point and time, moderator contact, check-in status.
After check-in: status "on board"; programs and schedule.
No live vehicle position or ETA is shown to travelers.
UF-TRV-09. Albums
Trip history lists completed trips; each shows albums the traveler may see.
Public albums: view; download the watermarked or medium copy. Shared-link and selected-user albums: view only.
A shared link opened while signed out asks the traveler to sign in.
UF-TRV-10. Change plan
Plans page compares Free, Explorer and VIP with prices in the account's market currency.
Upgrade opens the gateway page in the browser; benefits apply at once with proration.
Downgrade is scheduled for the cycle end and can be cancelled.
UF-TRV-11. Apply for a supplier role
Account menu shows Become a driver, Become a photographer, Register an organization.
Driver: handoff to the driver app. Photographer: handoff to the studio. Organization: handoff to the web form (web only).
While pending or after rejection, traveler access is unchanged.
Rules: FR-TRV-06, FR-AUTH-06.
UF-TRV-12. Profile, language and notifications
Edit name, photo, contacts (re-verify on change), language, and per-category channels. Security messages cannot be turned off. Rules: FR-TRV-01, FR-NTF-01.
UF-TRV-13. Privacy requests
Request a data copy: verified by code, delivered within 30 days as a download link.
Request deletion: see UF-SHR-09.
Rules: FR-TRV-07, FR-AUTH-09.
UF-TRV-14. Open a dispute
From a booking: choose type (booking, payment, refund, organization conduct, other), describe, attach up to 5 files.
Track status: Open, Information Requested, Under Review, Resolved, Closed.
Rules: FR-ADM-08.
UF-TRV-15. Payment outcome and pending resolution
Actor: traveler. Trigger: payment submitted, result not immediate.
The gateway page or SDK opens; no card fields ever appear on the platform.
While the gateway is silent, the booking shows Confirming payment: the system polls at 1, 5 and 10 minutes and the seats stay held.
Confirmed: the ticket, receipt and invoice appear at once. Failed: retry is offered while attempts remain under three for this hold.
After the third failure the booking stays Payment Failed until the hold ends; a support contact is offered when the case escalates to admin at 15 minutes.
Edge cases: hold expires during payment (cart kept, seats re-checked, new hold only if free); Fawry voucher unpaid at 48 hours returns the booking to the cart with the seats released. Rules: FR-PAY-01, FR-PAY-02, FR-PAY-08, FR-BKG-03.
UF-TRV-16. Life after a downgrade
Actor: traveler. Trigger: the billing cycle ends on a downgraded plan.
Everything already booked keeps working: over-limit items created before the downgrade continue to be available.
The next action beyond the new limit is refused by the server-side gate, which names the category, the current plan, the limit and the next tier.
The upgrade prompt offers the next tier; counters reset on the 1st of the month at 00:00 in the owner's time zone.
Edge cases: grace-period rules apply before the downgrade takes effect; see the subscriptions workflow. Rules: FR-SUB-09, FR-SUB-10, FR-SUB-02.
Booking states seen by the traveler
| State | Label shown |
|---|---|
| Seats Held | Seats held, time left mm:ss |
| Payment Pending | Confirming payment |
| Payment Failed | Payment did not go through, retry |
| Confirmed | Confirmed |
| Checked In / Checked Out | On board / Off vehicle |
| Cancelled | Cancelled |
| Refund Pending | Refund in progress |
| Refunded | Refunded |