Timesheets.com ahora ofrece una API para uso del cliente.
Panel Inicial:
https://secure.timesheets.com/api/public/v1/index.cfm
Documentación:
Hay algunas cosas a tener en cuenta al hacer uso de la API:
- Todas las solicitudes requieren un encabezado con una clave API y un token de autorización. El token de autorización lo autentica como un usuario específico de su cuenta de Timesheets.com.
- Actualmente, solo el administrador principal está autorizado para generar credenciales de API para sí mismo. Esto es para simplificar la seguridad de la API y las solicitudes que se le envían.
- Demasiados intentos de autenticación fallidos para un token darán como resultado un bloqueo cronometrado de más solicitudes. La API en general tiene un límite de velocidad de cinco solicitudes cada sesenta segundos para cualquier clave de API específica.
- Importante: Trate sus claves/tokens como contraseñas y manténgalas en secreto. Cuando trabaje con la API, use claves/tokens como variables de entorno en lugar de codificarlos en sus programas.
Hay dos métodos para generar credenciales para la API:
- Cuando haya iniciado sesión en Timesheets.com como administrador principal, vaya a «Herramientas» en el menú de la izquierda.
- En el menú «Herramientas», navegue hasta «Generar claves API».
- Utilice el botón ‘Generar credenciales’ para generar una clave de API y un token de autorización. El resultado también contendrá los pares de nombre y valor del encabezado.
OR
- Use el punto final /auth/token desde el tablero de Taffy (o cualquier otro método que desee)
- Publique su nombre de usuario y contraseña de administrador principal de Timesheets.com. Si la cuenta está activa y en buen estado, se devolverá una respuesta con los valores de la clave API, el token y el nombre del encabezado.
Una vez que se hayan creado una apikey (clave API) y un token de autorización, envíe los siguientes encabezados con su solicitud:
apikey: [apikey]
x-ts-authorization: [token]
Los nombres de encabezado que se muestran aquí pueden diferir a los que aparecerán en la respuesta al generar las credenciales. Utilice los nombres proporcionados en la respuesta.
Para cualquier otra solicitud en Taffy: abra el punto final, haga clic en Agregar encabezado, pegue el encabezado, configure su solicitud y envíela.
Acerca de las Solicitudes
Para mantener la API simple para el consumo de datos, se han omitido las respuestas complejas y los códigos de error. Todas las solicitudes que se autentiquen con éxito devolverán una respuesta 200. La respuesta indicará errores o los datos solicitados.
La mayoría de los puntos finales (endpoints) devolverán un JSON estructurado de la siguiente manera:
{
errors: [],
data: []
}
Si se detectaron errores en la solicitud (como parámetros faltantes o no válidos), la clave de errores contendrá una lista de mensajes en inglés sencillo. En su mayor parte, estos son los mismos mensajes de error de la interfaz de usuario que vería al utilizar la propia aplicación. Si la matriz de errores está vacía, la clave de datos contendrá los datos solicitados. Esto puede y variará según el punto final.
Todos los datos de consulta se devuelven en formato de columna con una clave de columna que enumera los campos en orden y una clave de datos con los datos correspondientes.
Nota: Algunas claves pueden aparecer en Mayúsculas y otras en CamelCase. Esto se debe a las idiosincrasias en la clasificación automática de datos dentro del marco de la aplicación en el que estamos construidos.
Errores en la Clave
Los valores de codigo y sus claves pueden ser extraidas del punto final /server/constants del API. Esto retornara el nombre del error/alerta (e.g. PAYROLL_CODE_LOCKED = 2)
Code | Descripción |
---|---|
PAYROLL_CODE_PROCESSED = «0» | Nómina procesada exitosamente El reporte de nómina fue generado como Resumen y no contiene entradas de horas |
PAYROLL_CODE_SUMMARY_ONLY = «1» | El reporte de nómina fue generado como Resumen y no contiene entradas de horas |
PAYROLL_CODE_LOCKED = «2» | El El reporte de nómina esta bloqueado y no puede ser procesado por el usuario actual |
PAYROLL_CODE_INVALID_DATES = «3» | El reporte de nómina contiene fechas inválidas |
PAYROLL_CODE_NO_RECORDS_FOUND = «4» | No hay entradas validas para las fechas de nómina |
PAYROLL_CODE_OVERLAPPING_PERIODS = «5» | Los usuarios incluidos en el periodo de nómina estan superpuestos en otro reporte de nómina |
PAYROLL_CODE_OVERLAPPING_RECORDS = «6» | Usuarios incluidos en la nómina tienen entradas superpuestas |
PAYROLL_CODE_ALERTS_EXIST = «7» | Hay alertas existentes en entradas incluidas en este reporte de nómina |
PAYROLL_CODE_PROCESS_VALIDATION_ERROR = «8» | Hubo un error intentando validar las entradas de nómina a procesar |
PAYROLL_CODE_PROCESS_VALIDATION_FAILED = «9» | Hay entradas en el reporte de nómina que han sido modificadas |
PAYROLL_CODE_DUPLICATE_USERS_FOUND = «10» | Se detectaron usuarios duplicados en el reporte de nómina |
PAYROLL_CODE_NO_USERS_INCLUDED = «11» | No hay usuarios incluidos en el reporte |
PAYROLL_CODE_UNPAID_RECORDS_EXISTS = «12» | Hay entradas no pagadas que existen antes de las fechas de nómina |
PAYROLL_CODE_STANDARD_SPLITPAID_RECORDS_EXISTS = «13» | Hay entradas por hora divididas existentes en el reporte de nómina |
PAYROLL_CODE_SALARIED_SPLITPAID_RECORDS_EXISTS = «14» | Hay entradas asalariadas divididas existentes en el reporte de nómina |
PAYROLL_CODE_INVALID_RUNBYID = «15» | El usuario intentando generar la nómina no esta autorizado |
PAYROLL_CODE_INVALID_APPEND_PAYROLLID = «16» | Intento de anexar a nómina invalida |
PAYROLL_CODE_USERS_ALREADY_EXIST_IN_PAYROLL = «17» | Intento de agregar usuarios a un reporte de nómina que ya existe |
PAYROLL_CODE_USERS_HAVE_POSTDATED_PAYROLL = «18» | Intento de agregar usuarios a un reporte de nómina ya existe en una nómina previa |
PAYROLL_CODE_INVALID_PAYROLLID = «19» | ID de nómina no es valido |
PAYROLL_CODE_INVALID_PARTIAL_USER_DELETE = «20» | La lista de usuarios parciales a borrar no es valida para el periodo de nómina |
PAYROLL_CODE_INVALID_TIMEZONE_FOR_PERIOD = «21» | Hay multiples zonas horarias en el periodo de nómina para un usuario |
PAYROLL_CODE_NONSEQUENTIAL_RECORDS = «22» | Entradas no-secuenciales fueron detectadas generando la nómina |
PAYROLL_CODE_INVALID_ACCRUAL_SETTINGS_FOR_USER = «23» | Hay uno o mas usuarios con ajustes de acumulacion por horas invalida |
PAYROLL_CODE_RECORDS_EXCEED_MAX_THRESHOLD = «24» | Hay entradas en el reporte de nómina identificadas como en exceso del maximo limite especificado |