Skip to content
← Back to portfolio

Designing a travel eSIM app: buy, activate, verify

Project release6 min read
eSIMTravel UXMobile FlowVerificationUI Guideline

Designing for people about to board a plane

People open an eSIM app at the airport, in a hotel lobby, on the edge of losing connectivity. That context dictates everything: short information, few steps, one tap copy for every code, and video guides because nobody reads manuals. This article covers the buy, pay, activate, identity and support flows I designed for this travel eSIM product, plus the UI guideline holding it together. Screens are low resolution with brand marks blurred.

eSIM store catalog on a phone: regional plan cards with data, validity and buy now buttons, app logo blurred
The buy catalog: one card per plan with data, validity and price. The app wordmark is blurred.

Buy, pay, activate

The catalog gives each plan one card, with data, validity and price carrying the decision. Payment splits by platform: iOS and Android each order their methods, credit card and PayPal form two paths, and success, top up success and failure each get their own ending page, with failure stating the next step outright. Activation is where eSIM loses people: QR install first, manual entry as fallback, one tap copy on the SM-DP address and every code, and a short video per step.

Payment flow map: choose payment method on iOS and Android, credit card and PayPal paths, success, top up success and failed pages
The payment map: method choice per platform, two payment paths, and separate success, top up and failure endings.
eSIM how to use screens: QR code install, manual SM-DP address entry with copy buttons, and step video guides, app logos blurred
How to use: QR install, manual entry with one tap copy for every code, and short video guides per step.

Login, passport scan and ID verification

Some markets require verified identity, so sign up carries one decision point: scan an ID or type it. Scanning runs through a third party component and always lands on a review page where users check what was read; passports get their own path with rescan by document type. The ruling principle is the fallback: every scan can be skipped into typed entry, because when a verification component fails, registration must not die with it.

Login and sign up flow map with a scan ID decision diamond splitting third party scan and manual form paths
Login and sign up: one decision diamond decides whether identity comes from an ID scan or a manual form.
Passport scan flow: scan, review extracted data, rescan by type, and a skip scanning fallback to typed entry
The passport path: scan, review what was read, rescan if needed, and always a skip option into typed entry.
Scan ID flow: third party scan screen, identity review form, address step and the manual type by user fallback
Scan ID: the third party scan, an identity review step, the address form, and the typed fallback.

The UI guideline behind it all

One living UI guideline holds the product together: components, flows, per size states, cut pictures and marketing artwork share a single canvas, each block tagged with its status. Support lives there too, with contact us accepting camera and file attachments, because the most common report from the road is a screenshot. The guideline earns its keep across time zones: engineers follow the spec without waiting for me to wake up and answer.

A zoomed-out UI guideline board with component clusters, flows and marketing artwork laid out across one canvas
The guideline board zoomed out: components, flows and marketing artwork share one canvas so nothing drifts.
Annotated UI guideline detail: tab bar, profile, store and buy item specs with cut pictures and status notes per screen size
Guideline detail: per feature specs with status, cut pictures and screen size notes engineers can follow.
Account and support flows: FAQ detail, contact us with attachments from camera or file, success state and profile tab
Support flows: FAQ, contact us with photo attachments, and the confirmation that a ticket was received.