Building a travel eSIM marketplace: schema, pricing, activation flow
A complete blueprint for building a travel eSIM business: database schema, pricing strategy, activation UX, and what to skip in v1.
Building a travel eSIM marketplace: schema, pricing, activation flow
You want to build a travel eSIM marketplace. Maybe you have a travel app already and want to add connectivity as a revenue stream. Maybe you're starting from scratch.
This is the blueprint we use when advising customers building travel eSIM products. It's the patterns that work, the mistakes we see, and what to skip in v1.
The minimum viable product
A travel eSIM marketplace needs three things to be useful:
- A way for customers to browse plans by country/region
- A checkout flow that takes payment and provisions a SIM
- An activation experience that gets the SIM working on their phone
That's it. Reseller dashboards, loyalty programs, multi-language support, and customer accounts are all useful eventually. None of them are required to ship v1.
We'll build the MVP first and discuss extensions at the end.
Database schema
Try it yourself
Free sandbox. Real Tier-1 carriers. 60 seconds from signup to credentials.
Get started →You need four tables. Don't over-engineer this: plans, orders, sims, countries. That's the foundation.
Plan catalog: don't sync everything
Your eSIM provider probably has 1,000+ SKUs across regions and durations. Don't show all of them.
For each country, pick three or four data tiers (e.g., 1GB, 3GB, 10GB) and one or two durations (7 days, 30 days). That's 6-8 plans per country, 12 countries to start, about 80 plans total. Manageable.
Travelers don't want 50 options. They want to pick a country, see three reasonable choices, and check out.
When the customer goes to a country you don't have a local plan for, fall back to a regional plan ("EU 5GB / 30 days"). When you don't have a regional plan, fall back to global.
Pricing strategy
The dominant question for travel eSIM resellers is "what should I charge?"
Wholesale rates from a provider like Firsty look like:
- 3GB Germany 30 days: about 4 EUR wholesale
- 5GB EU 30 days: about 8 EUR wholesale
You add a markup. Common markup ranges are 30-50% for travel apps, 50-100% for branded consumer apps with strong distribution.
Don't compete on price. Travelers shopping for eSIMs do not comparison-shop the way they shop for flights. They land on your page, see a clear price for the country they're going to, and buy. Convenience beats price.
Where you have leverage:
- Bundle: "Add 3GB Spain for 8 EUR" inside a hotel booking flow
- Trust: "Recommended by [your brand]" beats "cheapest"
- UX: a 30-second checkout converts better than a 2-minute one at a 10% lower price
Set retail prices that give you healthy margin and stop worrying about it.
The country picker
Your homepage should be a country picker. Not a hero with marketing copy. A country picker.
Travelers come with an intent: I'm going to Spain. They want to find Spain in five seconds, see plans, and buy. Every screen between "Spain" and "checkout" is a conversion leak.
The shortest path: country picker, plan options, checkout, QR code. Four screens. Maybe 30 seconds. That's the goal.
Show popular countries first (Spain, Italy, USA, Japan, UK, France, Greece, Thailand). Provide a search box for the long tail. That's enough.
Plan presentation
When a customer picks a country, show three or four plans, no more. Each plan card needs data amount (big), duration (medium), price (big), and a Buy button.
Skip "features" like "Hotspot included" or "5G ready" or "Instant activation". These bullet points pad the page and don't help conversion. Show price, GB, days. Done.
Checkout flow
For travel eSIMs, do not require account creation. The customer is going on vacation in 6 hours. They don't want to make an account.
Three fields: email (for QR delivery), card payment via Stripe, one checkbox: "I confirm my device supports eSIM".
The device-support confirmation is critical. Most travel eSIM refund requests come from customers with iPhone 8s who didn't realize they couldn't install an eSIM. The checkbox shifts responsibility to them and reduces support volume by 80%.
After payment succeeds: Stripe webhook fires, your backend provisions the eSIM, generates the QR code server-side, emails the customer, shows them an in-browser "your eSIM is ready" page with the same QR.
The webhook is the key piece. Don't provision before payment. Don't provision in the checkout page (the user might close the tab). Provision when Stripe confirms payment.
Activation experience
This is where most travel eSIM apps fail. The customer pays, gets the QR code, and then can't install it.
The most common failure modes:
-
Customer scans the QR from the same phone they're trying to install on. This fails. You can't scan a QR on the screen you're trying to install onto. Tell them in big letters: "Scan from your laptop or print this code."
-
iPhone vs Android instructions differ. Provide both. Don't make them figure it out.
-
The customer is already abroad and has no internet. Pre-trip is the right time to install. Tell them this clearly. Recommend installing before they board the flight.
A good activation page has a big QR code prominently displayed, step-by-step iOS instructions with screenshots, step-by-step Android instructions with screenshots, and a "Send to email" button.
Don't underestimate how much this content matters. The difference between a great activation experience and a poor one is the difference between 70% successful installations and 95%.
What to skip in v1
Customer accounts, multi-language, loyalty programs, in-app top-ups, real-time data usage display, refund automation. Add them when data shows they'll move metrics, not before.
When to add what
- At 100 orders: add usage display
- At 500 orders: add top-up flow
- At 1,000 orders: add account creation
- At 5,000 orders: add multi-language
- At 10,000 orders: white-label or B2B partnerships
The honest truth about travel eSIMs
The travel eSIM market is competitive. Airalo, Holafly, Yesim, dozens of branded resellers. You won't win on having more plans or lower prices.
You win by being embedded in a customer journey they already trust. A hotel booking platform that adds eSIMs to checkout converts better than a standalone eSIM app, because the customer is already buying.
If you're starting from zero audience, the bar is high. If you have an existing audience or distribution, you can build a profitable travel eSIM business in a weekend.
Try the API
If you're building this, our sandbox is free and the first eSIM tutorial shows the provisioning flow you'll embed in your Stripe webhook.
Related guides
How to provision your first eSIM via API in 30 minutes
From OAuth token to first eSIM activated, with QR code generation server-side. Real code, real credentials, real eSIM, in about 30 minutes.
OAuth2 client credentials in production: what most tutorials get wrong
Token caching, refresh strategy, and the security mistakes we see in production integrations every week.
How Pexx built a white-label travel eSIM product on top of the Firsty API
A case study on how the cryptowallet Pexx integrated the Firsty API to launch loyalty-driven free data for their users in under three months.