API documentation

With the Resellercenter API you connect our eSIMs directly to your shop or system: fetch the catalogue with your price, buy eSIMs, query orders and balance. All responses are JSON (UTF-8), amounts in EUR.

Base URL and authentication

https://www.resellercenter.net/api/v1

Every request needs your API key in the header. You create keys under “API” after logging in. Treat it like a password.

Authorization: Bearer eg_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

At most 120 requests per minute and key. Keys are only valid for this address.

Test mode for development

Create a test key under “API”. The API then responds as in live mode – catalogue, balance, checks of package, quantity and balance – but purchases are only simulated: nothing is bought or charged. Order numbers start with TEST, responses contain "test_mode": true and the header X-Test-Mode: 1. The eSIM data cannot be installed.

Catalogue

GET /catalog

All countries and regions with packages. price is your price, retail_price the recommended retail price.

Optional ?lang=en, es, fr: names and notes in this language (default German).

GET /catalog/{slug}

One country or region, e.g. /catalog/tuerkei.

{
  "country": {
    "slug": "tuerkei", "name": "Türkei", "type": "country", "country_code": "TR",
    "flag_url": "https://www.resellercenter.net/assets/flags/turkey.png",
    "packages": [{
      "package": "tuerkei-3-gb-30-tage-1a2b3c",
      "data": "3 GB", "data_mb": 3072, "unlimited": false, "validity_days": 30,
      "network": "Turkcell", "apn": { "auto": true, "primary": null },
      "price": 3.65, "retail_price": 10.99, "currency": "EUR"
    }]
  }
}

package is the package ID for purchasing. If apn.auto = false, the end customer must enter the APN apn.primary manually.

Buy eSIM

POST /orders

Charges the amount to your balance immediately and returns the eSIM data directly in the response, usually within a few seconds.

The header Idempotency-Key is mandatory: if you repeat a request with the same value, e.g. after a timeout, you get the same response – nothing is bought twice.

curl -X POST https://www.resellercenter.net/api/v1/orders \
  -H "Authorization: Bearer eg_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-4711" \
  -d '{"package": "tuerkei-3-gb-30-tage-1a2b3c", "quantity": 1, "reference": "4711"}'

Response 201:

{
  "order": {
    "order_no": "EP100012", "status": "fulfilled", "reference": "4711",
    "quantity": 1, "unit_price": 3.65, "total": 3.65, "currency": "EUR",
    "esims": [{
      "iccid": "8944…", "smdp_address": "…", "activation_code": "…",
      "lpa": "LPA:1$…$…",
      "apple_install_url": "https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=…",
      "apn": { "auto": false, "primary": "globaldata" },
      "qr_png_url": "https://www.resellercenter.net/api/v1/orders/EP100012/qr/0.png"
    }]
  }
}

Generate the QR code yourself from lpa or load it as PNG via qr_png_url (with key). A QR code can only be installed once.

Orders

GET /orders

GET /orders/{order_no}

Your orders with eSIM data. Filters: status, since_id, from, to (YYYY-MM-DD), limit (max. 200). To page, set since_id to next_since_id from the previous response.

Status: fulfilled (delivered) · fulfilling · failed · refunded

Balance

GET /balance

Balance, available amount and the last 50 transactions.

Errors

{ "error": { "code": "insufficient_balance", "message": "…" } }
HTTPMeaning
400Invalid request, e.g. Idempotency-Key missing or no JSON
401Key missing or invalid
402Insufficient balance (insufficient_balance)
403Not allowed, account deactivated or wrong address
404Not found
422Invalid values (unknown_package, invalid_quantity)
429Too many requests – wait one minute
502eSIM could not be created – the amount was credited back automatically, please try again later

Register as a reseller now