API Web Services para Integración Talana – Documentación de Web Sevices Control de Versiones Fecha Autor Observaciones 20/04/2018 José Antonio Akel Versión Inicial 25/04/2018 José Antonio Akel Formatos de Serialización 4/05/2018 José Antonio Akel Actualización de ausentismos 8/05/2018 José Antonio Akel We Service Centralización Contable 11/05/2018 Maximiliano Opitz Actualización servicios de persona, personaEmpresa y ausentismos 31/08/2018 Maximiliano Opitz Se agrego es especificación del detalle de persona para la creación de persona 11/10/2018 José Antonio Akel Servicios de Marcas de asistencia 12/10/2018 Sebastián Díaz Servicio de Asignación de Items a Persona 19/10/2018 Sebastián Díaz Servicio de creación de documentos para personas 15/11/2018 José Antonio Akel Ejemplos de código 30/11/2018 Alexander Gonzalez Servicios resumidos para contratos, ausencias, vacaciones y días administrativos 17/12/2018 Sebastián Díaz Filtros para servicios de contratos 17/12/2018 José Antonio Akel “empresa” como parámetro en los servicios 18/12/2018 Sebastián Díaz Filtros empleado en vacaciones, ausentismo, días administrativos 21/12/2018 José Antonio Akel Actualización de método de contratos resumidos 26/12/2018 Maximiliano Opitz Se agrego un ejemplo de la inserción de marcas 26/12/2018 Sebastián Díaz Filtros de empleados para vacaciones, ausentismos y contratos resumidos 27/12/2018 Maximiliano Opitz Ejemplo del uso de los filtros en el servicio que devuelve las marcas 08/01/2019 Alexander Gonzalez “rolPrivado” como parámetro en servicio contratos resumido 05/02/2019 José Antonio Akel Método Dïas Trabajados 19/03/2019 Maximiliano Opitz Filtros de “rut” y “nombre” en el servicio de “persona” Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 2 de 47 Talana – Documentación de Web Sevices Tabla de Contenidos Antecedentes...................................................................................................................................... 5 Autenticación...................................................................................................................................... 6 Formatos de salida............................................................................................................................. 7 Filtros.................................................................................................................................................. 8 EndPoints........................................................................................................................................... 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 47 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.......................................................................................................................... 40 Python........................................................................................................................................ 40 Java............................................................................................................................................ 41 PHP............................................................................................................................................ 44 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 4 de 47 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 47 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”: “demo@talana.com”, “password”: “demo”} Donde: “demo@talana.com” 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 47 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 47 Talana – Documentación de Web Sevices Filtros Algunos de los servicios aceptan filtros como parámetros GET. Los servicios que entrega colecciones de objetos asociados a una empresa en específica (como los de “contratos” y “personas”, en contraposición con el de “bancos”, que es común a todas las empresas) aceptan como parámetro el ID de la empresa de la cual se requieren datos. El servicio devolverá los datos de esa empresa, siempre y cuando el usuario cuente con los permisos para acceder a esa empresa. Ejemplo: https://talana.com/es/api/persona/?empresa=1 y https://talana.com/es/api/persona/?empresa=5 entregarán las personas de las empresas con ID 1 y 5 respectivamente EndPoints Si bien Talana expone muchísimos servicios, para efectos de las integraciones típicas basta con considerar los que se exponen a continuación: Empresas con acceso https://talana.com/es/api/empresas-que-puedo-administrar Entrega el listado de las empresas a las cuales el usuario actual tiene acceso Métodos aceptados: GET Devuelve un listado de empresas y sus razones sociales de acuerdo a la siguiente estructura: Propiedad Tipo Get Descripción id integer ID único nombre string Nombre de la empresa vigente boolean Si la empresa está o no vigente url string URL de la empresa Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 8 de 47 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. Filtros Se puede ffiltrar por “rut” y/o por “nombre” Ej: https://talana.com/es/api/persona/?rut=17798529-5&nombre=Maximiliano Los objetos de persona tienen las siguientes propiedades: Propiedad Tipo Get id integer fechaCreacion datetime GET Si Fecha y hora de creación fechaModificacion datetime GET Si Fecha y hora de creación GET, POST, No Rut, sin puntos, con guión y DV No Nombre No Apellido Paterno No Apellido Materno rut string Tipo POST, PUT Uso Opcional Descripción ID único string PUT nombre string string GET, POST, PUT apellidoPaterno string string GET, POST, PUT apellidoMaterno string string GET, POST, Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 9 de 47 Talana – Documentación de Web Sevices PUT sexo char(1) char(1) GET, POST, Si M/F Si Fecha de Nacimiento Si País, como código ISO PUT fechaNacimiento date date GET, POST, PUT nacionalidad string string GET, POST, PUT username string string permisos list[permisos] email string string Nombre de usuario GET Si Lista de permisos adicionales GET, POST, Si Email principal GET, POST Si Detalles personales GET Si Lista de Identificadores PUT detalles list[detalles] externalReference list[externalRef erence] Objeto "Detalle" que se usara en la creación de personas Propiedad Tipo POST Uso Opcional id Descripción ID único fechaCreacion date GET, POST Si Fecha y hora de creación validoDesde date GET, POST No Fecha desde la cual es valido el detalle email string GET, POST No Email principal del detalle telefono string GET, POST No El teléfono del detalle de la persona celular string GET, POST, No Celular del detalle de la persona PUT direccionCalle string GET, POST Si Calle del domicilio direccionNumero String GET, POST No Numero del domicilio Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 10 de 47 Talana – Documentación de Web Sevices 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 InstitucionEstudiosSuperi String ores GET, POST No Institución superior de la profesion String GET, POST No Profesión de la persona observaciones String GET, POST No Agregar cualquier observación persona sobre la persona contratosDeEmergencia String GET, POST No Agregar cualquier contrato de emergencia de la persona Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 11 de 47 Talana – Documentación de Web Sevices Contratos https://talana.com/es/api/contrato/{id} El o los contratos de los trabajadores, y sus condiciones contractuales. Muestra los contratos y condiciones activas al día de hoy. Métodos aceptados: GET, POST, PUT. Para los métodos PUT y POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Los objetos de tipo contrato tienen las siguientes propiedades: Propiedad Tipo GET id integer empleado integer POST, PUT integer Uso Opcional Descripción GET No Id único GET, POST, No Puntero a objeto [persona] Si Código del contrato Si Fecha de Creación original de estas PUT codigo string string GET, POST, PUT fechaCreacion datetime GET condiciones contractuales tipoContrato integer integer GET, POST, Si especifican detalles en tipoContratoDetails PUT empleadorRazonSoc integer integer ial cargo GET, POST, Puntero a objeto [tipoContrato]. Se No Puntero a objeto [razonSocial] PUT string string GET, POST, Si PUT fechaContratacion date date GET, POST, Si Fecha de contratación original del trabajador No Desde cuándo rigen estas condiciones PUT desde date date GET, POST, contractuales PUT hasta date date GET, POST, Si Puede estar vacío PUT unidadOrganizacion Hasta cuándo rigen estas condiciones. integer POST, PUT Si Puntero a objeto [unidadOrganizacional] integer GET, POST, Si Objeto sucursal al sucursal [sucursal] Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 12 de 47 Talana – Documentación de Web Sevices PUT grupos list[grupo] list[integer] GET, POST, Si persona PUT anexo string string GET, POST, Lista de los grupos al cual pertenece la Si PUT centroCosto jornada [centroCosto integer GET, POST, ] PUT integer integer GET, POST, Si Objeto centroCosto Si Puntero a objeto [jornada] Si Cantidad de horas semanales de trabajo PUT horasDeLaJornada integer integer GET, POST, PUT codigoFranquiciaSe integer integer nce nivelSence GET, POST, Si PUT string string GET, POST, Si PUT sindicato integer integer GET, POST, Si Puntero a objeto [sindicato] Si Puntero a objeto [persona] Si N=No | S=Si | C=Si, pero cotiza | A = Activo > PUT jefe integer integer GET, POST, PUT esPensionado char(1) char(1) GET, POST, 65 años | X = Expatriado PUT tramoAsignacionPre integer integer visional Si Puntero a objeto [tramoAsignacionFamiliar] Si Puntero a objeto [ubicacionGeografica] Si Si es que tiene asignación maternal Si Puntero a objeto [prevision] PUT zonaAsignacionPrevi integer integer sional GET, POST, PUT correspondeAsignaci boolean boolean onMaternal isapre GET, POST, GET, POST, PUT integer integer GET, POST, PUT Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 13 de 47 Talana – Documentación de Web Sevices montoPactadoIsapre float float GET, POST, Si asume 7% PUT montoPactadoIsapre string string Moneda GET, POST, Monto Pactado con Isapre. Si está vacío, se Si Moneda monto pactado. UF=UF | $=Pesos | 7+GES=7%+Ges en UF | 7+GES$=7% + PUT GES en pesos afp integer integer GET, POST, Si Puntero a objeto [afp] No Si el trabajador está contratado con fecha PUT adscribeASeguroCe boolean GET santiaParaContratos anterior al 2002, si adscribe o no al seguro PreviosA2002 de cesantía apvMonto float GET Si Monto primer APV apvMoneda string GET Si Moneda APV: UF | $ apvInstitucion integer GET Si Puntero a [institucionAPV] apvTipo char(1) GET Si Tipo de APV: “A” | “B” apvCuentaDos float GET Si Monto cuenta dos GET Si Moneda cuenta dos float GET Si Monto Depósito Convenido string GET Si Moneda Depósito Convenido: UF | $ retencionJuducialDe string GET Si Nombre de persona destinatario de retención apvCuentaDosMone string da depositoConvenido Monto depositoConvenido Moneda stinatario sueldoPatronal judicial boolean GET Si ¿Es sueldo patronal? Sólo para socios de la empresa sueldoBase integer integer GET, POST, Si Sueldo Base mensual en $ Si Forma de pago de sueldo. Si Puntero a [banco] PUT sueldoFormaPago string string GET, POST, PUT sueldoBanco id id GET, POST, PUT Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 14 de 47 Talana – Documentación de Web Sevices sueldoCuentaCorrie string string nte sueldoCuentaCorrie Si Número de cuenta corriente para depósito Si Tipo de cuenta corriente: Cuenta Vista | PUT, string string nteTipo sueldoTipoPago GET, POST, GET, POST, Cuenta de Ahorro | Cuenta Corriente PUT string string GET, POST, Si hora PUT valorHoraExtraPacta float float da GET, POST, Forma de cálculo sueldo: mensual | diario | Si PUT mesesImponiblesrec integer integer onocidos GET, POST, Si "Meses que se reconocen como trabajados de antes de contratar a la persona. Se usan PUT para los días progresivos mesesImponiblesRe date date conocidosDesde Si PUT vacacionesReconoci date date doDesde GET, POST, Si integer on GET, POST, Beneficio. Fecha de contratación utilizada para cálculo de vacaciones progresivas PUT asignacionMovilizaci integer asignacionColacion GET, POST, Si Movilización mensual en $ Si Colación mensual en $ PUT integer integer GET, POST, PUT anticipoPactado integer integer GET, POST, Si PUT fechaDeContratacio date date nReconocidaParaAn GET, POST, Si Beneficio. Fecha de Contratación a utilizar para cálculo de años de servicio PUT osDeServicio pagaTresPrimerosDi boolean boolean asLicencia mantieneRentaLiqui Si boolean boolean GET, POST, Si integer GET, POST, PUT Beneficio. ¿Mantiene la renta líquida durante las licencias? PUT integer Beneficio. ¿Se subsidian los 3 primeros días de licencia? PUT daLicencia diasAdministrativos GET, POST, Si Beneficio. Días administrativos por trabajador durante el periodo Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 15 de 47 Talana – Documentación de Web Sevices beneficiosInfoAdicio string string GET Si String con beneficios adicionales boolean boolean GET, POST, Si Beneficio. Al calcular la indemnización por nal indemnizacionSinTo peAnos años de servicio al finiquitar, ¿se quita el PUT tope de años? indemnizacionSinTo boolean boolean peRenta GET, POST, Si Beneficio. Al calcular la indemnización por años de servicio al finiquitar, ¿se quita el PUT tope de renta? diasAdicionalesVaca integer integer ciones creadoPor GET, POST, Si por año. PUT integer descripcionDelCargo string string Beneficio. Días adicionales de vacaciones GET Si Creador del contrato. Puntero a [persona] GET, POST, Si Descripción en texto del cargo PUT clausulasAdicionales string string GET, POST, Si PUT detalleAnexoContrat string string o string toOAnexo rolPrivado Si PUT documentoEsContra string claseSalarial GET, POST, GET, POST, No PUT [claseSalaria integer GET, POST, l] PUT boolean boolean GET, POST, Si Si PUT, PATCH asignacionZonaExtr float GET Si ema Factor de asignación adicional por zona extrema unidadOrganizacion [unidadOrga alDetails nizacional] tipoContratoDetails [tipoContrato GET Si Objeto detallado [unidadOrganizacional] GET Si Objeto detallado [tipoContrato] GET Si Objeto detallado con los Ids de este contrato ] externalReference list[externalR eference] en otros sistemas Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 16 de 47 Talana – Documentación de Web Sevices finiquitado boolean boolean GET, POST, Si ¿Fue finiquitado? Si Motivo de término de contrato (si fue PUT, PATCH motivoEgreso [motivoEgres integer GET o] INE [codigoIne] finiquitado) integer GET, POST, Si trabajador PUT, PATCH userDefinedFields list[userDefin GET, POST, edField] PUT, PATCH Objeto detallado con el código INE del Si Listado con campos personalizados Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: modificado_desde (fecha formato “YYYY-MM-DD”): contratos creados o modificados superiores a la fecha modificado_hasta (fecha formato “YYYY-MM-DD”): contratos creados o modificados inferiores a la fecha Ejemplo: https://talana.com/es/api/contratos/?modificado_desde=2018-10-25 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 17 de 47 Talana – Documentación de Web Sevices Contratos Resumido https://talana.com/es/api/contracts-resumed/ Los contratos de los trabajadores y sus condiciones contractuales. Muestra los contratos y condiciones activas al día de hoy. Métodos aceptados: GET Los objetos de tipo contrato tienen las siguientes propiedades: Propiedad Tipo GET Uso Opcional Descripción id integer GET No Id único empleado integer GET No Puntero a objeto [persona] codigo string GET Si Código del contrato fechaCreacion datetime GET Si Fecha de Creación original de estas condiciones contractuales tipoContrato integer GET Si Puntero a objeto [tipoContrato]. Se especifican detalles en tipoContratoDetails empleadorRazonSocial integer GET No Puntero a objeto [razonSocial] cargo string GET Si fechaContratacion date GET Si Fecha de contratación original del trabajador hasta date GET Si Hasta cuándo rigen estas condiciones. Puede estar vacío finiquitado boolean GET Si ¿Fue finiquitado? rolPrivado boolean GET Si ¿Manejar como Rol Privado? GET Si Puntero a objeto [unidadOrganizacional] unidadOrganizacional sucursal [sucursal] GET Si Objeto sucursal jornada integer GET Si Puntero a objeto [jornada] horasDeLaJornada integer GET Si Cantidad de horas semanales de trabajo centroCosto [centroCosto] GET Si Objeto centroCosto personaDetails list[detalles] GET Si Detalles personales userDefinedFields list[userDefinedField] GET Si Listado con campos personalizados activo boolean GET (calculado) Si el contrato está activo al Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 18 de 47 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.com/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 47 Talana – Documentación de Web Sevices empleado (id del empleado): solo las vacaciones del empleado especificado Ejemplo: https://talana.com/es/api/vacacionesSolicitud/?empleado=1 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 20 de 47 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 47 Talana – Documentación de Web Sevices Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 22 de 47 Talana – Documentación de Web Sevices Ausentismo https://talana.com/es/api/personaAusencia/{id} Ausencias por licencias médicas, permisos con o sin goce, etc. Este endpoint es de Lectura y Escritura. Métodos aceptados: GET, POST, PUT Para los métodos PUT y POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Propiedad Tipo GET Tipo POST, Uso Opcional Descripción GET Si ID único GET, POST, No Puntero a [persona] No Fecha inicio de ausencia No Cantidad de días solicitados GET Si M=Mañana | T=Tarde (para medios días) GET, POST, Si ¿Sólo medio día? PUT id integer empleado integer integer PUT fechaDesde date date GET, POST, PUT numeroDias float float GET, POST, PUT jornada char(1) mediosDias boolean boolean PUT fechaHasta date GET Si Último día de ausencia fechaRetorno date GET Si Fecha de reincorporación aprobada char(1) GET Si ¿Aprobada?: A=Aprobada | P=Pendiente | R=Rechazada aprobadaPor integer creadoPor fechaAprobaci integer GET Si Puntero a [persona] integer GET Si Puntero a [persona] datetime GET Si Fecha de Aprobación GET Si Datos detallados del trabajador GET Si Objeto detallado con los Ids de este contrato en on detallesTrabaja [persona] dor externalRefere list[externalR nce eference] otros sistemas Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 23 de 47 Talana – Documentación de Web Sevices fechaCreacion datetime numeroLicenci string string a GET Si Fecha de Creación GET, POST, Si Número de Licencia médica (opcional) Si Nombre del médico que emitió la licencia PUT medicoLicencia string string GET, POST, PUT tipoAusencia string string (opcional) GET, POST, No Tipo de ausencia. Puntero a [tipoAusencia] Si Documentación adicional presentada por el PUT documentacion string string GET trabajador (opcional) esContinuacion boolean boolean GET, POST, Si ¿es continuación de una licencia anterior? PUT Este método permite la creación de ausencias, al consumirlo con los métodos POST o PUT con un payload con una estructura como la siguiente: { "mediosDias": true, "tipoAusencia": "string", "empleado": "string", "numeroLicencia": "string", "fechaDesde": "string", "medicoLicencia": "string", "motivo": "string", "numeroDias": 0, "esContinuacion": true } Bajo este esquema, sólo se acepta el siguiente subset de propiedades: Propiedad Tipo Descripción empleado integer Puntero a [persona] fechaDesde date Fecha inicio de ausencia numeroDias float Cantidad de días solicitados Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 24 de 47 Talana – Documentación de Web Sevices mediosDias boolean ¿Sólo medio día? numeroLicencia string Número de Licencia médica (opcional) medicoLicencia string Nombre del médico que emitió la licencia (opcional) tipoAusencia string Tipo de ausencia. Puntero a [tipoAusencia] esContinuacion boolean ¿es continuación de una licencia anterior? Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: empleado (id del empleado): solo las ausencias del empleado especificado Ejemplo: https://talana/es/api/personaAusencia/?empleado=1 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 25 de 47 Talana – Documentación de Web Sevices Ausentismo Resumido https://talana.com/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.com/es/api/absentism-resumed/?empleado=1 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 26 de 47 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 47 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 47 Talana – Documentación de Web Sevices Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 29 de 47 Talana – Documentación de Web Sevices Creación de documentos par personas https://talana.com/es/api/remuneraciones/documentos/ Servicio para agregar documentos a la carpeta de una persona. Métodos aceptados: POST Propiedad POST Uso Opcional Descripción empleado integer POST Si (si Id persona existe rut) rut string POST Si (si Rut de la persona existe empleado) adjunto multipart POST No El documento nombre string POST No Id del contrato categoria string POST Si Nombre de la categoría POST Si Visibilidad del documento para el puedeVerloElTrabajador boolean dueño de éste Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 30 de 47 Talana – Documentación de Web Sevices Días Administrativos https://talana.com/es/api/diaAdministrativoSolicitud/ Días administrativos solicitados por el trabajador Propiedad Tipo Descripción id integer ID único empleado integer Puntero a [persona] desde date Fecha inicio de solicitud numeroDias float Cantidad de días solicitados jornada char(1) M=Mañana | T=Tarde (para medios días) mediosDias boolean ¿Sólo medio día? hasta date Último día solicitado retorno date Fecha de reincorporación aprobada char(1) ¿Aprobada?: A=Aprobada | P=Pendiente | R=Rechazada aprobadaPor integer Puntero a [persona] creadaPor integer Puntero a [persona] detallesTrabajador [persona] Datos detallados del trabajador fechaCreacion datetime Fecha de Creación Filtros Los siguientes parámetros pueden ser pasados por url para filtrar la lista de contratos: empleado (id del empleado): solo los días administrativos del empleado especificado Ejemplo: https://talana.com/es/api/diaAdministrativoSolicitud/?empleado=1 Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 31 de 47 Talana – Documentación de Web Sevices Días Trabajados https://talana.com/es/api/dias-trabajados/ Los días trabajados en el mes y año actual de cada contrato. Si un trabajador tuvo dos contrataciones distintas, aparecerá dos veces. Propiedad Tipo Descripción codigo string Código del Contrato fechaContratacion date Fecha de contratación, en formato “YYYY-mm-dd” hasta date Fecha de término del contrato, en formato “YYYY-mm-dd” dias_trabajados float Días trabajados empleado integer ID del empleado detallesTrabajador struct Estructura con detalles del trabajador Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 32 de 47 Talana – Documentación de Web Sevices Días Administrativos Resumido https://talana.com/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 33 de 47 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 34 de 47 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 35 de 47 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 36 de 47 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 37 de 47 Talana – Documentación de Web Sevices Inyección (y visualización) de marcas http://talana.com/es/api/mark/ Métodos aceptados: GET, POST, Para el método POST, la información a enviar deber estar en el “body” del “request” en formato JSON. Para la cración de marcas, se debe recibir rut o card_id Los objetos de persona tienen las siguientes propiedades: Propiedad Tipo GET Tipo POST Uso Opcional Descripción id integer person [persona] - GET - Detalles de la persona que marcó rut - string POST Si Rut, sin puntos, con guión y DV card_id - string POST Si El código de tarjeta asignado office integer integer GET, POST Si ID en Talana de la sucursal direction char(1) char(1) GET, POST Si Dirección de la marca. (Tipo ID único Marca) “E” = Enter “X” = Exit TS timestamp timestamp GET, POST No Fceha y Hora real de marca. Formato "2018-07-13T17:22:21" sourceMark string string GET, POST Si Fuente de la marca (usar como Tipo de Actualización de Registro) received_datetime timestamp timestamp GET, POST No Fecha y hora de recepción de marca Formato "2018-07-13T17:22:21" Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 38 de 47 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 39 de 47 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 40 de 47 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 41 de 47 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 42 de 47 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 = "integracion@talana.com" 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 43 de 47 Talana – Documentación de Web Sevices Java Puede descargar una copia completa de este mini-proyecto aquí: https://git.linq.cl/kziete/ejemplo-consumo-api/ ApiClient.java: package com.talana; import import import import import import java.io.BufferedReader; java.io.IOException; java.io.InputStreamReader; java.net.HttpURLConnection; java.net.MalformedURLException; java.net.URL; public class APIClient { private static final String API_URL = "https://talana.com/es/api/"; private static final String TOKEN = "INSERTAR_AUTH_TOKEN_AQUI"; public String get(String path){ URL url = null; try { url = new URL(API_URL + path); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); setHeaders(conn); conn.setRequestMethod("GET"); conn.setUseCaches(false); conn.setDoInput(true); return responseToString(conn); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; private String responseToString(HttpURLConnection conn) throws IOException { BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); } catch (IOException e) { e.printStackTrace(); } StringBuilder sb = new StringBuilder(); String output; while ((output = br.readLine()) != null) { sb.append(output); } return sb.toString(); } } private void setHeaders(HttpURLConnection conn) { conn.setRequestProperty("Authorization", "Token " + TOKEN); conn.setRequestProperty("Accept", "application/json"); conn.setRequestProperty("Content-Type", "application/json;charset=utf-8"); } Sistemas de Gestión de Recursos Humanos | www.talana.com | Página 44 de 47 Talana – Documentación de Web Sevices parser.java: package com.talana; import import import import import com.talana.models.Person; org.json.simple.JSONArray; org.json.simple.JSONObject; org.json.simple.parser.JSONParser; org.json.simple.parser.ParseException; import java.util.ArrayList; import java.util.List; public class Parser { public static List<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 45 de 47 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 46 de 47 Talana – Documentación de Web Sevices PHP <?php # 1.- Obtencion del Token # Username $username = "integracion@cliente.cl"; # 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 47 de 47