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