Pentru reselleri & dezvoltatori

API-ul eSIM pentru reselleri, agenții și aplicații

Vinde eSIM-uri de călătorie prepaid pentru 190+ destinații sub brandul tău. REST API cu livrare instant, consum live per ICCID, chei sandbox și facturare din portofel.

Ce poți face cu API-ul

Catalog complet de planuri

Preia toate planurile de călătorie cu prețurile tale B2B, acoperire și valabilitate.

Livrare instant a comenzii

Plasezi comanda și primești codul QR / string-ul LPA de activare în câteva secunde.

Consum live per ICCID

Verifici starea liniei, data activării, datele consumate și expirarea pentru orice eSIM vândut.

Mediu sandbox

Dezvolți și testezi cu chei mega_test_ — fără să consumi portofelul sau un eSIM real.

Facturare din portofel

Portofel prepaid, fără comisioane per apel. Alimentezi cu cardul (Stripe) sau bancar (Wise).

Webhooks

Ești notificat la evenimentele comenzii ca să-ți automatizezi propria livrare.

Documentație Partner API v1

Referință publică REST API. Creează un cont de partener ca să primești cheia live și cheia sandbox, apoi folosește exemplele de mai jos.

Base URL — browser

https://megaesim.us/api/v1

Test manual sau apeluri din browser autentificat.

Base URL — server

https://api.megaesim.us/api/v1

Recomandat pentru backend (Render, Node, Python) — ocolește verificarea Cloudflare anti-bot.

Autentificare: Authorization: Bearer mega_live_…

Endpoints

MethodPathDescriere
GET/meVerifică cheia și returnează contul
GET/plansCatalog planuri (prețuri B2B per cont)
GET/plans/{id}Detaliu plan
GET/walletSold portofel + ultimele tranzacții
GET/ordersListă comenzi (?limit=25, max 100)
POST/ordersPlasează comandă (debitează portofelul)
GET/orders/{id}Status comandă
GET/orders/{id}/esimDate eSIM după livrare (QR, LPA, ICCID)
GET/esims/{iccid}/usageConsum live per ICCID (activare, date, expirare)
Verificare cheie — GET /me▾

Răspuns 200: ok, accountEmail, apiKeyName, apiKeyId.

Request

GET https://megaesim.us/api/v1/me
Authorization: Bearer mega_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Catalog — GET /plans▾

Returnează plans[]: id, name, nameEn, dataDescription, coverage, priceEuro, priceCents, validityDays, carrier, hasInstantDelivery, available, outOfStock.

Request

GET https://megaesim.us/api/v1/plans
Authorization: Bearer mega_live_…
Portofel — GET /wallet▾

Returnează balanceCents, currency și transactions[]. Nu există endpoint de top-up în API — alimentarea e din portal: card (Stripe, cu comision) sau Wise (orice sumă de la €30, fără comision, credit 1:1).

Request

GET https://megaesim.us/api/v1/wallet
Authorization: Bearer mega_live_…
Plasare comandă — POST /orders▾

Răspuns: orderId, amountCents, fulfillmentStatus, autoDelivered, autoRefunded, manualPending, emailSent, esimId (dacă livrat automat).

Poll status: GET /orders/{id} — același obiect comandă ca în listă. Orange ES: LPA poate dura câteva minute — poll până delivered, apoi GET /orders/{id}/esim.

În GET /plans, planurile Orange ES au supportsActivationScheduling: true.

CâmpObligatoriuDescriere
planIddaID plan din /plans
deliveryEmailnuEmail client final; omit = contul tău
customerNotenuNotă internă (max 500 car.)
idempotencyKeyrecomandatAceeași cheie → aceeași comandă
activationnuDoar Orange ES (7984–7986): startDate (YYYY-MM-DD, Europe/Bucharest) + durationMonths (1|2|3). Debit = priceCents × durationMonths. Implicit: azi + 1 lună.

Request

POST https://megaesim.us/api/v1/orders
Authorization: Bearer mega_live_…
Content-Type: application/json

{
  "planId": 7985,
  "deliveryEmail": "[email protected]",
  "customerNote": "Ref. internă #12345",
  "idempotencyKey": "your-unique-key-2026-001",
  "activation": {
    "startDate": "2026-10-05",
    "durationMonths": 2
  }
}
Poll eSIM — GET /orders/{id}/esim▾

După livrare: esim cu iccid, activationCode, qrCodeData, smdpAddress, deliveredAt.

Dacă eSIM-ul nu e gata: 404 cu code esim_not_ready.

Request

GET https://megaesim.us/api/v1/orders/123456/esim
Authorization: Bearer mega_live_…
Consum live — GET /esims/{iccid}/usage▾

Interoghează consumul și starea liniei folosind ICCID-ul primit din /orders/{id}/esim.

Răspuns 200 → obiect usage: iccid, supported, status (active | inactive | paused | expired | unknown), dataPlanStatus, dataUsedMb, activatedAt, orderedAt, expiresAt, expiryKind (data_ends | install_by | after_activation), planValidityDays, dailyResetAt, refreshedAt.

Datele sunt cache-uite ~3 minute per eSIM. Adaugă ?refresh=1 pentru citire live (folosește cu moderație).

Câmpurile de date sunt disponibile doar pentru eSIM-urile pe rețele cu raportare de consum; altfel supported:false și câmpurile de consum sunt null. Consumul rămas nu este expus — doar dataUsedMb (total).

ICCID necunoscut în cont → 404 esim_not_found. Furnizor de consum indisponibil temporar → 503 usage_upstream_unavailable.

Request

GET https://megaesim.us/api/v1/esims/8939104610004735215/usage
Authorization: Bearer mega_live_…
Webhooks — evenimente către URL-ul tău▾

Înregistrezi un URL HTTPS în Developers → Webhooks. Trimitem POST JSON la order.placed, order.delivered, order.refunded, wallet.topup.

Header: x-megaesim-signature = t=<unix>,v1=<hmac-sha256(secret, timestamp.body)>.

Câmpul id din payload identifică evenimentul. Dacă serverul tău e picat, retrimitem ACELAȘI id (1 min, 5 min, 30 min, 2 h) — nu se creează o comandă nouă și nu se debitează din nou portofelul.

Pentru POST /orders folosește mereu idempotencyKey, ca un retry al tău să nu plaseze două comenzi.

Erori frecvente

  • 401 — Cheie invalidă, revocată sau acces API dezactivat
  • 402 · insufficient_balance — Sold portofel insuficient
  • 404 · plan_not_found — Plan inexistent
  • 404 · esim_not_ready — eSIM încă nelivrat
  • 404 · esim_not_found — Niciun eSIM cu acest ICCID în cont
  • 409 · out_of_stock — Plan indisponibil
  • 429 — Rate limit depășit (vezi mai jos)
  • 503 · usage_upstream_unavailable — Furnizorul de consum e temporar indisponibil

Rate limits (per cheie API)

Citiri (GET): 120 / minut · Comenzi (POST /orders): 30 / minut. La depășire: HTTP 429 + retryAfterSec.

Securitate

  • Păstrează cheia doar server-side — nu o expune în frontend public.
  • Folosește idempotencyKey la fiecare comandă (retry-safe).
  • Revocă imediat cheile compromise din secțiunea de mai sus.
  • Răspunsurile nu expun detalii interne de aprovisionare.

Flux recomandat

  1. GET /plans — afișează catalogul cu prețurile tale B2B.
  2. GET /wallet — verifică soldul înainte de comandă.
  3. POST /orders cu idempotencyKey — plasează comanda.
  4. Dacă autoDelivered: false, poll GET /orders/{id} până fulfillmentStatus = delivered.
  5. GET /orders/{id}/esim — preia QR / LPA / ICCID pentru client.
  6. GET /esims/{iccid}/usage — verifică oricând consumul, activarea și expirarea liniei.

Suport: Întrebări tehnice sau comerciale: [email protected]

Gata să integrezi?

Solicită acces partener — după aprobare activezi cheia sandbox și pe cea live.

Întrebări tehnice sau comerciale: [email protected]

API eSIM pentru reselleri și agenții — MegaEsim Partner API · MegaEsim