eSIMDual-Reseller API

Nutzen Sie die eSIMDual-Reseller-API auf Ihrer eigenen Website oder in Ihrer App.

Diese Dokumentation beschreibt die Produktions- und Test-APIs: Authentifizierung, öffentliche Pakete, Käufe, eSIM-Bereitstellung, Nutzung, kompatible Aufladungen, Stornierung ungenutzter eSIMs, Erstattungen, Wallet-Daten und signierte Webhooks.

Schnellstart
  • 1Sicher mit POST /sandbox/login beginnen
  • 2Senden Sie Bearer-Token an alle geschützten Endpunkte
  • 3Bei jedem Kauf, jeder Aufladung und jeder Stornierung Idempotency-Key verwenden
  • 4Erst nach Freigabe des Resellers zur Produktion wechseln
Basis-URL https://esimdual.com/api/reseller/v1
URL der Testumgebung https://esimdual.com/api/reseller/v1/sandbox
Authentifizierung Authorization: Bearer <token>
Idempotenz Idempotency-Key: unique-order-key
Sicherheit der Testumgebung

Testbestellungen verwenden ein fiktives Guthaben und simulierte eSIMs. Sie rufen niemals einen vorgelagerten Anbieter auf und belasten nie das Produktions-Wallet. Verwenden Sie den Simulationsendpunkt, um die Zustände installiert, aktiv und verbraucht zu testen, und prüfen Sie danach akzeptierte, abgelehnte und manuell zu prüfende Erstattungsabläufe.

curl --request POST 'https://esimdual.com/api/reseller/v1/sandbox/login' \
  --header 'Content-Type: application/json' \
  --data '{"email":"partner@example.com","password":"YOUR_PASSWORD","device_name":"sandbox-ci"}'
Beispiel einer Anmeldeanfrage
curl --request POST 'https://esimdual.com/api/reseller/v1/login' \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "partner@example.com",
    "password": "StrongPassword123!",
    "device_name": "production-server",
    "expires_in_days": 90
  }'
Musterbestellungsanfrage
curl --request POST 'https://esimdual.com/api/reseller/v1/orders' \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Idempotency-Key: ORDER-2026-0001' \
  --header 'Content-Type: application/json' \
  --data '{
    "package_id": 1120,
    "external_order_id": "NOANET-2026-0001",
    "device_imei": "356938035643809"
  }'
Ablauf für kompatible Aufladungen
GET /esims/{id}/topup-options

POST /topups
Idempotency-Key: TOPUP-2026-0001
{
  "esim_id": "{id}",
  "package_id": 456
}
Stornierung einer ungenutzten eSIM
POST /esims/{id}/cancel
Idempotency-Key: CANCEL-2026-0001

Automatic refund only when the supplier confirms:
- zero usage
- never installed
- never activated
- no completed recharge exists
- original wallet debit is verified

Webhook-Ereignisse

eSIMDual signiert timestamp.raw_payload mit HMAC SHA-256. Das Geheimnis wird von eSIMDual erzeugt und nur nach der Erstellung oder Rotation angezeigt. Lehnen Sie Zeitstempel ab, die älter als fünf Minuten sind, und deduplizieren Sie X-eSIMDual-Delivery.

ping order.completed order.processing order.failed topup.completed topup.processing topup.failed esim.cancelled refund.completed refund.failed
X-eSIMDual-Event
X-eSIMDual-Delivery
X-eSIMDual-Timestamp
X-eSIMDual-Signature: v1=…
PHP-Signaturprüfung
$rawBody = file_get_contents('php://input');
$timestamp = $_SERVER['HTTP_X_ESIMDUAL_TIMESTAMP'] ?? '';
$received = $_SERVER['HTTP_X_ESIMDUAL_SIGNATURE'] ?? '';
$fresh = ctype_digit($timestamp) && abs(time() - (int) $timestamp) <= 300;
$expected = 'v1=' . hash_hmac('sha256', $timestamp . '.' . $rawBody, $webhookSecret);

if (!$fresh || !hash_equals($expected, $received)) {
    http_response_code(401);
    exit('Invalid or stale signature');
}

Speichern Sie jeden X-eSIMDual-Delivery-Wert und lehnen Sie doppelte Zustellungen ab. Geben Sie erst nach Annahme des Ereignisses eine HTTP-2xx-Antwort zurück.

Wir können Cookies oder andere Tracking-Technologien verwenden, wenn Sie unsere Website, mobile Website oder App besuchen, um die Website zu personalisieren und Ihre Erfahrung zu verbessern. Mehr erfahren

Erlauben