Refunds
Use POST /esim/refund when you need money credited back to the BALANCE wallet.
Use POST /esim/profile/cancel (or /revoke) when you only need to void an eSIM without a wallet refund.
API details: Refund Order, Cancel Profile.
Comparison
Order refund /esim/refund | Profile cancel /esim/profile/cancel | |
|---|---|---|
| Effect | Calculate refundable amount and credit BALANCE | Cancel / revoke profile |
| Wallet | Auto-refund | Does not auto-refund |
| Locate by | orderNo / transactionId + optional items[] | profileId or iccid |
| Typical use | Customer refund, reconciliation | Void eSIM only |
Order refund
Path: POST /open-api/v1/esim/refund
Locate the order
Provide at least one of orderNo and transactionId (from create order or query).
Rules
| Case | Request |
|---|---|
| Full order | Omit items — refund all refundable line items |
| Partial order | items with only the itemNo values to refund |
| Full line item | itemNo only — omit profiles |
| Partial profiles | itemNo + profiles[] with profileId or iccid each |
itemNo comes from query/webhook items[].itemNo.profileId / iccid come from items[].profiles[].
Refund requests do not accept
esimTranNo. Do not pass order-levelprofiles[].
Request examples
Full order:
{
"orderNo": "MO2075463266738958338",
"remark": "Customer request"
}Refund entire line item:
{
"orderNo": "MO2075463266738958338",
"items": [
{ "itemNo": "2075463266738958340" }
]
}Partial refund by iccid:
{
"orderNo": "MO2075463266738958338",
"items": [
{
"itemNo": "2075463266738958340",
"profiles": [
{ "iccid": "8943108170003452385" }
]
}
]
}Partial refund by profileId:
{
"orderNo": "MO2075463266738958338",
"items": [
{
"itemNo": "2075463266738958340",
"profiles": [
{ "profileId": 2075464693179805698 }
]
}
]
}Response
| Field | Meaning |
|---|---|
status | REFUNDED = credited; REFUNDING = in progress |
refundAmount | Refund amount (this request or cumulative) |
items[].itemNo | Line item id |
items[].refundStatus | PENDING / COMPLETED |
items[].profileIds | Refunded profile IDs |
items[].iccids | Refunded ICCIDs |
When status is REFUNDING, poll query or wait for REFUND_COMPLETED webhook (Webhooks).
Profile cancel / revoke
Path: POST /open-api/v1/esim/profile/cancel or /revoke (same semantics)
Voids a profile; does not auto-refund BALANCE. Use order refund above when money must be returned.
Request with profileId or iccid (one of):
{ "profileId": 2075464693179805698 }{ "iccid": "8943108170003452385" }asyncStatus: COMPLETED (sync) or PENDING (async — poll or webhook).
Which to use
- Refund money →
/esim/refund - Void eSIM only →
/esim/profile/cancel