API-Dokumentation
Mit der Resellercenter-API bindest du unsere eSIMs direkt an deinen Shop oder dein System an: Katalog mit deinem Preis abrufen, eSIMs kaufen, Bestellungen und Guthaben abfragen. Alle Antworten sind JSON (UTF-8), Beträge in EUR.
Basis-Adresse und Anmeldung
https://www.resellercenter.net/api/v1
Jede Anfrage braucht deinen API-Schlüssel im Header. Schlüssel erstellst du nach der Anmeldung unter „API“. Behandle ihn wie ein Passwort.
Authorization: Bearer eg_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Höchstens 120 Anfragen pro Minute und Schlüssel. Die Schlüssel gelten nur für diese Adresse.
Testmodus für die Entwicklung
Erstelle unter „API“ einen Test-Schlüssel. Damit antwortet die API wie im Livebetrieb – Katalog, Guthaben, Prüfung von Paket, Menge und Guthaben –, Käufe werden aber nur simuliert: nichts wird gekauft oder abgebucht. Bestellnummern beginnen mit TEST, die Antworten enthalten "test_mode": true und den Header X-Test-Mode: 1. Die eSIM-Daten sind nicht installierbar.
Katalog
GET /catalog
Alle Länder und Regionen mit Paketen. price ist dein Preis, retail_price der empfohlene Endkundenpreis.
Optional ?lang=en, es, fr: Namen und Hinweise in dieser Sprache (Standard Deutsch).
GET /catalog/{slug}
Ein Land oder eine Region, z. B. /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 ist die Paket-ID für den Kauf. Ist apn.auto = false, muss der Endkunde den APN apn.primary von Hand eintragen.
eSIM kaufen
POST /orders
Bucht den Betrag sofort von deinem Guthaben ab und liefert die eSIM-Daten direkt in der Antwort, meist in wenigen Sekunden.
Der Header Idempotency-Key ist Pflicht: Wiederholst du eine Anfrage mit demselben Wert, etwa nach einem Timeout, bekommst du dieselbe Antwort – es wird nicht doppelt gekauft.
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"}'Antwort 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"
}]
}
}Den QR-Code erzeugst du selbst aus lpa oder lädst ihn als PNG über qr_png_url (mit Schlüssel). Ein QR-Code lässt sich nur einmal installieren.
Bestellungen
GET /orders
GET /orders/{order_no}
Deine Bestellungen mit eSIM-Daten. Filter: status, since_id, from, to (JJJJ-MM-TT), limit (max. 200). Zum Blättern since_id auf next_since_id der vorigen Antwort setzen.
Status: fulfilled (geliefert) · fulfilling · failed · refunded
Guthaben
GET /balance
Saldo, verfügbarer Betrag und die letzten 50 Kontobewegungen.
Fehler
{ "error": { "code": "insufficient_balance", "message": "…" } }| HTTP | Bedeutung |
|---|---|
| 400 | Ungültige Anfrage, z. B. Idempotency-Key fehlt oder kein JSON |
| 401 | Schlüssel fehlt oder ist ungültig |
| 402 | Nicht genügend Guthaben (insufficient_balance) |
| 403 | Nicht erlaubt, Konto deaktiviert oder falsche Adresse |
| 404 | Nicht gefunden |
| 422 | Ungültige Werte (unknown_package, invalid_quantity) |
| 429 | Zu viele Anfragen – eine Minute warten |
| 502 | eSIM konnte nicht erstellt werden – der Betrag wurde automatisch gutgeschrieben, bitte später erneut versuchen |