Documentation
API
Our API documentation provides a comprehensive guide to integrating and using our platform’s features efficiently.

Heads up — we’re upgrading to API version v2.3.1!
As part of our ongoing improvements to the Unduit platform, we began work in February 2025 on upgrading our API platform. we’re rolling out API v2.3.1, built on our next-gen tech stack to improve scalability, security, and dev experience.
During this transition, a few endpoints may be temporarily unavailable or in read-only mode.
No action is required for customers already integrated — all existing APIs will remain stable and fully supported.

Introduction
Authentication
Manage App
Recover App
Device Hub App
Buyback Orders App
Manage Orders App
General
Invoice App
Support App
Platform Users
Unduit APIs
Welcome to the Unduit API Collection
The Unduit API collection enables developers to seamlessly integrate their platforms with the Unduit system. Using these APIs, you can access and interact with data related to your company on the Unduit platform.
Purpose
This collection provides endpoints to:
- Authenticate and manage access securely using tokens.
- Fetch and manage records relevant to your company.
- Support seamless integrations with high efficiency and security.
Key Features
- Secure Access: Every request requires proper authentication, ensuring secure data handling.
- Company-Specific Data: All APIs are scoped to provide data that is specific to your company in the Unduit system.
- Ease of Use: Example requests and detailed documentation included for each endpoint.
- Scalable Integration: Built to handle multiple integrations and high-volume requests efficiently.
- Standardized Error Handling: Clear error codes are provided for better debugging and integration management.
Error Codes
The Unduit API follows standard HTTP status codes for responses:
Code | Description |
---|---|
200 | Successful response. |
400 | Bad request (e.g., missing parameters). |
401 | Unauthorized (e.g., invalid or expired token). |
404 | Not found (e.g., invalid endpoint or resource). |
422 | Validation error (e.g., invalid input format). |
500 | Server error (e.g., an unexpected issue). |
Getting Started
- Import this Postman collection into your workspace.
- Set up an environment with the following variables:
base_url
:https://dev-api.unduit.com/api/v1
auth_token
: The Bearer Token obtained from the Login API.
- Follow the detailed instructions provided in each API folder to understand specific functionality.
Support
If you have any questions or need assistance, feel free to reach out to the Unduit team at [email protected].
Authentication
The Authentication folder contains endpoints required to securely access the Unduit API. These APIs help you manage your access tokens and ensure secure interactions with the platform.
Endpoints in this Folder
- Login API: Obtain an access token by authenticating with your email and password.
Refresh Token API: Renew your access token when it is about to expire.
1. Login API
Purpose:
Authenticate a user and retrieve a JSON Web Token for subsequent API requests. This token is required to authorize every request to the Unduit APIs.
Endpoint:
POST https://dev-api.unduit.com/api/v1/auth/login
Request Structure
{ "email": "your-email@example.com", "password": "your-password"}
Response
On successful login, you’ll receive a token valid for 4 hours.
Example Response:
{
"message": "Login successful",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiZW1haWwiOiJmYWlyd2F5aW5kZXBlbmRlbnRtb3J0Z2FnZWNvcnBvcmF0aW9uQHVuZHVpdC5jb20iLCJjb21wYW55X2lkIjozMTcsImlhdCI6MTczMzMxNTY4OCwiZXhwIjoxNzMzMzE5Mjg4fQ.RNon3WMwoBrz0C0HZxi3TDSt-LjIwL38Wnrue6yvCVw"
}
Error Handling
If the credentials are invalid, you’ll receive an error response:
{
"message": "Invalid email or password"
}
2. Refresh Token API
Purpose:
Renew an expired or soon-to-expire token to maintain uninterrupted access to the API.
Endpoint:
POST https://dev-api.unduit.com/api/v1/refresh-token
Request Structure:
- Body: (Raw JSON)
Example Request
{
"refresh_token": "your_current_token"
}
Response
On success, you’ll receive a new token valid for the next 4 hours.
Example Response:
{
"message": "Token refreshed successfully",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiZW1haWwiOiJmYWlyd2F5aW5kZXBlbmRlbnRtb3J0Z2FnZWNvcnBvcmF0aW9uQHVuZHVpdC5jb20iLCJjb21wYW55X2lkIjozMTcsImlhdCI6MTczMzIxNTc4OCwiZXhwIjoxNzMzMzE5Mjg4fQ.RNon3WMwoBrz0C0HZxi3TDSt-LjIwL38Wnrue6yvCVw"
}
Error Handling:
If the token is invalid or expired, you’ll receive an error response
{
"message": "Invalid token"
}
Usage Notes
- Always include the Bearer Token in the Authorization header for secured endpoints.
- Tokens expire after 4 hours. Use the Refresh Token API to renew them before expiry.
- Ensure secure storage of tokens on the client-side to prevent unauthorized access.
POST Login
Example Request
curl --location 'https://dev-api.unduit.com/api/v1/auth/login' \
--data-raw '{
"email": "jane.smith@example.com",
"password": "password"
}'
Example Response
{
"message": "Login successful",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiZW1haWwiOiJmYWlyd2F5aW5kZXBlbmRlbnRtb3J0Z2FnZWNvcnBvcmF0aW9uQHVuZHVpdC5jb20iLCJjb21wYW55X2lkIjozMTcsImlhdCI6MTczMzM5Mzk5NSwiZXhwIjoxNzMzMzk3NTk1fQ.qvWAgXO-AUr5-JurBC_cBMJ1y-SWJmkcTlihS-n5gjw"
}
POST Refresh Token
Example Request
curl --location 'https://dev-api.unduit.com/api/v1/refresh-token' \
--data '{
"refresh_token": ""
}'
Example Response
{
"message": "Token has been refreshed successfully.",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiZW1haWwiOiJmYWlyd2F5aW5kZXBlbmRlbnRtb3J0Z2FnZWNvcnBvcmF0aW9uQHVuZHVpdC5jb20iLCJjb21wYW55X2lkIjozMTcsImlhdCI6MTczMzM5Mzk5NSwiZXhwIjoxNzMzMzk3NTk1fQ.qvWAgXO-AUr5-JurBC_cBMJ1y-SWJmkcTlihS-n5gjw"
}

Manage
The Manage folder provides APIs to manage users and assets associated with a company on the Unduit platform. These APIs enable developers to retrieve lists of users and assets, view detailed information, and filter assets based on specific criteria. Below is a detailed breakdown of the APIs within this folder:
API Endpoints
1. Users List
- Endpoint:
https://dev-api.unduit.com/api/v1/users
- Description: Retrieves a paginated list of users associated with the company. Each page contains up to 10 records by default. Developers can apply filters, such as by email, to narrow down the results. Each user object includes an
AssignedAssets
array, which contains all assets assigned to the user. If no asset is assigned, this array will be empty.
Example Request:
Method: GET
Get all users (default behaviour)https://dev-api.unduit.com/api/v1/users?page=1
- Retrieves the first page of users, containing up to 10 records per page.
- Filter by email:
https://dev-api.unduit.com/api/v1/users?page=1&[email protected]
- Retrieves users matching the provided email address.
Query Parameters:
Parameter | Type | Description |
---|---|---|
page | Number | Specifies the page number for pagination. Default is 1. |
String | (Optional) Filters users by email address. Returns matching users only. |
Example Response
{
"totalUsers": 465,
"totalPages": 47,
"currentPage": 1,
"users": [
{
"FirstName": "John",
"LastName": "Doe",
"LocationName": null,
"PhoneCountryCode": "US",
"ContactInfo": "1234567890",
"Email": "john.doe@example.com",
"Country": "US",
"State": "CA",
"City": "Los Angeles",
"Zip": "90001",
"LocationType": "Remote Employee",
"Address_1": "1234 Elm Street",
"Address_2": "",
"AssignedAssets": []
},
{
"FirstName": "Jane",
"LastName": "Smith",
"LocationName": null,
"PhoneCountryCode": "US",
"ContactInfo": "0987654321",
"Email": "jane.smith@example.com",
"Country": "US",
"State": "NY",
"City": "New York",
"Zip": "10001",
"LocationType": "Remote Employee",
"Address_1": "5678 Oak Avenue",
"Address_2": "Unit 202",
"AssignedAssets": [
{
"assetId": "LEN-0000-ABCD1234",
"modelName": "Demo Laptop",
"modelNumber": "DL-1234",
"productType": "Laptop",
"purchaseDate": "2024-10-31",
"serialNumber": "SN-ABCD1234",
"imei": "",
"imei2": "",
"sku": "",
"assetStatus": "In Use",
}
]
}
]
}
2. Asset List
Method: GET
Endpoint: https://dev-api-v1.unduit.com/api/v1/assets
Description: Retrieves a paginated list of all assets associated with the company. Each page contains up to 10 records by default. Developers can apply filters such as serialNumber and assetId to narrow down the results. Each asset object includes an AssignedUser object, which contains the name and email of the user to whom the device is assigned. If the device is unassigned, the AssignedUser object will be null.
Example Request:
Method: GET
- Get all assets (default behaviour):
-
https://dev-api-v1.unduit.com/api/v1/assets?page=1
- Retrieves the first page of assets, containing up to 10 records per page.
-
- Filter by serial number:
-
https://dev-api-v1.unduit.com/api/v1/assets?page=1&serialNumber=MBP2022XYZ
- Retrieves assets with the specified serial number.
-
- Filter by asset ID:
-
https://dev-api-v1.unduit.com/api/v1/assets?page=1&assetId=101
- Retrieves assets with the specified asset ID.
-
- Filter by both serial number and asset ID:
-
https://dev-api-v1.unduit.com/api/v1/assets?page=1&serialNumber=MBP2022XYZ&assetId=101
- Retrieves assets that match both the specified serial number and asset ID.
-
Query Parameters:
Parameter | Type | Description |
---|---|---|
page | Number | Specifies the page number for pagination. Default is 1. |
serialNumber | String | (Optional) Filters assets by serial number. |
assetId | String | (Optional) Filters assets by ID. |
Example Response
{
"currentPage": 1,
"totalPages": 53,
"totalItems": 523,
"assets": [
{
"assetId": "DEMO-ASSET-123",
"modelName": "Demo Device",
"modelNumber": "Model X",
"productType": "Laptop",
"purchaseDate": "2024-01-01",
"serialNumber": "SN123456",
"imei": "",
"imei2": "",
"sku": "SKU123",
"assetStatus": "In Use",
"AssignedUser": {
"firstname": "John",
"lastname": "Doe",
"username": "John Doe",
"email": "john.doe@example.com"
}
},
{
"assetId": "DEMO-ASSET-456",
"modelName": "Demo Device",
"modelNumber": "Model Y",
"productType": "Tablet",
"purchaseDate": "2024-02-01",
"serialNumber": "SN654321",
"imei": "",
"imei2": "",
"sku": "SKU456",
"assetStatus": "In Use",
"AssignedUser": {
"firstname": "Jane",
"lastname": "Smith",
"username": "Jane Smith",
"email": "jane.smith@example.com"
}
}
]
}
Key Notes
- These APIs allow developers to efficiently manage user and asset data for their company on the Unduit platform.
- Be mindful of user and asset identifiers when making requests to ensure accurate results.
- Always secure your API calls with a valid token as described in the Authentication section.
GET Users List
Example Request
curl --location 'https://dev-api.unduit.com/api/v1/users?page=1' \
--header 'Authorization: Bearer '
Example Response
{
"totalUsers": 465,
"totalPages": 47,
"currentPage": 1,
"users": [
{
"FirstName": "John",
"LastName": "Doe",
"LocationName": null,
"PhoneCountryCode": "US",
"ContactInfo": "1234567890",
"Email": "john.doe@example.com",
"Country": "US",
"State": "CA",
"City": "Los Angeles",
"Zip": "90001",
"LocationType": "Remote Employee",
"Address_1": "1234 Elm Street",
"Address_2": "",
"AssignedAssets": []
},
{
"FirstName": "Jane",
"LastName": "Smith",
"LocationName": null,
"PhoneCountryCode": "US",
"ContactInfo": "0987654321",
"Email": "jane.smith@example.com",
"Country": "US",
"State": "NY",
"City": "New York",
"Zip": "10001",
"LocationType": "Remote Employee",
"Address_1": "5678 Oak Avenue",
"Address_2": "Unit 202",
"AssignedAssets": [
{
"assetId": "LEN-0000-ABCD1234",
"modelName": "Demo Laptop",
"modelNumber": "DL-1234",
"productType": "Laptop",
"purchaseDate": "2024-10-31",
"serialNumber": "SN-ABCD1234",
"imei": "",
"imei2": "",
"sku": "",
"assetStatus": "In Use",
}
]
}
]
}
GETAssets List
Example Request
curl --location 'https://dev-api.unduit.com/api/v1/assets?page=1' \
--header 'Authorization: Bearer '
Example Response
{
"currentPage": 1,
"totalPages": 53,
"totalItems": 523,
"assets": [
{
"assetId": "DEMO-ASSET-123",
"modelName": "Demo Device",
"modelNumber": "Model X",
"productType": "Laptop",
"purchaseDate": "2024-01-01",
"serialNumber": "SN123456",
"imei": "",
"imei2": "",
"sku": "SKU123",
"assetStatus": "In Use",
"AssignedUser": {
"firstname": "John",
"lastname": "Doe",
"username": "John Doe",
"email": "john.doe@example.com"
}
},
{
"assetId": "DEMO-ASSET-456",
"modelName": "Demo Device",
"modelNumber": "Model Y",
"productType": "Tablet",
"purchaseDate": "2024-02-01",
"serialNumber": "SN654321",
"imei": "",
"imei2": "",
"sku": "SKU456",
"assetStatus": "In Use",
"AssignedUser": {
"firstname": "Jane",
"lastname": "Smith",
"username": "Jane Smith",
"email": "jane.smith@example.com"
}
}
]
}

Recover
The Recover folder provides APIs to manage IT asset recovery workflows on the Unduit platform. These APIs allow users to create recovery orders, retrieve lists of users participating in campaigns, view asset and order information, monitor recovery statuses, and access shipment tracking details. The APIs offer full visibility into the recovery process, helping organizations efficiently track and manage returning assets without modifying asset records.
GETCampaign List
1. Recover Campaigns List API
- Endpoint:
GET https://dev-api.unduit.com/api/v1/recover/campaigns
- Description: Retrieves a paginated list of Recover Campaigns associated with the company. By default, the response includes up to 10 campaigns per page. The API also supports filtering options to narrow down the results as needed.
Query Parameters:
Method: GET
Endpoint: https://dev-api.unduit.com/api/v1/recover/campaigns
Query Parameters:
Parameter | Type | Description | Example |
---|---|---|---|
page | Number | Page number for pagination | 1 |
limit | Number | (Optional) Number of records per page (default is 10) | 10 |
Example Request
curl --location 'https://dev-api.unduit.com/api/v1/recover/campaigns' \
--header 'Authorization: Bearer '
Example Response
{
"total_records": 10,
"total_pages": 1,
"currentPage": 1,
"campaigns": [
{
"campaign_number": "17458430682853",
"compain_title": "Rolling Campaign for Desktops",
"start_date": "Apr 28th, 2025",
"country": {
"name": "France",
"code": "FR"
},
"total_device_count": 120,
"total_employee": 57
},
{
"campaign_number": "17448093142852",
"compain_title": "Rolling Campaign for Network Devices",
"start_date": "Apr 11th, 2025",
"country": {
"name": "India",
"code": "IN"
},
"total_device_count": 13,
"total_employee": 5
},
{
"campaign_number": "17448094992831",
"compain_title": "Rolling Campaign for MacBooks",
"start_date": "Feb 5th, 2025",
"country": {
"name": "India",
"code": "IN"
},
"total_device_count": 14,
"total_employee": 6
},
{
"campaign_number": "17448094992830",
"compain_title": "Rolling Campaign for SmartPhones ",
"start_date": "Feb 5th, 2025",
"country": {
"name": "United States",
"code": "US"
},
"total_device_count": 16,
"total_employee": 9
},
{
"campaign_number": "17448094992829",
"compain_title": "UK Cmapaign",
"start_date": "Feb 5th, 2025",
"country": {
"name": "United Kingdom",
"code": "GB"
},
"total_device_count": 7,
"total_employee": 6
},
{
"campaign_number": "17448094992654",
"compain_title": "Rolling Campaign for Printer",
"start_date": "Oct 25th, 2023",
"country": {
"name": "United States",
"code": "US"
},
"total_device_count": 20,
"total_employee": 5
},
{
"campaign_number": "17448094992450",
"compain_title": "Rolling Campaign",
"start_date": "Jan 27th, 2023",
"country": {
"name": "United States",
"code": "US"
},
"total_device_count": 8017,
"total_employee": 3422
},
{
"campaign_number": "17448094992391",
"compain_title": "Equipment Return - Corp",
"start_date": "Dec 21st, 2022",
"country": {
"name": "United States",
"code": "US"
},
"total_device_count": 64,
"total_employee": 25
},
{
"campaign_number": "17448094992384",
"compain_title": "Wholesale",
"start_date": "Dec 12th, 2022",
"country": {
"name": "United States",
"code": "US"
},
"total_device_count": 39,
"total_employee": 23
},
{
"campaign_number": "17448094992365",
"compain_title": "Corp RIF - Dec 2022",
"start_date": "Jan 30th, 2023",
"country": {
"name": "United States",
"code": "US"
},
"total_device_count": 131,
"total_employee": 57
}
]
}
Key Notes for Recover Campaigns List API
- This API allows developers to retrieve and manage Recover Campaign data associated with their company on the Unduit platform.
- Campaign data includes details such as campaign number, title, start date, country, total devices, and total employees.
- Results are paginated by default, with 10 campaigns per page unless otherwise specified via query parameters.
- The response structure includes country information (name and ISO code) to help with region-specific filtering or analytics.
- The assignedAssets array is present in associated employee’s data, indicating which devices are tied to specific employees (if applicable).
- Ensure your API calls are secured using a valid Bearer token, as outlined in the Authentication section.
- Use the page query parameter to navigate through multiple pages of campaign records.
- Be consistent with date formatting, and consider converting human-readable dates to a machine-parsable format if needed on the client side.
- Always validate the campaign number and associated identifiers when integrating with other modules or systems to maintain data integrity
GETCampaign Details
Description:
This API retrieves detailed information about a specific Recover Campaign, including:
- Campaign metadata (title, country, start date)
- Return address information
- A list of employee associated with the campaign
- Assets assigned to each employee
- Tracking information for each employee
Path Parameters
Parameter | Type | Required | Description |
---|---|---|---|
campaign_number | String | ✅ Yes | Unique identifier of the recover campaign |
Query Parameters (for pagination)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
page | Number | ❌ No | 1 | Page number to retrieve (for paginated employee results) |
limit | Number | ❌ No | 10 | Number of employees to return per page |
Example Request
curl --location 'https://dev-api.unduit.com/api/v1/recover/employees/details/17449821332893'
Example Response
{
"campaign_number": "17458430682853",
"title": "Rolling Campaign for Desktops",
"country": {
"name": "France",
"code": "FR"
},
"start_date": "Apr 28th, 2025",
"helpdesk_email": null,
"return_address": [
{
"name": "John Doe",
"title": "Rolling Campaign for Desktops",
"company": "xxxxx",
"country": {
"name": "France",
"code": "FR"
},
"state": null,
"city": "xxxx",
"zip_code": "xxxx",
"address": "xxxxx",
"phone": "xxxxxxxx",
"email": "xxxxxxxx",
"packages": [
{
"device": "Laptop",
"qty": 1,
"incomingWeight": 10,
"length": 16,
"width": 12,
"height": 4
},
{
"device": "Monitor 32\"",
"qty": 1,
"incomingWeight": 30,
"length": 30,
"width": 30,
"height": 12
}
]
}
],
"employees": [
{
"recovery_id": "174584241251583",
"email": "xxxxxx",
"firstname": "John",
"lastname": "Doe",
"phone_country": "FR",
"phone_number": "xxxxxxx",
"country": {
"name": "France",
"code": "FR"
},
"state": {
"name": "Paris",
"code": "PR",
"country_code": "FR"
},
"city": "paris",
"zip": "xxxx",
"address_line_1": "xxxxxxxx",
"address_line_2": "xxxxxxxxx",
"items": [
{
"item": "Imogene Ortega",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "Dacey Baldwin",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "Hilary Farley",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "Martin Maldonado",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "Mercedes Gates",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
}
],
"status": "Order Received",
"tracking": [
{
"carrier_name": "ups",
"forward_shipping": {
"tracking_number": "xxxxxxxx",
"tracking_link": "null"
},
"return_shipping": {
"return_tracking_number": "xxxxxxxxxx",
"return_tracking_link": "https://wwwapps.ups.com/WebTracking/processRequest?HTMLVersion=5.0&Requester=NES&loc=en_US&tracknum=xxxxxxxx"
}
},
{
"carrier_name": "ups",
"forward_shipping": {
"tracking_number": "",
"tracking_link": null
},
"return_shipping": {
"return_tracking_number": "xxxxxxxxx",
"return_tracking_link": "https://wwwapps.ups.com/WebTracking/processRequest?HTMLVersion=5.0&Requester=NES&loc=en_US&tracknum=xxxxxx"
}
},
],
"last_updated": "Apr 28th, 2025"
},
{
"recovery_id": "174590984551584",
"email": "dihip3@mailinator.com",
"firstname": "John",
"lastname": "Dec",
"phone_country": "FR",
"phone_number": "xxxx",
"country": {
"name": "France",
"code": "FR"
},
"state": {
"name": "Paris",
"code": "PR",
"country_code": "FR"
},
"city": "paris",
"zip": "xxxxx",
"address_line_1": "xxxxxxx",
"address_line_2": null,
"items": [
{
"item": "123",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "123",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "123",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "2134",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
},
{
"item": "2314",
"item_serial_no": null,
"item_asset_id": null,
"item_imei": null,
"custom_field_1": null,
"custom_field_2": null
}
],
"status": "Order Received",
"tracking": [],
"last_updated": "Apr 29th, 2025"
},
],
"total_employees": 2,
"total_pages": 1,
"current_page": 1
}
POSTAdd Employee
This API is used to add a new employee to an existing Recover Campaign, along with their return address and assigned asset details. The employee will be associated with the specified campaign and will be expected to return the listed items.
Request Body
Field | Type | Required | Description |
---|---|---|---|
campaign_number | String | ✅ Yes | Unique identifier of the recover campaign |
String | ✅ Yes | Employee's email address | |
firstname | String | ✅ Yes | First name of the employee |
lastname | String | ✅ Yes | Last name of the employee |
phone | String | ✅ Yes | Employee's phone number (with country code if international) |
address_line_1 | String | ✅ Yes | Primary address line |
address_line_2 | String | ❌ No | Secondary address line |
city | String | ✅ Yes | City of the employee’s address |
state | String | ✅ Yes | State or province code |
zip | String | ✅ Yes | ZIP or postal code |
country | String | ✅ Yes | ISO 2-letter country code (e.g., US, IN, GB) |
shipping_option | String | ✅ Yes | Defines how the recovery will proceed. Options: • create_prepaid_shipping_label • send_recovery_kit |
callback_url | String | ⚠️ Conditionally Required | Required only if shipping_option is create_prepaid_shipping_label. The shipping label will be sent to the provided callback URL. Not required for send_recovery_kit. |
items | Array | ✅ Yes | List of items/assets assigned to the employee (at least one item is required) |
⚠️ Max limit: You can assign a maximum of 5 items per employee.
🔁 Items Object (each item in items
array)
Field | Type | Required | Description |
---|---|---|---|
item | String | ✅ Yes | Name/label of the asset |
item_serial_no | String | ❌ No | Serial number of the asset |
item_asset_id | String | ❌ No | Internal asset ID |
item_imei | String | ❌ No | IMEI number (for mobile devices) |
custom_field_1 | String | ❌ No | Custom metadata field 1 |
custom_field_2 | String | ❌ No | Custom metadata field 2 |
Example Request
curl --location --request GET 'https://dev-api.unduit.com/api/v1/recover/user/add' \
--data-raw '{
"campaign_number": 17449821332893,
"email": "john.doe@company.com",
"firstname": "John",
"lastname": "Doe",
"phone": "1632960123",
"address_line_1": "123 Business Park",
"address_line_2": "Suite 200",
"city": "London",
"state": "LDN",
"zip": "10001",
"country": "GB",
"items": [
{
"item": "MacBook Pro 16\"",
"item_serial_no": "C02XL0XXXXX1",
"item_asset_id": "IT-APPLE-001",
"item_imei": "",
"custom_field_1": "2023-issue",
"custom_field_2": "Finance Dept"
},
{
"item": "iPhone 15 Pro",
"item_serial_no": "DNXXXXXX1JKL",
"item_asset_id": "IT-APPLE-002",
"item_imei": "35693803564XXXX",
"custom_field_1": "Mobile Plan: Corp",
"custom_field_2": "Manager Approval"
}
]
}'
Example Response
{
"success": true,
"message": "Employee added successfully"
}