Docs
Profile Management

Profile Management

Cancel, Suspend, Unsuspend, and Revoke eSIM profiles

Profile Management

Manage the lifecycle of eSIM profiles including cancellation, suspension, and revocation.

Cancel Profile

Cancel an unused eSIM profile before it's downloaded. Funds will be refunded.

Endpoint: POST /api/v1/open/esim/cancel

Request Parameters

NameTypeRequiredDescription
orderNoStringRequired*Platform order number
esimTranNoStringRequired*eSIM transaction number

Provide either orderNo OR esimTranNo, not both. Cancellation is only allowed before the profile is downloaded/activated.

Example Request - Cancel by Order Number

curl --location --request POST 'https://your-api-domain.com/api/v1/open/esim/cancel' \
--header 'RT-AccessCode: YOUR_ACCESS_CODE' \
--header 'RT-SecretKey: YOUR_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "orderNo": "ORD20240101123456"
}'

Example Request - Cancel by eSIM Transaction Number

curl --location --request POST 'https://your-api-domain.com/api/v1/open/esim/cancel' \
--header 'RT-AccessCode: YOUR_ACCESS_CODE' \
--header 'RT-SecretKey: YOUR_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "esimTranNo": "ESIM123456"
}'

Example Success Response

{
    "errorCode": null,
    "errorMsg": null,
    "success": true,
    "obj": {
        "orderNo": "ORD20240101123456",
        "status": "CANCEL_SUCCESS",
        "refundAmount": 45000
    }
}

Suspend Profile

Temporarily suspend an active eSIM profile. The profile can be unsuspended later.

Endpoint: POST /api/v1/open/esim/suspend

Request Parameters

NameTypeRequiredDescription
iccidStringRequiredeSIM ICCID

Example Request

curl --location --request POST 'https://your-api-domain.com/api/v1/open/esim/suspend' \
--header 'RT-AccessCode: YOUR_ACCESS_CODE' \
--header 'RT-SecretKey: YOUR_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "iccid": "8901234567890123456"
}'

Example Success Response

{
    "errorCode": null,
    "errorMsg": null,
    "success": true,
    "obj": {
        "iccid": "8901234567890123456",
        "status": "SUSPENDED"
    }
}

Unsuspend Profile

Reactivate a previously suspended eSIM profile.

Endpoint: POST /api/v1/open/esim/unsuspend

Request Parameters

NameTypeRequiredDescription
iccidStringRequiredeSIM ICCID

Example Request

curl --location --request POST 'https://your-api-domain.com/api/v1/open/esim/unsuspend' \
--header 'RT-AccessCode: YOUR_ACCESS_CODE' \
--header 'RT-SecretKey: YOUR_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "iccid": "8901234567890123456"
}'

Example Success Response

{
    "errorCode": null,
    "errorMsg": null,
    "success": true,
    "obj": {
        "iccid": "8901234567890123456",
        "status": "ACTIVATED"
    }
}

Revoke Profile

Permanently revoke an eSIM profile. This action cannot be undone. No refund will be issued.

Endpoint: POST /api/v1/open/esim/revoke

Request Parameters

NameTypeRequiredDescription
iccidStringRequiredeSIM ICCID

Warning: Revoking a profile is permanent. The profile will be disabled and cannot be reactivated.

Example Request

curl --location --request POST 'https://your-api-domain.com/api/v1/open/esim/revoke' \
--header 'RT-AccessCode: YOUR_ACCESS_CODE' \
--header 'RT-SecretKey: YOUR_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "iccid": "8901234567890123456"
}'

Example Success Response

{
    "errorCode": null,
    "errorMsg": null,
    "success": true,
    "obj": {
        "iccid": "8901234567890123456",
        "status": "REVOKED"
    }
}

Status Lifecycle

GOT_RESOURCE → ACTIVATED → IN_USE → USED_UP
                  ↓           ↓        ↓
              SUSPENDED ← (can unsuspend)
                  ↓
              REVOKED (permanent)

CANCEL_SUCCESS ← GOT_RESOURCE (before download)
ActionAllowed From StatusResult Status
CancelGOT_RESOURCECANCEL_SUCCESS
SuspendACTIVATED, IN_USESUSPENDED
UnsuspendSUSPENDEDACTIVATED
RevokeAny active statusREVOKED

Error Handling

Cannot Cancel Activated Profile

{
    "errorCode": "200002",
    "errorMsg": "This operation is not allowed due to the order status",
    "success": false,
    "obj": null
}

Profile Not Found

{
    "errorCode": "310403",
    "errorMsg": "The ICCID does not exist in the order",
    "success": false,
    "obj": null
}