UploadDevices

Uploads device identifiers and SKUs for new devices from OEMs to Verizon. The devices can also be activated for service.

NOTE: To use this API method, your company must be registered on the Open Development portal.

Uses and Requirements

Use this API method as an alternative to uploading devices using a CSV file. The request returns a synchronous response that indicates that the data has been received, and any errors in the request format. Information regarding the status of the upload and activation is returned in one or more callback responses, so you must register a URL endpoint to receive callback messages using the Register Callback API in the Callback Registration Service.

To activate devices after they have been uploaded, you need to submit the request via the ChangeDeviceState API.

Verizon will send one upload callback containing the list of devices in the request with a status for each. The status will identify whether the device was successfully uploaded or an error indicating why the upload failed.

Request Parameters

The request body identifies the devices to upload.

Parameter Type Description
AccountName
*optional
string The billing account that is being used to upload the devices.
*If contact has access to only one account, accountName is not required. If contact has access to multiple accounts, accountName is required. By coding for the accountName today, you may prevent future code from breaking if you ever add a new sub-account.
DeviceList
required
DeviceIdentifierCollection

A list of up to 10,000 devices to upload, specified by the device IDs defined by uploadType.

For each device in DeviceList, use this structure of nested parameters:

<DeviceIdentifierCollection>
    <DeviceIndentifiers>
    <DeviceIdentifier>
        <Kind></Kind>
        <Identifier></Identifier>
    </DeviceIdentifier>
    </DeviceIndentifiers>
</DeviceIdentifierCollection>
                    
Kind
required for DeviceList
string The type of the device identifier. Valid types of identifiers are:
  • ICCID
  • IMEI
  • EID

All devices in an upload must be of the same type and have the same SKU.

Identifier
required for DeviceList
string The value of the device identifier.
DeviceSku
required
string The stock keeping unit that identifies the type of devices in the upload. All devices must be of the same type and have the same SKU.
EmailAddress
required
string Email address that the report should be sent to after the uploaded device list is processed. This email address must be registered as part of the account profile in the Open Development portal before devices are uploaded.
UploadType
required
string

The format of the device identifiers in the upload. One of these values:

  • IMEI
  • IMEI EID Pair
  • IMEI ICCID Pair
  • IMEI ICCID Embedded SIM Pair
Activate
optional
ActivateDeviceRequest Activates the devices that were successfully uploaded.
CarrierIpPoolName
optional
string The pool from which your device IP addresses will be derived. If you do not include this element, the default pool will be used.
ServicePlan
required for Activate
string The service plan code that is assigned to the device.
MdnZipCode
required for Activate
string The Zip code of the location where the line of service will primarily be used, or a Zip code that you have been told to use with these devices. For accounts that are configured for geographic numbering, this is the ZIP code from which the MDN will be derived.

Response Parameters

Parameter Type Description
RequestId string

A unique string that associates the request with the results that are sent via a callback service.

The callback message will contain the list of devices that were submitted for upload in the request criteria. If there are a large number of results, the response will be split into multiple callbacks. Those will be followed by a final callback message indicating that the request has been completed. All of the callback messages will have the same RequestId.

Callback Parameters

Parameter Type Description
Username string The username defined when a URL was registered for the callback service, or an empty element if no username was defined.
Password string The password defined when a registered for the callback service, or an empty element if no password was defined.
RequestId string

A unique string that matches the RequestId returned in the synchronous response to the original API request.

A separate callback message is sent for each device that matched the request criteria, indicating whether the operation succeeded for that device. All of the callback messages will have the same RequestId.
Data CallbackData The data elements for this callback.
CarrierService CarrierServiceCallbackRequest Null for this callback service.
ExternalProvisioningChange ExternalProvisioningChange Null for this callback service.
PromoChange PromoChange Null for this callback service.
SMSDelivery SMSDelivery Null for this callback service.
PRLInformation PRLInformation Null for this callback service.
Devices array of UploadDevices Contains the list of devices submitted in the request.
DeviceIdentifiers DeviceIdentifier One or more identifiers for the device.
Kind string The type of the device identifier:
  • ICCID
  • IMEI
  • EID
Identifier string The value of the device identifier.
LineStatus string Either "Device upload successful" or one of thepossible line-level error messages.
AccountName string The billing account that was used to upload the devices.
DeviceSku string The SKU of the uploaded devices.
TotalLineCount string The total number of devices submitted.
PendingLineCount string The total number of devices pending upload.
SuccessLineCount string The total number of devices that were successfully uploaded.
FailedLineCount string The total number of devices that were not uploaded.

Example SOAP Request

Upload devices by IMEI ICCID Pair and Activate

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://nphase.com/unifiedwebservice/v2" xmlns:nph="http://schemas.datacontract.org/2004/07/NPhase.UnifiedWebService.APIs.v2.Contract.DeviceService" xmlns:nph1="http://schemas.datacontract.org/2004/07/NPhase.UnifiedWebService.APIs.v2.Contract.Common">
  <soapenv:Header>
    <token xmlns="http://nphase.com/unifiedwebservice/v2">f4e2e0ed-fac9-479b-b1d4-ab7a1484f432</token>
  </soapenv:Header>
  <soapenv:Body>
    <v2:UploadDevices>
      <v2:Input>
        <nph:DeviceList>
          <nph1:DeviceIdentifierCollection>
            <nph1:DeviceIdentifiers>
              <nph1:DeviceIdentifier>
                <nph1:Kind>IMEI</nph1:Kind>
                <nph1:Identifier>111111000000001</nph1:Identifier>
              </nph1:DeviceIdentifier>
              <nph1:DeviceIdentifier>
                <nph1:Kind>ICCID</nph1:Kind>
                <nph1:Identifier>89149032103008812345</nph1:Identifier>
              </nph1:DeviceIdentifier>
            </nph1:DeviceIdentifiers>
          </nph1:DeviceIdentifierCollection>
          <nph1:DeviceIdentifierCollection>
            <nph1:DeviceIdentifiers>
              <nph1:DeviceIdentifier>
                <nph1:Kind>IMEI</nph1:Kind>
                <nph1:Identifier>111111000000002</nph1:Identifier>
              </nph1:DeviceIdentifier>
              <nph1:DeviceIdentifier>
                <nph1:Kind>ICCID</nph1:Kind>
                <nph1:Identifier>89149032103008854321</nph1:Identifier>
              </nph1:DeviceIdentifier>
            </nph1:DeviceIdentifiers>
          </nph1:DeviceIdentifierCollection>
        </nph:DeviceList>
        <nph:AccountName>1223334444-00001</nph:AccountName>
        <nph:UploadType>IMEI ICCID Pair</nph:UploadType>
        <nph:DeviceSku>VZW120000440008</nph:DeviceSku>
        <nph:EmailAddress>me@mycompany.com</nph:EmailAddress>
        <nph:Activate>
            <nph2:CarrierIpPoolName>NPFARMTHREE</nph2:CarrierIpPoolName>
            <nph2:ServicePlan>SBG4G</nph2:ServicePlan>
            <nph2:MdnZipCode>12345</nph2:MdnZipCode>
        </nph:Activate>
      </v2:Input>
    </v2:UploadDevices>
  </soapenv:Body>
</soapenv:Envelope>

Example SOAP Response

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <UploadDevicesResponse xmlns="http://nphase.com/unifiedwebservice/v2">
            <Output xmlns:a="http://schemas.datacontract.org/2004/07/NPhase.UnifiedWebService.APIs.v2.Contract.DeviceService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                <a:RequestId>5afbb4c7-99dc-49a7-8341-7406b7d6f3d3</a:RequestId>
            </Output>
        </UploadDevicesResponse>
    </s:Body>
</s:Envelope>
    

Example Upload Callback

 <CallbackRequest1 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <CallbackRequest>
         <Username xmlns="http://nphase.com/unifiedwebservice/v2">test </Username>
         <Password xmlns="http://nphase.com/unifiedwebservice/v2">test </Password>
         <RequestId xmlns="http://nphase.com/unifiedwebservice/v2">5afbb4c7-99dc-49a7-8341-7406b7d6f3d3 </RequestId>
         <Data xmlns="http://nphase.com/unifiedwebservice/v2">
             <Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://nphase.com/unifiedwebservice/v2">
                 <CarrierService xsi:nil="true" />
                 <ExternalProvisioningChange xsi:nil="true" />
                 <PromoChange xsi:nil="true" />
                 <SMSDelivery xsi:nil="true" />
                 <PRLInformation xsi:nil="true" />
                 <DeviceService>
                     <CheckDeviceAvailability xsi:nil="true" />
                     <UploadDevices>
                         <UploadDevicesInfo>
                             <DeviceIdentifier>
                                 <Kind>Iccid </Kind>
                                 <Identifier>18072019672556477006 </Identifier>
                             </DeviceIdentifier>
                             <DeviceIdentifier>
                                 <Kind>Imei </Kind>
                                 <Identifier>180720196786706 </Identifier>
                             </DeviceIdentifier>
                             <LineStatus>Line has been uploaded successfully </LineStatus>
                         </UploadDevicesInfo>
                         <UploadDevicesInfo>
                             <DeviceIdentifier>
                                 <Kind>Iccid </Kind>
                                 <Identifier>18072019672556477007 </Identifier>
                             </DeviceIdentifier>
                             <DeviceIdentifier>
                                 <Kind>Imei </Kind>
                                 <Identifier>180720196786707 </Identifier>
                             </DeviceIdentifier>
                             <LineStatus>Line has been uploaded successfully </LineStatus>
                         </UploadDevicesInfo>
                         <AccountName>suvenduactiot </AccountName>
                         <DeviceSku>test </DeviceSku>
                         <TotalLineCount>2 </TotalLineCount>
                         <PendingLineCount>0 </PendingLineCount>
                         <FailedLineCount>0 </FailedLineCount>
                         <SuccessLineCount>2 </SuccessLineCount>
                     </UploadDevices>
                 </DeviceService>
                 <GoToState xsi:nil="true" />
                 <DeviceProfileService xsi:nil="true" />
                 <AlertService xsi:nil="true" />
                 <InternalService xsi:nil="true" />
                 <DiagnosticsService xsi:nil="true" />
                 <Fault xsi:nil="true" />
                 <Comment xsi:nil="true" />
                 <Summary xsi:nil="true" />
                 <Status xsi:nil="true" />
                 <CallbackCount>1 </CallbackCount>
                 <MaxCallbackThreshold>4 </MaxCallbackThreshold>
                 <ExtendedEnhancedConnectivityService xsi:nil="true" />
             </Data>
         </Data>
     </CallbackRequest>
 </CallbackRequest1>
    

Example Activate Callbacks

    

Error and Status Messages

UploadDevice requests can return a package-level error, which means that the request was not processed and the device identifiers were not uploaded, or it can return line-level errors for individual devices.

Error Level Error Text Notes
Package Device SKU is not present in ODI The SKU is not recognized.
Package Device SKU is not present in DMD The SKU is not recognized.
Package Device SKU is not Certified The SKU is for a device that is not yet certified for use on the Verizon network.
Package Device SKU is CDMA Type and only exception request is supported The SKU is for CDMA devices, which can no longer be activated on the Verizon network.
Package Device SKU is missing status in DMD The SKU is for a device type that is not fully configured in Verizon systems.
Package Device SKU is certified but not present in DMD The SKU is for a device type that is not fully configured in Verizon systems.
Package No Profile found for email address (odiPortalEmailAddress) The email address is not registered to an Open Development account.
Package There are no active/approved devices The request did not contain a list of devices.
Package Device SKU (deviceSku) not provided The request did not contain a DeviceSku value.
Package Upload Type (uploadType) not provided The request did not contain an UploadType value.
Package Upload Type (uploadType) is invalid. (Must be one of ESN HEX, MEID, IMEI, IMEI ICCID Pair, IMEI ICCID Embedded SIM Pair or IMEI EID Pair) The UploadType value was not recognized. You must use one of the valid values.
Package Email Address (odiPortalEmailAddress) not provided The request did not contain an EmailAddress value.
Package Email Address (odiPortalEmailAddress) is invalid The EmailAddress value is not in a valid format.
Package Number of upload lines exceeds threshold of 10,000 The request contains more than 10,000 devices.
Package Processing failed due to an unknown error
Line Device upload request submitted The device has been accepted for processing. The email report will indicate whether the device was added to the Verizon database.
Line Duplicate Device ID (deviceId) found in the request The upload contained more than one entry with the specified IMEI.
Line Duplicate EID (eid) found in the request The upload contained more than one entry with the specified EID.
Line Duplicate Device ICCID (iccid) found in the request The upload contained more than one entry with the specified ICCID.
Line IMEI (deviceId) is invalid The IMEI provided is not valid.
Line IMEI (deviceId) not provided The request did not include an IMEI for this device.
Line EID (eId) is invalid The EID provided is not valid.
Line EID (eId) not provided The request did not include an EID for this device.
Line SIM Id (iccId) is invalid The ICCID provided is not valid.
Line SIM Id (iccId) not provided The request did not include an ICCID for this device.
Line Service Plan Missing A service plan needs to be sent along with the activate request.
Line Service Plan Not Found No Service Plan was found matching the code.
Line Mdn Zip Code Missing An MDN zip code must be provided.