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
sourceSístringFuente del proceso de contratación"SAP"
worker_document_typeSístringTipo de documento del trabajador"DNI"
worker_document_numberSístringNúmero del documento del trabajador"45234567"
worker_birthdateSístringFecha de nacimiento del trabajador"1992-07-15T00:00:00"
check_attendanceSíbooleanIndica si se debe verificar la asistencia del trabajadortrue
worker_namesSístringNombres del trabajador"Carlos Alberto"
worker_surnamesSístringApellidos del trabajador"Martínez Gómez"
corporate_emailSístringCorreo electrónico corporativo del trabajador"cmartinez@empresa.com"
worker_emailSístringCorreo electrónico personal del trabajador"carlos.martinez@example.com"
worker_cellphoneSístringTeléfono celular del trabajador"991234567"
contract_startSístringFecha de inicio del contrato"2024-02-01T00:00:00"
contract_endNostringFecha de finalización del contrato (opcional)null
contract_typeSístringTipo de contrato (indeterminado, temporal, etc.)"temporal"
worker_typeSístringTipo de trabajador (employee, workman)"employee"
multisiteSíbooleanIndica si el trabajador estará en múltiples sitiosfalse
home_officeSíbooleanIndica si el trabajador podrá trabajar desde casafalse
regime_idSíintegerID del régimen laboral del trabajador2
external_idSíintegerID externo del trabajador1023
direct_leader_external_idNointegerID externo del trabajador1000
top_leader_external_idNointegerID externo del trabajador1001
profile_idSíintegerID del perfil del trabajador3
position_idSíintegerID del puesto del trabajador4
company_idSíintegerID de la empresa del trabajador5
cost_center_idSíintegerID del centro de costos asociado al trabajador6
shift_idSíintegerID del turno asignado al trabajador7
personal_addressNostringDireccion de la casa del colaborador"Jr. Junín cdra. 1, Lima 15001"

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,
"direct_leader_external_id": 1000,
"top_leader_external_id": 1001,
"profile_id": 3,
"position_id": 4,
"company_id": 5,
"cost_center_id": 6,
"shift_id": 7,
"personal_address" : "Jr. Junín cdra. 1, Lima 15001"
}

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
details.locationPersonalResponse.assignedbooleanoIndica si se asigno casa del personal en locacion..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
},
"locationPersonalResponse": {
"message": "Se asigno casa del personal en locacion correctamente.",
"assigned": true
}
}
}