eSIM API – Complete API Reference

eSIM API Documentation

Complete REST API for managing eSIM orders, credits, and user accounts

Base URL

Production: https://api.strongesim.com/api/v1

📚 Developer Resources:

Authentication: All authenticated endpoints require a JWT Bearer token in the Authorization header:

Authorization: Bearer {access_token}
X-Session-ID: {session_id}

Rate Limiting:

  • Login/Registration: 5 attempts per IP per 15 minutes
  • Password reset: 3 attempts per email per hour
  • Other endpoints: 1000 requests per user per hour

Authentication

Manage user authentication, registration, and session management.

POST Register a new user account

/auth/register

Register a new user account.

Request Body

{
  "email": "user@example.com",
  "password": "SecurePassword123!",
  "role": "reseller",
  "name": "John Doe"
}

Body Parameters

ParameterTypeRequiredDescription
emailstringRequiredValid email address
passwordstringRequiredUser password (min 8 characters, must include uppercase, lowercase, number, special character for resellers/developers)
rolestringRequiredUser role – one of: mobile_user, reseller, developer
namestringOptionalUser’s full name

POST Login

/auth/login

Authenticate with email and password to obtain access and refresh tokens.

Account Lockout: After 5 failed login attempts, account is locked for 15 minutes.

Request Body

{
  "email": "user@example.com",
  "password": "SecurePassword123!",
  "role": "reseller"
}

Body Parameters

ParameterTypeRequiredDescription
emailstringRequiredUser’s email address
passwordstringRequiredUser’s password
rolestringOptionalSpecify role if user has multiple accounts with same email

GET Verify user email address with verification token

/auth/verify-email

Verify user email address using verification token sent to email.

POST Resend email verification link

/auth/resend-verification

Send a new verification link to the user’s email.

Request Body

{
  "email": "user@example.com",
  "role": "reseller"
}

Body Parameters

ParameterTypeRequiredDescription
emailstringRequiredEmail address to resend verification to
rolestringOptionalUser role if multiple accounts exist

POST Refresh access token using refresh token Auth Required

/auth/refresh-token

Exchange a valid refresh token for a new access token.

Request Body

{
  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

POST Logout user and invalidate session tokens Auth Required

/auth/logout

Logout user and invalidate tokens. If session_id omitted, logs out all sessions.

Request Body (Optional)

{
  "session_id": "{{session_id}}"
}

POST Request password reset link via email

/auth/forgot-password

Send password reset email.

Request Body

{
  "email": "user@example.com",
  "role": "reseller"
}

POST Reset password using reset token

/auth/reset-password

Reset password using token from email.

Request Body

{
  "token": "reset-token-from-email",
  "password": "NewSecurePassword123!",
  "confirmPassword": "NewSecurePassword123!",
  "role": "reseller"
}

GET Get all active login sessions for current user Auth Required

/auth/sessions

Retrieve all active login sessions for the authenticated user.

DELETE Revoke a specific session (logout from specific device) Auth Required

/auth/sessions/:sessionId

Logout from a specific device/session.

Users

Manage user profiles and account information.

GET Get the current authenticated user’s profile with role-specific data Auth Required

/users/me

Fetch authenticated user’s profile with role-specific data.

PUT Update the current user’s profile information Auth Required

/users/me

Update user profile information.

Request Body

{
  "name": "John Doe",
  "companyName": "Acme Corporation"
}

PUT Change the current user’s password Auth Required

/users/me/password

Update password with validation of old password.

Request Body

{
  "old_password": "CurrentPassword123!",
  "new_password": "NewSecurePassword456!",
  "confirm_password": "NewSecurePassword456!"
}

Body Parameters

ParameterTypeRequiredDescription
old_passwordstringRequiredCurrent password
new_passwordstringRequiredNew password
confirm_passwordstringRequiredNew password confirmation (must match new_password)

Credits and Deposits

Manage credit balance and view transactions.

GET Get current credit balance for the authenticated user Auth Required

/credits/balance

Retrieve current credit balance for reseller/developer. Response differs by billing mode.

GET Get paginated list of credit transactions with optional filtering Auth Required (Reseller only)

/credits/transactions

Retrieve credit transactions with filtering by type, status, and date range.

Notification Preferences

Manage notification settings for your account.

GET Get Notification Preferences Auth Required

/notification-preferences

Get current notification preferences for the authenticated user.

PUT Update Notification Preferences Auth Required

/notification-preferences

Update notification preferences.

Request Body

{
  "preferences": {
    "low_data_50": true,
    "low_data_20": true,
    "low_data_10": false,
    "expiry_warning": true,
    "activation": false
  }
}

POST Reset Notification Preferences Auth Required

/notification-preferences/reset

Reset notification preferences to default values.

Request Body

{
  "low_data_50": true,
  "low_data_20": true,
  "low_data_10": true,
  "expiry_warning": true,
  "activation": true
}

Orders

Create and manage eSIM orders.

POST Create a new eSIM order Auth Required

/orders

Create a new eSIM order. For Resellers: Must have completed onboarding, must have sufficient credit balance.

Request Body

{
  "plan_id": "{{plan_id}}",
  "quantity": 1,
  "reseller_profile_id": "{{reseller_profile_id}}",
  "end_customer_email": "customer@example.com",
  "customer_name": "John Doe"
}

Body Parameters

ParameterTypeRequiredDescription
plan_idstringRequiredUUID of the eSIM plan to order
quantitynumberOptionalNumber of eSIMs to order (default: 1)
provider_idstringOptionalSpecific provider to use (overrides plan default)
reseller_profile_idstringOptionalReseller profile for branding (uses default if not provided)
end_customer_emailstringOptionalCustomer’s email for QR code delivery
customer_namestringOptionalCustomer’s full name

GET Get detailed status and information for a specific order Auth Required

/orders/:order_id

Retrieve details for a specific order.

GET Get a paginated list of orders for the authenticated user Auth Required

/orders

Get paginated list of user’s orders with optional filtering.

POST Cancel an order and receive refund (if eligible) Auth Required

/orders/:order_id/cancel

Cancel an order and receive refund if eligible.

Request Body

{
  "esimTranNo": "ESIM-20240115-001",
  "iccid": "{{iccid}}",
  "reason": "Customer requested cancellation"
}

GET Get data usage statistics for an active eSIM order Auth Required

/orders/:order_id/usage

Get data usage statistics for an active eSIM order.

POST Force refresh usage data from the provider (bypasses cache) Auth Required

/orders/:order_id/usage/refresh

Force refresh usage data from the provider, bypassing cache.

GET Get Order Usage Auth Required

/v2/order-usage/:order_id

Get order usage information (v2 endpoint).

GET Get Top-up Plans Auth Required

/orders/:order_id/topup-plans

Retrieve available top-up plans for an order.

POST Top-up Order Auth Required

/orders/:order_id/topup

Add data to an existing eSIM order.

Request Body

{
  "topupId": "b3JkZXItdXVpZDpVU0FfMUdCXzdEX1RPUFVQ"
}

GET Get Order Top-ups Auth Required

/orders/:order_id/topups

Get list of all top-ups for an order.

Plans

Browse and manage available eSIM data plans.

GET Get a paginated list of all active eSIM plans with optional filtering Auth Required

/plans

Get available eSIM plans with filtering and pagination.

GET Get list of all countries with available eSIM plans and minimum prices Auth Required

/plans/countries

Get list of all countries with available eSIM plans and minimum prices.

GET Get detailed information about a specific plan Auth Required

/plans/:id

Retrieve details for a specific eSIM plan by ID.

GET Get timestamp when plans were last updated Auth Required

/plans/last-updated

Get timestamp when plans were last updated. Useful for cache invalidation.

GET Get incremental changes to plans since a specific timestamp Auth Required

/plans/changes

Get incremental changes to plans since a specific timestamp.

GET Get statistics about total coverage (countries and regions) Auth Required

/plans/stats/coverage

Get statistics about total coverage including countries and regions.

Reseller API

Manage reseller profiles, pricing settings, and dashboard.

GET Get All Reseller Profiles Auth Required (Reseller role)

/reseller/profile

Retrieve all reseller branding profiles.

GET Get Specific Profile Auth Required (Reseller role)

/reseller/profile/:id

Get details for a specific reseller profile.

POST Create New Profile Auth Required (Reseller role)

/reseller/profile

Create a new branding profile for reseller.

PUT Update Profile Auth Required (Reseller role)

/reseller/profile/:id

Update an existing reseller profile.

DELETE Delete Profile Auth Required (Reseller role)

/reseller/profile/:id

Delete a reseller profile.

GET Get Onboarding Status Auth Required (Reseller role)

/reseller/onboarding-status

Get reseller onboarding completion status.

POST Upload Logo Auth Required (Reseller role)

/reseller/upload-logo

Upload a reseller logo file.

GET Get All Pricing Auth Required (Reseller role)

/reseller/pricing

Retrieve custom pricing overrides for plans.

GET Get Specific Plan Pricing Auth Required (Reseller role)

/reseller/pricing/:plan_id

Get pricing for a specific plan.

POST Create/Update Plan Pricing Auth Required (Reseller role)

/reseller/pricing

Set custom pricing for a plan (markup % or fixed price).

DELETE Delete Plan Pricing Auth Required (Reseller role)

/reseller/pricing/:plan_id

Remove custom pricing for a plan.

GET Get All Associated Users Auth Required (Reseller role)

/reseller/users

Get all users associated with the reseller.

GET Get Specific User Details Auth Required (Reseller role)

/reseller/users/:userId

Get details for a specific associated user.

GET Get All Orders Auth Required (Reseller role)

/reseller/orders

Get all orders for the reseller.

GET Get Dashboard Statistics Auth Required (Reseller role)

/reseller/dashboard

Retrieve dashboard data including account balance, pending invoices, recent orders, and transactions.

GET Get SMTP Configuration Auth Required (Reseller role)

/reseller/profile/:id/smtp

Retrieve SMTP configuration for a reseller profile. Password is never returned.

PUT Update SMTP Configuration Auth Required (Reseller role)

/reseller/profile/:id/smtp

Update or configure custom SMTP settings for a reseller profile. Password is encrypted using AES-256-CBC.

Request Body

{
  "smtp_host": "smtp.example.com",
  "smtp_port": 587,
  "smtp_user": "user@example.com",
  "smtp_pass": "password",
  "smtp_secure": false,
  "email_from": "support@company.com",
  "email_from_name": "Company Support",
  "use_custom_smtp": true
}

POST Test SMTP Configuration Auth Required (Reseller role)

/reseller/profile/:id/smtp/test

Test the SMTP connection for a reseller profile.

DELETE Delete SMTP Configuration Auth Required (Reseller role)

/reseller/profile/:id/smtp

Disable custom SMTP configuration and clear all SMTP data. Emails will be sent using default system SMTP.

Webhook Subscriptions

Manage webhook subscriptions for real-time notifications.

GET Get All Webhook Subscriptions Auth Required

/webhook-subscriptions

Get user’s webhook subscriptions with available event types.

POST Create Webhook Subscription Auth Required

/webhook-subscriptions

Create a new webhook subscription with automatic test.

GET Get Single Webhook Subscription Auth Required

/webhook-subscriptions/:id

Retrieve details for a specific webhook subscription.

PUT Update Webhook Subscription Auth Required

/webhook-subscriptions/:id

Update webhook subscription settings.

DELETE Delete Webhook Subscription Auth Required

/webhook-subscriptions/:id

Delete a webhook subscription.

POST Send Test Webhook Auth Required

/webhook-subscriptions/:id/test

Send a test webhook to the endpoint.

GET Get Webhook Delivery Logs Auth Required

/webhook-subscriptions/:id/logs

Get webhook delivery history for a subscription.

Uploads

Upload files such as reseller logos.

POST Upload Logo Auth Required (Reseller only)

/uploads/logo

Upload a reseller logo file (PNG/JPEG, max 5MB).

File Requirements:
  • Maximum file size: 5MB
  • Supported formats: PNG, JPG, JPEG, GIF
  • Recommended dimensions: 200x200px minimum

Request

Form data with file upload:

Content-Type: multipart/form-data

logo: [binary file data]

© 2025 eSIM API. All rights reserved.

API Version: v1.0.0 | Last Updated: January 2025

Le soin apporté par https://casino-cazeus.net/ à chaque interaction avec ses joueurs reflète une culture d’entreprise tournée vers l’excellence. Les limites de mise sont flexibles, permettant à chacun de jouer selon son budget. Les promotions ciblées tiennent compte des préférences individuelles pour proposer des offres véritablement pertinentes. La transparence des règles et des taux de redistribution inspire confiance aux joueurs les plus prudents. Le constat est unanime parmi les utilisateurs : cette plateforme offre un rapport qualité-prix remarquable.