Documentación de la API
Con la API del Resellercenter conectas nuestras eSIM directamente a tu tienda o sistema: consultar el catálogo con tu precio, comprar eSIM, consultar pedidos y saldo. Todas las respuestas son JSON (UTF-8), importes en EUR.
URL base y autenticación
https://www.resellercenter.net/api/v1
Cada petición necesita tu clave API en la cabecera. Creas las claves en «API» tras iniciar sesión. Trátala como una contraseña.
Authorization: Bearer eg_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Como máximo 120 peticiones por minuto y clave. Las claves solo valen para esta dirección.
Modo de prueba para desarrollo
Crea una clave de prueba en «API». La API responde entonces como en real – catálogo, saldo, comprobación de paquete, cantidad y saldo –, pero las compras solo se simulan: no se compra ni se cobra nada. Los números de pedido empiezan por TEST, las respuestas contienen "test_mode": true y la cabecera X-Test-Mode: 1. Los datos eSIM no se pueden instalar.
Catálogo
GET /catalog
Todos los países y regiones con paquetes. price es tu precio, retail_price el precio de venta recomendado.
Opcional ?lang=en, es, fr: nombres e indicaciones en ese idioma (por defecto alemán).
GET /catalog/{slug}
Un país o una región, p. ej. /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 es el ID del paquete para la compra. Si apn.auto = false, el cliente final debe introducir el APN apn.primary manualmente.
Comprar eSIM
POST /orders
Descuenta el importe de tu saldo al instante y devuelve los datos eSIM directamente en la respuesta, normalmente en pocos segundos.
La cabecera Idempotency-Key es obligatoria: si repites una petición con el mismo valor, p. ej. tras un timeout, recibes la misma respuesta – no se compra dos veces.
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"}'Respuesta 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"
}]
}
}Genera el código QR tú mismo a partir de lpa o descárgalo como PNG mediante qr_png_url (con clave). Un código QR solo se puede instalar una vez.
Pedidos
GET /orders
GET /orders/{order_no}
Tus pedidos con datos eSIM. Filtros: status, since_id, from, to (AAAA-MM-DD), limit (máx. 200). Para paginar, pon since_id al valor next_since_id de la respuesta anterior.
Estado: fulfilled (entregado) · fulfilling · failed · refunded
Saldo
GET /balance
Saldo, importe disponible y los últimos 50 movimientos.
Errores
{ "error": { "code": "insufficient_balance", "message": "…" } }| HTTP | Significado |
|---|---|
| 400 | Petición no válida, p. ej. falta Idempotency-Key o no es JSON |
| 401 | Clave ausente o no válida |
| 402 | Saldo insuficiente (insufficient_balance) |
| 403 | No permitido, cuenta desactivada o dirección incorrecta |
| 404 | No encontrado |
| 422 | Valores no válidos (unknown_package, invalid_quantity) |
| 429 | Demasiadas peticiones – espera un minuto |
| 502 | No se pudo crear la eSIM – el importe se ha abonado automáticamente, inténtalo de nuevo más tarde |