Skip to main content

Create Onboarding Movement

Creates a new onboarding movement request to assign hardware to an employee.

Prerequisites

Before creating an onboarding movement, you must first query the hardware in storage endpoint to:

  • Get the required hardwareIds for the items you want to assign
  • Check hardware availability in storage
  • Verify hardware details (type, model, etc.)

Authentication

This endpoint requires authentication. See Authentication for details.

Parameters

ParameterTypeRequiredDescription
companyCodestringYesCompany code for one of your managed companies
countryCodestringYesCountry code in ISO 3166-1 alpha-2 format
hardwareIdsarrayYesArray of hardware IDs to assign
expectedDatestringNoExpected date for the movement (YYYY-MM-DD)
employeeEmailstringOne ofEmail of an existing employee
employeeobjectOne ofNew employee details (see Employee Properties)

Employee Properties (When Creating New Employee)

PropertyTypeRequiredDescription
firstNamestringYesFirst name of the employee
lastNamestringYesLast name of the employee
emailstringYesEmail address of the employee
phonestringYesPhone number with country code
governmentDNIstringYesGovernment-issued identification number
addressstringYesPrimary address
citystringYesCity of residence
postCodestringYesPostal code
countryCodestringYesCountry code in ISO 3166-1 alpha-2 format
addressExtraInfostringNoAdditional address information

Request

Production URL: https://orchestrator.tecspal.com/
Sandbox URL: https://tecspal-orchestrator.sandbox.lexartlabs.uy/
Endpoint: POST /movement_requests/onboarding

Example Request

{
"data": {
"companyCode": "DM1",
"countryCode": "UY",
"hardwareIds": ["2069ab49-bce8-4e9d-a7a6-fb4805b33ba4"],
"expectedDate": "2024-04-10",
// "email": "john_doe@email.com", // For existing employee
"employee": {
"firstName": "John",
"lastName": "Doe",
"email": "john_doe@email.com",
"phone": "+598 99999999",
"governmentDNI": "DNI123",
"address": "Plaza Independencia 848",
"city": "Montevideo",
"addressExtraInfo": "",
"postCode": "11100",
"countryCode": "UY"
}
},
"request": "movement_requests/onboarding",
"vendor": "tecspal",
"verb": "POST"
}

Response Schema

PropertyTypeDescription
statusCodenumberHTTP status code of the response
messagestringDescription of the response status
enveloparrayArray containing the list of movement requests

Movement Request Properties

PropertyTypeDescription
idstringUnique identifier of the order
movementRequestNumbernumberRequest number
createdAtstringISO timestamp when the request was created
updatedAtstringISO timestamp when the request was last updated
typestringType of request (e.g., OFFBOARDING)
statusstringStatus of the request (e.g., PROCESSING)
etastring | nullEstimated time of arrival (nullable)
sendTostringDestination type (e.g., STORAGE)
handledBystringThe team or person handling the request
expectedDatestringExpected date for completion
factoryResetbooleanWhether a factory reset is required
trackingLinkstring | nullLink for tracking (nullable)
dateCompletedstring | nullDate when the request was completed (nullable)
apiClientRequesterNamestringName of the API client requester
requesterEmailstring | nullEmail of the user who created the request
toEmployeeIdstring | nullID of the employee who should receive the hardware
fromEmployeeIdstring | nullID of the employee returning the hardware
movementRequestStatusHistoricarrayStatus change history of the request
toEmployeeobject | nullDetails of the employee the request is for (nullable)
fromEmployeeobject | nullEmployee initiating the request
storageobjectStorage details
companyNamestringName of the company
hardwaresarrayList of hardware items related to the request

toEmployee Properties

PropertyTypeDescription
idstringUnique identifier of the employee
firstNamestringFirst name of the employee
lastNamestringLast name of the employee
countryCodestringCountry code of the employee
emailstringEmail of the employee
addressstringFull address of the employee
addressExtraInfostringExtra address information (nullable)
postCodestringPostal code of the employee's address

storage Properties

PropertyTypeDescription
idstringUnique identifier of the storage
countryCodestringCountry code of the storage

hardwares Properties

PropertyTypeDescription
idstringUnique ID of the hardware
descriptionstringDescription or notes
serialNumberstringSerial number of the hardware
brandstringHardware brand (if applicable)
namestringName of the hardware (from model or hardwareType)
ramstringRAM configuration (if applicable)
diskSpacestringDisk size (if applicable)
displaySizestringDisplay size (if applicable)
processorstringProcessor (if applicable)
imagestringURL to the image

Example Response

{
"envelop": [
{
"id": "f133e0cc-45b7-4059-9305-8caa671c8e96",
"movementRequestNumber": 50001002,
"createdAt": "2025-04-14T15:57:21.361Z",
"updatedAt": "2025-04-14T15:57:21.361Z",
"type": "ONBOARDING",
"status": "PROCESSING",
"eta": null,
"sendTo": "EMPLOYEE",
"handledBy": "TECSPAL",
"expectedDate": "2025-12-10",
"factoryReset": false,
"trackingLink": null,
"dateCompleted": null,
"apiClientRequesterName": "EXAMPLE API CLIENT",
"toEmployee": {
"id": "36338fd7-dc0a-497d-a957-e80b4c9a25eb",
"firstName": "john",
"lastName": "Doe",
"countryCode": "UY",
"email": "john_doe99@email.com",
"address": "Plaza Independencia 848, Montevidéu, Uruguai",
"addressExtraInfo": "",
"postCode": "11100"
},
"fromEmployee": null,
"storage": {
"id": "f5d253a3-e494-4614-9c8e-001789def712",
"countryCode": "UY"
},
"companyName": "Larian Studios",
"hardwares": [
{
"id": "2069ab49-bce8-4e9d-a7a6-fb4805b33ba4",
"description": "New",
"serialNumber": "SN123456",
"brand": "Apple",
"name": "MacBook Pro",
"ram": "16GB",
"diskSpace": "512GB",
"displaySize": "16 inch",
"processor": "M1 Pro",
"image": "https://a-us.storyblok.com/f/1001855/789x500/82ee51ba4d/macbook-pro-16.png"
}
]
}
],
"message": "Request successful",
"statusCode": 201
}

Error Responses

Bad Request (400)

{
"details": [
{
"field": "hardwareIds",
"message": "At least one hardware ID is required"
}
],
"error": "Bad Request",
"message": "Invalid request data",
"statusCode": 400
}

Conflict (409)

{
"error": "Conflict",
"message": "Employee with this email already exists",
"statusCode": 409
}

Notes

  • You must provide either an existing employee's email or complete details for a new employee
  • All hardware items must be available (not assigned to other employees)
  • The movement request will be created with "PROCESSING" status
  • Hardware will be marked as "in movement" until the request is completed