Refer to Onboarding Documentation for step by step guidance.
Recycling API can be used to send recycling information to Microsoft against a Microsoft provided Asset number. The recycling information needs to be specific to:
Collection
Collection of equipments.
Disposition
Data destruction, Triage, etc.
Invoice details
Supplier invoice details
Credit details
Supplier credits and generating revenue to Microsoft
Payment Notifications
Payment information sent to Microsoft.
Certificate of Recycling (COR)
Send file pertaining to certificate of recycling in Job ID level.
Certificate of Destruction (COD)
Send file pertaining to certificate of destruction in Job ID level.
Certificate of Data Erasure
Send file pertaining to certificate of data erasure in Unit ID level
Invoice Document
Send document file pertaining to supplier invoices.
PO Document
Send document file pertaining to supplier purchase orders.
PO Document along with Automated MS Invoice creation
Send all the PO details along with Tax and document file for automated MS Invoice creation.
Transport & Packaging
Transport and packaging details for a Job ID.
DBD (Data Bearing Devices)
This report is only required for Jobs where Data Bearing Devices are found, which were not listed on the Collection Request Form.
Material Audit
Material audit information to calculate material efficiency.
To consume API, you would need to create account and subscribe to API product. in addition to subscribing to API, we need to enable Microsoft Entra ID integration to obtain authentication and authorization tokens that would be used for API communication.
API Information:
TEST : https://supplier.developer.azure-api.net/
PRODUCTION : https://supplier.portal.azure-api.net/
Go the above website and navigate to “Onboarding” link and follow the steps to subscribe to the Recycling API (v1) and request for subscription key that gives you access to querying API. Once requested, Microsoft will verify information and provide required access.
HEADER : OCP-APIM-SUBSCRIPTIONKEY
DESCRIPTION : Use this header to authenticate with subscription key you receive after subscribing to API
HEADER : AUTHORIZATION
DESCRIPTION : Use this header to pass Oauth2 authentication token. The steps to perform a token exchange are detailed in the following sections. The Value provided follows this format: ‘Bearer ’
WHO DOES
WHAT TO DO
1
Make Sure you have Microsoft Entra ID tenant is set up right
2
API Consumer’s Microsoft Entra ID Admin
Trust our Site – In Microsoft Entra ID, Admin accepts that it can be trusted
3
Consumer Application
Using code, generate Microsoft Entra ID authorization token. Refer code examples online.
4
Consumer Application
Using code, generate eb request with above headers and ad authorization token to get response from API. Sample code on Git hub.
i. You can get this by logging into https://aad.portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Properties using your Microsoft Entra ID user credentials.
1. https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#register-an-application-with-azure-ad-and-create-a-service-principal
In addition to authorization headers, we would need the below headers in all the payloads:
Program Type : DEVICE
Description: This belongs to Microsoft's "Responsible Recycle" business program.
Program Type : CLOUD
Description: This belongs to Microsoft's "MCIO/Cloud" business program.
Program Type : LINKEDIN_IT
Description: This belongs to LinkedIn IT business group.
Program Type : LINKEDIN_DC
Description: This belongs to the LinkedIn Datacenter business group.
Program Type : SUPPLYCHAIN
Description: This belongs to Recovery Supply Chain business group having customer devices.
The API documentation for each API's are available in the supplier portal (need login). You can click on "API definition" and download the related JSON/YAML contract. The API uses Rest based web request response and standard HTTP codes to communicate over HTTPS protocol.
https://supplier.developer.azure-api.net/docs/services/recycling-api/
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/collection
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/v2/disposition
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/invoicedetails
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/creditdetails
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/recyclingcertificate
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/paymentnotifications
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/invoicedocument
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/podocument
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/v2/podocument
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/transportandpackaging
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/materialaudit
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/dbd
https://test.supplier-api.microsoft.com/recycling/v1/api/devicerecycling/closejob
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/collection
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/v2/disposition
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/invoicedetails
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/creditdetails
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/recyclingcertificate
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/paymentnotifications
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/invoicedocument
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/podocument
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/v2/podocument
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/transportandpackaging
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/materialaudit
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/dbd
https://supplier.azure-api.net/recycling/v1/api/devicerecycling/closejob
Also, Disposition can be sent directly in case of Parts harvesting scenario. This type of unit need to be tied up with a parent unit id. The ParentUnitId should already exist in the system. When uploading all the units in bulk, put the ParentUnitId details before parts harvested units when calling API.
Invoice Details:
Provide Minimum Service Fee & Logistics Fee in a Job level across all the payloads to be consistent. Do not override it with 0 if sending partial units for a Job.
MinimumServiceFee & Logistics fee provided iin invoice details (Job level data) will be used to generate Invoice Summary automatically.
Provide valid SupplierInvoiceNumber. The same SupplierInvoiceNumber will be used to populate Invoice summary.
Credit Details:
Provide valid SupplierPoNumber.
Credit Summary will be automatically populated based on the credit details specifics.
During the Invoice/Credit details stage, a Job can be 'CLOSED'. Do not close the job unless all the units are uploaded for a job id. If a job need to be closed explicitly, pls use the "CloseJob" API.
Buyback JobType: For Buyback Jobs, only the below reports are needed:
1. Credit Details - This report can be uploaded without collection/disposition.
2. PO Document - Supplier PO number should be present in credit details to upload PO Document.
3. Payment Notifications
This cannot be uploaded unless we find the Job Id. Job Id existence is defined when Invoice/Credit details is uploaded.
For Invoice Document, "Supplier Invoice Number" needs to exist when sending Invoice Details.
For Credit Document, "Supplier Po Number" needs to exist when sending Credit Details.
This cannot be uploaded unless we find the Job Id. Job Id existence is defined when collection is uploaded.
This cannot be uploaded unless we find the Job Id. Job Id existence is defined when collection is uploaded.
This cannot be uploaded unless we find the Job Id/UnitId combination. Job Id/Unit Id existence is defined when collection is uploaded.
Call the CloseJob API explicitly to close a Job.
After a Job is closed, below *cannot* be uploaded: Rest of the reports can still be uploaded.
1. Collection
2. Disposition
3. Invoice/Credit Details
For Buyback Jobs, below reports need to be reported through respective APIs:
Credit Details
PO Document - Supplier PO number should be present in credit details to upload PO Document.
Payment Notifications
(SLA: 15 Days from 'Received Date' including holidays.)
Data Field
Datatype
Null Allowed
Description
Report Date
Date
No
Report Date to track the SLA.
Auto populated in Recycling API’s based on suppliers sending data.
Job ID
Text
No
Unique Job Identifier for each requested pickup/collection
Job Type
Text
No
ProgramType specific JobType(s) are listed in this document above.
NOTE: Only one Job Type is allowed per Job ID
Microsoft Company Code
Text
No
Microsoft pickup location ID located on the collection request form
Microsoft PO Number
Number
Yes
Document ID Supplier uses to pay Microsoft.
Microsoft PO Currency
Text
Yes
Currency Microsoft uses to pay supplier.
Collection Site Code
Text
No
Microsoft pickup location code (DC Code / Building ID)
Collection Site Name
Text
No
Microsoft pickup location name (DC Name / Building Name)
Microsoft Collection Ticket Number
Text
No
Microsoft provided ticket number to suppliers for collection.
Collection Address
Text
No
Microsoft pickup location address located on the collection request form
Collection Address No
Number
No
Microsoft pickup location address number located on the collection request form
Collection City
Text
No
Microsoft pickup location city located on the collection request form
Collection Country
Text
No
Country where the devices are picked up. Please provide 2-character ISO Country Code (https://countrycode.org/).
Collection Zip Code
Number
No
Microsoft pickup location zip code located on the collection request form
Collection Date
Number
No
Date when supplier has collected the devices from the MSFT site
Received
Date
No
Date and time unit received at supplier facility (Year/Month/Date)
Description
Text
Yes
Accessories field only for mix, bulk, cables, other
Unit ID
Text
No
Unique ID supplier uses to track a unit throughout the service From collection to final disposition (sold or sent to downstream recycler)
Asset Tag
Text
No
Microsoft Asset Tag number (Note: Units that do not bear a tag should report “NA”)
Asset Tag2
Text
No
Additional Asset Tag number (Note: Units that do not bear a tag should report “NA”)
Serial Number
Text
No
o Serial number (Note: Units that do not bear a Serial Number should report “NA”)
Unit Type
Text
No
Supplier Unit Type / Category
Manufacturer
Text
Yes
Manufacturer
Model
Text
Yes
Model name
Part Number
Text
Yes
Part Number if available
Processing Site
Text
No
Supplier facility where the unit is processed
Processing Country
Text
No
Country where the units are processed. Please provide 2-character ISO Country Code (https://countrycode.org/).
Quantity
Number
No
Quantity, of equipment being reported under this unit ID, wich allows for batch reporting on nonserialized equipment
Weight (Kilos)
Number
No
Device/component weight in kilos
{ "collectionDetails":{ "supplierId": "R004", "supplierName": "XYZ Recycling", "supplierJobId": "10002", "supplierJobType": "Standard/Destruction/Recycle", "supplierReceivedDate": "2019-06-15T13:21:58.000Z", "collectionDate": "2019-06-11T13:21:58.000Z", "msCollectionTicketNumber": "10297910", "collectionSiteCode": "C012", "collectionSiteName": "Microsoft US Redmond", "collectionAddress": "One Microsoft Way", "collectionAddressNumber": "", "collectionCity": "Redmond", "collectionCountry": "US", "collectionZipCode": null, "supplierProcessingSite": "Processing-site name", "supplierProcessingCountry": "US", "msCompanyCode": "1010", "msPONumber": "99288565" }, "assetDetails": [ { "supplierUnitId": "S101", "supplierUnitType": "Server", "assetTagNumber": "73737377", "assetTagNumber2": null, "serialNumber": "132509492057", "description": "For accessories field only for mix/bulk/cables/other", "manufacturer": "LENOVA", "model": "Inspiron", "partNumber": "INS393939", "quantity": 1, "weightInKilos": 7.8, "dataDeviceFormFactor": "NVMe", "hddCount": 2, "cpuSpeed": "2400 MHz", "ramSize": "8192 MB" }, { "supplierUnitId": "S102", "supplierUnitType": "Drive", "assetTagNumber": "NA", "assetTagNumber2": "Sample Tag", "serialNumber": "13260942FDF0", "msPoNumber": "99777565", "description": "For accessories field only for mix/bulk/cables/other", "manufacturer": "MICRON", "model": "M500 2.5 SSD.", "partNumber": "MTFDDAK480MAV", "quantity": 2, "weightInKilos": 9, "dataDeviceFormFactor": "SAS", "hddCount": 6, "cpuSpeed": "5000 MHz", "ramSize": "262144 MB" } ] }
(SLA: 45 Days from 'Collection Received Date' including holidays.)
Data Field
Data Type
Null Allowed
Description
Report Date
Date
No
Report Date to track the SLA. Auto populated in Recycling API’s based on suppliers sending data.
Job ID
Text
No.
Unique Job Identifier for each requested pickup/collection
Job Type
Text
No
ProgramType specific JobType(s) are listed in this document above. NOTE: Only one Job Type is allowed per Job ID
Job Status
Text
Yes.
ACTIVE/CLOSED (Default is ACTIVE)
Microsoft Company Code
Text
No
Microsoft pickup location ID located on the collection request form.
Microsoft PO Number
Number
Yes
Document ID supplier uses to pay Microsoft.
Microsoft PO Currency
Text.
Yes
Currency Microsoft uses to pay supplier.
Supplier PO Currency
Text
Yes
PO Currency supplier used to pay Microsoft (If sale price is provided)
Destruction Type
Text
Yes
If JobType is "DBD Destruction", this value needs to be provided in Job ID level. Valid values for this attribute are:- Onsite shredding, Offsite shredding, Onsite degauss & punched, Collected degauss & punched, Incineration, Recurring onsite shredding, Recurring offsite shredding, Recurring onsite degauss & punched, Recurring collected degauss & punched, Offsite destruction
Unit ID
Text
No
Unique ID supplier uses to track a unit throughout the service to final disposition
Unit Type
Text
No
Supplier Unit Type / Category
DispositionDate
Date
Yes
If Unit Status = 'Disposed', Disposition Date cannot be empty.
DispositionType
Text
Yes
Valid values are: Sold, Recycled, Destruction, Redeployment If Unit Status = 'Disposed', Disposition Type cannot be empty. NOTE: If Disposition Type is provided, the UnitStatus should be 'Disposed'
ReturnType
Text
Yes
Donation, RTC. "ReturnType" should be provided when DispositionType = 'Redeployment'. (RTC: Return to Customer)
UnitStatus
Text
No
Received, Processing, Processed, Inventory, Disposed.
Asset Tag
Text
No
Microsoft Asset Tag number (Note: Units that do not bear a tag should report “NA”)
Asset Tag2
Text
No
Additional Asset Tag number (Note: Units that do not bear a tag should report “NA”)
Parent Unit ID
Text
Yes
Part harvesting scenario: When parts are harvested, a new Unit ID is generated. Suppliers must link this new UnitID with Parent Unit ID.
Serial Number
Text
No
Serial number (Note: Units that do not bear a Serial Number should report “NA”)
Quantity
Number
Yes
Quantity to be provided only for the case of Parts harvesting Scenario. Quantity, of equipment being reported under this unit ID, which allows for batch reporting on non-serialized equipment.
Weight (Kilos)
Numberq
Yes
Weight to be provided only for the case of Parts harvesting Scenario. Device/component weight in kilos
Sales Price
Number
Yes
Sale price at unit id level (currency to map to Supplier PO currency)
Total Unit Fees
Numberq
Yes
Total Unit Fees charged at unit id level in Microsoft PO currency
Description
Text
Yes
Accessories field only for mix, bulk, cables, other if required
Manufacturer
Text
Yes
Manufacturer
Model
Text
Yes
Model name
Part Number
Text
Yes
Part Number if available
Data Device Form Factor
Text
Yes
HDD Count
Number
Yes
Number of hard disk found.
CPU Speed
Text
Yes
E.g, 2400 MHz
RAM Size
Text
Yes
E.g 8192 MB
Failure Reasons
Text
No
Supplier Failure Reasons
Triage Complete Date
Date
No
Date when device completes all the testing, data sanitization, dismantle and other processing and ready for remarket or
CPU
Text
Yes
CPU size, speed if applicable
RAM
Text
Yes
Memory size if applicable
Wipe Date
Text
Yes
Date device has been wiped if the unit has data bearing components
Certificate of Data Erasure Number
Text
Yes
Number indicating completion of unit data wipe ie Blanco serial number
{ "supplierId": "R004", "supplierName": "XYZ Recycling", "supplierJobID": "10002", "supplierJobType": "DBD Destruction", "msPONumber": "99288565", "msPoCurrency": "USD", "msCompanyCode": "1010", "supplierPoCurrency": "USD", "destructionType": "Offsite shredding/Offsite destruction/etc.", "jobStatus":"Active", "dispositionDetails": [ { "supplierUnitId": "S101", "supplierUnitType": "Server", "unitStatus": "Processing", "dispositionDate": "2020-06-11T23:20:03.658Z", "dispositionType": "Sold, Recycled, Redeployment", "returnType": "Donation/RTC", "wipeDate": "2019-06-13T00:21:58.000Z", "wipeCertificateNumber": "W4848848-R", "recycleCertificateNumber": "R9383", "triageCompleteDate": "2019-06-13T13:21:58.000Z", "triageFailureReasons": "Missing Part(s)- Power Supply Unit;Missing Part(s)-Motherboard", "parentUnitId": "SUP88855", "quantity": 1, "weightInKilos": 7.8, "salePrice": 2828.28, "totalUnitFees": 2100.8, "assetTagNumber": "73737377", "assetTagNumber2": null, "serialNumber": "132509492057", "description": "For accessories field only for mix/bulk/cables/other", "manufacturer": "LENOVA", "model": "Inspiron", "partNumber": "INS393939", "dataDeviceFormFactor": "NVMe", "hddCount": 2, "cpuSpeed": "2400 MHz", "ramSize": "8192 MB" }, { "supplierUnitId": "S103", "supplierUnitType": "Memory", "unitStatus": "Inventory", "dispositionDate": "2020-06-11T23:20:03.658Z", "dispositionType": "Sold, Recycled, Redeployment", "returnType": "Donation/RTC", "wipeDate": "2019-06-13T00:21:58.000Z", "wipeCertificateNumber": "W4844545", "recycleCertificateNumber": "R934545", "triageCompleteDate": "2019-06-13T13:21:58.000Z", "triageFailureReasons": "Missing Part(s)- Power Supply Unit;Missing Part(s)-Motherboard", "parentUnitId": null, "salePrice": 98.33, "totalUnitFees": 800.8, "assetTagNumber": "NA", "assetTagNumber2": "Sample Tag", "serialNumber": "13260942FDF0", "msPoNumber": "99777565", "description": "For accessories field only for mix/bulk/cables/other", "manufacturer": "MICRON", "model": "M500 2.5 SSD.", "partNumber": "MTFDDAK480MAV", "dataDeviceFormFactor": "SAS", "hddCount": 6, "cpuSpeed": "5000 MHz", "ramSize": "262144 MB" } ] }
(SLA: 120 Days from 'Collection Received Date' including holidays.)
Data Field
Data Type
Null Allowed
Description
Reporting Month
Date
No
First day of the reporting month.
Auto populated in Recycling API’s based on suppliers sending data.
Job ID
Text
No
Unique Job Identifier for each requested pickup/collection
Job Type
Text
No
ProgramType specific JobType(s) are listed in this document above
NOTE: Only one Job Type is allowed per Job ID
Job Status
Text
Yes
ACTIVE/CLOSED (Default is ACTIVE)
Microsoft PO Number
Number
No
Document ID supplier uses to pay Microsoft.
Microsoft PO Currency
Text
No
Currency Microsoft uses to pay supplier.
Billing Country
Text
No
Country code for billing. Please provide 2-character ISO Country Code (https://countrycode.org/).
Supplier Billing Entity
Text
Yes
Microsoft provided supplier ID.
Supplier Invoice Number
Number
No
Document ID supplier uses to bill MSFT (supplier internal number)
Logistics Fee
Number
No
Logistics fees in a Job Level in Microsoft PO currency. If this API is called multiple times for a single JobId, the logistics Fee needs to be same across all the uploads.
Minimum Service Fee
Number
Yes
Minimum Job Or Service fee charged for a single Job ID in Microsoft PO currency. If this API is called multiple times for a single JobId, the MinimumServiceFee needs to be same across all the uploads.
Miscellaneoous Fee Supplier Invoice Number
Text
Yes
Supplier Invoice Number tagged with Logistics Fee and Minimum service Fee.
NOTE: If this value is not provided, the default value will be the first 'Supplier Invoice Number' provided in the current invoice details payload.
Unit ID
Text
No
Unique ID supplier uses to track a unit throughout the service to final disposition (sold or sent to downstream recycler)
Unit Type
Text
No
Supplier Unit Type for the specific Program.
Unit Fee 1
Number
No
Fees charged at unit id level in Microsoft PO currency
Unit Fee 2
Number
No
See above
Unit Fee 3
Number
No
See above
Total Unit Fees
Number
No
sum of Unit Fee 1, 2, 3 etc. in Microsoft PO currency
{ "supplierId": "R004", "supplierName": "XYZ Recycling", "supplierJobID": "10002", "supplierJobType": "Destruction", "msCompanyCode": "1010", "msPONumber": "99288565", "msPoCurrency": "USD", "billingCountry": "US", "logisticsFee": 76, "minimumServiceFee":0, "miscFeeSupplierInvoiceNumber": "INV303828", "supplierBillingEntity": "MicrosoftProvidedSupplierID-MS PO Number related", "jobStatus": "ACTIVE", "invoiceDetails": [ { "supplierUnitID": "S101", "supplierUnitType": "Server", "unitFee1": 8.8, "unitFee2": 11, "unitFee3": 81, "totalUnitFees": 100.8, "supplierInvoiceNumber": "INV303827-CanBeSameAcrossAllUnitsForAJobId" }, { "supplierUnitID": "S105", "supplierUnitType": "Monitor", "unitFee1": 38.8, "unitFee2": 131, "unitFee3": 821, "totalUnitFees": 2100.8, "supplierInvoiceNumber": "INV303828" } ] }
(SLA: 120 Days from 'Collection Received Date' including holidays.)
Data Field
Data Type
Null Allowed
Description
Reporting Month
Date
No
First day of the reporting month
Auto populated in Recycling API’s based on suppliers sending data.
Job ID
Text
No
Unique Job Identifier for each requested pickup/collection
Job Type
Text
No
ProgramType specific JobType(s) are listed in this document above.
NOTE: Only one Job Type is allowed per Job ID
Job Status
Text
Yes
ACTIVE/CLOSED (Default is ACTIVE)
Supplier PO Number
Text
No
PO Number supplier uses to pay Microsoft value recovery
Supplier PO Currency
Text
No
PO Currency supplier used to pay Microsoft.
Billing Country
Text
No
Country code for billing. Please provide 2-character ISO Country Code (https://countrycode.org/).
Unit ID
Text
No
Unique ID supplier uses to track a unit throughout the service to final disposition (sold or sent to downstream recycler)
Unit Type
Text
No
Supplier Unit Type / Category
Date Sold
Date
No
Date device sold
Sales Price
Number
No
Sale price at unit id level (currency to map to Supplier PO currency)
Supplier Commission
Number
No
Supplier Revenue share at unit id level (currency to map to Supplier PO currency)
MS Rev Share
Number
No
Microsoft revenue share at unit id level (currency to map to Supplier PO currency). This is the actual credit which Microsoft is receiving (it is the amount after deducting supplier commission)
{ "supplierId": "R004", "supplierName": "XYZ Recycling", "supplierJobID": "10002", "supplierJobType": "Destruction", "msCompanyCode": "1010", "jobStatus": "ACTIVE", "supplierPoCurrency": "INR", "billingCountry": "US", "creditDetails": [ { "supplierUnitID": "S101", "supplierUnitType": "Server", "dateSold": "2020-03-31T07:05:04.216Z", "salePrice": 2828.28, "supplierCommission": 7, "msRevenueShare": 44.44, "supplierPoNumber": "SUP1010202" }, { "supplierUnitID": "S104", "supplierUnitType": "Monitor", "dateSold": "2020-03-31T07:05:04.216Z", "salePrice": 2828.28, "supplierCommission": 27, "msRevenueShare": 284.44, "supplierPoNumber": "SUP1010202" } ] }
API Headers:
Correlation-Id : “96e1474f-a81c-480f-af02-3ba42491e760”
Type: “Recycling” OR "Destruction" OR "DataErasure"
NOTE: DataErasure is in a unit level. SupplierUnitId needs to be provided to upload this type of certificate.
Recycling
Data Field
Data Type
Null Allowed
Description
1
Supplier Id
Text
No
Static Id provided by Microsoft
2
Supplier Job Id
Text
No
Job Id for which certificate is uploaded.
3
Certificate File Name
Text
No
Filename along with extension.
4
Certificate File Content
Number
No
File content as byte[] array.
{ "supplierId": "R003", "supplierJobId": "10002", "certificateFileName": "SampleCertificateName-10 "certificateFileContent":” JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9Db2xvclN }
Destruction
Data Field
Data Type
Null Allowed
Description
1
Supplier Id
Text
No
Static Id provided by Microsoft.
2
Supplier Job Id
Text
No
Job Id for which certificate is uploaded.
3
Certificate File Name
Text
No
Filename along with extension.
4
Certificate File Content
Number
No
File content as byte[] array.
{ "supplierId": "R003", "supplierJobId": "10002", "certificateFileName": "SampleCertificateName-10 "certificateFileContent":” JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9Db2xvclN }
DataErasure
Data Field
Data Type
Null Allowed
Description
1
Supplier Id
Text
No
Static Id provided by Microsoft
2
Supplier Job Id
Text
No
Job Id for which certificate is uploaded.
3
Supplier Unit Id
Text
No
Unit Id for which data erasure was done.
4
Certificate File Name
Text
No
Filename along with extension.
5
Certificate File Content
Number
No
File content as byte[] array
{ "supplierId": "R003", "supplierJobId": "10002", "supplierUnitId": "S101", "certificateFileName": "SampleCertificateName-10 "certificateFileContent":” JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9Db2xvclN }
Data Field
Data Type
Null Allowed
Description
Supplier PO Number
Text
No
PO Number supplier uses to pay Microsoft.
Supplier PO Currency
Text
No
Currency supplier uses to pay Microsoft
Microsoft Invoice Number
Text
No
Microsoft Invoice number issued.
Payment Amount
Number
No
Total amount of Payment for this line item which was paid/wired.
Payment Amount in USD
Number
No
Total amount of Payment for this line item in USD.
Payment Date
Date
No
Date when wire is sent.
{ "supplierId": "R004", "supplierName": "XYZ Recycling", "paymentDetails": [ { "supplierPoNumber": "SUP1010202", "supplierPoCurrency": "INR", "msInvoiceNumber": "MS-INV-998383838", "paymentDate": "2020-03-31T00:00:00.000Z", "paymentAmount": 245000.28, "paymentAmountUSD": 1000 }, { "supplierPoNumber": "SUP898", "supplierPoCurrency": "USD", "msInvoiceNumber": "MS-INV-998383838", "paymentDate": "2020-06-09T00:00:00.000Z", "paymentAmount": 678.29, "paymentAmountUSD": 678.29 } ] }
Data Field
Data Type
Null Allowed
Description
Supplier Id
Text
No
Supplier Id provided by Microsoft
Supplier Invoice Number
Text
No
Document ID supplier uses to bill MSFT (supplier internal number
Microsoft Company Code
Text
No
Microsoft pickup location ID located on the collection request form.
File Name
Text
No
File name along with extension.
File Content
Binary
No
File content in binary format.
{ "supplierId": "R001", "supplierInvoiceNumber": "INV38388", "msCompanyCode": "1010", "fileName": "SUP1010203-PoDocument-Sample.pdf", "fileContent":"FileContent in Binary format--- JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9Db2xvclNw" }
Data Field
Data Type
Null Allowed
Description
Supplier Id
Text
No
Supplier Id provided by Microsoft.
Supplier PO Number
Text
No
PO Number supplier uses to pay Microsoft value recovery
Microsoft Company Code
Text
No
Microsoft pickup location ID located on the collection request form.
File Name
Text
No
File name along with extension.
File Content
Binary
No
File content in binary format.
{ "supplierId": "R001", "supplierPoNumber": "PO38388", "msCompanyCode": "1010", "fileName": "SUP1010203-PoDocument-Sample.pdf", "fileContent":"FileContent in Binary format--- JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9Db2xvclNw" }
Data Field
Data Type
Null Allowed
Description
Supplier Id
Text
No
Supplier Id provided by Microsoft.
Supplier PO Number
Text
No
PO Number supplier uses to pay Microsoft value recovery
Microsoft Company Code
Text
No
Microsoft pickup location ID located on the collection request form.
Supplier PO Currency
Text
No
PO Currency supplier used to pay Microsoft.
Supplier PO Amount
Number
No
Total amount of the PO (This should be equivalent to Total MSRevenueShare sent in Credit Details)
NOTE: If the total MSRevenueShare for all the Jobs linked with this PO number is not equivalent to Supplier PO Amount sent in this payload, it will result in error. Pls. cross check the Credit details for all Job Id(s) linked with this 'SupplierPoNumber'.
(currency to map to Supplier PO currency)
Tota Freight Charges
Number
No
Total Freight charges for this PO (currency to map to Supplier PO currency)
Tax 1
Number
No
Tax (currency to map to Supplier PO currency)
Tax 2
Number
No
Tax (currency to map to Supplier PO currency)
Total Supplier PO Amount
Number
No
Total PO Amount including Tax(s) sent to Microsoft for Invoicing (currency to map to Supplier PO currency)
File Name
Text
PO Document file name along with extension.
File Content
Binary
No
File content in binary format.
{ "supplierId": "R001", "supplierPoNumber": "SUP10102036", "msCompanyCode": "1010", "supplierPoCurrency":"INR", "supplierPoAmount": 351.24, "totalFreightCharges": 10.10, "tax1":30.10, "tax2":20.90, "totalSupplierPoAmount": 412.34, "fileName": "SUP1010203-PoDocument-Sample.pdf", "fileContent":"FileContent in Binary format--- JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9Db2xvclNw" }
Data Field
Data Type
Null Allowed
Description
Supplier Id
Text
No
Static Supplier ID provided by Microsoft to submit across all payloads for Recycling API's.
Supplier Name
Text
No
Supplier Name.
Supplier Job Id
Text
No
Existing Job Id for which Transportation was used.
Transport Supplier Name
Text
Yes
Sub-Contractor company name, if trucks are not owned by you.
Load Weight (In KGs)
Number
No
Total collection weight in KG's (to include all equpment, packaging, and pallets)
Pallet Quantity
Number
No
Total Pallets utilized in this collection/Job Id
Vehicle Start Point Address
Text
No
Full Address of vehicle starting location to collect this Job Id
Point To Point
Text
.No
Yes/No - Confirmation that vehicle has gone straight from MS Location to Supplier Location with no unattended vehicle stops.
Approved Secure Location Address
Text
Yes
Full Address of the Approved secure location Or N/A, if Point To Point = "Yes"
Mileage
Number
No
Total miles travelled in relation to the collection per vehicle (Vehicle starting point to ITAD facility)
Vehicle Quantity
Number
No
Total number of vehicles used for the collection or the percentage of the vehicle occupied by the Job ID - e.g. 0.5. 0.33, 1.0 , 2.0, 3.0
Vehicle Tonnage
Number
No
Tonnage of each vehicle (e.g. 26)
Fuel Type
Text
No
Fuel Type of each vehicle (e.g. Diesel/Petrol/ Electric / Hydrogen / Bio Based)
Total Packaging Weight In KGs
Number
No
Total Packaging weight in Job Level.
Packaging Material Type
Text
No
For e.g, Wood Pallets, Cardboard, etc.
packaging Weight In KGs
Number
No
Total packaging weight for the Material Type.
Recycled Material Content Percentage
Number
No
Recycled material content % for the material type.
Reused Packaging Percentage
Number
No
Reused Packaging % for the material type.
Reused Packaging Weight In KGs
Number
No
Total amount of the packaging weight used on this material type, which was Reused after the collection for Microsoft Note: All records must have a reported weight if none than report 0.00
Recycled Packaging Weight In KGs
Number
No
Total amount of the packaging weight used on this Material type, which was Recycled after the collection for Microsoft Note: All records must have a reported weight if none than report 0.00
Composted Packaging Weight In KGs
Number
No
Total amount of the packaging weight used on this Material type, which was Composted after the collection for Microsoft Note: All records must have a reported weight if none than report 0.00
Landfill Packaging Weight In KGs
Number
No
Total amount of the packaging weight used on this Material type, which went to a Landfill Note: All records must have a reported weight if none than report 0.00
Incinerated Packaging Weight In KGs
Number
No
Total amount of the packaging weight used on this Material type, which was Incinerated Note: All records must have a reported weight if none than report 0.00
{ "supplierId": "R001", "supplierName": "XYZ Recycling", "supplierJobId": "10002", "transportSupplierName": "XYZ Supplier (If different from self)", "loadWeightInKilos": 9282.50, "palletQuantity": 65, "vehicleStartPointAddress": "1 Microsoft way, Redmond", "pointToPoint": "Yes", "approvedSecureLocationAddress": "If pointToPoint is No, provide address here", "mileageInMiles": 15, "vehicleQuantity": 1, "vehicleTonnage": 26, "fuelType": "Petrol", "totalPackagingWeightInKilos": 250, "packagingDetails": [ { "packagingMaterialType": "Cardboard", "packagingWeightInKilos": 40, "recycledMaterialContentPercentage": 35, "reusedPackagingPercentage": 100, "reusedPackagingWeightInKilos": 36.50, "recycledPackagingWeightInKilos": 20.78, "compostedPackagingWeightInKilos": 89, "landfillPackagingWeightInKilos": 50, "incineratedPackagingWeightInKilos": 10 }, { "packagingMaterialType": "Wood Pallets", "packagingWeightInKilos": 210, "recycledMaterialContentPercentage": 50, "reusedPackagingPercentage": 50, "reusedPackagingWeightInKilos": 67.50, "recycledPackagingWeightInKilos": 70.10, "compostedPackagingWeightInKilos": 30, "landfillPackagingWeightInKilos": 350, "incineratedPackagingWeightInKilos": 30 } ] }
Data Field
Data Type
Null Allowed
Description
Supplier Id
Text
No
Static Supplier ID provided by Microsoft to submit across all payloads for Recycling API's.
Supplier Name
Text
No
Supplier Name.
Supplier Job Id
Text
No
Existing Job Id to send material audit information
Supplier Unit Type
Text
No
Supplier Unit Type / Category
Material Type
Text
No
Any material that is a part of the composition of the unit type (i.e. copper, gold, battery, lightbulb, etc.)
Material Weight Before Processing (In KGs)
Number
No
Total weight of material before processing in KGs.
Material Weight After Processing (In KGs)
Number
No
Total weight of material after processing in KGs.
Material Processing Type
Text
No
How was the element material processed? (i.e. smelted, shredded, etc.)
Channel Type
Text
Yes
Final customer to process the element material (i.e. vendor, smelter, recycler, etc.)
Recyclable Material Weight Before Processing (In KGs)
Number
No
Total weight of recyclable material before processing in KGs.
Material Efficiency Percentage
Number
No
Recycling efficiency % for material.
Material Purity
Number
No
Ratio of pure material / total processed material
File Name
Text
Yes
File name along with extension.
File Content
Binary
Yes
File content in binary format.
{ "supplierId": "R001", "supplierName": "XYZ Recycling", "supplierJobId": "10002", "supplierUnitType": "Server", "materialType": "Copper", "materialWeightBeforeProcessingInKg": 10.39, "materialWeightAfterProcessingInKg": 9.33, "materialProcessingType": "Shredded", "channelType": "Vendor", "recyclableMaterialWeightBeforeProcessingInKg": 5.36, "materialEfficiencyPercentage": 67.50, "materialPurity": 1.73, "fileName": "materialaudit-sample.pdf", "fileContent":"FileContent in Binary format--- JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9Db2xvclNw" }
1 .Data Field : Supplier Id
Data Type : Text
Null Allowed: No
Description : Static Supplier ID provided by Microsoft to submit across all payloads for Recycling API's
2. Data Field : Supplier Name
Data Type : Text
Null Allowed: No
Description : Supplier Name.
3.Data Field : Supplier Job Id
Data Type : Text
Null Allowed: No
Description : Existing Job Id.
4.Data Field : supplierJobType
Data Type : Text
Null Allowed: No
Description : Existing Job Type associated with this Job Id.
5.Data Field : supplierUnitId
Data Type : Text
Null Allowed: No
Description : Unique ID supplier uses to track a unit throughout the service
6.Data Field : supplierUnitType
Data Type : Text
Null Allowed: No
Description : Supplier Unit Type
7.Data Field : assetTagNumber
Data Type : Text
Null Allowed: Yes
Description : Microsoft Asset Tag number (Note: Units that do not bear a tag should report “NA”)
8.Data Field : assetTagNumber2
Data Type : Text
Null Allowed: Yes
Description : Additional Asset Tag number (Note: Units that do not bear a tag should report “NA”)
9.Data Field : serialNumber
Data Type : Text
Null Allowed: Yes
Description : Serial number (Note: Units that do not bear a Serial Number should report “NA”)
10.Data Field : msPoNumber
Data Type : Text
Null Allowed: Yes
Description : PO Number assciated with Microsoft.
11.Data Field : description
Data Type : Text
Null Allowed: Yes
Description : Description of the DBD
12.Data Field : manufacturer
Data Type : Text
Null Allowed: Yes
Description : Manufacturer of the DBD
13.Data Field : partNumber
Data Type : Text
Null Allowed: Yes
Description : Part Number if available
14.Data Field : model
Data Type : Text
Null Allowed: Yes
Description : Model of the DBD if available
15.Data Field : quantity
Data Type : Text
Null Allowed: No
Description : Quantity, of equipment being reported under this unit ID, wich allows for batch reporting on non-serialized equipment.
16.Data Field : weightInKilos
Data Type : Text
Null Allowed: No
Description : Device/component weight in kilos
17. Data Field : dataDeviceFormFactor
Data Type : Text
Null Allowed: No
Description : Data device form factor of the DBD. Valid values are listed below: HDD SSD USB PCIe_SSD NVDIMM Tape Flash HSM M2
18.Data Field : hddCount
Data Type : Text
Null Allowed: Yes
Description : Total count of HDD reported under this unit id.
19.Data Field : parentUnitId
Data Type : Text
Null Allowed: Yes
Description : Parts Harvesting: Parent Unit id associated with it.
20.Data Field : parentUnitType
Data Type : Text
Null Allowed: Yes
Description : Parts Harvesting: Parent unit type.
21.Data Field : parentUnitSerialNumber
Data Type : Text
Null Allowed: Yes
Description : Parts Harvesting: Serial number of parent unit id.
22.Data Field : parentUnitAssetTagNumber
Data Type : Text
Null Allowed: Yes
Description : Parts Harvesting: Asset tag number of parent unit id.
23.Data Field : dbdImages
Data Type : Text
Null Allowed: Yes
Description : Images being sent as byte array. This can be null or multiple images.
JSON Structure
{ "supplierId": "R004", "supplierName": "XYZ Recycling", "supplierJobId": "10002", "supplierJobType": "Standard/Destruction/Recycle", "dbdDetails": [ { "supplierUnitId": "S101", "supplierUnitType": "Server", "assetTagNumber": "73737377", "assetTagNumber2": null, "serialNumber": "132509492057", "description": "For accessories field only for mix/bulk/cables/other", "manufacturer": "LENOVA", "model": "Inspiron", "partNumber": "INS393939", "quantity": 1, "weightInKilos": 7.8, "dataDeviceFormFactor": "NVMe", "hddCount": 2, "parentUnitId": null, "parentUnitType": null, "parentUnitSerialNumber": null, "parentUnitAssetTagNumber": null }, { "supplierUnitId": "S102", "supplierUnitType": "Network Module", "assetTagNumber": "NA", "assetTagNumber2": "Sample Tag", "serialNumber": "13260942FDF0", "msPoNumber": "99777565", "description": "For accessories field only for mix/bulk/cables/other", "manufacturer": "MICRON", "model": "M500 2.5 SSD.", "partNumber": "MTFDDAK480MAV", "quantity": 2, "weightInKilos": 9, "dataDeviceFormFactor": "SAS", "hddCount": 6, "parentUnitId": "33737", "parentUnitType": "Server", "parentUnitSerialNumber": null, "parentUnitAssetTagNumber": null } ], "dbdImages": [ { "fileName": "dbdimagefilename-1.pdf", "fileContent": "......kNjMwYjkzNjRmY2VhOTM5ZmY+XS9Sb290IDEyIDAgUi9TaXplIDE0Pj4Kc3RhcnR4cmVmCjIw }, { "fileName": "imagefileName-2.jpg", "fileContent": "......TE3OTc5NTlkNjMwYjkzNjRmY2VhOTM5ZmY+XS9Sb290IDEyIDAgUi9TaXplIDE0Pj4Kc3RhcnR } ] }
1.Data Field : Supplier Id
Data Type : Text
Null Allowed: No
Description : Static Supplier ID provided by Microsoft to submit across all payloads
2.Data Field : Supplier Name
Data Type : Text
Null Allowed: No
Description : Supplier Name.
3.Data Field : Supplier Job Id
Data Type : Text
Null Allowed: No
Description : Parts Harvesting: Serial number of parent unit id.
4.Data Field : supplierJobType
Data Type : Text
Null Allowed: No
Description : Existing Job Type associated with this Job Id.
5.Data Field : jobStatus
Data Type : Text
Null Allowed: No
Description : CLOSED
JSON Structure
{ "supplierReportingDate": "2022-01-26T12:05", "supplierId": "R004", "supplierName": "XYZ Recycling", "supplierJobId": "10002", "supplierJobType": "Value Recovery", "jobStatus": "CLOSED" }
Every API call will have a response in the form of JSON Structure.
Suppliers should validate the response and resend the payloads after fixing the issues listed in response object. Supplier teams should also store this response as log entries in their telemetry database to keep track of history.
The Error response object will be as below:
{ "correlationId": "96e1474f-a81c-480f-af02-3ba42491e760", "timeStamp": "2020-03-14T20:42:48.4385661Z", "errorResponses": [ { "supplierId": "R001", "supplierJobId": "10002", "supplierUnitId": "S101", "errorCode": "1004", "errorMessage": "Asset Quantity cannot be <= 0." } ], "successResponses": [ { "supplierId": "R001", "supplierJobId": "10002", "supplierUnitId": "S102" } ] }
“errorResponses” attribute will give all the failures related to a single JobID/UnitID combination.
“successResponses” attribute will give all the payloads which were successfully accepted related to a single JobID/UnitID combination.
If payload validations for Job/Unit id's are *not* successful at Microsoft end, they are indicated by means of error code described as below: Suppliers should validate the error code/description and store it in their telemetry logs for tracking.
Error Code : 1001
Error Description : Supplier ID cannot be empty.
Comment :
Error Code : 1002
Error Description : Job ID cannot be empty.
Comment :
Error Code : 1003
Error Description : Unit ID cannot be empty.
Comment :
Error Code : 1004
Error Description : Asset Quantity cannot be <= 0.
Comment :
Error Code : 1005
Error Description : Company Code cannot be empty.
Comment :
Error Code : 1006
Error Description : Supplier Name cannot be empty.
Comment :
Error Code : 1007
Error Description : Job Type cannot be empty.
Comment :
Error Code : 1008
Error Description : Unit Type cannot be empty.
Comment :
Error Code : 1009
Error Description : Unit Type is not valid for the provided program type.
Comment :
Error Code : 1010
Error Description : Supplier ID is Invalid
Comment :
Error Code : 1011
Error Description : Supplier ID is not authorized to send data for this program type.
Comment :
Error Code : 1012
Error Description : Supplier Invoice Number cannot be empty.
Comment :
Error Code : 1013
Error Description : Supplier PO Number cannot be empty.
Comment :
Error Code : 1014
Error Description : Microsoft PO Number cannot be empty.
Comment :
Error Code : 1015
Error Description : Microsoft PO Currency cannot be empty.
Comment :
Error Code : 1016
Error Description : Supplier PO Currency cannot be empty.
Comment :
Error Code : 1017
Error Description : Invalid Collection Country Code.
Comment :
Error Code : 1018
Error Description : Invalid Processing Country Code.
Comment :
Error Code : 1019
Error Description : Collection address cannot be empty.
Comment :
Error Code : 1020
Error Description : Collection city cannot be empty.
Comment :
Error Code : 1021
Error Description : Collection zip code cannot be empty.
Comment :
Error Code : 1022
Error Description : Collection Date cannot be empty.
Comment :
Error Code : 1023
Error Description : Invalid Billing Country Code.
Comment :
Error Code : 1024
Error Description : Logistics Fee does not match with Invoice details.
Comment : Re-upload invoice details with logistics fee linked to the Job Id.
Error Code : 1025
Error Description : Minimum service Fee does not match with Invoice details.
Comment : Re-upload invoice details with minimum service fee linked to the Job Id.
Error Code : 1026
Error Description : Job ID does not exist!
Comment : If Certificates/DBD/PO Document/Invoice Document is being uploaded, Job Id should exist in the system based out of collection/disposition/invoice/credit.
Error Code : 1027
Error Description : Microsoft Invoice Number cannot be empty.
Comment :
Error Code : 1028
Error Description : Collection site code cannot be empty.
Comment :
Error Code : 1029
Error Description : Collection site name cannot be empty.
Comment :
Error Code : 1030
Error Description : Invalid AssetTag Number. Accepts alphanumeric and [,-\\/]. Blank spaces are not allowed.
Comment : Provide valid asset tag number for the unit id.
Error Code : 1031
Error Description : Invalid Serial Number. Accepts alphanumeric, blank and [,\\/=@-+.#]
Comment : Provide valid serial number for the unit id.
Error Code : 1032
Error Description : Forex conversion rate does't exist for this currency code. Pls. contact Microsoft team.
Comment :
Error Code : 1033
Error Description : Invalid Supplier PO currency provided for credit amounts
Comment :
Error Code : 1034
Error Description : Invalid MS PO currency provided for invoice amounts!
Comment :
Error Code : 1035
Error Description : Invalid currency code
Comment :
Error Code : 1036
Error Description : Currency mismatch from already provided data!
Comment : If Invoice/Credit details is already sent with an associated currency, it cannot be changed. Pls. contact Microsoft team.
Error Code : 1037
Error Description : Total supplier units exceeded max limit for posting data through API!
Comment : Limit 1000 units in every API call.
Error Code : 1038
Error Description : Supplier Invoice Number cannot be empty for invoiced Unit Id's.
Comment : When sending Invoice details, make sure all the unit id's have a SupplierInvoiceNumber linked to it.
Error Code : 1039
Error Description : Supplier PO Number cannot be empty for credit Unit Id's.
Comment : When sending Credit details, make sure all the unit id's have a SupplierPoNumber linked to it.
Error Code : 1040
Error Description : Supplier PO Number does not belong to any Job ID.
Comment :Link this Supplier PO Number with existing Job Id by uploading credit details.
Error Code : 1041
Error Description : Supplier Invoice Number does not belong to any Job ID.
Comment : Link this Supplier Invoice number with existing Job Id by uploading invoice details.
Error Code: 1042
Error Description: Invalid Job Unit Id. Collection doesn't exist. Dispostion can be sent directly only along with parent unit id.
Comment: Collection should exist if Disposition/Invoice details/Credit details is being uploaded. If Disposition is being uploaded without collection, then ParentUnitId needs to be linked with the unit id. When uploading Invoice/Credit details, collection and disposition should exist. For Buyback job, collection is not required.
Error Code: 1044
Error Description: At least one Unit Id should exist in Invoice details for job having LogisticsFee (or) MinimumServiceFee > 0.
Comment: If *Only* LogisticsFee and MinimumServiceFee exists, invoice details should be uploaded with atleast one reference of unit id with total fee as 0. This will link the Supplier Invoice Number with Job Id.
Error Code: 1045
Error Description: Invalid Disposition Type!
Comment: Disposition Type can be either Sold/Recycled/Redeployment
Error Code: 1046
Error Description: Disposition Type cannot be empty, if Unit Status is Disposed!
Comment: Provide the Disposition Type if Unit status is 'Disposed'.
Error Code: 1047
Error Description: Invalid Unit Status!
Comment: Unit Status can be either Received/Processing/Processed/Inventory/Disposed.
Error Code: 1048
Error Description: Supplier Received Date cannot be empty.
Comment: Collection cannot be sent with blank Received date.
Error Code: 1049
Error Description: Unit Status should be 'Disposed', if Disposition Type Or Disposition Date is being provided!
Comment:
Error Code: 1050
Error Description: Disposition Date cannot be empty, if Unit Status is Disposed!
Comment: Disposition Date and Disposition Type should be provided together when UnitStatus is 'Disposed'
Error Code: 1051
Error Description: Job Type is Invalid for this Program.
Comment: Check the valid Job Types in this documentation. Each ProgramType have a set of configurable Job Types set by business groups.
Error Code: 1052
Error Description: Invalid Client Company Code!
Comment: Check the company code listed in collection request form. If not listed, pls. check with respective program manager.
Error Code: 1053
Error Description: 'DataDeviceFormFactor' cannot be empty for data bearing devices!
Comment: When uploading DBD devices, "DataDeviceFormFactor" cannot be empty. Some examples are HDD, SSD, USB, PCIe_SSD, NVDIMM, Tape, Flash, HSM, M2
Error Code: 1054
Error Description: Destruction type does not exist or is Invalid!
Comment: Check Disposition section above for valid destruction type(s).
Error Code: 1055
Error Description: PO Amount cannot be <= 0!
Comment:
Error Code: 1056
Error Description: PO Amount does not match with credit details. Submit Credit details again with amount matching to the PO.
Comment: Submit Credit details again with amount matching to the PO.
Error Code: 1057
Error Description: PO document already submitted for Invoicing. No Changes are allowed.
Comment: The PO Document earlier uploaded has been sent for Invoicing. No changes are allowed at this point of time.
Error Code: 1058
Error Description: PO document is already uploaded for this 'SupplierPoNumber'. Pls. link the credit details with a different PO number.
Comment: Since PO Document is already uploaded, the given "SupplierPoNumber" cannot be linked with any unit id.
Error Code: 1059
Error Description: Parent Unit Id does not exist for this Job. Pls. upload the parent unit report and then parts harvested unit in order.
Comment: The ParentUnitId should already exist in the system. When uploading all the units in bulk, put the ParentUnitId details before parts harvested units when calling API.
Error Code: 1060
Error Description: Company code not enabled for automated Microsoft invoicing in SAP.
Comment: The company code is not enabled for automated invoicing in SAP. Currently only limited company codes are enabled.
Error Code: 1061
Error Description: PO document is not uploaded for the corresponding 'SupplierPoNumber'
Comment: Pls. upload the PO document before pushing Payment notifications report.
Error Code: 1062
Error Description: Disposition Date cannot be a future date!
Comment:
Error Code: 1063
Error Description: Triage Complete Date cannot be a future date!
Comment:
Error Code: 1064
Error Description: <TotalSupplierPoAmount>should be equal to the sum of <POAmount, Tax1, Tax2 and FreightCharges>.
Comment: When uploading PO Document with Tax details, the 'TotalSupplierPoAmount' should be equal to the sum of other amounts including Tax.
Error Code: 1065
Error Description: Sale Price should be > 0, when the item is 'Sold' and 'Disposed'.
Comment:
Error Code: 1066
Error Description: Weight of the device/hardware/parts cannot be <= 0.
Comment:
Error Code: 1100
Error Description: Parts Harvesting: Parts quantity cannot be 0!
Comment: If a unit id has ParentUnitId associated to it, the quantity cannot be 0.
Error Code: 1102
Error Description: Parts Harvesting: Weight of total parts cannot be 0!
Comment:
Error Code: 2001
Error Description: Error while inserting payload data.
Comment: Check the JSON payload for formatting issues.
Error Code: 3001
Error Description: Invalid file name!. Pls. provide only the file name of the certificate with valid characters.
Comment: File name needs to be without special characters and with extension.
Error Code: 3002
Error Description: Invalid type in header. Type can be Recycling/DataErasure/Destruction
Comment: When uploading certificates, provide the certificate type in header.
Error Code: 3003
Error Description: Supplier Unit Id cannot be empty for certificate of data erasure.
Comment: Data erasure certificates are uploaded for each unit id, which cannot be empty.
Error Code: 3004
Error Description: Invalid file content or file does not exist!
Comment: The content of the file sent as byte array is invalid.
Error Code: 4001
Error Description: Invalid year.
Comment: JSON value contains invalid year.
Error Code: 4002
Error Description: Invalid month.
Comment: JSON value contains invalid month.
Error Code: 5001
Error Description: Unable to validate 'Collection Ticket Number'. Pls. contact Cloud/MCIO team to check validation web service!
Comment: Pls. contact Microsoft ITAD team alias on Validation API service.
Error Code: 5002
Error Description: Invalid collection ticket number!
Comment: Provide an valid ticket number. For Cloud, an valid GDCO ticket number should be provided.
Error Code: 5003
Error Description: Invalid packaging material type!
Comment: Packaging Material Type should be provided as per configured values. Pls. contact Microsoft team to get a list of material type
Error Code: 5004
Error Description: Program type mismatch!
Comment: Job Id was linked with a different Program type. Pls. contact Microsoft team.
Error Code: 5005
Error Description: This Job is 'CLOSED'. No updates can be performed!
Comment: Pls. contact Microsoft team if changes exists after a Job is closed.
Error Code: 5006
Error Description: This Job is over the threshold limit(days) to accept payloads. No additions/updates can be performed at this time!
Comment: Pls. contact Microsoft team if a old job needs to be modified.