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
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
source | Sí | string | Fuente del proceso de contratación | "SAP" |
worker_document_type | Sí | string | Tipo de documento del trabajador | "DNI" |
worker_document_number | Sí | string | Número del documento del trabajador | "45234567" |
worker_birthdate | Sí | string | Fecha de nacimiento del trabajador | "1992-07-15T00:00:00" |
check_attendance | Sí | boolean | Indica si se debe verificar la asistencia del trabajador | true |
worker_names | Sí | string | Nombres del trabajador | "Carlos Alberto" |
worker_surnames | Sí | string | Apellidos del trabajador | "Martínez Gómez" |
corporate_email | Sí | string | Correo electrónico corporativo del trabajador | "cmartinez@empresa.com" |
worker_email | Sí | string | Correo electrónico personal del trabajador | "carlos.martinez@example.com" |
worker_cellphone | Sí | string | Teléfono celular del trabajador | "991234567" |
contract_start | Sí | string | Fecha de inicio del contrato | "2024-02-01T00:00:00" |
contract_end | No | string | Fecha de finalización del contrato (opcional) | null |
contract_type | Sí | string | Tipo de contrato (indeterminado, temporal, etc.) | "temporal" |
worker_type | Sí | string | Tipo de trabajador (empleado, contratista, etc.) | "employee" |
multisite | Sí | boolean | Indica si el trabajador estará en múltiples sitios | false |
home_office | Sí | boolean | Indica si el trabajador podrá trabajar desde casa | false |
regime_id | Sí | integer | ID del régimen laboral del trabajador | 2 |
external_id | Sí | integer | ID externo del trabajador | 1023 |
profile_id | Sí | integer | ID del perfil del trabajador | 3 |
position_id | Sí | integer | ID del puesto del trabajador | 4 |
company_id | Sí | integer | ID de la empresa del trabajador | 5 |
cost_center_id | Sí | integer | ID del centro de costos asociado al trabajador | 6 |
shift_id | Sí | integer | ID del turno asignado al trabajador | 7 |
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
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
userId | entero | Identificador único del usuario. | 7339 |
statusCode | entero | Código de estado de la respuesta. | 200 |
message | cadena | Mensaje general de la respuesta. | "Se procesó la contratación correctamente." |
details.user | cadena | Mensaje sobre la actualización del usuario. | "Usuario actualizado correctamente" |
details.backgroundUser | cadena | Mensaje sobre la creación del background del usuario. | "Background creado correctamente" |
details.teamResponse.message | cadena | Mensaje sobre la asociación del usuario al equipo. | "El usuario fue asociado al equipo correctamente." |
details.teamResponse.assigned | booleano | Indica si el usuario fue asociado al equipo. | true |
details.shiftResponse.message | cadena | Mensaje sobre el turno especificado. | "El turno especificado no pertenece al equipo indicado." |
details.shiftResponse.assigned | booleano | Indica si el turno fue asignado al usuario. | false |
details.companyResponse.message | cadena | Mensaje sobre la empresa especificada. | "La empresa especificada no pertenece al equipo indicado." |
details.companyResponse.assigned | booleano | Indica si la empresa fue asignada al usuario. | false |
details.positionResponse.message | cadena | Mensaje sobre el cargo especificado. | "El cargo especificado no pertenece al equipo indicado." |
details.positionResponse.assigned | booleano | Indica si el cargo fue asignado al usuario. | false |
details.managementCenterResponse.message | cadena | Mensaje sobre el centro de gestión especificado. | "El centro de gestión especificado no pertenece al equipo indicado." |
details.managementCenterResponse.assigned | booleano | Indica si el centro de gestión fue asignado al usuario. | false |
details.profileResponse.message | cadena | Mensaje sobre el perfil especificado. | "El perfil especificado no pertenece al equipo indicado." |
details.profileResponse.assigned | booleano | Indica si el perfil fue asignado al usuario. | false |
details.locationResponse.message | cadena | Mensaje sobre la asignación de lugares de marcación. | "Se asignaron los lugares de marcación al usuario correctamente." |
details.locationResponse.assigned | booleano | Indica 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
}
}
}