Upload a list of devices to create a new batch for the specified customer
Applies to: Partner Center
How to upload a list of information about devices to create a new batch for the specified customer. This creates a device batch for enrollment in zero-touch deployment, and associates the devices and the device batch with the specified customer.
Prerequisites
Credentials as described in Partner Center authentication. This scenario supports authentication with App+User credentials. Follow the secure app model when using App+User authentication with Partner Center APIs.
A customer ID (
customer-tenant-id
). If you don't know the customer's ID, you can look it up in Partner Center by selecting the Customers workspace, then the customer from the customer list, then Account. On the customer's Account page, look for the Microsoft ID in the Customer Account Info section. The Microsoft ID is the same as the customer ID (customer-tenant-id
).The list of device resources that provide the information about the individual devices.
C#
To upload a list of devices to create a new device batch:
Instantiate a new [List/dotnet/api/system.collections.generic.list-1) of type Device and populate the list with the devices. The following combinations of populated properties are required at a minimum for identifying each device:
- HardwareHash + ProductKey.
- HardwareHash + SerialNumber.
- HardwareHash + ProductKey + SerialNumber.
- HardwareHash only.
- ProductKey only.
- SerialNumber + OemManufacturerName + ModelName.
Instantiate a DeviceBatchCreationRequest object and set the BatchId property to a unique name of your choosing, and the Devices property to the list of devices to upload.
Process the device batch creation request by calling the IAggregatePartner.Customers.ById method with the customer identifier to retrieve an interface to operations on the specified customer.
Call the DeviceBatches.Create or CreateAsync method with the device batch creation request to create the batch.
IAggregatePartner partnerOperations;
string selectedCustomerId;
List<Device> devicesToBeUploaded = new List<Device>
{
new Device
{
HardwareHash = "DummyHash123",
ProductKey = "00329-00000-0003-AA606",
SerialNumber = "1R9-ZNP67"
}
};
DeviceBatchCreationRequest
newDeviceBatch = new DeviceBatchCreationRequest
{
BatchId = "SDKTestDeviceBatch",
Devices = devicesToBeUploaded
};
var trackingLocation =
partnerOperations.Customers.ById(selectedCustomerId).DeviceBatches.Create(newDeviceBatch);
Sample: Console test app. Project: Partner Center SDK Samples Class: CreateDeviceBatch.cs
REST request
Request syntax
Method | Request URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/deviceBatches HTTP/1.1 |
URI parameter
Use the following path parameters when creating the request.
Name | Type | Required | Description |
---|---|---|---|
customer-id | string | Yes | A GUID-formatted string that identifies the customer. |
Request headers
For more information, see Partner Center REST headers.
Request body
The request body must contain a DeviceBatchCreationRequest resource.
Request example
POST https://api.partnercenter.microsoft.com/v1/customers/c7f3c849-129f-4b85-a96d-4f8e88b315a3/deviceBatches HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: c245d5f2-1de3-4ae0-9e42-95e38e3cb8ff
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 340
Expect: 100-continue
Connection: Keep-Alive
{
"BatchId": "SDKTestDeviceBatch",
"Devices": [{
"Id": null,
"SerialNumber": "1R9-ZNP67",
"ProductKey": "00329-00000-0003-AA606",
"HardwareHash": "DummyHash123",
"Policies": null,
"CreatedBy": null,
"UploadedDate": "0001-01-01T00:00:00",
"AllowedOperations": null,
"Attributes": {
"ObjectType": "Device"
}
}
],
"Attributes": {
"ObjectType": "DeviceBatchCreationRequest"
}
}
Important
As of June 2023, the latest Partner Center .NET SDK release 3.4.0 is now archived. You can download the SDK release from GitHub, along with a readme file that contains useful information.
Partners are encouraged to continue to use the Partner Center REST APIs.
REST response
If successful, the response contains a Location header that has a URI that can be used to retrieve device upload status. Save this URI for use with other related REST APIs.
Response success and error codes
Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use a network trace tool to read this code, error type, and additional parameters. For the full list, see Partner Center REST error codes.
Response example
HTTP/1.1 202 Accepted
Content-Length: 0
Location: /customers/c7f3c849-129f-4b85-a96d-4f8e88b315a3/batchJobStatus/beba2053-5401-46ff-9223-7e841ed78fbf
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
MS-RequestId: cb82f7d6-f0d9-44d4-82f9-f6eee6e68390
MS-CV: iqOqN0FnaE2y0HcD.0
MS-ServerId: 030020525
Date: Thu, 28 Sep 2017 20:35:35 GMT