How an order works
Orders are asynchronous. You get an acknowledgement straight away, and the eSIM itself arrives later on your webhook.- Sign the request. Every call carries three headers derived from your secret key. See Authentication.
- Create the order.
POST /v1/api_partner/orderswith your own order ID and the products you want. - Read the
201. It returns onetopup_idper unit ordered. The eSIM data is not in this response. - Receive a webhook per unit. Once each eSIM is issued, we POST its activation data to your webhook URL. Failed deliveries are retried, so the same unit can arrive more than once.
- Verify the signature, then process. Match the delivery to your order with
external_order_id, and to the unit withtopup_id— which is also the key to deduplicate on.
Base URL
ProductionPOST /v1/api_partner/orders
means https://api.esimstory.com/api/v1/api_partner/orders.
Credentials
Three values, issued per environment:
Production credentials are in your partner dashboard. Sandbox credentials are
issued separately — contact support to have a sandbox account set up.
Sandbox and production do not share credentials. Sandbox orders use test data
and cost nothing, and its webhooks are signed exactly as production ones are, so
you can build and test signature
verification there before
going live.
Before you write any code
Two of these come from us and cannot be worked out from the docs, so collect them first rather than discovering them mid-integration.1
Your product catalogue
The
option_id values you order with come from List
products, at your own price. We may also send
you the catalogue as CSV files, such as with your price list — see The
catalogue CSV.2
A registered webhook URL
The eSIM never appears in an API response, and there is nothing to poll
instead. Give support the URL before you place your first order.
Reading these docs with an AI assistant
The docs are published in machine-readable form, so you can point a coding agent at them rather than pasting pages:An assistant working from the docs alone has no real
option_id values, and
will invent one if you let it. Have it call List
products for them, or paste a few into the prompt.Authentication
Sign your requests
List products
The catalogue, at your price
Create an order
The endpoint and its errors
Webhooks
Issued eSIMs and refund decisions
Request a refund
Ask for a refund on one eSIM