eSIM Order Webhook

The eSIM order webhook.

Request Method

  • POST

Webhook payload object common properties

KeyTypeDescription
orderNoStringUnique order number
currencyStringCurrency (1 = RMB, 2 = USD, 3 = EUR, 4 = SGD, 5 = TWD ...)
iccidStringICCID of the eSIM
lpaStringLocal Profile Assistant (LPA)
packageCodeStringUnique identifier of the package.
packageNameStringPackage name
priceStringPrice (in the contract currency).
resultStringOrder result (FAILED or COMPLETED)

Test Examples

curl --location 'https://YOUR-WEBHOOK-URL' \
--header 'Content-Type: application/json' \
--data '{
    "orderNo": "2026032516xxxxxxxxxxx",
    "currency": "4",
    "iccid": "8910010000xxxxxxxxxx",
    "lpa": "LPA:1$rsp.demo$69C32E7Dxxxxxxxx",
    "packageCode": "YN2602130xxxxxx",
    "packageName": "Malaysia, 1 Day, 1GB, 256kbps",
    "price": "9.99",
    "result": "COMPLETED"
  }'
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"orderNo\": \"2026032516xxxxxxxxxxx\",\r\n    \"currency\": \"4\",\r\n    \"iccid\": \"8910010000xxxxxxxxxx\",\r\n    \"lpa\": \"LPA:1$rsp.demo$69C32E7Dxxxxxxxx\",\r\n    \"packageCode\": \"YN2602130xxxxxx\",\r\n    \"packageName\": \"Malaysia, 1 Day, 1GB, 256kbps\",\r\n    \"price\": \"9.99\",\r\n    \"result\": \"COMPLETED\"\r\n  }");
Request request = new Request.Builder()
  .url("https://YOUR-WEBHOOK-URL")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://YOUR-WEBHOOK-URL',
  'headers': {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "orderNo": "2026032516xxxxxxxxxxx",
    "currency": "4",
    "iccid": "8910010000xxxxxxxxxx",
    "lpa": "LPA:1$rsp.demo$69C32E7Dxxxxxxxx",
    "packageCode": "YN2602130xxxxxx",
    "packageName": "Malaysia, 1 Day, 1GB, 256kbps",
    "price": "9.99",
    "result": "COMPLETED"
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests
import json

url = "https://YOUR-WEBHOOK-URL"

payload = json.dumps({
  "orderNo": "2026032516xxxxxxxxxxx",
  "currency": "4",
  "iccid": "8910010000xxxxxxxxxx",
  "lpa": "LPA:1$rsp.demo$69C32E7Dxxxxxxxx",
  "packageCode": "YN2602130xxxxxx",
  "packageName": "Malaysia, 1 Day, 1GB, 256kbps",
  "price": "9.99",
  "result": "COMPLETED"
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Failure Retry Policy

If an event push attempt fails, the system retries up to 2 additional times, for a maximum of 3 total attempts.

Retry intervals:

  • After the 1st failure, retry after 3 seconds
  • After the 2nd failure, retry after 6 seconds
  • After the 3rd failure, no further retries are performed

After the 3rd failed attempt, the system logs the final failure and removes the corresponding order from the event push executor.