> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Resell travel eSIMs to your customers

> Buy travel eSIM profiles in bulk on the Numbers → eSIM surface, assign them to your end customers, and manage data top-ups, wallet charges, and refunds — billed to your Orbit balance.

# Resell travel eSIMs to your customers

The **Numbers → eSIM** page is the reseller lane: you buy travel eSIM profiles
in bulk against your Orbit balance, hand them to your own end customers, and
keep resale of each profile in your own pricing. It sits beside — and is
deliberately separate from — the **Numbers → Connectivity** lane, where you
operate IoT/M2M SIMs yourself
([Provision and operate eSIM / IoT SIMs](/guides/connectivity-sim-lifecycle)).

Which lane is yours:

|                       | Travel-eSIM reseller (this guide)                     | Programmable wireless (IoT/M2M)                       |
| --------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| **Dashboard surface** | Numbers → eSIM                                        | Numbers → Connectivity                                |
| **You sell it to**    | Your end customers (travelers)                        | Your own devices                                      |
| **Billing**           | Bulk purchase + top-ups charged to your Orbit balance | Plan + metered data                                   |
| **Operations**        | Dashboard-first                                       | Full lifecycle API + dashboard                        |
| **API documentation** | This guide (concepts + troubleshooting below)         | [Lifecycle guide](/guides/connectivity-sim-lifecycle) |

The rest of this page covers the reseller workflow end to end: finding the
surface, buying in bulk, assigning profiles, and how the money side behaves.
The remaining sections are the concept vocabulary — what an eSIM profile is,
the status it reports, and the terms the page uses.

## Where the surface lives

In the dashboard, open **Numbers → eSIM**. The list page shows every travel
eSIM you own with four stat cards on top — **Total**, **Active**,
**Assigned**, and **Unassigned** — and a table with one row per profile:

* **ICCID** — the 19-digit identifier. Click it to open the per-SIM detail
  view.
* **Status** — `ACTIVE`, `ASSIGNED`, `SUSPEND` (purchased but not yet
  activated — the provider's own wire value), `SUSPENDED`, or `EXPIRED`.
* **Customer** — the reference you assigned, or *Unassigned*.
* **Data used** — consumption against the plan allowance.
* **Installation** — whether the profile has been installed on a device.

Search and the status filter run in the browser. When you own more profiles
than one list fetch can hold, the page says so above the table — in that
state a "no matches" search result only covers the loaded rows, not your
whole inventory.

Clicking an ICCID opens the **detail view**: the install material (a
scannable QR code, the `LPA:1$...` activation string, and the SM-DP+ address
shown separately for manual entry), the data-usage meter, the **Add data**
top-up control, and the **Customer reference** field.

SCREENSHOT SLOT — in-repo note for the docs editor (do not publish): insert
one screenshot of the list page showing stat cards + table, and one of the
detail page showing the QR/activation card + data meter. Reference them from
this section and the next; drop this line once the images land.

## Buying in bulk

Click **Purchase eSIMs**. The dialog loads three things: the current
catalog price per eSIM, how many profiles are in stock, and your Orbit
balance.

1. **Pick a quantity.** Quantity is a fixed set of batch sizes — the
   service rejects free-form numbers — and each option shows its total
   priced from the current unit cost. Batches larger than the stock on hand
   are disabled, and the picker defaults to the smallest batch the pool can
   satisfy.
2. **Optionally attach a data plan.** The plan dropdown lists the available
   travel-eSIM catalog plans with their data allowance (for example a global
   pay-as-you-go plan). You can buy without a plan and still give the
   profiles to customers — the plan just pre-loads an allowance.
3. **Review the summary.** The dialog shows the price per eSIM, your balance,
   and the total. When your balance provably can't cover the total, the Buy
   button swaps to **Add credit** and links to **Billing → top-up**. If the
   balance check itself fails, the request goes through and the server
   decides — it is authoritative either way.
4. **Confirm.** The batch is charged to your Orbit balance and the profiles
   land in your list immediately.

Example — buying 25 travel eSIMs at a $4.00 unit price: the wallet charge is
$100.00, recorded in your balance history as one debit with the remaining
balance shown beside it, and the purchase response counts the new profiles
and reports the post-charge balance.

The wallet behaves the way the rest of Orbit's charges do. The charge runs
first and the provider move runs second; if the move fails, the charge is
refunded automatically and the balance returns to where it started. If your
account is still being set up with the eSIM provider, the dialog says
ordering isn't ready yet instead of letting you attempt a charge — that
state usually resolves on its own.

## Assigning eSIMs to customers

Open a profile's detail view and set the **Customer reference** — your own
identifier for whoever receives it (an email, an order id, or your CRM key).
Save, and the profile counts as assigned: the list's **Customer** column
shows the reference and the **Assigned** stat card picks it up. The
reference is visible only to you.

Hand the customer the install material from the same view: the QR code for a
camera scan, or the activation string and SM-DP+ address for manual entry.
Re-opening the page later shows **Installed** once their device has the
profile.

To change which customer a profile belongs to, edit the reference — there is
no separate un-assign step; clearing the field returns the profile to your
Unassigned bucket.

## Money: charges, top-ups, and refunds

Every spend on this surface is a wallet charge, and every reversal is a
wallet refund on the same balance:

* **Bulk purchase** debits the batch total at purchase time.
* **Top-ups** add data to a single profile from its detail view. The control
  quotes the exact cost — the per-MB rate from the current catalog pricing,
  with the platform's one-cent minimum charge — before the second click
  spends. A priced *Confirm* button guards against a mistyped amount; the
  hint under the input shows the live rate per MB.
* **Refunds** credit the balance back. When a purchase can't be completed
  upstream, the charge is reversed automatically within the same flow; you
  never see a debit without its reversal when nothing was delivered.
  Corrections of eSIM charges by Orbit operations (or by you via support)
  refund to the same wallet, so the balance you see in **Billing** is always
  the full picture.

For tenant-owned control of spending: every charge attempts against your
balance at request time, an insufficient balance refuses with a payment
error before any provider work starts, and nothing here changes which
Orbit roles may spend — the same role gates that apply to purchases apply
to top-ups.

## Freshness and lifecycle updates

The reseller surface is dashboard-operated; the API lane for cellular
lifecycle events is the programmable-wireless surface. If you also operate
IoT/M2M SIMs through `GET/POST /numbers/connectivity/*`, those transitions
fire the `connectivity_sim.*` webhook events documented on the
[Webhook events](/reference/webhook-events) page — quota warnings
(`connectivity_sim.usage_warning`, `connectivity_sim.limit_exceeded`) are
the ones worth automating. Travel-eSIM reseller purchases are not part of
that event stream; the list page reflects purchases and top-ups as soon as
they complete.

## When something looks wrong

| Symptom                                                | Likely cause                                                   | What to do                                                                                                        |
| ------------------------------------------------------ | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| *eSIM ordering isn't ready yet* in the purchase dialog | Your account is still being provisioned with the eSIM provider | Wait — this resolves on its own; a retry only makes sense after it clears                                         |
| Purchase refused with an insufficient-balance error    | The batch total exceeds your balance                           | Top up from **Billing**, or pick a smaller batch — the *Add credit* button appears when the shortfall is provable |
| List shows fewer profiles than you own                 | The list is capped and said so above the table                 | Search/filter only covers the loaded rows; narrow by status to find a specific ICCID                              |
| A profile shows *No activation material yet*           | The activation code hasn't been issued                         | It usually appears shortly after purchase — check back on the detail view                                         |
| *Couldn't load your eSIMs* error panel                 | The eSIM service didn't respond                                | Retry — your profiles and balance are unaffected by a display failure                                             |

## Where next

* [Provision and operate eSIM / IoT SIMs](/guides/connectivity-sim-lifecycle) —
  the programmable-wireless lane for SIMs you operate yourself.
* [Connectivity SIM model](/concepts/connectivity-sim-model) — the concept
  anchor for the IoT/M2M lifecycle states mentioned above.
* [Numbers overview](/numbers/overview) — the line-type menu across DIDs,
  SIMs, and port-ins.
* [Billing → overview](/billing/overview) — the wallet everything above
  draws from.
