Documentation de l’API
Avec l’API du Resellercenter, vous connectez nos eSIM directement à votre boutique ou à votre système : catalogue avec votre prix, achat d’eSIM, consultation des commandes et du solde. Toutes les réponses sont en JSON (UTF-8), montants en EUR.
URL de base et authentification
https://www.resellercenter.net/api/v1
Chaque requête nécessite votre clé API dans l’en-tête. Vous créez les clés sous « API » après connexion. Traitez-la comme un mot de passe.
Authorization: Bearer eg_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Au maximum 120 requêtes par minute et par clé. Les clés ne sont valables que pour cette adresse.
Mode test pour le développement
Créez une clé de test sous « API ». L’API répond alors comme en production – catalogue, solde, contrôle du forfait, de la quantité et du solde –, mais les achats sont seulement simulés : rien n’est acheté ni débité. Les numéros de commande commencent par TEST, les réponses contiennent "test_mode": true et l’en-tête X-Test-Mode: 1. Les données eSIM ne sont pas installables.
Catalogue
GET /catalog
Tous les pays et régions avec leurs forfaits. price est votre prix, retail_price le prix de vente conseillé.
Facultatif ?lang=en, es, fr : noms et remarques dans cette langue (allemand par défaut).
GET /catalog/{slug}
Un pays ou une région, p. ex. /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 est l’identifiant du forfait pour l’achat. Si apn.auto = false, le client final doit saisir manuellement l’APN apn.primary.
Acheter une eSIM
POST /orders
Débite immédiatement le montant de votre solde et renvoie les données eSIM directement dans la réponse, généralement en quelques secondes.
L’en-tête Idempotency-Key est obligatoire : si vous répétez une requête avec la même valeur, p. ex. après un timeout, vous obtenez la même réponse – rien n’est acheté deux fois.
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"}'Réponse 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"
}]
}
}Générez vous-même le QR code à partir de lpa ou téléchargez-le en PNG via qr_png_url (avec clé). Un QR code ne peut être installé qu’une seule fois.
Commandes
GET /orders
GET /orders/{order_no}
Vos commandes avec les données eSIM. Filtres : status, since_id, from, to (AAAA-MM-JJ), limit (max. 200). Pour paginer, définissez since_id sur next_since_id de la réponse précédente.
Statut: fulfilled (livrée) · fulfilling · failed · refunded
Crédit
GET /balance
Solde, montant disponible et les 50 derniers mouvements.
Erreurs
{ "error": { "code": "insufficient_balance", "message": "…" } }| HTTP | Signification |
|---|---|
| 400 | Requête invalide, p. ex. Idempotency-Key manquant ou pas de JSON |
| 401 | Clé manquante ou invalide |
| 402 | Solde insuffisant (insufficient_balance) |
| 403 | Non autorisé, compte désactivé ou mauvaise adresse |
| 404 | Introuvable |
| 422 | Valeurs invalides (unknown_package, invalid_quantity) |
| 429 | Trop de requêtes – patientez une minute |
| 502 | L’eSIM n’a pas pu être créée – le montant a été recrédité automatiquement, veuillez réessayer plus tard |