Skip to content

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/refundProfile cancel /esim/profile/cancel
EffectCalculate refundable amount and credit BALANCECancel / revoke profile
WalletAuto-refundDoes not auto-refund
Locate byorderNo / transactionId + optional items[]profileId or iccid
Typical useCustomer refund, reconciliationVoid 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

CaseRequest
Full orderOmit items — refund all refundable line items
Partial orderitems with only the itemNo values to refund
Full line itemitemNo only — omit profiles
Partial profilesitemNo + 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-level profiles[].

Request examples

Full order:

json
{
  "orderNo": "MO2075463266738958338",
  "remark": "Customer request"
}

Refund entire line item:

json
{
  "orderNo": "MO2075463266738958338",
  "items": [
    { "itemNo": "2075463266738958340" }
  ]
}

Partial refund by iccid:

json
{
  "orderNo": "MO2075463266738958338",
  "items": [
    {
      "itemNo": "2075463266738958340",
      "profiles": [
        { "iccid": "8943108170003452385" }
      ]
    }
  ]
}

Partial refund by profileId:

json
{
  "orderNo": "MO2075463266738958338",
  "items": [
    {
      "itemNo": "2075463266738958340",
      "profiles": [
        { "profileId": 2075464693179805698 }
      ]
    }
  ]
}

Response

FieldMeaning
statusREFUNDED = credited; REFUNDING = in progress
refundAmountRefund amount (this request or cumulative)
items[].itemNoLine item id
items[].refundStatusPENDING / COMPLETED
items[].profileIdsRefunded profile IDs
items[].iccidsRefunded 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):

json
{ "profileId": 2075464693179805698 }
json
{ "iccid": "8943108170003452385" }

asyncStatus: COMPLETED (sync) or PENDING (async — poll or webhook).


Which to use

  • Refund money/esim/refund
  • Void eSIM only/esim/profile/cancel

eSIM Dealer Open API v1