eSIM API

eSIM API for resellers

The ResellPortal eSIM API lets you sell travel eSIM data plans from your own app, website or store. Search 3,000+ plans across 200+ countries with one call, issue an eSIM with a second, and get the QR code and ICCID back straight away. There is no monthly fee: you pay a wholesale price per eSIM from your wallet.

BASE=https://panel.resellportal.com/wp-json/resellportal/v1

# 1. Find UK plans
curl "$BASE/esim-packages?location=GB" \
  -H "X-API-Key: your_api_key" \
  -H "X-API-Secret: your_api_secret"

# 2. Issue the eSIM
curl -X POST "$BASE/orders" \
  -H "X-API-Key: your_api_key" \
  -H "X-API-Secret: your_api_secret" \
  -H "Content-Type: application/json" \
  -d '{"client_id": 123,
       "product_key": "esim",
       "package_code": "CKH104"}'
const BASE = "https://panel.resellportal.com/wp-json/resellportal/v1";
const headers = {
  "X-API-Key": "your_api_key",
  "X-API-Secret": "your_api_secret",
  "Content-Type": "application/json",
};
const api = (path, body) => fetch(BASE + path, {
  method: body ? "POST" : "GET",
  headers,
  body: body && JSON.stringify(body),
}).then((r) => r.json());

// 1. Find UK plans
const plans = await api("/esim-packages?location=GB");

// 2. Issue the eSIM
const order = await api("/orders", {
  client_id: 123,
  product_key: "esim",
  package_code: "CKH104",
});
import requests

BASE = "https://panel.resellportal.com/wp-json/resellportal/v1"
HEADERS = {
    "X-API-Key": "your_api_key",
    "X-API-Secret": "your_api_secret",
}

# 1. Find UK plans
plans = requests.get(
    f"{BASE}/esim-packages",
    params={"location": "GB"},
    headers=HEADERS,
).json()

# 2. Issue the eSIM
order = requests.post(f"{BASE}/orders", headers=HEADERS, json={
    "client_id": 123,
    "product_key": "esim",
    "package_code": "CKH104",
}).json()
200+Countries & regions
3,000+Data plans
2API calls to issue an eSIM
$0Monthly fee
How it works

From API key to delivered eSIM in three steps

1

Find a plan

Call GET /esim-packages with a country code (GB, US, ES...) or leave it empty for every plan. Each plan has a code, data allowance, validity and wholesale price.

2

Issue the eSIM

Call POST /orders with product_key "esim" and the package_code. The wholesale price is taken from your wallet and the eSIM is created instantly.

3

Your customer installs it

The response includes the QR code, activation link and ICCID. Your customer also gets an email with the QR code under your brand, not ours.

Endpoints

The endpoints you will use

Base URL https://panel.resellportal.com/wp-json/resellportal/v1. Authenticate every request with your X-API-Key and X-API-Secret headers.

GET/esim-packages?location=GB

List eSIM plans for a country, region or the whole catalog, with current wholesale prices.

POST/clients

Create the customer the eSIM belongs to (or reuse an existing client_id).

POST/orders

Issue an eSIM: product_key "esim" plus a package_code. Returns the QR code, activation link and ICCID.

GET/services

List the eSIMs and other services you have issued, with their status.

Billing

How billing works

  • No setup fee and no monthly fee. You only pay when you place an order.
  • Wholesale per order. Each order is charged at wholesale from your prepaid wallet, and you set your own selling price.
  • Live prices. Current prices are returned by the API and shown in your panel, so your app always uses the latest price.
  • Volume discounts. Larger wallet balances get a discount on every order.
Response

What you get back

A successful order returns everything you need to deliver it in your own interface.

ResponsePOST /orders · 200
{
  "success": true,
  "service_id": 789,
  "message": "E-SIM activated successfully",
  "package": {
    "code": "CKH104",
    "name": "United Kingdom 3GB 30Days",
    "data_volume": "3 GB",
    "duration": "30 day",
    "location": "GB"
  },
  "esim_details": {
    "qr_code_url": "https://...",
    "activation_url": "https://...",
    "iccid": "8901234567890123456",
    "esim_status": "AVAILABLE"
  }
}
Why ResellPortal

Built for resellers, not just developers

Sold under your brand

Customer emails, the eSIM details page and support all carry your store name. ResellPortal never appears.

Free test mode

Send "test_mode": true (or the X-RP-Test-Mode: 1 header) to build and test your integration without charging your wallet.

Country, regional and global plans

Single-country plans plus Europe, North America, Asia and global bundles, all from one endpoint.

Instant QR code and ICCID

Everything your customer needs to install the eSIM comes back in the same response.

Works with AI assistants

Connect Claude, ChatGPT or Cursor to the ResellPortal MCP server to look up plans and place orders by chat.

A ready-made store too

Every account also gets a white-label storefront, so you can sell eSIMs without building anything.

FAQ

eSIM API questions

What is an eSIM API?

An eSIM API lets your software search eSIM data plans and issue eSIMs automatically, instead of buying them one by one in a dashboard. With the ResellPortal eSIM API you list plans with GET /esim-packages and issue one with POST /orders, which returns the QR code and ICCID your customer needs.

How much does the eSIM API cost?

There is no setup or monthly fee. Each eSIM you issue is charged at its wholesale price from your prepaid wallet, and you set your own selling price. Live prices for every plan come back from GET /esim-packages and are shown in your panel.

Which countries does the eSIM API cover?

More than 200 countries and regions, with over 3,000 plans. There are single-country plans plus regional bundles such as Europe and North America, and global plans covering 130+ countries.

How does my customer receive the eSIM?

The API response includes the QR code URL, an activation link and the ICCID, so you can show them in your own app. Your customer is also emailed the QR code and installation steps under your brand.

When does an eSIM data plan start?

The QR code can be installed before travelling. The validity period starts when the eSIM first connects to a network at the destination, not when it is bought.

Can I test the eSIM API without being charged?

Yes. Add "test_mode": true to the request body, or send the header X-RP-Test-Mode: 1. Test requests are validated but nothing is charged and no real eSIM is issued.

Are there unlimited data eSIM plans?

No. Every plan has a fixed data allowance (from 100 MB up to 100 GB) and a fixed validity, from 1 day up to 365 days.

What do I need to start using the eSIM API?

Create a free ResellPortal account and copy your API key and secret from the API section of the panel. No minimum balance. A live order only needs enough in your wallet to cover it.

Start selling eSIMs from your own app

Free account, free test mode, no monthly fee. Get your API keys and issue your first eSIM in minutes.