200+ Countries
Become a Partner

🚀 Official SDKs

Zero boilerplate code. Automatic authentication. Full type safety. Choose your language and start building in minutes.

WooCommerce Plugin

WordPress No Coding

Official WooCommerce plugin. Sync eSIM plans, auto-fulfil orders on payment, and give customers a full eSIM management dashboard — no coding required.

  • Auto-sync plans as WooCommerce products
  • Instant eSIM provisioning on payment
  • QR codes delivered in order emails
  • My eSIMs dashboard with iOS 17+ install
  • No Composer — works on any host
Plugins → Upload Plugin → touristesim-woocommerce.zip

PHP SDK

PHP 8.3+ Composer

Production-ready PHP SDK with OAuth 2.0, exponential backoff retry logic, and full type hints.

  • Automatic OAuth token management
  • Token caching (file-based)
  • Built-in retry logic
  • Type-safe models
  • 31 unit tests included
composer require touristesim/touristesim-php-sdk

Node.js SDK

TypeScript Node 20 LTS+

Modern async/await SDK with full TypeScript support and async HTTP client.

  • Full TypeScript types
  • Async/await support
  • Token caching (NodeCache)
  • Exponential backoff retry
  • Jest test setup
npm install @tourist-esim/touristesim-nodejs-sdk

Python SDK

Python 3.8+ pip

Pythonic SDK with requests library and full type hints for modern Python development.

  • Type hints throughout
  • Built-in token caching
  • Requests-based HTTP
  • Exponential backoff
  • pytest ready
pip install touristesim-python-sdk

⚡ Quick Start Examples

<?php
require 'vendor/autoload.php';
use TouristeSIM\Sdk\TouristEsim;

// Initialize SDK
$sdk = new TouristEsim('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET');

// Get all plans
$plans = $sdk->plans->get(page: 1);
foreach ($plans->data as $plan) {
    echo "{$plan->name}: USD {$plan->price}\n";
}

// Create an order
$order = $sdk->orders->create([
    'plans' => [['plan_slug' => 'vietnam_100mb_7days_7e87c5', 'quantity' => 1]],
    'email' => 'customer@example.com'
]);

echo "Order: {$order->order_number}\n";
import { TouristEsim } from '@tourist-esim/touristesim-nodejs-sdk';

// Initialize SDK
const sdk = new TouristEsim('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET');

// Get all plans
const plans = await sdk.plans.get(1);
plans.data.forEach(plan => {
    console.log(`${plan.name}: USD ${plan.price}`);
});

// Create an order
const order = await sdk.orders.create({
    plans: [{ plan_slug: 'vietnam_100mb_7days_7e87c5', quantity: 1 }],
    email: 'customer@example.com'
});

console.log(`Order: ${order.order_number}`);
from touristesim import TouristEsim

# Initialize SDK
sdk = TouristEsim('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET')

# Get all plans
plans = sdk.plans.get(page=1)
for plan in plans['data']:
    print(f"{plan['name']}: USD {plan['price']}")

# Create an order
order = sdk.orders.create({
    'plans': [{'plan_slug': 'vietnam_100mb_7days_7e87c5', 'quantity': 1}],
    'email': 'customer@example.com'
})

print(f"Order: {order['order_number']}")

📊 SDK vs REST API

Feature REST API (Manual) SDK (Automated)
Authentication Manual OAuth token + Bearer header per request Automatic (handled by SDK)
Token Management Manual refresh logic Automatic with caching
Error Handling Manual HTTP code parsing Typed exceptions
Retry Logic Must implement Built-in exponential backoff
Type Safety None Full type hints
Lines of Code 20-30 per request 3-5 per request
Development Time Days Hours

📚 Resources & Support

📖 Documentation

Comprehensive guides for each SDK with examples and best practices.

View All Guides →

🔗 API Reference

Complete OpenAPI specification for the Tourist eSIM Partner API.

Back to API Docs →

🐙 GitHub

Source code, examples, and issue tracking for all three SDKs.

Visit GitHub →

💬 Support

Technical support for SDK integration and API questions.

Contact Support →