API Integration
AvailableAPI integration
Planning to sell eSIMs inside your own app or booking flow? Tell us what you need.
The API is available to approved partners after sales enables access. Create a read-only or ordering key in your Partner Dashboard. All purchases use your prepaid USD wallet.
API quick start
After your account is approved, sales assigns pricing and enables API access. Create a key in the Partner Dashboard. Read-only keys cannot place orders. Purchasing must also be enabled on your account.
https://simvoro.com/api/partner/v1Use a server-side bearer key on every request. Keep the key out of browser code and URLs. Keys can be revoked in the Partner Dashboard.
Authorization: Bearer YOUR_API_KEY| Method | Endpoint | Result |
|---|---|---|
| GET | /products?destination=japan | Your assigned USD prices and product IDs. Filter by destination slug; paginate with cursor. |
| GET | /balance | Your wallet balance, reserved funds and available USD. |
| GET | /transactions | Wallet transactions and nextCursor. |
| GET | /orders | Partner order summaries and nextCursor (50 per page). |
| POST | /orders | Reserve funds and order one eSIM. Requires an ordering key. |
| GET | /orders/{orderId} | Order status, last-synced data usage and installation details after delivery. |
Create an order
Send a UUID as Idempotency-Key. Reuse that same UUID after any timeout or connection failure. Send the price your customer confirmed and confirm the receiving device supports eSIM and is unlocked. Live price changes return 409 PRICE_CHANGED. This is a live API; accepted purchases use real wallet funds.
POST /api/partner/v1/orders
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: 83c77d9f-395f-4ff0-8ed6-c461bda46559
{"productId":"PRODUCT_ID_FROM_CATALOG","expectedPrice":"2.25","deviceConfirmed":true}A 201 response contains orderId and esim; inspect esim.status and esim.failure. Poll the order every 10 seconds. Funds are held first and captured on verified delivery. A replay may return a failed order. An uncertain supplier outcome keeps the hold while the original order is reconciled. Installation material is private and appears only after verified delivery.
Amounts are decimal USD strings. Lists return items and nextCursor; continue until nextCursor is null. Limit: 120 requests per key per minute, and 10 purchase attempts per user per minute. Respect Retry-After on 429. Other common errors: 401 invalid key, 403 permission denied, 402 insufficient funds, 404 inaccessible order, 409 price or idempotency conflict, 503 service unavailable. Retrieve the original order before attempting another purchase.
What to include in your request
- Your platform and who your customers are
- Your expected monthly volume
- The destinations you want to offer
- What your system needs to do, for example order an eSIM and show its QR code to your customer
Become a partner
Send an application and our team will contact you about it.