Partner API

Resell our Vietnam eSIM plans from your own site or shop. You hold a prepaid wallet with us, place orders over HTTPS, and receive the activation code and a QR image to give your own customer. We never contact your customer.

Read this part first: there are two delivery models

Most eSIM APIs have one. Ours has two, and they behave differently at the only moment that matters — when your customer expects to be online.

Every plan declares its own model in delivery.mode. Read that field rather than hard-coding a list — if we change how a plan is sourced, your integration follows automatically.

Authentication

One bearer token per dealer, issued by us. Send it on every request. It never goes in the URL — URLs sit in proxy logs, browser history and our own access logs.

Authorization: Bearer YOUR_TOKEN
# or, if your HTTP client makes that awkward:
X-Partner-Token: YOUR_TOKEN

A wrong token, a paused account and an account that is not in dealer mode all return the same 401 unauthorized. That is deliberate: distinguishing them would tell a caller which tokens exist.

1. List plans

GET https://simvietnam.telebox.vn/api/partner/plans

Public, no token needed. Prices are in USD and are what you are charged unless we have agreed a dealer rate with you.

Delivered instantly (10)

slugcarrierdatadaysUSD
mobifone-7daysSkyfi7GB/day7$8.00
viettel-7daysViettel5GB/day7$9.90
mobifone-10daysSkyfi7GB/day10$10.00
vinaphone-7daysVinaphone5GB/day7$10.90
mobifone-15daysSkyfi7GB/day15$11.00
vinaphone-10daysVinaphone5GB/day10$11.90
viettel-15daysViettel5GB/day15$12.90
vinaphone-15daysVinaphone5GB/day15$13.90
viettel-30daysViettel5GB/day30$18.90
vinaphone-30daysVinaphone5GB/day30$18.90

Built to order (3)

slugdatadaysUSD
vietnam-esim-unlimited-7daysUnlimited7$19.90
vietnam-esim-unlimited-15daysUnlimited15$37.90
vietnam-esim-unlimited-30daysUnlimited30$59.90

Physical SIM cards are not sold through this API. Handing one over needs your customer's hotel address or flight details, and we would rather not hold personal data about someone we have no relationship with.

2. Place an order

POST https://simvietnam.telebox.vn/api/partner/orders
Content-Type: application/json

# instant plan — no date
{ "slug": "mobifone-7days", "quantity": 1, "ref": "YOUR-ORDER-ID" }

# made-to-order plan — date required
{ "slug": "vietnam-esim-unlimited-7days",
  "receiveDate": "2026-10-01",
  "quantity": 1,
  "ref": "YOUR-ORDER-ID" }

Always send a ref. It is your own order id. If the network drops after we received the request, calling again with the same ref returns the original order instead of placing a second one and charging you twice.

An instant order comes back already delivered, with the codes in sims:

{
  "ok": true,
  "orderNumber": "ORD-20261001-1234",
  "ref": "YOUR-ORDER-ID",
  "delivery": "instant",
  "state": "ready",
  "sims": [
    { "lpa": "LPA:1$rsp.example.com$ABC123",
      "serial": "8984...",
      "qrUrl": "https://simvietnam.telebox.vn/api/esim/qr/ORD-20261001-1234/0?s=..." }
  ],
  "pricing": { "unitPriceUSD": 9.9, "totalUSD": 9.9, "tier": null, "note": "..." },
  "walletBalanceUSD": 90.1
}

A made-to-order order comes back as awaiting_sim with sims: null. Collect it later with step 3.

Batch limits, and why they are low

3. Collect the SIM

GET https://simvietnam.telebox.vn/api/partner/orders?order=ORD-20261001-1234
GET https://simvietnam.telebox.vn/api/partner/orders            # your most recent orders

You only ever see your own orders. Each one reports a state:

Poll once around the receive date, not in a loop. We tell you when to come back in hint.

The QR image

qrUrl is a permanent, signed link you can embed directly in your own email — it needs no token, so an email client can load it. The activation code itself is never in that URL: anyone who forwards your email forwards a picture, not a key. The image is marked noindex and never cached by shared proxies.

You can also draw your own QR from the lpa string — it is a standard GSMA SGP.22 activation code.

Wallet and pricing

You top up in advance; every order debits the wallet. If the balance is short we refuse the order with 402 insufficient_wallet and tell you exactly how much is missing — nothing is charged.

pricing.tier is null when no dealer rate has been agreed for that quantity, and you are charged the normal retail price. We say so in pricing.noterather than calling retail a “dealer price”.

If an instant order fails after the debit — upstream out of stock, upstream rate limit — we refund the wallet in full, cancel the order, and return 503 fulfillment_failed. It is safe to retry, including with the same ref.

Rate limits

EndpointLimitCounted per
POST /api/partner/orders20/mintoken
GET /api/partner/orders60/mintoken
GET /api/partner/plans120/minIP
QR image60/minIP

Over the limit you get 429 with a Retry-After header. Honour it — retrying immediately just keeps you blocked. Reads and writes are counted separately, so hitting the write limit never stops you collecting a SIM you have already paid for.

Errors

Every failure returns ok: false, a stable error code to branch on, and a message written for whoever is reading the log. Branch on the code, show the message.

codeHTTPwhat to do
unauthorized401Check the token. Paused and non-dealer accounts look the same.
needs_receive_date400Send receiveDate, 1–30 days ahead.
unexpected_receive_date400This plan is instant — remove the field.
bad_receive_date400Date outside the allowed window (Vietnam time, GMT+7).
batch_too_large400Split into separate calls, each with its own ref.
out_of_stock400Try fewer, or another plan.
not_agent_sellable400Use a slug whose delivery.apiOrderUrl is set.
insufficient_wallet402Top up. shortUSD says how much is missing.
supplier_out_of_funds503Our side, not yours. Nothing charged. Contact us.
fulfillment_failed503Wallet already refunded, order cancelled. Safe to retry.
rate_limited429Wait for Retry-After seconds.

What we deliberately do not do

Getting a token

Email admin@telebox.vn with the shop or site you sell from and roughly how many SIMs a month you expect. We are Telebox, an authorized Viettel and Vinaphone dealer with a real shop in Hanoi — dealer since 2009.

Plan list, batch limits, date window and rate limits on this page are read from the running system, not typed in by hand.