Skip to main content

Alta de trabajadores

Proceso de Contratación

POST: Crear un nuevo proceso de contratación

Descripción del API
Este endpoint permite crear un nuevo proceso de contratación para un trabajador. Los parámetros proporcionan información sobre el trabajador, el contrato, el puesto y otros detalles relacionados con la contratación.

Endpoint

POST /api/hiring/process

Parámetros de entrada

AtributoRequeridoTipoDescripciónEjemplo
sourcestringFuente del proceso de contratación"SAP"
worker_document_typestringTipo de documento del trabajador"DNI"
worker_document_numberstringNúmero del documento del trabajador"45234567"
worker_birthdatestringFecha de nacimiento del trabajador"1992-07-15T00:00:00"
check_attendancebooleanIndica si se debe verificar la asistencia del trabajadortrue
worker_namesstringNombres del trabajador"Carlos Alberto"
worker_surnamesstringApellidos del trabajador"Martínez Gómez"
corporate_emailstringCorreo electrónico corporativo del trabajador"cmartinez@empresa.com"
worker_emailstringCorreo electrónico personal del trabajador"carlos.martinez@example.com"
worker_cellphonestringTeléfono celular del trabajador"991234567"
contract_startstringFecha de inicio del contrato"2024-02-01T00:00:00"
contract_endNostringFecha de finalización del contrato (opcional)null
contract_typestringTipo de contrato (indeterminado, temporal, etc.)"temporal"
worker_typestringTipo de trabajador (empleado, contratista, etc.)"employee"
multisitebooleanIndica si el trabajador estará en múltiples sitiosfalse
home_officebooleanIndica si el trabajador podrá trabajar desde casafalse
regime_idintegerID del régimen laboral del trabajador2
external_idintegerID externo del trabajador1023
profile_idintegerID del perfil del trabajador3
position_idintegerID del puesto del trabajador4
company_idintegerID de la empresa del trabajador5
cost_center_idintegerID del centro de costos asociado al trabajador6
shift_idintegerID del turno asignado al trabajador7

JSON de ejemplo (entrada)

{
"source": "HRSystem",
"worker_document_type": "DNI",
"worker_document_number": "45234567",
"worker_birthdate": "1992-07-15T00:00:00",
"check_attendance": true,
"worker_names": "Carlos Alberto",
"worker_surnames": "Martínez Gómez",
"corporate_email": "cmartinez@empresa.com",
"worker_email": "carlos.martinez@example.com",
"worker_cellphone": "991234567",
"contract_start": "2024-02-01T00:00:00",
"contract_end": null,
"contract_type": "temporal",
"worker_type": "employee",
"multisite": false,
"home_office": false,
"regime_id": 2,
"external_id": 1023,
"profile_id": 3,
"position_id": 4,
"company_id": 5,
"cost_center_id": 6,
"shift_id": 7
}

Parámetros de salida

AtributoTipoDescripciónEjemplo
userIdenteroIdentificador único del usuario.7339
statusCodeenteroCódigo de estado de la respuesta.200
messagecadenaMensaje general de la respuesta."Se procesó la contratación correctamente."
details.usercadenaMensaje sobre la actualización del usuario."Usuario actualizado correctamente"
details.backgroundUsercadenaMensaje sobre la creación del background del usuario."Background creado correctamente"
details.teamResponse.messagecadenaMensaje sobre la asociación del usuario al equipo."El usuario fue asociado al equipo correctamente."
details.teamResponse.assignedbooleanoIndica si el usuario fue asociado al equipo.true
details.shiftResponse.messagecadenaMensaje sobre el turno especificado."El turno especificado no pertenece al equipo indicado."
details.shiftResponse.assignedbooleanoIndica si el turno fue asignado al usuario.false
details.companyResponse.messagecadenaMensaje sobre la empresa especificada."La empresa especificada no pertenece al equipo indicado."
details.companyResponse.assignedbooleanoIndica si la empresa fue asignada al usuario.false
details.positionResponse.messagecadenaMensaje sobre el cargo especificado."El cargo especificado no pertenece al equipo indicado."
details.positionResponse.assignedbooleanoIndica si el cargo fue asignado al usuario.false
details.managementCenterResponse.messagecadenaMensaje sobre el centro de gestión especificado."El centro de gestión especificado no pertenece al equipo indicado."
details.managementCenterResponse.assignedbooleanoIndica si el centro de gestión fue asignado al usuario.false
details.profileResponse.messagecadenaMensaje sobre el perfil especificado."El perfil especificado no pertenece al equipo indicado."
details.profileResponse.assignedbooleanoIndica si el perfil fue asignado al usuario.false
details.locationResponse.messagecadenaMensaje sobre la asignación de lugares de marcación."Se asignaron los lugares de marcación al usuario correctamente."
details.locationResponse.assignedbooleanoIndica si los lugares de marcación fueron asignados al usuario.true

JSON de ejemplo (salida)

  • Respuesta 200 OK:
{
"userId": 7339,
"statusCode": 200,
"message": "Se procesó la contratación correctamente.",
"details": {
"user": "Usuario actualizado correctamente",
"backgroundUser": "Background creado correctamente",
"teamResponse": {
"message": "El usuario fue asociado al equipo correctamente.",
"assigned": true
},
"shiftResponse": {
"message": "El turno especificado no pertenece al equipo indicado.",
"assigned": false
},
"companyResponse": {
"message": "La empresa especificada no pertenece al equipo indicado.",
"assigned": false
},
"positionResponse": {
"message": "El cargo especificado no pertenece al equipo indicado.",
"assigned": false
},
"managementCenterResponse": {
"message": "El centro de gestión especificado no pertenece al equipo indicado.",
"assigned": false
},
"profileResponse": {
"message": "El perfil especificado no pertenece al equipo indicado.",
"assigned": false
},
"locationResponse": {
"message": "Se asignaron los lugares de marcación al usuario correctamente.",
"assigned": true
}
}
}