API Web Services REST
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
10/9/2019 José Antonio Akel Método de modificación de condiciones contractuales
11/10/2019 José Antonio Akel Método de días trabajados; servicio contratos v2
27/12/2019 José Antonio Akel Rangos de fecha arbitrarios en servicio contratos v2
8/7/2020 José Antonio Akel Filtros adicionales de Vacaciones y Ausentismos
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 2 de 66
Talana – Documentación de Web Sevices
Tabla de Contenidos
Antecedentes......................................................................................................................................4Autenticación......................................................................................................................................5Formatos de salida.............................................................................................................................6Filtros..................................................................................................................................................7EndPoints...........................................................................................................................................7
Empresas con acceso..................................................................................................................7Persona........................................................................................................................................8Contratos....................................................................................................................................11Contratos v2...............................................................................................................................19Contratos Resumido...................................................................................................................26Vacaciones.................................................................................................................................27Vacaciones Resumido................................................................................................................29Ausentismo.................................................................................................................................31Ausentismo Resumido................................................................................................................34Prorrateo por Centro de Costo....................................................................................................36Centralización Contable..............................................................................................................38Filtros y Parámetros adicionales:................................................................................................39Asignación de Items de pago......................................................................................................40Creación de documentos par personas......................................................................................42Días Administrativos...................................................................................................................43Días Administrativos Resumido..................................................................................................44Enrrolamiento de firma digital.....................................................................................................46Solicitudes de firma digital..........................................................................................................47Turno.......................................................................................................................................... 48Días de Turno Semanal..............................................................................................................49Días de Turno Manual................................................................................................................50Asignación de Personas a Turnos..............................................................................................51Inyección (y visualización) de marcas........................................................................................52Asignación de tarjetas a personas..............................................................................................54Días Trabajados por Contrato.....................................................................................................56Turnos y horarios asignados por Trabajador...............................................................................58Otros Modelos............................................................................................................................60
Ejemplos de Código..........................................................................................................................62Python........................................................................................................................................ 62Java............................................................................................................................................ 63PHP............................................................................................................................................ 66
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 3 de 66
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 4 de 66
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 5 de 66
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 6 de 66
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:
ht tps://talana.com/es/api/persona/? empresa=1
y
ht tps://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
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 7 de 66
Talana – Documentación de Web Sevices
url string URL de la empresa
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,
PUT
Uso Opcional Descripción
id integer ID único
fechaCreacion datetime GET Si Fecha y hora de creación
rut string string GET, POST,
PUT
No Rut, sin puntos, con guión y DV
nombre string string GET, POST,
PUT
No Nombre
apellidoPaterno string string GET, POST, No Apellido Paterno
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 8 de 66
Talana – Documentación de Web Sevices
PUT
apellidoMaterno string string GET, POST,
PUT
No Apellido Materno
sexo char(1) char(1) GET, POST,
PUT
Si M / F
fechaNacimiento date date GET, POST,
PUT
Si Fecha de Nacimiento
nacionalidad string string GET, POST,
PUT
Si País, como código ISO
username string string Nombre de usuario
permisos list[permisos] GET Si Lista de permisos adicionales
email string string GET, POST,
PUT
Si Email principal
detalles list[detalles] GET, POST Si Detalles personales
externalReference list[externalRef
erence]
GET Si Lista de Identificadores
Objeto "Detalle" que se usara en la creación de personas
Propiedad Tipo POST Uso Opcional Descripción
id 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
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 9 de 66
Talana – Documentación de Web Sevices
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,
PUT
No Celular del detalle de la persona
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
colegio String GET, POST No Colegio de la persona
InstitucionEstudiosSuperiores
String GET, POST No Institución superior de la
persona
profesion String GET, POST No Profesión de la persona
observaciones String GET, POST No Agregar cualquier observación
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 10 de 66
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, PATCH
Para los métodos PUT, POST y PATCH, 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, PUT Uso Opcional Descripción
id integer GET No Id único
empleado integer integer GET, POST,
PUT
No Puntero a objeto [persona]
codigo string string GET, POST,
PUT
Si Código del contrato
fechaCreacion datetime GET Si Fecha de Creación original de estas
condiciones contractuales
tipoContrato integer integer GET, POST,
PUT
Si Puntero a objeto [tipoContrato]. Se
especifican detalles en tipoContratoDetails
empleadorRazonSoc
ial
integer integer GET, POST,
PUT
No Puntero a objeto [razonSocial]
cargo string string GET, POST,
PUT
Si
fechaContratacion date date GET, POST,
PUT
Si Fecha de contratación original del trabajador
desde date date GET, POST,
PUT
No Desde cuándo rigen estas condiciones
contractuales
hasta date date GET, POST, Si Hasta cuándo rigen estas condiciones.
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 11 de 66
Talana – Documentación de Web Sevices
PUT Puede estar vacío
unidadOrganizacion
al
integer POST, PUT Si Puntero a objeto [unidadOrganizacional]
sucursal [sucursal] integer GET, POST,
PUT
Si Objeto sucursal
grupos list[grupo] list[integer] GET, POST,
PUT
Si Lista de los grupos al cual pertenece la
persona
anexo string string GET, POST,
PUT
Si
centroCosto [centroCosto
]
integer GET, POST,
PUT
Si Objeto centroCosto
jornada integer integer GET, POST,
PUT
Si Puntero a objeto [jornada]
horasDeLaJornada integer integer GET, POST,
PUT
Si Cantidad de horas semanales de trabajo
codigoFranquiciaSe
nce
integer integer GET, POST,
PUT
Si
nivelSence string string GET, POST,
PUT
Si
sindicato integer integer GET, POST,
PUT
Si Puntero a objeto [sindicato]
jefe integer integer GET, POST,
PUT
Si Puntero a objeto [persona]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 12 de 66
Talana – Documentación de Web Sevices
esPensionado char(1) char(1) GET, POST,
PUT
Si N=No | S=Si | C=Si, pero cotiza | A = Activo >
65 años | X = Expatriado
tramoAsignacionPre
visional
integer integer GET, POST,
PUT
Si Puntero a objeto [tramoAsignacionFamiliar]
zonaAsignacionPrevi
sional
integer integer GET, POST,
PUT
Si Puntero a objeto [ubicacionGeografica]
correspondeAsignaci
onMaternal
boolean boolean GET, POST,
PUT
Si Si es que tiene asignación maternal
isapre integer integer GET, POST,
PUT
Si Puntero a objeto [prevision]
montoPactadoIsapre float float GET, POST,
PUT
Si Monto Pactado con Isapre. Si está vacío, se
asume 7%
montoPactadoIsapre
Moneda
string string GET, POST,
PUT
Si Moneda monto pactado. UF=UF | $=Pesos |
7+GES=7%+Ges en UF | 7+GES$=7% +
GES en pesos
afp integer integer GET, POST,
PUT
Si Puntero a objeto [afp]
adscribeASeguroCe
santiaParaContratos
PreviosA2002
boolean GET No Si el trabajador está contratado con fecha
anterior al 2002, si adscribe o no al seguro
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”
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 13 de 66
Talana – Documentación de Web Sevices
apvCuentaDos float GET Si Monto cuenta dos
apvCuentaDosMone
da
string GET Si Moneda cuenta dos
depositoConvenido
Monto
float GET Si Monto Depósito Convenido
depositoConvenido
Moneda
string GET Si Moneda Depósito Convenido: UF | $
retencionJuducialDe
stinatario
string GET Si Nombre de persona destinatario de retención
judicial
sueldoPatronal boolean GET Si ¿Es sueldo patronal? Sólo para socios de la
empresa
sueldoBase integer integer GET, POST,
PUT
Si Sueldo Base mensual en $
sueldoFormaPago string string GET, POST,
PUT
Si Forma de pago de sueldo.
sueldoBanco id id GET, POST,
PUT
Si Puntero a [banco]
sueldoCuentaCorrie
nte
string string GET, POST,
PUT,
Si Número de cuenta corriente para depósito
sueldoCuentaCorrie
nteTipo
string string GET, POST,
PUT
Si Tipo de cuenta corriente: Cuenta Vista |
Cuenta de Ahorro | Cuenta Corriente
sueldoTipoPago string string GET, POST,
PUT
Si Forma de cálculo sueldo: mensual | diario |
hora
valorHoraExtraPacta
da
float float GET, POST,
PUT
Si
mesesImponiblesrec integer integer GET, POST, Si "Meses que se reconocen como trabajados
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 14 de 66
Talana – Documentación de Web Sevices
onocidos PUT de antes de contratar a la persona. Se usan
para los días progresivos
mesesImponiblesRe
conocidosDesde
date date GET, POST,
PUT
Si
vacacionesReconoci
doDesde
date date GET, POST,
PUT
Si Beneficio. Fecha de contratación utilizada
para cálculo de vacaciones progresivas
asignacionMovilizaci
on
integer integer GET, POST,
PUT
Si Movilización mensual en $
asignacionColacion integer integer GET, POST,
PUT
Si Colación mensual en $
anticipoPactado integer integer GET, POST,
PUT
Si
fechaDeContratacio
nReconocidaParaAn
osDeServicio
date date GET, POST,
PUT
Si Beneficio. Fecha de Contratación a utilizar
para cálculo de años de servicio
pagaTresPrimerosDi
asLicencia
boolean boolean GET, POST,
PUT
Si Beneficio. ¿Se subsidian los 3 primeros días
de licencia?
mantieneRentaLiqui
daLicencia
boolean boolean GET, POST,
PUT
Si Beneficio. ¿Mantiene la renta líquida durante
las licencias?
diasAdministrativos integer integer GET, POST,
PUT
Si Beneficio. Días administrativos por trabajador
durante el periodo
beneficiosInfoAdicio
nal
string string GET Si String con beneficios adicionales
indemnizacionSinTo
peAnos
boolean boolean GET, POST,
PUT
Si Beneficio. Al calcular la indemnización por
años de servicio al finiquitar, ¿se quita el
tope de años?
indemnizacionSinTo boolean boolean GET, POST, Si Beneficio. Al calcular la indemnización por
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 15 de 66
Talana – Documentación de Web Sevices
peRenta PUT años de servicio al finiquitar, ¿se quita el
tope de renta?
diasAdicionalesVaca
ciones
integer integer GET, POST,
PUT
Si Beneficio. Días adicionales de vacaciones
por año.
creadoPor integer GET Si Creador del contrato. Puntero a [persona]
descripcionDelCargo string string GET, POST,
PUT
Si Descripción en texto del cargo
clausulasAdicionales string string GET, POST,
PUT
Si
detalleAnexoContrat
o
string string GET, POST,
PUT
Si
documentoEsContra
toOAnexo
string string GET, POST,
PUT
No
claseSalarial [claseSalaria
l]
integer GET, POST,
PUT
Si
rolPrivado boolean boolean GET, POST,
PUT, PATCH
Si
asignacionZonaExtr
ema
float GET Si Factor de asignación adicional por zona
extrema
unidadOrganizacion
alDetails
[unidadOrga
nizacional]
GET Si Objeto detallado [unidadOrganizacional]
tipoContratoDetails [tipoContrato
]
GET Si Objeto detallado [tipoContrato]
externalReference list[externalR
eference]
GET Si Objeto detallado con los Ids de este contrato
en otros sistemas
finiquitado boolean boolean GET, POST, Si ¿Fue finiquitado?
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 16 de 66
Talana – Documentación de Web Sevices
PUT, PATCH
motivoEgreso [motivoEgres
o]
integer GET Si Motivo de término de contrato (si fue
finiquitado)
INE [codigoIne] integer GET, POST,
PUT, PATCH
Si Objeto detallado con el código INE del
trabajador
userDefinedFields list[userDefin
edField]
GET, POST,
PUT, PATCH
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
Creación de nuevas condiciones:
Para facilitar el caso de uso en que se requiere crear una nueva instancia de condiciones a partir de una fecha, el método
PATCH soporta la opción de, en lugar de modificar la instancia de un contrato, crear una nueva, copiando la indicanda, y
aplicando las modificaciones que se envían. Para ello, se debe:
• Utilizar el método PATCH
• Agregar la opción “create-new-version=1” como parámetro GET en la URL
• Especificar la fecha “desde” en el cuerpo de las modificaciones. Esta fecha será la de “quiebre”. El contrato
indicado se limitará hasta esa fecha, se copiará, se creará una nueva instancia de condiciones a partir de esa
fecha, y se le aplicarán las modificaciones indicadas.
Adicionalmente, se puede especificar el contrato utilizando el ID de éste en la URL (como se espera en el patrón REST), o
indicando el RUT en su lugar. Si se indica el rut, Talana tratará de buscar un contrato para esa persona en la fecha indicada.
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 17 de 66
Talana – Documentación de Web Sevices
Por ejemplo, si tenemos un trabajador con rut “14228111-9”, con un contrato indefinido a partir del 1-1-2019, y queremos
cambiar su sueldo base a 500.000 a partir del 1-3-2019, debemos enviar a esta URL:
https://talana.com/es/api/contrato/14228111-9/?create-new-version=1
El siguiente cuerpo:
{
"desde":"2019-03-01",
"sueldoBase": 500000
}
Talana responderá con el contrato creado.
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 18 de 66
Talana – Documentación de Web Sevices
Contratos v2
https://talana.com/es/api/remuneraciones/contract/
https://talana.com/es/api/remuneraciones/contract/<current-month|current-calendar-month|current-day>/<hires|terminations|all>
El o los contratos de los trabajadores, y sus condiciones contractuales. Por defecto, entrega el último contrato vigente de cada contratación en un periodo en específico.
Métodos aceptados: GET
Los objetos de tipo contrato tienen las siguientes propiedades:
Propiedad Tipo GET Opcional Descripción
id integer No Id único
empleado integer No Puntero a objeto [persona]
codigo string Si Código del contrato
fechaCreacion datetime Si Fecha de Creación original de estas
condiciones contractuales
tipoContrato integer Si Puntero a objeto [tipoContrato]. Se
especifican detalles en tipoContratoDetails
empleadorRazonSoc
ial
integer No Puntero a objeto [razonSocial]
cargo string Si
fechaContratacion date Si Fecha de contratación original del trabajador
desde date No Desde cuándo rigen estas condiciones
contractuales
hasta date Si Hasta cuándo rigen estas condiciones.
Puede estar vacío
unidadOrganizacion
al
Si Puntero a objeto [unidadOrganizacional]
sucursal [sucursal] Si Objeto sucursal
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 19 de 66
Talana – Documentación de Web Sevices
grupos list[grupo] Si Lista de los grupos al cual pertenece la
persona
anexo string Si
centroCosto [centroCosto] Si Objeto centroCosto
jornada integer Si Puntero a objeto [jornada]
horasDeLaJornada integer Si Cantidad de horas semanales de trabajo
codigoFranquiciaSe
nce
integer Si
nivelSence string Si
sindicato integer Si Puntero a objeto [sindicato]
jefe integer Si Puntero a objeto [persona]
esPensionado char(1) Si N=No | S=Si | C=Si, pero cotiza | A = Activo >
65 años | X = Expatriado
tramoAsignacionPre
visional
integer Si Puntero a objeto [tramoAsignacionFamiliar]
zonaAsignacionPrevi
sional
integer Si Puntero a objeto [ubicacionGeografica]
correspondeAsignaci
onMaternal
boolean Si Si es que tiene asignación maternal
isapre integer Si Puntero a objeto [prevision]
montoPactadoIsapre float Si Monto Pactado con Isapre. Si está vacío, se
asume 7%
montoPactadoIsapre
Moneda
string Si Moneda monto pactado. UF=UF | $=Pesos |
7+GES=7%+Ges en UF | 7+GES$=7% +
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 20 de 66
Talana – Documentación de Web Sevices
GES en pesos
afp integer Si Puntero a objeto [afp]
adscribeASeguroCe
santiaParaContratos
PreviosA2002
boolean No Si el trabajador está contratado con fecha
anterior al 2002, si adscribe o no al seguro
de cesantía
apvMonto float Si Monto primer APV
apvMoneda string Si Moneda APV: UF | $
apvInstitucion integer Si Puntero a [institucionAPV]
apvTipo char(1) Si Tipo de APV: “A” | “B”
apvCuentaDos float Si Monto cuenta dos
apvCuentaDosMone
da
string Si Moneda cuenta dos
depositoConvenido
Monto
float Si Monto Depósito Convenido
depositoConvenido
Moneda
string Si Moneda Depósito Convenido: UF | $
retencionJuducialDe
stinatario
string Si Nombre de persona destinatario de retención
judicial
sueldoPatronal boolean Si ¿Es sueldo patronal? Sólo para socios de la
empresa
sueldoBase integer Si Sueldo Base mensual en $
sueldoFormaPago string Si Forma de pago de sueldo.
sueldoBanco id Si Puntero a [banco]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 21 de 66
Talana – Documentación de Web Sevices
sueldoCuentaCorrie
nte
string Si Número de cuenta corriente para depósito
sueldoCuentaCorrie
nteTipo
string Si Tipo de cuenta corriente: Cuenta Vista |
Cuenta de Ahorro | Cuenta Corriente
sueldoTipoPago string Si Forma de cálculo sueldo: mensual | diario |
hora
valorHoraExtraPacta
da
float Si
mesesImponiblesrec
onocidos
integer Si "Meses que se reconocen como trabajados
de antes de contratar a la persona. Se usan
para los días progresivos
mesesImponiblesRe
conocidosDesde
date Si
vacacionesReconoci
doDesde
date Si Beneficio. Fecha de contratación utilizada
para cálculo de vacaciones progresivas
asignacionMovilizaci
on
integer Si Movilización mensual en $
asignacionColacion integer Si Colación mensual en $
anticipoPactado integer Si
fechaDeContratacio
nReconocidaParaAn
osDeServicio
date Si Beneficio. Fecha de Contratación a utilizar
para cálculo de años de servicio
pagaTresPrimerosDi
asLicencia
boolean Si Beneficio. ¿Se subsidian los 3 primeros días
de licencia?
mantieneRentaLiqui
daLicencia
boolean Si Beneficio. ¿Mantiene la renta líquida durante
las licencias?
diasAdministrativos integer Si Beneficio. Días administrativos por trabajador
durante el periodo
beneficiosInfoAdicio string Si String con beneficios adicionales
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 22 de 66
Talana – Documentación de Web Sevices
nal
indemnizacionSinTo
peAnos
boolean Si Beneficio. Al calcular la indemnización por
años de servicio al finiquitar, ¿se quita el
tope de años?
indemnizacionSinTo
peRenta
boolean Si Beneficio. Al calcular la indemnización por
años de servicio al finiquitar, ¿se quita el
tope de renta?
diasAdicionalesVaca
ciones
integer Si Beneficio. Días adicionales de vacaciones
por año.
creadoPor integer Si Creador del contrato. Puntero a [persona]
descripcionDelCargo string Si Descripción en texto del cargo
clausulasAdicionales string Si
detalleAnexoContrat
o
string Si
documentoEsContra
toOAnexo
string No
claseSalarial [claseSalarial] Si
rolPrivado boolean Si
asignacionZonaExtr
ema
float Si Factor de asignación adicional por zona
extrema
unidadOrganizacion
alDetails
[unidadOrganizacional] Si Objeto detallado [unidadOrganizacional]
tipoContratoDetails [tipoContrato] Si Objeto detallado [tipoContrato]
externalReference list[externalReference] Si Objeto detallado con los Ids de este contrato
en otros sistemas
finiquitado boolean Si ¿Fue finiquitado?
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 23 de 66
Talana – Documentación de Web Sevices
motivoEgreso [motivoEgreso] Si Motivo de término de contrato (si fue
finiquitado)
INE [codigoIne] Si Objeto detallado con el código INE del
trabajador
userDefinedFields list[userDefinedField] Si Listado con campos personalizados
Filtros y Parámetros
El servicio acepta dos tipos de parámetros: el periodo a tomar y los movimientos a buscar.
Para el periodo se aceptan las siguientes alternativas:
• current-month: El mes actualmente abierto en el sistema
• current-calendar-month: El mes actual según calendario
• current-dat: El día de hoy
• <ano>-<mes> en formato YYYY-MM. Por ejemplo, 2019-08. Esto entrega los movimientos o contratos válidos en el
año y mes especificado
• Rango de fechas arbitrario, en formatos YYYYMMDD-YYYYMMDD. Esto engrega los movimientos o contratos
válidos entre esas fechas específicas
Para los movimientos, se aceptan las siguientes opciones:
• <vacio>: devuelve las contrataciones activas en el periodo. Un objeto por cada contratación de una persona
durante el mes. Si un trabajador tuvo múltiples movimientos durante un mes pero no fue desvinculado y vuelto a
contratar, se considera sólo una contratación.
• all: devuelve todas las condiciones contractuales del mes. Si una persona fue cambiada de cargo o centro de costo
durante el mes, entregará dos objetos
• hires: entrega los trabajadores contratados durante el mes
• terminations: entrega los finiquitos durante el mes
Ejemplos:
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 24 de 66
Talana – Documentación de Web Sevices
https://talana.com/es/api/remuneraciones/contract/2017-09/terminations/
==> Entrega los trabajadores finiquitados durante Septiembre del 2017
http s :// talana.com /es/api/remuneraciones/contract/current-month/hires/
==> Entrega las personas contratadas durante el mes actualmente abierto en Talana
http s :// talana.com/es/api/remuneraciones/contract/current-day/
==> Entrega todas las contrataciones válidas al día de hoy
http s :// talana.com/es/api/remuneraciones/contract/ 20190601-20190710 / terminations
==> Entrega todas las personas finiquitadas entre el 1/6/2019 y el 10/7/2019
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 25 de 66
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?
unidadOrganizacional GET Si Puntero a objeto [unidadOrganizacional]
sucursal [sucursal] GET Si Objeto sucursal
jornada integer GET Si Puntero a objeto [jornada]
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 26 de 66
Talana – Documentación de Web Sevices
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
momento de consumir el servicio
Filtros aceptados:
Solo-activos=1 : sólo devuelve los contratos activos al día de hoy
since=<fecha>: devuelve los contratos existentes desde la fecha indicada en adelante, donde <fecha> 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
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 27 de 66
Talana – Documentación de Web Sevices
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:
empleado (id del empleado): solo las vacaciones del empleado especificado
absent_since: Fecha de fin de la ausencia mayor o igual a esta fecha
absent_to: Fecha de inicio de la ausencia menor o igual a esta fecha
modified_since: Fecha de modificación mayor o igual a esta fecha
modified_to: Fecha de modificación menor o igual a esta fecha
created_since: Fecha de creación o modificación mayor o igual a esta fecha
created_to: Fecha de creación o modificación menor o igual a esta fecha
Recomendamos especificar las fechas en formato ISO:
YYYY-mm-dd
por ejemplo:
2020-07-05
Ejemplo:
https://talana/es/api/ vacacion esSolicitud /?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 28 de 66
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
absent_since: Fecha de fin de la ausencia mayor o igual a esta fecha
absent_to: Fecha de inicio de la ausencia menor o igual a esta fecha
modified_since: Fecha de modificación mayor o igual a esta fecha
modified_to: Fecha de modificación menor o igual a esta fecha
created_since: Fecha de creación o modificación mayor o igual a esta fecha
created_to: Fecha de creación o modificación menor o igual a esta fecha
Recomendamos especificar las fechas en formato ISO:
YYYY-mm-dd
por ejemplo:
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 29 de 66
Talana – Documentación de Web Sevices
2020-07-05
Ejemplo:
https://talana/es/api/ vacations-resumed/?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 30 de 66
Talana – Documentación de Web Sevices
Ausentismo
https://talana/es/api/ p ersonaAusencia/ {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,
PUT
Uso Opcional Descripción
id integer GET Si ID único
empleado integer integer GET, POST,
PUT
No Creación, id o RUT del trabajador.
Respuesta: Puntero o id de [persona]
fechaDesde date date GET, POST,
PUT
No Fecha inicio de ausencia
numeroDias float float GET, POST,
PUT
No Cantidad de días solicitados
jornada char(1) GET Si M=Mañana | T=Tarde (para medios días)
mediosDias boolean boolean GET, POST,
PUT
Si ¿Sólo medio día?
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 integer GET Si Puntero a [persona]
creadoPor integer GET Si Puntero a [persona]
fechaAprobaci
on
datetime GET Si Fecha de Aprobación
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 31 de 66
Talana – Documentación de Web Sevices
detallesTrabaja
dor
[persona] GET Si Datos detallados del trabajador
externalRefere
nce
list[externalR
eference]
GET Si Objeto detallado con los Ids de este contrato en
otros sistemas
fechaCreacion datetime GET Si Fecha de Creación
numeroLicenci
a
string string GET, POST,
PUT
Si Número de Licencia médica (opcional)
medicoLicencia string string GET, POST,
PUT
Si Nombre del médico que emitió la licencia
(opcional)
tipoAusencia string string GET, POST,
PUT
No Tipo de ausencia. Puntero a [tipoAusencia]
documentacion string string GET Si Documentación adicional presentada por el
trabajador (opcional)
esContinuacion boolean boolean GET, POST,
PUT
Si ¿es continuación de una licencia anterior?
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:
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 32 de 66
Talana – Documentación de Web Sevices
Propiedad Tipo Descripción
empleado integer Puntero a [persona]
fechaDesde date Fecha inicio de ausencia
numeroDias float Cantidad de días solicitados
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
absent_since: Fecha de fin de la ausencia mayor o igual a esta fecha
absent_to: Fecha de inicio de la ausencia menor o igual a esta fecha
modified_since: Fecha de modificación mayor o igual a esta fecha
modified_to: Fecha de modificación menor o igual a esta fecha
created_since: Fecha de creación o modificación mayor o igual a esta fecha
created_to: Fecha de creación o modificación menor o igual a esta fecha
Recomendamos especificar las fechas en formato ISO:
YYYY-mm-dd
por ejemplo:
2020-07-05
Ejemplo:
https://talana/es/api/ p ersonaAusencia/?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 33 de 66
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
absent_since: Fecha de fin de la ausencia mayor o igual a esta fecha
absent_to: Fecha de inicio de la ausencia menor o igual a esta fecha
modified_since: Fecha de modificación mayor o igual a esta fecha
modified_to: Fecha de modificación menor o igual a esta fecha
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 34 de 66
Talana – Documentación de Web Sevices
created_since: Fecha de creación o modificación mayor o igual a esta fecha
created_to: Fecha de creación o modificación menor o igual a esta fecha
Recomendamos especificar las fechas en formato ISO:
YYYY-mm-dd
por ejemplo:
2020-07-05
Ejemplo:
https://talana/es/api/ absentism-resumed /?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 35 de 66
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/ <ano>-<mes>/
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
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 36 de 66
Talana – Documentación de Web Sevices
desde date GET Desde cuándo rigen estas condiciones.
distribution list GET Lista de centros de costo, con el porcentaje asignado
durante el periodo.
Filtros aceptados:
En la URL se puede pasar como parámetro:
<ano>-<mes>: 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 37 de 66
Talana – Documentación de Web Sevices
Centralización Contable
https://talana.com/es/api/centralizacion-contable-generica?ano=<ano>&mes=<mes>&empresa=<id_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”
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 38 de 66
Talana – Documentación de Web Sevices
cuentaContable__codigo String Código cuenta Contable asignada
cuentaContable__nombre String Nombre cuenta Contable asignada
Filtros y Parámetros adicionales:
ano: año del periodo a centralizar (obligatorio)
mes: mes del periodo a centralizar (obligatorio)
originalFormat: retorna el formato original de centralización, como .xlsx o .csv, en lugar de json (opcional)
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 39 de 66
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/<id_persona>/<tipo_item>/
Servicio para leer el valor de una asignación de un item de pago.
Métodos aceptados: GET
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 40 de 66
Talana – Documentación de Web Sevices
Propiedad GET Uso Opcional Descripción
valorFijo float GET No Valor del item de pago
Es posible especificar, en lugar del ID de la persona, su rut.
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 41 de 66
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
existe rut)
Id persona
rut string POST Si (si
existe
empleado)
Rut de la persona
adjunto multipart POST No El documento
nombre string POST No Id del contrato
categoria string POST Si Nombre de la categoría
puedeVerloElTrabajador boolean POST Si Visibilidad del documento para el
dueño de éste
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 42 de 66
Talana – Documentación de Web Sevices
Días Administrativos
https://talana/es/api/ diaAdministrativo Solicitud /
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/ diaAdministrativo Solicitud / ?empleado=1
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 43 de 66
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 44 de 66
Talana – Documentación de Web Sevices
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 45 de 66
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 46 de 66
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
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 47 de 66
Talana – Documentación de Web Sevices
passVerification String Hash de verificación de la firma
huella String Información de la huella
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 48 de 66
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 49 de 66
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 50 de 66
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 51 de 66
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 ID único
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
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
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 52 de 66
Talana – Documentación de Web Sevices
marca
Formato "2018-07-13T17:22:21"
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 53 de 66
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 54 de 66
Talana – Documentación de Web Sevices
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 55 de 66
Talana – Documentación de Web Sevices
Días Trabajados por Contrato
https://talana.com/es/api/remuneraciones/workedDays
Días trabajados por contrato, durante un mes específico.
El servicio entrega los días trabajados, con tope de los días trabajados reales del mes. De esta forma, en un més de 31 díaslos días trabajados tendrán tope 31. El servicio entrega una fila por contratación activa de cada persona que trabajó durante el mes indicado. Si un trabajador fue contratado varias veces en el mes, el servicio entregará un registro por cada contratación.
Si no se entregan parámetros, se toma el mes actual.
Propiedad Tipo Descripción
id integer ID del contrato
idContrato string ID único de la contratación
empleado [ persona ] Empleado
codigo string Código del contrato
empleadorRazonSocial [ razonSocial ] Razón social bajo el cual está contratado el trabajador
diasTrabajados float Número de días trabajados, en base a los días del mes
diasTrabajadosReales float Número de días calculados como días del mes – días con licencia – días de
vacaciones – días de ausencia, en base a 30
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 56 de 66
Talana – Documentación de Web Sevices
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 57 de 66
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?
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 58 de 66
Talana – Documentación de Web Sevices
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 59 de 66
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 60 de 66
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 61 de 66
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 62 de 66
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 java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import 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 63 de 66
Talana – Documentación de Web Sevices
parser.java:
package com.talana;
import com.talana.models.Person;import org.json.simple.JSONArray;import org.json.simple.JSONObject;import org.json.simple.parser.JSONParser;import org.json.simple.parser.ParseException;
import java.util.ArrayList;import java.util.List;
public class Parser { public static List<Person> getPersonList(String json) { List<Person> 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 64 de 66
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<Person> 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<PersonDetail> 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 65 de 66
Talana – Documentación de Web Sevices
PHP
<?php
# 1.- Obtencion del Token
# Username$username = "[email protected]";# Contraseña$password = "PasswordDeIntegracion";
#URL para obtener el Token$url_solicitud_token = 'https://talana.com/es/api/api-token-auth/';
# Creamos un "stream context" que contiene la peticion y los encabezados$solicitud_token = json_encode(
array("username" => $username, "password" => $password));
$context = stream_context_create(array("http" => array(
"method" => "POST","content" => $solicitud_token,'header'=> "Content-type: application/json"
)));
# Realizamos la llamada$response = file_get_contents('https://talana.com/es/api/api-token-auth/', FALSE, $context);# Y obtenemos el token$token = json_decode($response)->token;
print "Token obtenido:" . $token . "\n";
# 2.- Consumo de servicio
# La URL del servicio para obtener los paises$url_paises = "https://talana.com/es/api/pais/";
#Creamos un stream context, que incluye los encabezados con el Token$context = stream_context_create(array( "http" => array( "method" => "GET", 'header'=> "Content-type: application/json\nAuthorization: Token $token")));
#Hacemos la llamada$response = file_get_contents($url_paises , FALSE, $context);
# Interpretamos el Json para obtener los datos como un arreglo$paises = json_decode($response);
print_r($paises);
# 3.- Inyección de items de pago
$url_inyeccion_items_pago = "https://talana.com/es/api/remuneraciones/item-pago/asignacion/";
$datos = array( "tipo_item" => "BonoporServicio", "rut_empleado" => "9538055-5", "valorFijo" => "101");$payload = json_encode($datos);
$context = stream_context_create(array( "http" => array(
"method" => "POST","content" => $payload,'header'=> "Content-type: application/json\nAuthorization: Token $token")));
$response = file_get_contents($url_inyeccion_items_pago, FALSE, $context );
print_r($response);
Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 66 de 66
Top Related