Skip to main content

Create Onboarding Movement

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

For employee-to-employee transfers (OFF_ON), use Create Offboarding Movement with toEmployeeEmail.

Prerequisites

Query the hardware in storage endpoint to obtain hardwareIds and confirm items are in storage.

Authentication

This endpoint requires authentication. See Authentication for details.

Parameters

ParameterTypeRequiredDescription
companyCodestringYesCompany code for an existing managed company (inline company object is not supported)
hardwareIdsarrayYesArray of hardware IDs to assign (at least one)
expectedDatestringNoExpected date for the movement (YYYY-MM-DD)
employeeEmailstringOne ofEmail of an existing destination employee
employeeobjectOne ofEmployee details for inline create/update (see Employee Properties)

handledBy is always TECSPAL for onboarding requests (not accepted in the request body).

Employee Properties

PropertyTypeRequiredDescription
firstNamestringYesFirst name of the employee
lastNamestringYesLast name of the employee
emailstringYesEmail address of the employee
phonestringNoPhone number with country code
governmentDNIstringYesGovernment-issued identification number
cpfstringNoBrazilian tax ID (required in practice for BR employees when the movement is created)
addressstringYesPrimary address
citystringYesCity of residence
postCodestringYesPostal code
countryCodestringYesDestination country in ISO 3166-1 alpha-2 format
addressExtraInfostringNoAdditional address information

Request

Production URL: https://orchestrator.tecspal.com/
Sandbox URL: https://orchestrator-dev.tecspal.com/
Endpoint: POST /movement_requests/onboarding

Example Request

{
"data": {
"companyCode": "DM1",
"hardwareIds": ["2069ab49-bce8-4e9d-a7a6-fb4805b33ba4"],
"expectedDate": "2024-04-10",
// "employeeEmail": "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 movement request
movementRequestNumbernumberRequest number
createdAtstringISO timestamp when the request was created
updatedAtstringISO timestamp when the request was last updated
typestringType of request (ONBOARDING)
statusstringStatus of the request (e.g., PROCESSING)
etastring | nullEstimated time of arrival (nullable)
sendTostringDestination type (EMPLOYEE)
handledBystringThe team or person handling the request
expectedDatestringExpected date for completion
factoryResetbooleanWhether a factory reset is required
trackingLinkstring | nullLink for tracking (nullable)
trackingCodestring | nullCode 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 | nullAlways null for onboarding
movementRequestStatusHistoricarrayStatus change history of the request
toEmployeeobject | nullDetails of the employee the request is for (nullable)
fromEmployeeobject | nullAlways null for onboarding
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,
"trackingCode": 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": "hardwares should not be empty"
}
],
"error": "Bad Request",
"message": "Invalid request data",
"statusCode": 400
}

Notes

  • Provide either employeeEmail (existing employee) or an employee object (create or update inline)
  • Sending an employee object when the email already exists updates the employee; it does not return a conflict error
  • The destination employee country must match the hardware country, or both must be within the EU
  • Hardware in European storage has countryCode EU and can be onboarded to any EU member country
  • All hardware items must be in storage and not already in movement
  • The movement request is created with PROCESSING status (handledBy is always TECSPAL)