Wholesale Data API (1.0.0)

API documentation for Wholesale Data Partners.

Languages
Servers
Mock server
https://enterprise-iot-portal.u.com.my/_mock/datapartner/wholesale_data_complete/
Sandbox Server
https://sandbox.zsmart.com/
Production Server
https://api.zsmart.com/

Partner User Business Acceptance (Async)

Request

provides the ability to activate, modify and delete Resources.

Bodyapplication/jsonrequired
access_tokenstring<= 500 characters

API Gateway access token

Example: "abc123xyz"
methodstring<= 64 characters

API name

Example: "partnerUserBusinessAcceptance"
versionstring<= 10 characters

API version

Example: "1.0"
contentobject
curl -i -X POST \
  https://enterprise-iot-portal.u.com.my/_mock/datapartner/wholesale_data_complete/partnerUserBusinessAcceptance \
  -H 'Content-Type: application/json' \
  -d '{
    "access_token": "abc123xyz",
    "method": "partnerUserBusinessAcceptance",
    "version": "1.0",
    "content": {
      "msgId": "MSG123456789",
      "orderItem": {
        "base": {
          "serviceActionId": "A",
          "orderItemId": "12345678",
          "trigerSource": "SYSTEM_X"
        },
        "orderDetail": {
          "resource": {
            "dn": {
              "current": {
                "dn": "123456789012",
                "org": "OrgName",
                "prefix": "60"
              }
            },
            "simCard": {
              "current": {
                "imsi": "123456789012345"
              }
            }
          },
          "products": {
            "accessproducts": {
              "product": {
                "serviceType": "1"
              }
            },
            "functionproducts": {
              "product": [
                {
                  "benefitList": {}
                }
              ]
            }
          }
        }
      }
    }
  }'

Responses

Successful response

Bodyapplication/json
res_codestring<= 10 characters

Response code, 00000 for success

Example: "00000"
res_messagestring<= 255 characters

Response description

Example: "Success"
resultobject
Response
application/json
{ "res_code": "00000", "res_message": "Success", "result": { "resultCode": "SUCCESS", "resultMsg": "Operation completed successfully." } }

PCC Data Inquiry (Sync)

Request

This API allows wholesale data partners to query information about available data packages for their end-users through the PCC system.

Bodyrequired
access_tokenstring<= 500 charactersrequired

API Gateway access token

Example: "abcdef1234567890"
methodstring<= 64 charactersrequired

API name

Example: "getSubscriberInfo"
versionstring<= 10 charactersrequired

API version

Example: "v1.0"
contentobjectrequired

Refer to content for detail.

content.​msgIdstring<= 30 charactersrequired

Refer to orderItem for detail.

Example: "ORD567890"
content.​trigerSourcestring<= 20 charactersrequired

Value to be provided upon request. New 'PTR_WD_CU_T2A' value for Wholesale Data Partner (China Unicom). Note: trigerSource will be configurable and unique for each wholesale data partners and MVNO partners.

Example: "PTR_WD_CU_T2A"
content.​msisdnstring<= 12 charactersrequired

Malaysia mobile number with country code

Example: "60123456789"
content.​realTIMEFLAGinteger<= 1required

Fixed value '1'. to query data package information via PCC.

Example: 1
content.​orgstring<= 30 charactersrequired

Partner's organization Code.Unique. UM will define an organization for each wholesale data partner, and assign IMSI and MSISDN to partner's organization. System will check if inputted MSISDN and IMSI have been assigned to partner's organization. If not, system will reject the request.

Example: "ORG_WHOLESALE_X"
curl -i -X POST \
  https://enterprise-iot-portal.u.com.my/_mock/datapartner/wholesale_data_complete/pccDataInquiry \
  -H 'Content-Type: application/json' \
  -d '{
    "access_token": "abcdef1234567890",
    "method": "getSubscriberInfo",
    "version": "v1.0",
    "content": {
      "msgId": "ORD567890",
      "trigerSource": "PTR_WD_CU_T2A",
      "msisdn": "60123456789",
      "realTIMEFLAG": 1,
      "org": "ORG_WHOLESALE_X"
    }
  }'

Provisioning Status Inquiry (Sync)

Request

This API allows wholesale data partners to query the provisioning status for the corresponding order item.

Bodyapplication/jsonrequired
access_tokenstring<= 500 charactersrequired

API Gateway access token

Example: "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
methodstring<= 64 charactersrequired

API name

Example: "getOrderStatus"
versionstring<= 10 charactersrequired

API version

Example: "v1.0"
contentobjectrequired

Refer to content for detail.

content.​msgIdstring<= 30 charactersrequired

Unique Message ID generated by 3rd party system. Format: [AAAYYYYMMDDHH24MISSCCCC] AAA: Channel Identifier (3-digit), value to be provided by Zsmart. Datetime: YYYYMMDDHH24MISS. CCCC: Sequence number (4-digit), value range [0000-9999].

Example: "WEB202504221200000001"
content.​trigerSourcestring<= 20 charactersrequired

Value to be provided upon request. New 'PTR_WD_CU_T2A' value for Wholesale Data Partner (China Unicom). Note: trigerSource will be configurable and unique for each wholesale data partner and MVNO partner.

Example: "PTR_WD_CU_T2A"
content.​orderItemIdstring<= 16 characters^[0-9]+$required

External Order ID. Numbers only, alphabet not supported. System will use orderItemId paired with trigerSource to form the unique key for order query. Zsmart SPN cannot perform uniqueness validation on orderItemId due to performance impact. Each partner must ensure orderItemId is unique on their end.

Example: "202404220001"
content.​orgstring<= 30 characters^[A-Z0-9_]+$required

Partner's organization Code. Must be unique. UM will define an organization for each wholesale data partner, and assign IMSI and MSISDN to partner's organization. System will check if inputted MSISDN and IMSI have been assigned to partner's organization. If not, system will reject the request.

Example: "ORG_UM_PARTNER"
content.​msisdnstring<= 12 characters

Malaysia mobile number with country code

Example: "60123456789"
curl -i -X POST \
  https://enterprise-iot-portal.u.com.my/_mock/datapartner/wholesale_data_complete/provStatusInquiry \
  -H 'Content-Type: application/json' \
  -d '{
    "access_token": "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
    "method": "getOrderStatus",
    "version": "v1.0",
    "content": {
      "msgId": "WEB202504221200000001",
      "trigerSource": "PTR_WD_CU_T2A",
      "orderItemId": "202404220001",
      "org": "ORG_UM_PARTNER",
      "msisdn": "60123456789"
    }
  }'

Responses

Successful response with provisioning status.

Bodyapplication/json
res_codestring<= 10 charactersrequired

Response code, "00000" for success.

Example: "00000"
res_messagestring<= 255 charactersrequired

Response description.

Example: "Provisioning successful"
resultobjectrequired

Response result.

result.​resultCodestring<= 60 charactersrequired

Service result code

Example: "20001"
result.​resultDescrstring<= 255 charactersrequired

Service result message

Example: "Package activated successfully"
result.​provStatusinteger

Provisioning status. - 1: Successful - 2: Processing - 3: Failed

Example: 1
Response
application/json
{ "res_code": "00000", "res_message": "Provisioning successful", "result": { "resultCode": "20001", "resultDescr": "Package activated successfully", "provStatus": 1 } }

Sync Call Service Active Result (Async)

Request

Zsmart to notify wholesale data partner the business provisioning result. MSISDN and SIM status maintenance: - After New Connection order archived, SPN will call SIC service to activate the resource for sync-up purpose: SIM = C (In Use), MSISDN = C (In Use).

  • After Termination order archived, SPN will call SIC service to terminate the resource for sync-up purpose: SIM = D (Disable), MSISDN = T (Terminated).
  • MSISDNs will be automatically recycled to the public pool as part of BAU. UM must manually transfer these recycled MSISDNs to the partner organization accordingly.
  • No SIM recycle is handled by UM.
Bodyapplication/jsonrequired
notifyTimestring<= 40 charactersrequired

Asynchronous notification trigger time. Format: yyyy-MM-dd HH:mm:ss

Example: "2025-04-22 14:30:00"
resultCodestring<= 10 charactersrequired

Provisioning return code. Provisioning status. 0: Provisioning Success

Example: "0"
resultMsgstring<= 10000 charactersrequired

Provisioning Response message from NE

Example: "Provisioning completed successfully."
orderItemIdstring<= 16 characters^\d{1,16}$required

orderItemId in wholesale data partner system. Numbers only, alphabet not supported. System will use orderItemId pair with trigerSource to be the unique key for order query. Zsmart SPN cannot do the unique validation on orderItemId since the validation will impact the performance. Need each partner to make sure the unique of orderItemId generated by itself.

Example: "1234567890123456"
curl -i -X POST \
  https://enterprise-iot-portal.u.com.my/_mock/datapartner/wholesale_data_complete/synCallServiceActiveResult \
  -H 'Content-Type: application/json' \
  -d '{
    "notifyTime": "2025-04-22 14:30:00",
    "resultCode": "0",
    "resultMsg": "Provisioning completed successfully.",
    "orderItemId": "1234567890123456"
  }'

Responses

Successful asynchronous notification

Bodyapplication/json
statusstring

Status of the operation

Example: "success"
timestampstring

Response timestamp

Example: "2025-04-22T14:30:01Z"
Response
application/json
{ "status": "success", "timestamp": "2025-04-22T14:30:01Z" }