API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización...

49
API Web Services para Integración

Transcript of API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización...

Page 1: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

API Web Services para Integración

Page 2: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 2 de 49

Page 3: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

Tabla de Contenidos

Antecedentes......................................................................................................................................5Autenticación......................................................................................................................................6Formatos de salida.............................................................................................................................7Filtros..................................................................................................................................................8EndPoints...........................................................................................................................................8

Empresas con acceso..................................................................................................................8

Persona........................................................................................................................................9

Contratos....................................................................................................................................12

Filtros.......................................................................................................................................... 17

Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............17

modificado_desde (fecha formato “YYYY-MM-DD”): contratos creados o modificados superiores a la fecha....................................................................................................................................17

modificado_hasta (fecha formato “YYYY-MM-DD”): contratos creados o modificados inferiores a la fecha.......................................................................................................................................17

Ejemplo:.....................................................................................................................................17

https://talana.com/es/api/contratos/?modificado_desde=2018-10-25.........................................17

Contratos Resumido...................................................................................................................18

Vacaciones.................................................................................................................................19

Filtros.......................................................................................................................................... 19

Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............19

empleado (id del empleado): solo las vacaciones del empleado especificado............................19

Ejemplo:.....................................................................................................................................19

https://talana/es/api/vacacionesSolicitud/?empleado=1..............................................................19

Vacaciones Resumido................................................................................................................20

Ausentismo.................................................................................................................................21

Filtros.......................................................................................................................................... 23

Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............23

empleado (id del empleado): solo las ausencias del empleado especificado.............................23

Ejemplo:.....................................................................................................................................23

https://talana/es/api/personaAusencia/?empleado=1.................................................................23

Ausentismo Resumido................................................................................................................24

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 3 de 49

Page 4: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

Centralización Contable..............................................................................................................25

Asignación de Items de pago......................................................................................................26

Creación de documentos par personas......................................................................................28

Días Administrativos...................................................................................................................29

Filtros.......................................................................................................................................... 29

Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos:............29

empleado (id del empleado): solo los días administrativos del empleado especificado..............29

Ejemplo:.....................................................................................................................................29

https://talana/es/api/diaAdministrativoSolicitud/?empleado=1....................................................29

Días Administrativos Resumido..................................................................................................30

Turno.......................................................................................................................................... 31

Días de Turno Semanal..............................................................................................................32

Días de Turno Manual................................................................................................................33

Asignación de Personas a Turnos..............................................................................................34

Inyección (y visualización) de marcas........................................................................................35

Asignación de tarjetas a personas..............................................................................................36

Turnos y horarios asignados por Trabajador...............................................................................37

Otros Modelos............................................................................................................................38

Ejemplos de Código..........................................................................................................................40Python........................................................................................................................................ 40

Java............................................................................................................................................ 41

PHP............................................................................................................................................ 44

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 4 de 49

Page 5: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 5 de 49

Page 6: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 6 de 49

Page 7: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 7 de 49

Page 8: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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

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

url string URL de la empresa

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 8 de 49

Page 9: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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,

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,

PUT

No Apellido Paterno

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, Si Fecha de Nacimiento

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 9 de 49

Page 10: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

PUT

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

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

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 10 de 49

Page 11: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

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 11 de 49

Page 12: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 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,

PUT

Si Hasta cuándo rigen estas condiciones.

Puede estar vacío

unidadOrganizacion

al

integer POST, PUT Si Puntero a objeto [unidadOrganizacional]

sucursal [sucursal] integer GET, POST, Si Objeto sucursal

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 12 de 49

Page 13: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

PUT

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]

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]

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 13 de 49

Page 14: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

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”

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]

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 14 de 49

Page 15: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

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

onocidos

integer integer GET, POST,

PUT

Si "Meses que se reconocen como trabajados

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

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 15 de 49

Page 16: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

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

peRenta

boolean boolean GET, POST,

PUT

Si Beneficio. Al calcular la indemnización por

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

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 16 de 49

Page 17: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

finiquitado boolean boolean GET, POST,

PUT, PATCH

Si ¿Fue finiquitado?

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

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 17 de 49

Page 18: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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]

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 18 de 49

Page 19: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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=<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

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 19 de 49

Page 20: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 20 de 49

Page 21: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 21 de 49

Page 22: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 22 de 49

Page 23: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 Puntero a [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

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

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 23 de 49

Page 24: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

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:

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 24 de 49

Page 25: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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/ p ersonaAusencia/?empleado=1

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 25 de 49

Page 26: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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]

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 26 de 49

Page 27: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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”

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 27 de 49

Page 28: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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

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 28 de 49

Page 29: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 29 de 49

Page 30: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 30 de 49

Page 31: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 31 de 49

Page 32: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 32 de 49

Page 33: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 33 de 49

Page 34: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 34 de 49

Page 35: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 35 de 49

Page 36: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 36 de 49

Page 37: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 37 de 49

Page 38: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 38 de 49

Page 39: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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

marca

Formato "2018-07-13T17:22:21"

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 39 de 49

Page 40: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 40 de 49

Page 41: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

Talana – Documentación de Web Sevices

Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 41 de 49

Page 42: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 42 de 49

Page 43: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 43 de 49

Page 44: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 44 de 49

Page 45: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 45 de 49

Page 46: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 46 de 49

Page 47: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 47 de 49

Page 48: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 48 de 49

Page 49: API Web Services para Integración - Talana · 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ... La respuesta de la anterior consulta es un “String

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 49 de 49