POST /v1/api_partner/orders
{
"products": [
{
"topup_id": "20250129123456123456789012",
"option_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
{
"topup_id": "20250129123456123456789013",
"option_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
},
{
"topup_id": "20250129123456123456789014",
"option_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
}
]
}
Create a new eSIM order
POST /v1/api_partner/orders
{
"products": [
{
"topup_id": "20250129123456123456789012",
"option_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
{
"topup_id": "20250129123456123456789013",
"option_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
},
{
"topup_id": "20250129123456123456789014",
"option_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
}
]
}
option_id (string,
required): The eSIM product option ID - qty (integer, required): Quantity of
this product to orderPOST /v1/api_partner/orders
topup_id (string): The topup ID assigned to this product - option_id
(string): The option ID that was ordered{
"products": [
{
"topup_id": "20250129123456123456789012",
"option_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
{
"topup_id": "20250129123456123456789013",
"option_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
},
{
"topup_id": "20250129123456123456789014",
"option_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
}
]
}
{
"error": "Invalid JSON format"
}
{
"error": {
"code": "unauthorized",
"message": "Invalid signature."
}
}
X-Esim-Story-Access-Key, X-Esim-Story-Signature, or X-Esim-Story-Timestamp headers are missing
{
"error": {
"code": "unauthorized",
"message": "Missing required authentication headers."
}
}
{
"error": {
"code": "unauthorized",
"message": "Invalid or missing access key. Please provide a valid X-Esim-Story-Access-Key header."
}
}
{
"error": {
"code": "unauthorized",
"message": "Invalid signature."
}
}
{
"error": {
"code": "unauthorized",
"message": "Request timestamp is too old or invalid."
}
}
{
"error": {
"code": "unauthorized",
"message": "Missing secret key in partner record."
}
}
option_id in the products array does not exist in the system:
{
"errors": ["Product with option_id not found"]
}
{
"errors": ["External order id can't be blank"]
}
{
"errors": ["External order id has already been taken"]
}
option_id or qty in product objectsqty value (must be a positive integer){
"errors": ["eSIM Request failed - Status: [code], Message: [message]"]
}
{
"errors": ["API connection error (Order ID: [order_id])"]
}
{
"error": "Internal server error"
}
external_order_id must be unique.products array will be ordered qty times.topup_id per quantity ordered (e.g., if qty: 2, you’ll receive 2 entries with different topup_id values).qty: 2, you’ll receive 2 separate entries in the response:
{
"products": [
{
"topup_id": "20250129123456123456789012",
"option_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
{
"topup_id": "20250129123456123456789013",
"option_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
]
}
200 OK status code to acknowledge successful receipt.
One webhook is sent per order item. For example, if you order a product with qty: 2, you will receive 2 separate webhook requests (one for each quantity ordered).
{
"topup_id": "20250129123456123456789012",
"option_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"iccid": "89852341234567890123",
"smdp": "rsp1.cmlink.com",
"activate_code": "A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6",
"download_link": "LPA:1$rsp1.cmlink.com$A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6",
"qrcode_img_url": "https://func-usimsa-prod-01.azurewebsites.net/api/iccid/qrcode/LPA:1%24rsp1.cmlink.com%24A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6/120",
"expired_date": "2026-07-28",
"external_order_id": "ORDER-123456"
}