API Reseller eSIMDual

Gunakan API reseller eSIMDual di situs web atau aplikasi Anda sendiri.

Dokumentasi ini mencakup API produksi dan pengujian: autentikasi, paket publik, pembelian, pengiriman eSIM, penggunaan, isi ulang yang kompatibel, pembatalan eSIM yang belum digunakan, pengembalian dana, data dompet, dan webhook bertanda tangan.

Mulai cepat
  • 1Mulai dengan aman menggunakan POST /sandbox/login
  • 2Kirim token Bearer ke semua endpoint yang dilindungi.
  • 3Gunakan Idempotency-Key pada setiap pembelian, isi ulang, dan pembatalan
  • 4Beralih ke produksi hanya setelah persetujuan reseller
URL Dasar https://esimdual.com/api/reseller/v1
URL lingkungan uji https://esimdual.com/api/reseller/v1/sandbox
Autentikasi Authorization: Bearer <token>
Idempotensi Idempotency-Key: unique-order-key
Keamanan lingkungan uji

Pesanan uji menggunakan saldo fiktif dan eSIM simulasi. Pesanan ini tidak pernah menghubungi pemasok hulu dan tidak pernah mendebit dompet produksi. Gunakan endpoint simulasi untuk menguji status terpasang, aktif, dan habis digunakan, lalu periksa alur pengembalian dana yang diterima, ditolak, dan ditinjau secara manual.

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"}'
Contoh permintaan login
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
  }'
Permintaan pesanan sampel
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"
  }'
Alur isi ulang yang kompatibel
GET /esims/{id}/topup-options

POST /topups
Idempotency-Key: TOPUP-2026-0001
{
  "esim_id": "{id}",
  "package_id": 456
}
Pembatalan eSIM yang belum digunakan
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

Peristiwa webhook

eSIMDual menandatangani timestamp.raw_payload dengan HMAC SHA-256. Rahasia dibuat oleh eSIMDual dan hanya ditampilkan setelah pembuatan atau rotasi. Tolak stempel waktu yang lebih lama dari lima menit dan hapus duplikasi berdasarkan 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=…
Verifikasi tanda tangan PHP
$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');
}

Simpan setiap nilai X-eSIMDual-Delivery dan tolak pengiriman duplikat. Kembalikan respons HTTP 2xx hanya setelah peristiwa diterima.

Nous pouvons utiliser des cookies ou toute autre technologie de suivi lorsque vous visitez notre site web, ainsi que tout autre support, site web mobile ou application mobile lié ou connecté, afin de personnaliser le Site et d’améliorer votre expérience. Pelajari selengkapnya

Mengizinkan