Partner API

API Reference

Integrate ESIMHUB eSIM inventory into your product with REST endpoints, API key authentication, and signed webhooks.

Getting started
  1. Submit a partner application with your contact and company details.
  2. Our team reviews and approves your application in the admin portal.
  3. After approval, you receive an API key and webhook signing secret by email (shown once — store them securely).
  4. ESIMHUB credits your prepaid wallet after bank transfer/wire. Check balance with GET /partner/wallet.
  5. Each order debits your wallet at the wholesale price. Insufficient balance returns HTTP 402.
  6. Use the endpoints below to browse the wholesale catalog and create prepaid orders.
Prepaid wallet

Partner orders are paid from a prepaid wallet balance. Top-ups are recorded by ESIMHUB after bank transfer — contact your account manager or support to fund your wallet.

curl "https://esimhub.store/api/v1/partner/wallet" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"

Order create returns walletBalance on success. If balance is too low, the API returns 402 with INSUFFICIENT_BALANCE.

Authentication

All partner endpoints (except registration) require an API key issued after admin approval.

Authorization: Bearer sk_live_<prefix>_<secret>

Alternatively, send the key in the X-Api-Key header. Base URL: https://esimhub.store/api/v1

Endpoints

POST/api/v1/partner/register

Apply for API access (public); set portal password

{ "name": "Acme Travel", "email": "dev@acme.com", "company": "Acme Inc", "password": "your-secure-password" }
POST/api/v1/partner/login

Partner portal login (JWT); pending accounts can log in with limited UI

{ "email": "dev@acme.com", "password": "your-secure-password" }
GET/api/v1/partner/catalogcatalog:read

List wholesale eSIM plans

Query: ?country=US (optional ISO country code)

POST/api/v1/partner/ordersorders:write

Create a prepaid order and queue provisioning

{
  "clientRequestId": "your-unique-id",
  "planId": "<plan id from catalog>",
  "email": "customer@example.com",
  "phoneNumber": "+254700000000"
}
GET/api/v1/partner/walletwallet:read

View prepaid wallet balance and recent ledger entries

GET/api/v1/partner/ordersorders:read

List partner orders

Query: ?page=1&limit=20

GET/api/v1/partner/orders/{orderId}orders:read

Get order detail including QR code when provisioned

Wholesale pricing tiers
  • standardFloor wholesale price
  • premiumFloor price + 10%
  • enterpriseFloor price + 20%

Catalog responses include wholesalePrice only — retail prices and internal supplier fields are not exposed.

Webhooks

Configure your webhookUrl during onboarding. ESIMHUB POSTs events with header X-ESIMHUB-Signature (HMAC-SHA256 of the raw body using your webhook signing secret).

payment.paidprovision.provisionedprovision.failed
Example: fetch catalog
curl "https://esimhub.store/api/v1/partner/catalog?country=US" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"

Security reminder

Your API key is shown once when issued. If lost, ask your ESIMHUB contact to revoke the old key and issue a new one from the admin portal.

Need help integrating? Contact support