Platform
The life of an eSIM order
Five steps, one contract
The same steps run whether the order comes from the partner portal or the API.
- 01
Choose an offer
GET /v1/offersLists the plans your account can sell — destination, data allowance, validity and your price. The portal shows the same list by country.
- 02
Place the order
POST /v1/esimsSend an Idempotency-Key with the offer. The request returns 202 Accepted with an operation to follow; the order is charged to your wallet.
- 03
Provisioning
GET /v1/operations/{id}The supplier creates the eSIM. The operation moves from pending to executing, and ends succeeded, failed — or uncertain, when the supplier has not yet confirmed the outcome.
- 04
Hand over
GET /v1/esims/{id}The eSIM carries its QR code and activation details. In the portal, revealing them is a logged action, so you can see who handed over which eSIM.
- 05
Usage and lifecycle
GET /v1/esims/{id}/usageData used against the allowance, activation and expiry dates, and the last network seen where the supplier reports it. Suspend, resume and disconnect where the supplier supports them.
Order states that tell the truth
Networks are slow and sometimes silent. An order that has been sent but not confirmed is reported as exactly that.
| State | Meaning |
|---|---|
pending | Accepted and queued. |
executing | Sent to the supplier. |
succeeded | The eSIM exists and is yours. |
failed | Nothing was created. The charge is reversed. |
uncertain | Sent, not yet confirmed. Checked again automatically — never treated as failed and re-ordered. |
Every order request takes an Idempotency-Key. Repeating a request with the same key — after a timeout, a crash or a network drop — returns the first result instead of creating a second eSIM or a second charge.
Signed webhooks
Your system hears about every change instead of polling for it.
Delivery you can verify
Each delivery is signed with HMAC-SHA256 using your endpoint's secret. A receiver that is down is retried 13 times over about three days, so a weekend outage does not lose events.
Delivery you can inspect
Every attempt is recorded with your receiver's response. A failed delivery can be replayed from the portal or with POST /v1/webhook_deliveries/{id}/replay, and secrets can be rotated without downtime.
eSIM events
- esim.provisioned
- esim.provisioning_failed
- esim.activated
- esim.suspended
- esim.resumed
- esim.disconnected
- esim.refunded
Money and access
The controls a finance lead and a security reviewer ask about.
- Prepaid wallet
- Topped up by bank transfer quoting your reference. One wallet per currency.
- A ledger, not a counter
- The balance is the sum of its entries. Every credit, charge and reversal is listed in your transaction history.
- Test and live keys
- Test keys never reach a supplier and never move money. Switching to live is a different key, not a setting.
- Scoped API keys
- Each key carries only the permissions it needs, and can be revoked on its own.
- Team roles
- Invite colleagues with a role that limits what they can see and do in the portal.
- Multi-factor sign-in
- Authenticator apps and passkeys for portal sign-in.
Tell us where your customers travel.
We reply by email with the plans available for those destinations and how to start.