API Web Services para Integración Talana – Documentación de Web Sevices Control de Versiones Fecha Autor Observacio
Views 52 Downloads 0 File size 352KB
API Web Services para Integración
Talana – Documentación de Web Sevices
Control de Versiones Fecha
Autor
Observaciones
20/04/2018
José Antonio Akel
Versión Inicial
25/04/2018
José Antonio Akel
Formatos de Serialización
4/05/2018
José Antonio Akel
Actualización de ausentismos
8/05/2018
José Antonio Akel
We Service Centralización Contable
11/05/2018
Maximiliano Opitz
Actualización servicios de persona, personaEmpresa y ausentismos
31/08/2018
Maximiliano Opitz
Se agrego es especificación del detalle de persona para la creación de persona
11/10/2018
José Antonio Akel
Servicios de Marcas de asistencia
12/10/2018
Sebastián Díaz
Servicio de Asignación de Items a Persona
19/10/2018
Sebastián Díaz
Servicio de creación de documentos para personas
15/11/2018
José Antonio Akel
Ejemplos de código
30/11/2018
Alexander Gonzalez
Servicios resumidos para contratos, ausencias, vacaciones y días administrativos
17/12/2018
Sebastián Díaz
Filtros para servicios de contratos
17/12/2018
José Antonio Akel
“empresa” como parámetro en los servicios
18/12/2018
Sebastián Díaz
Filtros empleado en vacaciones, ausentismo, días administrativos
21/12/2018
José Antonio Akel
Actualización de método de contratos resumidos
26/12/2018
Maximiliano Opitz
Se agrego un ejemplo de la inserción de marcas
26/12/2018
Sebastián Díaz
Filtros de empleados para vacaciones, ausentismos y contratos resumidos
27/12/2018
Maximiliano Opitz
Ejemplo del uso de los filtros en el servicio que devuelve las marcas
08/01/2018
Alexander Gonzalez
“rolPrivado” como parámetro en servicio contratos resumido
13/05/2019
Alexander Gonzalez
Servicios de firma digital y liquidaciones
26/8/2019
José Antonio Akel
Servicio de prorrateo por centro de costo
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 2 de 52
Talana – Documentación de Web Sevices
Tabla de Contenidos Antecedentes...................................................................................................................................... 6 Autenticación...................................................................................................................................... 7 Formatos de salida............................................................................................................................. 8 Filtros.................................................................................................................................................. 9 EndPoints........................................................................................................................................... 9 Empresas con acceso.................................................................................................................. 9 Persona...................................................................................................................................... 10 Contratos.................................................................................................................................... 13 Filtros.......................................................................................................................................... 18 Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............18 modificado_desde (fecha formato “YYYY-MM-DD”): contratos creados o modificados superiores a la fecha.................................................................................................................................... 18 modificado_hasta (fecha formato “YYYY-MM-DD”): contratos creados o modificados inferiores a la fecha....................................................................................................................................... 18 Ejemplo:..................................................................................................................................... 18 https://talana.com/es/api/contratos/?modificado_desde=2018-10-25.........................................18 Contratos Resumido................................................................................................................... 19 Filtros aceptados:....................................................................................................................... 20 empleado (id del empleado): solo los contratos del empleado especificado...............................20 Vacaciones................................................................................................................................. 20 Filtros.......................................................................................................................................... 20 Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............20 empleado (id del empleado): solo las vacaciones del empleado especificado............................21 Ejemplo:..................................................................................................................................... 21 https://talana/es/api/vacacionesSolicitud/?empleado=1..............................................................21 Vacaciones Resumido................................................................................................................ 22 Filtros.......................................................................................................................................... 22 Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............22 empleado (id del empleado): solo las vacaciones del empleado especificado............................22 Ejemplo:..................................................................................................................................... 22 https://talana/es/api/vacations-resumed/?empleado=1...............................................................22 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 3 de 52
Talana – Documentación de Web Sevices
Ausentismo................................................................................................................................. 24 Filtros.......................................................................................................................................... 26 Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............26 empleado (id del empleado): solo las ausencias del empleado especificado.............................26 Ejemplo:..................................................................................................................................... 26 https://talana/es/api/personaAusencia/?empleado=1.................................................................26 Ausentismo Resumido................................................................................................................ 27 Filtros.......................................................................................................................................... 27 Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............27 empleado (id del empleado): solo las ausencias del empleado especificado.............................27 Ejemplo:..................................................................................................................................... 27 https://talana/es/api/absentism-resumed/?empleado=1..............................................................27 Prorrateo por Centro de Costo....................................................................................................28 Filtros aceptados:....................................................................................................................... 29 empleado (id del empleado): solo los contratos del empleado especificado...............................29 Centralización Contable.............................................................................................................. 30 Asignación de Items de pago......................................................................................................31 Creación de documentos par personas......................................................................................33 Días Administrativos................................................................................................................... 34 Filtros.......................................................................................................................................... 34 Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............34 empleado (id del empleado): solo los días administrativos del empleado especificado..............34 Ejemplo:..................................................................................................................................... 34 https://talana/es/api/diaAdministrativoSolicitud/?empleado=1....................................................34 Días Administrativos Resumido..................................................................................................35 Enrrolamiento de firma digital.....................................................................................................36 Solicitudes de firma digital.......................................................................................................... 37 Turno.......................................................................................................................................... 38 Días de Turno Semanal.............................................................................................................. 39 Días de Turno Manual................................................................................................................ 40 Asignación de Personas a Turnos..............................................................................................41 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 4 de 52
Talana – Documentación de Web Sevices
Inyección (y visualización) de marcas........................................................................................42 Asignación de tarjetas a personas..............................................................................................43 Turnos y horarios asignados por Trabajador...............................................................................45 Otros Modelos............................................................................................................................ 46 Ejemplos de Código.......................................................................................................................... 48 Python........................................................................................................................................ 48 Java............................................................................................................................................ 49 PHP............................................................................................................................................ 52
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 5 de 52
Talana – Documentación de Web Sevices
Antecedentes Talana, dadas sus características como SaaS, no ofrece como opción la conexión directa a base de datos, que es el mecanismo que se utilizaba con el proveedor anterior. En su lugar, se utilizan Web Services REST, con mensajes serializados en formato Json, tanto para la lectura como para la escritura de objetos. El objetivo de este documento es entregar los antecedentes necesarios que permitan construir interfaces de integración entre sistemas de información de nuestros clientes y los web services de Talana.
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 6 de 52
Talana – Documentación de Web Sevices
Autenticación Los WebServices son servicios REST con los cuales se pueden gestionar las solicitudes de días libres para los empleados, ya sea para consultar, crear, modificar o eliminar datos. Esta información necesita estar estructurada en formato JSON y los métodos que permite son: •
Listar (GET)
•
Crear (POST)
•
Modificar (PUT / PATCH)
•
Eliminar (DELETE)
Para utilizar cualquiera de los métodos previamente listados es necesario enviar un “token” de autenticación en cada “request” que se realice hacia la plataforma. Para obtener este “token” de autenticación debemos realizar una petición como en el siguiente ejemplo: URL: https://talana.com/es/api/api-token-auth/ MÉTODO: POST BODY: {“username”: “[email protected]”, “password”: “demo”} Donde: “[email protected]” es el nombre de usuario de la persona a autenticar. “demo” es la clave de la persona a autenticar. El formato del contenido del BODY, es JSON. La respuesta de la anterior consulta es un “String” en formato JSON que contiene el “token”: {“token”: “ehe657583hgyydt565729g0ddjdg65585hgyyd65”} Finalmente para su uso, es necesario agregar el “token” en el encabezado de cada consulta: Authorization: Token ehe657583hgyydt565729g0ddjdg65585hgyyd65
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 7 de 52
Talana – Documentación de Web Sevices
Formatos de salida La librería utilizada para la construcción de los servicios permite generar datos en múltiples formatos. El serializador se selecciona por defecto en base al content-type de la solicitud. De esta forma, si se visitan mediante un navegador web, los servicios entregar HTML. Pero si se consumen con un cliente de WS como Postman, que solicita datos en text/json, escoge el serializador de manera acorde. Es posible también “forzar” el formato de salida, enviando como parámetro en la URL el formato. Por ejemplo, para descargar el listado de bancos desde Talana en formato XML, se puede consumir la siguiente URL: https://talana.com/es/api/banco/?format=xml Los formatos soportados en estos momentos son: •
json
•
jsonp
•
xml
•
api
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 8 de 52
Talana – Documentación de Web Sevices
Filtros Algunos de los servicios aceptan filtros como parámetros GET. Los servicios que entrega colecciones de objetos asociados a una empresa en específica (como los de “contratos” y “personas”, en contraposición con el de “bancos”, que es común a todas las empresas) aceptan como parámetro el ID de la empresa de la cual se requieren datos. El servicio devolverá los datos de esa empresa, siempre y cuando el usuario cuente con los permisos para acceder a esa empresa. Ejemplo: https://talana.com/es/api/persona/?empresa=1 y https://talana.com/es/api/persona/?empresa=5 entregarán las personas de las empresas con ID 1 y 5 respectivamente
EndPoints Si bien Talana expone muchísimos servicios, para efectos de las integraciones típicas basta con considerar los que se exponen a continuación:
Empresas con acceso https://talana.com/es/api/empresas-que-puedo-administrar Entrega el listado de las empresas a las cuales el usuario actual tiene acceso Métodos aceptados: GET Devuelve un listado de empresas y sus razones sociales de acuerdo a la siguiente estructura:
Propiedad
Tipo Get
Descripción
id
integer
ID único
nombre
string
Nombre de la empresa
vigente
boolean
Si la empresa está o no vigente
url
string
URL de la empresa Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 9 de 52
Talana – Documentación de Web Sevices
logo
string
URL del logo de la empresa, para utilizar en los documentos
firma
string
URL de la firma del representante legal de la empresa, para utilizar en los documentos
razones_sociales
list[razonSocial]
Listado de objetos [razonSocial]
Persona https://talana.com/es/api/persona/{id} El maestro de personas. Cada persona puede tener uno o más contratos a lo largo de la relación laboral con una empresa, pero sólo tendrá una ficha. Métodos aceptados: GET, POST, PUT Para los métodos PUT y POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Los objetos de persona tienen las siguientes propiedades: Propiedad
Tipo Get
Tipo POST,
Uso
Opcional
Descripción
PUT id
integer
fechaCreacion
datetime
rut
string
ID único
string
GET
Si
Fecha y hora de creación
GET, POST,
No
Rut, sin puntos, con guión y DV
No
Nombre
No
Apellido Paterno
No
Apellido Materno
Si
M/F
Si
Fecha de Nacimiento
PUT nombre
string
string
GET, POST, PUT
apellidoPaterno
string
string
GET, POST, PUT
apellidoMaterno
string
string
GET, POST, PUT
sexo
char(1)
char(1)
GET, POST, PUT
fechaNacimiento
date
date
GET, POST,
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 10 de 52
Talana – Documentación de Web Sevices
PUT nacionalidad
string
string
GET, POST,
Si
País, como código ISO
PUT username
string
string
permisos
list[permisos]
email
string
string
Nombre de usuario GET
Si
Lista de permisos adicionales
GET, POST,
Si
Email principal
GET, POST
Si
Detalles personales
GET
Si
Lista de Identificadores
PUT detalles
list[detalles]
externalReference list[externalRef erence]
Objeto "Detalle" que se usara en la creación de personas
Propiedad
Tipo POST
Uso
Opcional
id
Descripción ID único
fechaCreacion
date
GET, POST
Si
Fecha y hora de creación
validoDesde
date
GET, POST
No
Fecha desde la cual es valido el detalle
email
string
GET, POST
No
Email principal del detalle
telefono
string
GET, POST
No
El teléfono del detalle de la persona
celular
string
GET, POST,
No
Celular del detalle de la persona
PUT direccionCalle
string
GET, POST
Si
Calle del domicilio
direccionNumero
String
GET, POST
No
Numero del domicilio
direccionDepartamento
String
GET, POST
No
Numero del departamento
estadoCivil
String
GET, POST
No
Estado civil de la persona
nivelEducacional
String
GET, POST
No
Nivel educacional de la persona
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 11 de 52
Talana – Documentación de Web Sevices
colegio
String
GET, POST
No
Colegio de la persona
InstitucionEstudiosSuperi String ores
GET, POST
No
Institución superior de la
profesion
String
GET, POST
No
Profesión de la persona
observaciones
String
GET, POST
No
Agregar cualquier observación
persona
sobre la persona contratosDeEmergencia
String
GET, POST
No
Agregar cualquier contrato de emergencia de la persona
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 12 de 52
Talana – Documentación de Web Sevices
Contratos https://talana.com/es/api/contrato/{id} El o los contratos de los trabajadores, y sus condiciones contractuales. Muestra los contratos y condiciones activas al día de hoy. Métodos aceptados: GET, POST, PUT. Para los métodos PUT y POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Los objetos de tipo contrato tienen las siguientes propiedades: Propiedad
Tipo GET
id
integer
empleado
integer
POST, PUT
integer
Uso
Opcional Descripción
GET
No
Id único
GET, POST,
No
Puntero a objeto [persona]
Si
Código del contrato
Si
Fecha de Creación original de estas
PUT codigo
string
string
GET, POST, PUT
fechaCreacion
datetime
GET
condiciones contractuales tipoContrato
integer
integer
GET, POST,
Si
especifican detalles en tipoContratoDetails
PUT empleadorRazonSoc integer
integer
ial cargo
GET, POST,
Puntero a objeto [tipoContrato]. Se
No
Puntero a objeto [razonSocial]
PUT string
string
GET, POST,
Si
PUT fechaContratacion
date
date
GET, POST,
Si
Fecha de contratación original del trabajador
No
Desde cuándo rigen estas condiciones
PUT desde
date
date
GET, POST,
contractuales
PUT hasta
date
date
GET, POST,
Si
Puede estar vacío
PUT unidadOrganizacion
Hasta cuándo rigen estas condiciones.
integer
POST, PUT
Si
Puntero a objeto [unidadOrganizacional]
integer
GET, POST,
Si
Objeto sucursal
al sucursal
[sucursal]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 13 de 52
Talana – Documentación de Web Sevices
PUT grupos
list[grupo]
list[integer]
GET, POST,
Si
persona
PUT anexo
string
string
GET, POST,
Lista de los grupos al cual pertenece la
Si
PUT centroCosto
jornada
[centroCosto integer
GET, POST,
]
PUT
integer
integer
GET, POST,
Si
Objeto centroCosto
Si
Puntero a objeto [jornada]
Si
Cantidad de horas semanales de trabajo
PUT horasDeLaJornada
integer
integer
GET, POST, PUT
codigoFranquiciaSe
integer
integer
nce nivelSence
GET, POST,
Si
PUT string
string
GET, POST,
Si
PUT sindicato
integer
integer
GET, POST,
Si
Puntero a objeto [sindicato]
Si
Puntero a objeto [persona]
Si
N=No | S=Si | C=Si, pero cotiza | A = Activo >
PUT jefe
integer
integer
GET, POST, PUT
esPensionado
char(1)
char(1)
GET, POST,
65 años | X = Expatriado
PUT tramoAsignacionPre integer
integer
visional
Si
Puntero a objeto [tramoAsignacionFamiliar]
Si
Puntero a objeto [ubicacionGeografica]
Si
Si es que tiene asignación maternal
Si
Puntero a objeto [prevision]
PUT
zonaAsignacionPrevi integer
integer
sional
GET, POST, PUT
correspondeAsignaci boolean
boolean
onMaternal isapre
GET, POST,
GET, POST, PUT
integer
integer
GET, POST, PUT
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 14 de 52
Talana – Documentación de Web Sevices
montoPactadoIsapre float
float
GET, POST,
Si
asume 7%
PUT montoPactadoIsapre string
string
Moneda
GET, POST,
Monto Pactado con Isapre. Si está vacío, se
Si
Moneda monto pactado. UF=UF | $=Pesos | 7+GES=7%+Ges en UF | 7+GES$=7% +
PUT
GES en pesos afp
integer
integer
GET, POST,
Si
Puntero a objeto [afp]
No
Si el trabajador está contratado con fecha
PUT adscribeASeguroCe
boolean
GET
santiaParaContratos
anterior al 2002, si adscribe o no al seguro
PreviosA2002
de cesantía
apvMonto
float
GET
Si
Monto primer APV
apvMoneda
string
GET
Si
Moneda APV: UF | $
apvInstitucion
integer
GET
Si
Puntero a [institucionAPV]
apvTipo
char(1)
GET
Si
Tipo de APV: “A” | “B”
apvCuentaDos
float
GET
Si
Monto cuenta dos
GET
Si
Moneda cuenta dos
float
GET
Si
Monto Depósito Convenido
string
GET
Si
Moneda Depósito Convenido: UF | $
retencionJuducialDe string
GET
Si
Nombre de persona destinatario de retención
apvCuentaDosMone string da depositoConvenido Monto depositoConvenido Moneda
stinatario sueldoPatronal
judicial boolean
GET
Si
¿Es sueldo patronal? Sólo para socios de la empresa
sueldoBase
integer
integer
GET, POST,
Si
Sueldo Base mensual en $
Si
Forma de pago de sueldo.
Si
Puntero a [banco]
PUT sueldoFormaPago
string
string
GET, POST, PUT
sueldoBanco
id
id
GET, POST, PUT
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 15 de 52
Talana – Documentación de Web Sevices
sueldoCuentaCorrie
string
string
nte sueldoCuentaCorrie
Si
Número de cuenta corriente para depósito
Si
Tipo de cuenta corriente: Cuenta Vista |
PUT, string
string
nteTipo sueldoTipoPago
GET, POST,
GET, POST,
Cuenta de Ahorro | Cuenta Corriente
PUT string
string
GET, POST,
Si
hora
PUT valorHoraExtraPacta float
float
da
GET, POST,
Forma de cálculo sueldo: mensual | diario |
Si
PUT
mesesImponiblesrec integer
integer
onocidos
GET, POST,
Si
"Meses que se reconocen como trabajados de antes de contratar a la persona. Se usan
PUT
para los días progresivos mesesImponiblesRe date
date
conocidosDesde
Si
PUT
vacacionesReconoci date
date
doDesde
GET, POST,
Si
integer
on
GET, POST,
Beneficio. Fecha de contratación utilizada para cálculo de vacaciones progresivas
PUT
asignacionMovilizaci integer
asignacionColacion
GET, POST,
Si
Movilización mensual en $
Si
Colación mensual en $
PUT integer
integer
GET, POST, PUT
anticipoPactado
integer
integer
GET, POST,
Si
PUT fechaDeContratacio
date
date
nReconocidaParaAn
GET, POST,
Si
Beneficio. Fecha de Contratación a utilizar para cálculo de años de servicio
PUT
osDeServicio pagaTresPrimerosDi boolean
boolean
asLicencia mantieneRentaLiqui
Si
boolean
boolean
GET, POST,
Si
integer
GET, POST, PUT
Beneficio. ¿Mantiene la renta líquida durante las licencias?
PUT integer
Beneficio. ¿Se subsidian los 3 primeros días de licencia?
PUT
daLicencia diasAdministrativos
GET, POST,
Si
Beneficio. Días administrativos por trabajador durante el periodo
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 16 de 52
Talana – Documentación de Web Sevices
beneficiosInfoAdicio
string
string
GET
Si
String con beneficios adicionales
boolean
boolean
GET, POST,
Si
Beneficio. Al calcular la indemnización por
nal indemnizacionSinTo peAnos
años de servicio al finiquitar, ¿se quita el
PUT
tope de años? indemnizacionSinTo
boolean
boolean
peRenta
GET, POST,
Si
Beneficio. Al calcular la indemnización por años de servicio al finiquitar, ¿se quita el
PUT
tope de renta? diasAdicionalesVaca integer
integer
ciones creadoPor
GET, POST,
Si
por año.
PUT integer
descripcionDelCargo string
string
Beneficio. Días adicionales de vacaciones
GET
Si
Creador del contrato. Puntero a [persona]
GET, POST,
Si
Descripción en texto del cargo
PUT clausulasAdicionales string
string
GET, POST,
Si
PUT detalleAnexoContrat string
string
o string
toOAnexo
rolPrivado
Si
PUT
documentoEsContra string
claseSalarial
GET, POST,
GET, POST,
No
PUT [claseSalaria integer
GET, POST,
l]
PUT
boolean
boolean
GET, POST,
Si
Si
PUT, PATCH asignacionZonaExtr
float
GET
Si
ema
Factor de asignación adicional por zona extrema
unidadOrganizacion
[unidadOrga
alDetails
nizacional]
tipoContratoDetails
[tipoContrato
GET
Si
Objeto detallado [unidadOrganizacional]
GET
Si
Objeto detallado [tipoContrato]
GET
Si
Objeto detallado con los Ids de este contrato
] externalReference
list[externalR eference]
en otros sistemas
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 17 de 52
Talana – Documentación de Web Sevices
finiquitado
boolean
boolean
GET, POST,
Si
¿Fue finiquitado?
Si
Motivo de término de contrato (si fue
PUT, PATCH motivoEgreso
[motivoEgres integer
GET
o] INE
[codigoIne]
finiquitado) integer
GET, POST,
Si
trabajador
PUT, PATCH userDefinedFields
list[userDefin
GET, POST,
edField]
PUT, PATCH
Objeto detallado con el código INE del
Si
Listado con campos personalizados
Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: modificado_desde (fecha formato “YYYY-MM-DD”): contratos creados o modificados superiores a la fecha modificado_hasta (fecha formato “YYYY-MM-DD”): contratos creados o modificados inferiores a la fecha
Ejemplo: https://talana.com/es/api/contratos/?modificado_desde=2018-10-25
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 18 de 52
Talana – Documentación de Web Sevices
Contratos Resumido https://talana.com/es/api/contracts-resumed/ Los contratos de los trabajadores y sus condiciones contractuales. Muestra los contratos y condiciones activas al día de hoy. Métodos aceptados: GET Los objetos de tipo contrato tienen las siguientes propiedades: Propiedad
Tipo GET
Uso
Opcional Descripción
id
integer
GET
No
Id único
empleado
integer
GET
No
Puntero a objeto [persona]
codigo
string
GET
Si
Código del contrato
fechaCreacion
datetime
GET
Si
Fecha de Creación original de estas condiciones contractuales
tipoContrato
integer
GET
Si
Puntero a objeto [tipoContrato]. Se especifican detalles en tipoContratoDetails
empleadorRazonSocial
integer
GET
No
Puntero a objeto [razonSocial]
cargo
string
GET
Si
fechaContratacion
date
GET
Si
Fecha de contratación original del trabajador
hasta
date
GET
Si
Hasta cuándo rigen estas condiciones. Puede estar vacío
finiquitado
boolean
GET
Si
¿Fue finiquitado?
rolPrivado
boolean
GET
Si
¿Manejar como Rol Privado?
GET
Si
Puntero a objeto [unidadOrganizacional]
unidadOrganizacional sucursal
[sucursal]
GET
Si
Objeto sucursal
jornada
integer
GET
Si
Puntero a objeto [jornada]
horasDeLaJornada
integer
GET
Si
Cantidad de horas semanales de trabajo
centroCosto
[centroCosto]
GET
Si
Objeto centroCosto
personaDetails
list[detalles]
GET
Si
Detalles personales
userDefinedFields
list[userDefinedField]
GET
Si
Listado con campos personalizados
activo
boolean
GET
(calculado) Si el contrato está activo al
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 19 de 52
Talana – Documentación de Web Sevices
momento de consumir el servicio Filtros aceptados: Solo-activos=1 : sólo devuelve los contratos activos al día de hoy since=: devuelve los contratos existentes desde la fecha indicada en adelante, donde se especifica en el formato "%Y%m%d%H%M%S"; por ejemplo “20181224000001” empleado (id del empleado): solo los contratos del empleado especificado
Vacaciones https://talana/es/api/vacacionesSolicitud/ Las solicitudes de vacaciones de los trabajadores, aprobadas o pendientes de aprobación. Propiedad
Tipo
Descripción
id
integer
ID único
empleado
integer
Puntero a [persona]
vacacionesDesde
date
Fecha inicio de vacaciones
numeroDias
float
Cantidad de días solicitados
jornada
char(1)
M=Mañana | T=Tarde (para medios días)
mediosDias
boolean
¿Sólo medio día?
vacacionesHasta
date
Último día de vacaciones solicitado
vacacionesRetorno
date
Fecha de reincorporación
aprobada
char(1)
¿Aprobada?: A=Aprobada | P=Pendiente | R=Rechazada
aprobadaPor
integer
Puntero a [persona]
creadaPor
integer
Puntero a [persona]
fechaAprobacion
datetime
Fecha de Aprobación
detallesTrabajador
[persona]
Datos detallados del trabajador
externalReference
list[externalReference] Objeto detallado con los Ids de este contrato en otros sistemas
fechaCreacion
datetime
Fecha de Creación
Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 20 de 52
Talana – Documentación de Web Sevices
empleado (id del empleado): solo las vacaciones del empleado especificado Ejemplo: https://talana/es/api/vacacionesSolicitud/?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 21 de 52
Talana – Documentación de Web Sevices
Vacaciones Resumido https://talana/es/api/vacations-resumed/ Las solicitudes de vacaciones de los trabajadores, aprobadas o pendientes de aprobación. Propiedad
Tipo
Descripción
id
integer
ID único
empleado
integer
Puntero a [persona]
vacacionesDesde
date
Fecha inicio de vacaciones
numeroDias
float
Cantidad de días solicitados
mediosDias
boolean
¿Sólo medio día?
vacacionesHasta
date
Último día de vacaciones solicitado
vacacionesRetorno
date
Fecha de reincorporación
fechaAprobacion
datetime
Fecha de Aprobación
fechaCreacion
datetime
Fecha de Creación
Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: empleado (id del empleado): solo las vacaciones del empleado especificado
Ejemplo: https://talana/es/api/vacations-resumed/?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 22 de 52
Talana – Documentación de Web Sevices
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 23 de 52
Talana – Documentación de Web Sevices
Ausentismo https://talana/es/api/personaAusencia/{id} Ausencias por licencias médicas, permisos con o sin goce, etc. Este endpoint es de Lectura y Escritura. Métodos aceptados: GET, POST, PUT Para los métodos PUT y POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Propiedad
Tipo GET
Tipo POST,
Uso
Opcional
Descripción
GET
Si
ID único
GET, POST,
No
Creación, id o RUT del trabajador.
PUT id
integer
empleado
integer
integer
PUT fechaDesde
date
date
Respuesta: Puntero o id de [persona]
GET, POST,
No
Fecha inicio de ausencia
No
Cantidad de días solicitados
GET
Si
M=Mañana | T=Tarde (para medios días)
GET, POST,
Si
¿Sólo medio día?
PUT numeroDias
float
float
GET, POST, PUT
jornada
char(1)
mediosDias
boolean
boolean
PUT fechaHasta
date
GET
Si
Último día de ausencia
fechaRetorno
date
GET
Si
Fecha de reincorporación
aprobada
char(1)
GET
Si
¿Aprobada?: A=Aprobada | P=Pendiente | R=Rechazada
aprobadaPor
integer
creadoPor fechaAprobaci
integer
GET
Si
Puntero a [persona]
integer
GET
Si
Puntero a [persona]
datetime
GET
Si
Fecha de Aprobación
GET
Si
Datos detallados del trabajador
GET
Si
Objeto detallado con los Ids de este contrato en
on detallesTrabaja [persona] dor externalRefere list[externalR nce
eference]
otros sistemas
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 24 de 52
Talana – Documentación de Web Sevices
fechaCreacion
datetime
numeroLicenci
string
string
a
GET
Si
Fecha de Creación
GET, POST,
Si
Número de Licencia médica (opcional)
Si
Nombre del médico que emitió la licencia
PUT
medicoLicencia string
string
GET, POST, PUT
tipoAusencia
string
string
(opcional)
GET, POST,
No
Tipo de ausencia. Puntero a [tipoAusencia]
Si
Documentación adicional presentada por el
PUT documentacion string
string
GET
trabajador (opcional) esContinuacion boolean
boolean
GET, POST,
Si
¿es continuación de una licencia anterior?
PUT
Este método permite la creación de ausencias, al consumirlo con los métodos POST o PUT con un payload con una estructura como la siguiente:
{ "mediosDias": true, "tipoAusencia": "string", "empleado": "string", "numeroLicencia": "string", "fechaDesde": "string", "medicoLicencia": "string", "motivo": "string", "numeroDias": 0, "esContinuacion": true } Bajo este esquema, sólo se acepta el siguiente subset de propiedades:
Propiedad
Tipo
Descripción
empleado
integer
Puntero a [persona]
fechaDesde
date
Fecha inicio de ausencia
numeroDias
float
Cantidad de días solicitados
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 25 de 52
Talana – Documentación de Web Sevices
mediosDias
boolean
¿Sólo medio día?
numeroLicencia
string
Número de Licencia médica (opcional)
medicoLicencia
string
Nombre del médico que emitió la licencia (opcional)
tipoAusencia
string
Tipo de ausencia. Puntero a [tipoAusencia]
esContinuacion
boolean
¿es continuación de una licencia anterior?
Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: empleado (id del empleado): solo las ausencias del empleado especificado
Ejemplo: https://talana/es/api/personaAusencia/?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 26 de 52
Talana – Documentación de Web Sevices
Ausentismo Resumido https://talana/es/api/absentism-resumed Ausencias por licencias médicas, permisos con o sin goce, etc. Este endpoint es de Lectura. Métodos aceptados: GET Propiedad
Tipo GET
Uso
Opcional
Descripción
id
integer
GET
Si
ID único
empleado
integer
GET
No
Puntero a [persona]
fechaDesde
date
GET
No
Fecha inicio de ausencia
numeroDias
float
GET
No
Cantidad de días solicitados
fechaHasta
date
GET
Si
Último día de ausencia
fechaRetorno
date
GET
Si
Fecha de reincorporación
fechaAprobacion
datetime
GET
Si
Fecha de Aprobación
fechaHoraAprobacion
datetime
GET
Si
Fecha y hora de Aprobación
fechaCreacion
datetime
GET
Si
Fecha de Creación
tipoAusencia
string
GET
No
Tipo de ausencia. Puntero a [tipoAusencia]
motivo
string
GET
Si
Motivo de ausencia
Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: empleado (id del empleado): solo las ausencias del empleado especificado
Ejemplo: https://talana/es/api/absentism-resumed/?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 27 de 52
Talana – Documentación de Web Sevices
Prorrateo por Centro de Costo https://talana.com/es/api/remuneraciones/distribution-by-cost-center/ https://talana.com/es/api/remuneraciones/distribution-by-cost-center/-/ https://talana.com/es/api/remuneraciones/distribution-by-cost-center/current-month/ https://talana.com/es/api/remuneraciones/distribution-by-cost-center/current-calendar-month/
Entrega los contratos activos en cierto periodo, junto con la distribución porcentual por centro de costo durante ese periodo. Si no se le ha asignado ninguna distribución por fecha, se tomará el centro de costo asignado en la ficha al 100%. En caso de que se haya asignado un porcentaje menor al 100%, el restante se sumará a lo asignado al centro de costo configurado en la ficha. El sistema realiza una distribución lo más “justa” posible, tomando en cuenta tanto las fechas de asignación como los porcentajes asignados, y entrega una única lista de distribución para todo el periodo. Cada fila representa una contratación (una persona, tipicamente), e incluye un listado con la distribución por centro de costo de ese mes de cada trabajador.
Métodos aceptados: GET Los objetos de tipo contrato tienen las siguientes propiedades: Propiedad
Tipo GET
Uso
Descripción
id
integer
GET
Id único
empleado
integer
GET
Puntero a objeto [persona]
empleado__details
Object
GET
Detalles desreferenciados del objeto de empleado
idContrato
string
GET
Identificador de la contratación
fechaCreacion
datetime
GET
Fecha de Creación original de estas condiciones contractuales
empleadorRazonSocial
integer
GET
Puntero a objeto [razonSocial]
cargo
string
GET
fechaContratacion
date
GET
Fecha de contratación original del trabajador
hasta
date
GET
Hasta cuándo rigen estas condiciones. Puede estar vacío
desde
date
GET
Desde cuándo rigen estas condiciones.
distribution
list
GET
Lista de centros de costo, con el porcentaje asignado durante el periodo.
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 28 de 52
Talana – Documentación de Web Sevices
Filtros aceptados: En la URL se puede pasar como parámetro: -: Entrega el prorrateo para el año y mes específicado current-month: Entrega el prorrateo para el año y mes actualmente abierto en Talana current-calendar-month: Entrega el prorrateo para el mes actual por calendario empleado (id del empleado): solo los contratos del empleado especificado
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 29 de 52
Talana – Documentación de Web Sevices
Centralización Contable https://talana.com/es/api/centralizacion-contable-generica?ano=&mes=&empresa= Este servicio permite descargar la centralización contable, pero desagregado a nivel de datos. Recibe los siguientes parámetros como argumentos GET: •
ano: El número del año a centralizar (obligatorio)
•
mes: El número del mes a centralizar (obligatorio)
•
format: El formato de salida (json , xml) (opcional; default json)
•
empresa: El ID de la empresa (opcional) (sólo si la cuenta de acceso es multiempresa)
Este endpoint se basa en los mismos módulos de centralización contable que generan los archivos en formato csv o excel, por lo que son susceptibles de ser parametrizados hasta cierto punto. Es posible, por ejemplo, parametrizar las columnas y criterios que se usan para consolidar (“aggregation”) las filas. Propiedad
Tipo
Descripción
razonSocial__nombre
String
Razón social del empleador
razonSocial
String
Rut de la razón social del empleador
nombreTrabajador
String
Nombre del Trabajador (para ítems desglosados por trabajador)
rutTrabajador
String
Rut del Trabajador (para ítems desglosados por trabajador)
sucursal__codigo
String
Sucursal asignada al trabajador (código)
sucursal__nombre
String
Sucursal asignada al trabajador (nombre)
item
String
El nómbre del ítem (ej: sueldo base)
item__codigo
String
Código asignado al ítem
item__nombreParametro
String
Cödigo de ítem asignado por Talana
year
Integer
Año del periodo centralizado
month
Integer
Mes del periodo centralizado
centroCosto__nombre
String
Nombre del centro de costo asignado a esa línea
centroCosto__codigo
String
Código del centro de costo asignado a esa línea
debe
Integer
Valor del “debe”
haber
Integer
Valor del “haber”
cuentaContable__codigo
String
Código cuenta Contable asignada
cuentaContable__nombre
String
Nombre cuenta Contable asignada
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 30 de 52
Talana – Documentación de Web Sevices
Asignación de Items de pago https://talana.com/es/api/remuneraciones/item-pago/asignacion/ Servicio para agregar o actualizar el valor de un ítem de pago para un contrato en el periodo actual, basándose en el rut del empleado o el id del contrato. Métodos aceptados: POST
Propiedad
POST
Uso
Opcional
Descripción
tipo_item
string
POST
No
Nombre del item de pago
valorFijo
float
POST
No
Valor a insertar o actualizar
id_contrato
integer
POST
Si
Id del contrato
rut_empleado
string
POST
Si
Rut del empleado
Ejemplo de request
{ "tipo_item": “bonoDeProduccion”, "valorFijo": 123456, “id_contrato”: 367 } ó
{ "tipo_item": “bonoDeProduccion”, "valorFijo": 123456, “rut_empleado”: “10253930-3” } https://talana.com/es/api/remuneraciones/item-pago/asignacion/// Servicio para leer el valor de una asignación de un item de pago. Métodos aceptados: GET
Propiedad
GET
Uso
Opcional
Descripción
valorFijo
float
GET
No
Valor del item de pago
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 31 de 52
Talana – Documentación de Web Sevices
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 32 de 52
Talana – Documentación de Web Sevices
Creación de documentos par personas https://talana.com/es/api/remuneraciones/documentos/ Servicio para agregar documentos a la carpeta de una persona. Métodos aceptados: POST
Propiedad
POST
Uso
Opcional
Descripción
empleado
integer
POST
Si (si
Id persona
existe rut) rut
string
POST
Si (si
Rut de la persona
existe empleado) adjunto
multipart
POST
No
El documento
nombre
string
POST
No
Id del contrato
categoria
string
POST
Si
Nombre de la categoría
POST
Si
Visibilidad del documento para el
puedeVerloElTrabajador boolean
dueño de éste
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 33 de 52
Talana – Documentación de Web Sevices
Días Administrativos https://talana/es/api/diaAdministrativoSolicitud/ Días administrativos solicitados por el trabajador
Propiedad
Tipo
Descripción
id
integer
ID único
empleado
integer
Puntero a [persona]
desde
date
Fecha inicio de solicitud
numeroDias
float
Cantidad de días solicitados
jornada
char(1)
M=Mañana | T=Tarde (para medios días)
mediosDias
boolean
¿Sólo medio día?
hasta
date
Último día solicitado
retorno
date
Fecha de reincorporación
aprobada
char(1)
¿Aprobada?: A=Aprobada | P=Pendiente | R=Rechazada
aprobadaPor
integer
Puntero a [persona]
creadaPor
integer
Puntero a [persona]
detallesTrabajador
[persona]
Datos detallados del trabajador
fechaCreacion
datetime
Fecha de Creación
Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: empleado (id del empleado): solo los días administrativos del empleado especificado
Ejemplo: https://talana/es/api/diaAdministrativoSolicitud/?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 34 de 52
Talana – Documentación de Web Sevices
Días Administrativos Resumido https://talana/es/api/administrative-leaves-resumed/ Días administrativos solicitados por el trabajador
Propiedad
Tipo
Descripción
id
integer
ID único
empleado
integer
Puntero a [persona]
desde
date
Fecha inicio de solicitud
numeroDias
float
Cantidad de días solicitados
mediosDias
boolean
¿Sólo medio día?
hasta
date
Último día solicitado
retorno
date
Fecha de reincorporación
fechaCreacion
datetime
Fecha de Creación
fechaAprobacion
datetime
Fecha de Aprobación
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 35 de 52
Talana – Documentación de Web Sevices
Enrrolamiento de firma digital https://talana.com/es/api/enrolments/ Lista de enrolamientos de la empresa
Propiedad
Tipo
Descripción
id
integer
ID único
empleado
integer
Puntero a [persona]
rut
String
Rut del Trabajador
vigente
Boolean
Flag que muestra si el enrolamiento esta vigente
tipo
String
Tipo de enrolamiento
fechaCreacion
Date
Fecha de creación del enrolamiento
mobileNumber
String
Numero de teléfono del enrolamiento
creadoPor
Integer
Puntero a [persona]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 36 de 52
Talana – Documentación de Web Sevices
Solicitudes de firma digital https://talana.com/es/api/signature-requests/ Lista de solicitudes de firma de la empresa
Propiedad
Tipo
Descripción
id
integer
ID único
empleado
integer
Puntero a [persona]
documentUrl
String
URL de verificación del documento
documentType
String
Tipo de documento
documentReference
integer
ID único del documento
signed
boolean
Flag que muestra si el documento esta firmado
requestTS
datetime
Fecha de creación de la solicitud
uuid
String
Código único de la solicitud
Atributos del registro de detalles asociado a la solicitud de firma (una por cada empleado que firma) Propiedad
Tipo
Descripción
id
integer
ID único
requestedUser
integer
Puntero a [persona]
signed
boolean
Flag que muestra si esta solicitud de firma por empleado fue firmada
status
String
Estado de la solicitud de firma
token
String
ID único del documento
signatureTS
datetime
Timestamp de la firma
TSASignature
datetime
Timestamp de la TAS de la firma
ip
String
IP desde donde se firmo
userAgent
String
Agente desde el cual se firmo
passVerification
String
Hash de verificación de la firma
huella
String
Información de la huella
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 37 de 52
Talana – Documentación de Web Sevices
Turno https://talana.com/es/api/workShift/ La definición de los turnos.
Propiedad
Tipo
Descripción
id
integer
ID único
name
string
Nombre asignado
holidaysConsider
boolean
¿Considera trabajar los días festivos?
tolerance
float
Tolerancia en minutos respecto a atrasos y adelantos
workShiftType
char(1)
Tipo de rotación: W=Semanal | M=Manual
schedule
string
Resumen de horarios considerados (ej: “09:00 : 19:00”)
publicId
integer
ID correlativo sólo para la empresa
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 38 de 52
Talana – Documentación de Web Sevices
Días de Turno Semanal https://talana.com/es/api/rotativeDay/ El detalle de los días asociados a un turno con rotación semanal
Propiedad
Tipo
Descripción
id
integer
ID único
name
string
Nombre del día
numberSnackMinutes
integer
Duración de la colación, en minutos
startWorkingHours
string
Hora de inicio, en formato “HH:MM:SS”
numberWorkingMinutes
integer
Duración en minutos
workingDay
boolean
Ese día de la semana ¿se trabaja en este turno?
numberWorkingDay
integer
Día de la semana (en base 0)
workShift
integer
Puntero a [workShift]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 39 de 52
Talana – Documentación de Web Sevices
Días de Turno Manual https://talana.com/es/api/specificDay/ El detalle de los días asociados a un turno de construcción “manual”
Propiedad
Tipo
Descripción
id
integer
ID único
date
string
Fecha del día, en formato “YYYY-mm-dd”
startWorkingHours
string
Hora de inicio, en formato “HH:MM:SS”
numberWorkingMinutes
integer
Duración en minutos
workingDay
boolean
Ese día ¿se trabaja en este turno?
workShift
integer
Puntero a [workShift]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 40 de 52
Talana – Documentación de Web Sevices
Asignación de Personas a Turnos https://talana.com/es/api/workShiftPersonRange/ Asignación de personas a turnos por rango de fechas. Una persona puede tener más de un turno asignado el mismo día.
Propiedad
Tipo
Descripción
id
integer
ID único
fromDate
string
Fecha de inicio de asignación, en formato “YYYY-mm-dd”
toDate
string
Fecha de fin de asignación, en formato “YYYY-mm-dd”
person
integer
Persona asignada. Puntero a [persona]
workShift
integer
El turno asignado. Puntero a [workShift]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 41 de 52
Talana – Documentación de Web Sevices
Inyección (y visualización) de marcas http://talana.com/es/api/mark/ Métodos aceptados: GET, POST, Para el método POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Para la cración de marcas, se debe recibir rut o card_id Los objetos de persona tienen las siguientes propiedades:
Propiedad
Tipo GET
Tipo POST
Uso
Opcional Descripción
id
integer
person
[persona]
-
GET
-
Detalles de la persona que marcó
rut
-
string
POST
Si
Rut, sin puntos, con guión y DV
card_id
-
string
POST
Si
El código de tarjeta asignado
office
integer
integer
GET, POST
Si
ID en Talana de la sucursal
direction
char(1)
char(1)
GET, POST
Si
Dirección de la marca. (Tipo
ID único
Marca) “E” = Enter “X” = Exit TS
timestamp
timestamp
GET, POST
No
Fceha y Hora real de marca. Formato "2018-07-13T17:22:21"
sourceMark
string
string
GET, POST
Si
Fuente de la marca (usar como Tipo de Actualización de Registro)
received_datetime timestamp
timestamp
GET, POST
No
Fecha y hora de recepción de marca Formato "2018-07-13T17:22:21"
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 42 de 52
Talana – Documentación de Web Sevices
Ejemplo: Este JSON debe ir en el cuerpo del request. Es importante destacar que ante cualquier error, el servicio entregara el detalle de este. {
}
“rut": "17798529-5", "direction": "E", "TS": "2019-01-01T00:00:00"
También es posible aplicar filtros a la llamada de las marcas que son realizadas con el método GET: •
desde(YYYY-MM-DD): Fecha desde la cual se obtendrán las marcas hacia adelante.
•
hasta(YYYY-MM-DD): Fecha hasta la cual se obtendrán las marcas hacia atrás.
•
person(Numero): Id de a persona a obtener sus macas
Ejemplo de URL: https://dev.talana.com/es/api/mark/?desde=2018-11-01&hasta=2018-11-01 ** Importante: para la realización de la consulta debe estar el Token ingresado en los headers. Dependiendo de los permisos del usuario, también entregara solo las marcas que tiene permitido ver.
Asignación de tarjetas a personas. https://talana.com/es/api/zkcard/ Se entiende que se asigna la tarjeta con el código indicado de ahora en adelante. Si es que la tarjeta ya está asignada a otra persona, el sistema no lo permite y arroja un error. Para desasignar una tarjeta a una persona se le debe asignar el número null,”” o no enviando el valor de “card_id” Métodos aceptados: GET, POST Para el método POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Los objetos de tipo contrato tienen las siguientes propiedades:
Propiedad
Tipo GET
POST
Uso
Opcional
Descripción
rut
string
string
GET, POST No
Rut, sin puntos, con guión y DV
card_id
string
string
GET, POST Si
Código de la tarjeta, o null para desasignar
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 43 de 52
Talana – Documentación de Web Sevices
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 44 de 52
Talana – Documentación de Web Sevices
Turnos y horarios asignados por Trabajador https://talana.com/es/api/workShiftPersonRange/getAssignationsDays/ Este servicio entrega la obligación de marcar y los horarios asociados a cada trabajador en el rango de fecha indicados. Recibe como parámetros la fecha de inicio y de fin del periodo a revisar, en las variables: fromDate: fecha de inicio del periodo a revisar toDate: fecha de fin del periodo a revisar Ejemplo: https://talana.com/es/api/workShiftPersonRange/getAssignationsDays/?fromDate=2018-04-01&toDate=2018-04-09
Métodos aceptados: GET Los objetos de tipo contrato tienen las siguientes propiedades:
Propiedad
Tipo
Descripción
person
integer
Id de persona
personName
string
Nombre y apellidos de la persona
rut
string
Rut de la persona
days
[ asignacion ]
Lista de objetos de tipo “asignacion”
Cada objeto de tipo “asignación” tiene las siguientes propiedades:
Propiedad
Tipo
Descripción
workshift
string
Nombre del turno asignado
card
string
Código de la tarjeta asignado para ese día
entranceTime
timestamp
Fecha y hora de entrada del trabajador
exitTime
timestamp
Fecha y hora de salida del trabajador
hasToMark
boolean
¿debe marcar ese día?
reason
string
La razón por la cual no debe marcar ese día
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 45 de 52
Talana – Documentación de Web Sevices
Otros Modelos A continuación enumeramos varios servicios que exponen otros modelos que pueden ser relevantes: Paises / Nacionalidades: https://talana.com/es/api/pais/ Bancos: https://talana.com/es/api/banco/ Formas de Pago: https://talana.com/es/api/formas-de-pago/ Tipos de Jornada Laboral: https://talana.com/es/api/jornadaLaboral/ Tipos de Contrato: https://talana.com/es/api/tipoContrato/ Árbol de Ubicaciones geográficas: https://talana.com/es/api/ubicacionGeografica/ Instituciones Previsionales (Isapres / Fonasa): https://talana.com/es/api/prevision/ AFPs: https://talana.com/es/api/afp/ Instituciones de APV: https://talana.com/es/api/institucionAPV/ Cajas de Compensación: https://talana.com/es/api/cajaCompensacion/ Mutuales de Seguridad: https://talana.com/es/api/mutualSeguridad/ Razones Sociales de la empresa: https://talana.com/es/api/razonSocial/ Tipos de Ausencia https://talana.com/es/api/tipoAusencia/ Fecha del servidor: https://talana.com/es/api/fechaserver/ Hora del Servidor: https://talana.com/es/api/fechaserver/
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 46 de 52
Talana – Documentación de Web Sevices
Unidades Organizacionales de la empresa: https://talana.com/es/api/unidadOrganizacional/ Sindicatos de la empresa: https://talana.com/es/api/sindicatoEmpresa/ Sucursales de la empresa: https://talana.com/es/api/sucursal/ Centros de costo de la empresa: https://talana.com/es/api/centroCosto/ Cuentas contables de la empresa: https://talana.com/es/api/cuentaContable/
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 47 de 52
Talana – Documentación de Web Sevices
Ejemplos de Código Python #!/usr/bin/python import requests # 1 - Obtenemos el token url = "https://dev.talana.com/es/api/api-token-auth/" user = "[email protected]" password = "PasswordDePrueba" response = requests.post(url, json={"username" : user, "password": password}) token = response.json()["token"] # 2 - con ese token, consumimos el servicio de personas url_personas = "https://dev.talana.com/es/api/persona" response = requests.get(url_personas, headers={"Authorization": "Token {}".format(token)}) for p in response.json(): print "Persona:", p
# 3 - Inyectar una marca de asistencia para la 1a persona from datetime import datetime as dt url_marcas = "http://dev.talana.com/es/api/mark/" persona = response.json()[0] persona_id = persona["id"] persona_rut = persona["rut"] response = requests.post( url_marcas, json={ "rut" : persona_rut, "direction" : "E", "TS" : dt.now().strftime("%Y-%m-%dT%H:%M:%S"), "sourceMark": "Ej. Script de Integracion"}, headers={"Authorization": "Token {}".format(token)} ) print response
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 48 de 52
Talana – Documentación de Web Sevices
Java Puede descargar una copia completa de este mini-proyecto aquí: https://git.linq.cl/kziete/ejemplo-consumo-api/ ApiClient.java: package com.talana; import import import import import import
java.io.BufferedReader; java.io.IOException; java.io.InputStreamReader; java.net.HttpURLConnection; java.net.MalformedURLException; java.net.URL;
public class APIClient { private static final String API_URL = "https://talana.com/es/api/"; private static final String TOKEN = "INSERTAR_AUTH_TOKEN_AQUI"; public String get(String path){ URL url = null; try { url = new URL(API_URL + path); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); setHeaders(conn); conn.setRequestMethod("GET"); conn.setUseCaches(false); conn.setDoInput(true); return responseToString(conn); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } private String responseToString(HttpURLConnection conn) throws IOException { BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); } catch (IOException e) { e.printStackTrace(); } StringBuilder sb = new StringBuilder(); String output; while ((output = br.readLine()) != null) { sb.append(output); } return sb.toString(); } private void setHeaders(HttpURLConnection conn) { conn.setRequestProperty("Authorization", "Token " + TOKEN); conn.setRequestProperty("Accept", "application/json"); conn.setRequestProperty("Content-Type", "application/json;charset=utf-8"); } }
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 49 de 52
Talana – Documentación de Web Sevices
parser.java: package com.talana; import import import import import
com.talana.models.Person; org.json.simple.JSONArray; org.json.simple.JSONObject; org.json.simple.parser.JSONParser; org.json.simple.parser.ParseException;
import java.util.ArrayList; import java.util.List; public class Parser { public static List getPersonList(String json) { List persons = new ArrayList(); JSONParser parser = new JSONParser(); Object obj = null; try { obj = parser.parse(json); } catch (ParseException e) { e.printStackTrace(); } JSONArray array = (JSONArray)obj; for(Object per: array){ JSONObject object = (JSONObject)per; persons.add(getPerson(object)); } return persons; } public static Person getPerson(JSONObject object){ Person person = new Person(); person.rut = (String)object.get("rut"); person.apellidoPaterno = (String)object.get("apellidoPaterno"); person.apellidoMaterno = (String)object.get("apellidoMaterno"); person.nombre = (String)object.get("nombre"); person.detalles = new ArrayList(); JSONArray details = (JSONArray)object.get("detalles"); for(Object det: details){ JSONObject obj = (JSONObject)det; Person.PersonDetail detail = new Person.PersonDetail(); detail.foto = (String)obj.get("foto"); person.detalles.add(detail); } return person; } }
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 50 de 52
Talana – Documentación de Web Sevices
main.java: package com.talana; import com.talana.models.Person; import java.util.List; public class Main { public static void main(String[] args) { APIClient client = new APIClient(); String jsonResponse = client.get("persona/"); List persons = Parser.getPersonList(jsonResponse); for(Person per:persons){ System.out.println(per.toString()); } } }
models/person.java: package com.talana.models; import java.util.List; public class Person { public String rut; public String apellidoPaterno; public String apellidoMaterno; public String nombre; public List detalles; public static class PersonDetail{ public String foto; @Override public String toString() { return "PersonDetail{" + "foto='" + foto + '\'' + '}'; } } @Override public String toString() { return "Person{" + "rut='" + rut + '\'' + ", apellidoPaterno='" + apellidoPaterno + '\'' + ", apellidoMaterno='" + apellidoMaterno + '\'' + ", nombre='" + nombre + '\'' + ", detalles=" + detalles + '}'; } }
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 51 de 52
Talana – Documentación de Web Sevices
PHP