Volver al blog

Empieza tu prueba gratuita de JornAda - 15 días gratis, sin tarjeta de crédito.

Prueba Gratuita
API de control horario de JornAda: integra tu fichaje con Power BI, tu HRIS y tu software de nómina

API de control horario de JornAda: integra tu fichaje con Power BI, tu HRIS y tu software de nómina

Hoy es un día importante para todos los equipos de Tecnología, Sistemas e Integraciones que trabajan con JornAda. Lanzamos la API REST de JornAda: una interfaz pública, segura y documentada que permite a tu empresa conectar los datos de fichaje, jornada, ausencias y bolsa de horas con cualquier sistema interno. Sin exportaciones manuales. Sin CSV de fin de mes. Sin copia-pega entre plataformas.

Si lideras un departamento de Tecnología, Sistemas, People Analytics o HRIS, esta es la pieza que faltaba para que el control horario forme parte de tu stack: alimentar tus cuadros de mando de Business Intelligence, tu data warehouse, tu HRIS o tu software de nómina con datos reales y actualizados, directamente desde JornAda.

Si has llegado aquí buscando "API de fichaje", "API de control horario", "integrar fichajes con nóminas" o "API de recursos humanos en España", esta guía te explica todo lo que la API permite hacer hoy, con qué sistemas se conecta y cómo empezar.

Índice de contenidos

Qué es la API de JornAda

La API de JornAda es una interfaz REST que devuelve respuestas en formato JSON sobre HTTPS. Con ella, tus aplicaciones leen y registran información de control horario de forma programática, sin pasar por la web ni por la app móvil.

Está construida sobre estándares ampliamente aceptados en la industria y pensada desde el primer día para producción: respuestas en JSON, autenticación por clave, paginación para grandes volúmenes y versionado en la ruta (todos los endpoints cuelgan de /api/v1) para que tus integraciones no se rompan cuando publiquemos nuevas funcionalidades.

Tres ideas para entenderla de un vistazo:

  • Solo datos de tu empresa: cada clave de API está asociada a una empresa concreta. Cualquier consulta devuelve únicamente la información de tu organización; nunca verás datos de terceros ni expondrás los tuyos.
  • Consulta para casi todo, escritura para el fichaje: la mayoría de operaciones son de lectura (GET). La única operación que escribe es el registro de fichajes (POST), pensada para integraciones con tus dispositivos y sistemas de presencia.
  • Incluida en tu plan: la API forma parte del producto y funciona mientras tu suscripción esté activa. No es un módulo enterprise que se compra aparte.

La URL base es https://api.jorn-ada.com/api/v1 y la documentación interactiva, con todos los parámetros y respuestas, está en la documentación Swagger de la API de JornAda.

Una API de consulta con un único punto de escritura: por qué

Es una decisión de diseño consciente, y es la pregunta que más nos hacen. La API expone toda la información de tu empresa en modo lectura y reserva la escritura a una sola operación: el fichaje de entrada y salida. Tenemos tres razones.

La primera es la seguridad de tus datos. Al limitar la escritura a un único punto muy acotado, se eliminan categorías enteras de riesgo: una integración no puede borrar registros de jornada, ni reescribir el pasado, ni crear estructuras fantasma. Algo especialmente relevante cuando hablamos de datos laborales sujetos a la Inspección de Trabajo y al RGPD.

La segunda es la integridad del registro horario. La normativa de registro de jornada exige que cada modificación quede trazada con marca de tiempo y autor. Por eso las correcciones siguen pasando por la interfaz de JornAda, donde quedan auditadas, en lugar de abrir la puerta a cambios masivos automatizados. Si quieres el detalle legal, lee nuestra guía sobre la nueva ley de control horario en España.

La tercera es la prioridad real de nuestros clientes. Cuando hablamos con corporaciones de miles de empleados y con asesorías que gestionan cientos de empresas, la inmensa mayoría de los casos de uso son de lectura: alimentar dashboards, integrar con sistemas analíticos, cruzar datos con nóminas, volcar a un data warehouse. El único caso de escritura recurrente —fichar desde un dispositivo o un sistema propio— ya está cubierto.

Para qué empresas y equipos está pensada

La API de JornAda da en el clavo para tres perfiles.

El primero son las grandes empresas y corporaciones con plantillas de cientos o miles de personas que ya tienen un stack propio (HRIS, ERP, herramientas de Business Intelligence, data lakes) y necesitan que JornAda forme parte de ese ecosistema sin fricción.

El segundo son las asesorías laborales y gestorías que llevan decenas o cientos de empresas y necesitan automatizar la extracción de horas y ausencias para integrarlas con su software de nómina, su CRM o sus informes internos.

El tercero son los equipos de People Analytics que construyen modelos sobre productividad, absentismo y patrones de jornada, y necesitan una fuente de datos fiable y siempre actualizada.

Si no estás en ninguno de estos perfiles, no te preocupes: JornAda funciona perfectamente sin tocar la API. La interfaz web cubre el 100% de las necesidades de pymes y empresas medianas que no requieren integraciones programáticas.

Qué datos puedes leer

La API expone los datos que de verdad mueven la gestión de personas, organizados por dominio. En su versión actual puedes acceder a:

  • Empleados: la ficha maestra de cada persona (identificación, número de la Seguridad Social, categoría, centro de trabajo, fecha de antigüedad, idioma, método de fichaje...). Nunca se exponen datos de acceso como la contraseña.
  • Fichajes: cada jornada diaria con sus tramos de entrada y salida, el método con el que se fichó y el histórico de correcciones.
  • Ausencias: vacaciones, bajas, permisos y citas médicas, con su estado de aprobación.
  • Bolsa de horas: el saldo entre horas previstas y horas realmente trabajadas por empleado, centro o periodo.

Endpoints disponibles hoy

Estos son los recursos que la API expone en su versión 1, con sus filtros más útiles.

Empleados — GET /api/v1/users

Devuelve la plantilla de tu empresa con la ficha de cada empleado: identificación (DNI/NIE), número de la Seguridad Social, código de empleado, email, teléfono, idioma, centro de trabajo, categoría, fecha de antigüedad y estado (activo o desactivado). Es la fuente perfecta para sincronizar tu HRIS sin duplicar trabajo.

  • active: filtra por empleados en activo o desactivados.
  • siteId: devuelve solo los empleados de un centro de trabajo concreto.
  • Clave: el campo _id de cada empleado es el identificador que usarás como userId en el resto de consultas.
GET https://api.jorn-ada.com/api/v1/users?active=true

Fichajes — GET /api/v1/days

Devuelve las jornadas registradas: qué días trabajó cada empleado y a qué horas entró y salió. Cada resultado es la jornada de una persona en una fecha.

  • Varios tramos por jornada: una jornada puede tener varios tramos (mañana y tarde), cada uno con su hora de entrada y de salida. Si un tramo no tiene salida, el empleado aún no ha fichado.
  • Cómo se fichó: cada tramo indica el método: app móvil, web, tarjeta RFID, PIN, código, automático o importado. Si hay geolocalización, se incluye.
  • Cierres automáticos: el sistema marca los tramos que cerró porque el empleado olvidó fichar la salida.
  • Correcciones: el histórico recoge las solicitudes de cambio y su estado (pendiente, aprobada o rechazada).
  • Filtros: por empleado (userId) y por rango de fechas (startDate y endDate, en formato AAAA-MM-DD).
GET https://api.jorn-ada.com/api/v1/days?startDate=2026-01-01&endDate=2026-01-31

Fichar entrada o salida — POST /api/v1/days/clock

El único endpoint de escritura. Registra un fichaje para un empleado desde tus propios sistemas (un torno, una tablet, un ERP de producción). Funciona como un interruptor: si el empleado no tiene un tramo abierto, registra la entrada; si ya lo tiene, registra la salida.

  • Identificación: indica userId o employeeCode (uno de los dos). El empleado debe pertenecer a tu empresa y estar activo.
  • La hora la pone el servidor en el momento de la petición; no se puede enviar una hora arbitraria. Para cargas históricas se usa la importación administrada, no este endpoint.
  • Geolocalización opcional y zona horaria configurable (por defecto Europe/Madrid).
  • Mismas reglas que cualquier fichaje: si el empleado tiene bloqueado el método por API, está fuera de horario o el tramo solapa, la operación se rechaza. El método queda registrado como "api".
POST https://api.jorn-ada.com/api/v1/days/clock

Ausencias — GET /api/v1/holidays

Devuelve las ausencias de tus empleados. Y ojo, no son solo vacaciones: también bajas médicas, citas médicas y permisos retribuidos. Cada ausencia indica si está aprobada, rechazada o pendiente. Se corresponden con la gestión de ausencias y vacaciones de la plataforma.

  • Filtros: por empleado (userId) y por rango de fechas, ideal para saber quién falta en un periodo concreto.
GET https://api.jorn-ada.com/api/v1/holidays?startDate=2026-01-01&endDate=2026-01-31

Bolsa de horas — GET /api/v1/report/balance

Devuelve la bolsa de horas: el saldo entre las horas que cada empleado debía trabajar según su horario y las que realmente ha fichado. Un saldo positivo son horas de más; uno negativo, horas de menos. Es la base de los informes de bolsa de horas de JornAda.

  • Rango obligatorio: indica el periodo con from y to.
  • Filtros: por empleado (userId) o por centro de trabajo (siteId).
  • Uso típico: calcular horas extra o de defecto al cierre de mes antes de pasar las nóminas.
GET https://api.jorn-ada.com/api/v1/report/balance?from=2026-01-01&to=2026-01-31

Casos de uso reales

Con estos recursos —empleados, fichajes, ausencias y bolsa de horas— ya estamos resolviendo escenarios de alto valor en grandes empresas.

Cuadros de mando de Business Intelligence

Conectas la API con tu herramienta de BI para mostrar horas trabajadas, absentismo por departamento o productividad por sede, siempre actualizado. El Comité de Dirección abre el dashboard cada lunes sin que nadie genere el informe a mano.

Alimentar tu data warehouse o data lake

Si tienes Snowflake, BigQuery, Redshift o un data lake, la API te permite ingerir los datos de jornada y ausencias y cruzarlos con tus fuentes internas: ventas, producción, costes. Ahí aparecen los insights de verdad.

Sincronización con tu HRIS corporativo

La API sincroniza la ficha del empleado y sus datos de jornada con tu sistema HRIS maestro, evitando duplicar información y procesos manuales.

Automatización del cálculo de nóminas

Para asesorías y empresas con nómina interna, la API aporta las horas reales, las horas extra y las ausencias que alimentan el cálculo. Lo que antes eran horas de exportar y validar pasa a ser un proceso automático. Encaja con las nóminas inteligentes de JornAda.

Reporting para Inspección de Trabajo

La API permite extraer registros consolidados para construir los informes que exige la normativa, manteniendo la interfaz de JornAda como punto de auditoría y modificación.

People Analytics

Los equipos de People Analytics usan la API como fuente primaria para modelos de rotación, absentismo y patrones de jornada, combinándola con sus propias fuentes de datos.

Fichaje desde tus dispositivos

Con el endpoint de fichaje, integras tornos, tablets o un ERP de producción para que registren la entrada y la salida directamente en JornAda, sin que el empleado tenga que abrir la app.

Consolidación multi-sede

Si tienes varias sedes o empresas del grupo, la API te permite leer y consolidar los datos con segmentación por centro de trabajo.

Cómo se integra con tu stack

La API de JornAda es agnóstica respecto a la herramienta que la consume: cualquier sistema capaz de hacer peticiones HTTP REST y leer JSON puede integrarse. No necesitas un conector propietario ni un formato especial. A partir de ahí, estos son los patrones de integración más habituales en grandes empresas.

Business Intelligence: Power BI, Tableau y Looker Studio

Las tres grandes plataformas de BI consumen APIs REST de forma nativa. Power BI se conecta con su conector "Web", parametrizando la cabecera con tu clave de API y programando el refresco automático. Tableau consume la API mediante su Web Data Connector o una capa REST intermedia, tanto en Desktop como en Cloud. Y Looker Studio funciona bien usando BigQuery como intermediario: un proceso carga periódicamente los datos en BigQuery y Looker los consume con rendimiento óptimo.

Data warehouse: Snowflake, BigQuery, Redshift

El patrón habitual es un proceso programado (por ejemplo con Airflow, Cloud Functions o Cloud Run) que extrae periódicamente los datos de la API y los carga en tu almacén. Una vez en Snowflake, BigQuery, Redshift o un data lake en S3, Azure Blob o Google Cloud Storage, tus equipos de Data cruzan la jornada con cualquier otra fuente. Como la API devuelve JSON estándar, transformarlo a Parquet o a cualquier formato analítico es trivial.

HRIS y nóminas: SAP, Workday, BambooHR, A3, Sage

Tu equipo puede consumir los endpoints directamente o a través de un middleware de integración (MuleSoft, Boomi, SAP Integration Suite) para orquestar el flujo hacia tu HRIS maestro: SAP SuccessFactors, Workday, Oracle HCM, BambooHR o Personio. Para la parte de nómina, la API aporta las horas y ausencias que alimentan A3, Sage, Holded, Nominasol u otras suites del mercado español, con un volcado diario automático y el cierre mensual ya preparado. Si estás comparando suites de RRHH, te interesa nuestra guía de alternativas a Factorial, Sesame, Bizneo, Personio y Kenjo.

Autenticación, claves y control de acceso

La API se autentica con una clave de API que viaja en la cabecera x-api-key. No se usan usuarios ni contraseñas: la clave identifica a tu empresa.

x-api-key: tu-clave-de-api

Estas son las claves de la gestión de credenciales:

  • Autoservicio: el administrador genera la clave desde el panel de JornAda, en Backoffice → Integraciones, pulsando "Crear".
  • Se muestra una sola vez: por seguridad, la clave completa solo aparece en el momento de crearla. Cópiala y guárdala en un gestor de secretos.
  • Varias claves: puedes crear más de una para separar integraciones (por ejemplo, una para BI y otra para nómina) y revocarlas de forma independiente.
  • Revocable y sin caducidad: la clave no caduca, pero puedes revocarla al instante si sospechas que se ha comprometido, sin afectar a las demás.

Además, cada empleado puede tener bloqueado el método de fichaje "api", de modo que solo se registren por esta vía las personas que tú decidas.

Límites, paginación y versionado

Para garantizar la estabilidad de la plataforma y un rendimiento justo para todos, la API aplica límites razonables y transparentes.

  • Rate limiting: hasta 300 peticiones cada 15 minutos por IP. Al superarlo, la API devuelve un código HTTP 429 indicando los segundos que debes esperar antes de reintentar.
  • Cabeceras de control: cada respuesta incluye X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset, para que tu integración sepa en todo momento cuántas peticiones le quedan y cuándo se reinicia el contador.
  • Paginación: las listas se devuelven por páginas. Con page eliges la página y con limit cuántos resultados quieres (máximo 500 por página). La respuesta siempre incluye el total.
  • Versionado en la ruta: todos los endpoints cuelgan de /api/v1. Cualquier cambio que rompa compatibilidad se hará en una nueva versión, manteniendo la anterior. Los campos y endpoints nuevos se añaden de forma compatible: no tienes que tocar nada para que siga funcionando lo que ya tienes.
  • Medición de uso: cada llamada queda registrada y contabilizada (IP, empresa y endpoint), lo que nos permite ofrecerte soporte con contexto real.

Seguridad, RGPD y cumplimiento

El equipo de Sistemas y el Departamento Jurídico harán preguntas. Aquí van las respuestas, sin humo.

  • Aislamiento por empresa: cada clave solo accede a los datos de su propia empresa. La segmentación es estricta.
  • Cifrado en tránsito: todas las peticiones se hacen sobre HTTPS. Las conexiones sin cifrar no son válidas.
  • Servidores en la Unión Europea: la infraestructura de JornAda está alojada en la UE (AWS, región de España) y los registros de jornada se conservan dentro del Espacio Económico Europeo durante el plazo legal.
  • Sin biometría: JornAda no usa huella ni reconocimiento facial, así que la API no expone ningún dato biométrico. Si quieres entender por qué esto importa, lee por qué la huella ya no es legal para fichar.
  • Nunca expone credenciales: los endpoints jamás devuelven contraseñas ni datos de acceso.
  • Integridad del registro horario: al ser de consulta salvo el fichaje, la API no puede alterar ni borrar registros, lo que preserva la inmutabilidad que exige el RDL 8/2019.
  • Tratamiento conforme al RGPD y la LOPDGDD: los datos accesibles son exclusivamente laborales y de jornada, bajo la base legal del cumplimiento del registro horario.

Cómo empezar en 5 pasos

  • 1. Genera tu clave: entra en el panel de JornAda, ve a Integraciones y crea una clave de API. Cópiala en cuanto se muestre.
  • 2. Explora la documentación: abre la documentación Swagger, donde puedes ver todos los parámetros y probar las llamadas en vivo.
  • 3. Identifica a tus empleados: empieza llamando a /users para obtener los _id que usarás en el resto de endpoints.
  • 4. Construye tu primera integración: elige un caso pequeño y de bajo riesgo (un dashboard semanal, una sincronización diaria de ausencias) y valídalo antes de escalar.
  • 5. Escala con control: usa las cabeceras de rate limit para ajustar la frecuencia de tus llamadas y aplica reintentos con backoff cuando recibas un 429.

Si aún no usas JornAda y quieres conectar tu control horario con tu software, puedes empezar tu prueba gratuita o consultar nuestros planes y precios.

Hacia dónde va la API

La versión actual cubre la lectura completa de tus datos y el fichaje desde sistemas externos. A partir de aquí seguiremos ampliándola escuchando a los equipos técnicos que la usan. Cuando incorporemos nuevas capacidades, las anunciaremos en este mismo blog y las publicaremos manteniendo el versionado y la retrocompatibilidad, para que tus integraciones existentes nunca se rompan. Si hay una operación o un recurso que tu empresa necesita, cuéntanoslo: las peticiones de nuestros clientes marcan el orden de prioridades.

Preguntas frecuentes sobre la API de JornAda

¿Qué tipo de API es?

Es una API REST que devuelve JSON sobre HTTPS, autenticada con una clave en la cabecera x-api-key y versionada en /api/v1. La URL base es https://api.jorn-ada.com/api/v1.

¿Tiene coste adicional?

No. La API está incluida en tu plan de JornAda y funciona mientras tu suscripción esté activa. No es un módulo que se compra aparte.

¿Es solo de lectura?

Casi. Todos los endpoints son de consulta salvo uno: el fichaje de entrada y salida (POST /api/v1/days/clock), pensado para registrar presencia desde tus propios sistemas. El resto de cambios sigue pasando por la interfaz de JornAda, donde quedan auditados.

¿Cómo consigo una clave?

El administrador la genera desde Backoffice → Integraciones pulsando "Crear". La clave completa se muestra una sola vez, así que cópiala al instante. Puedes crear varias y revocarlas cuando quieras.

¿La API expone datos de otras empresas?

No. Cada clave está asociada a una única empresa y todas las consultas devuelven exclusivamente los datos de esa empresa.

¿Necesito un desarrollador?

Para integraciones con HRIS, ERP o data warehouses, sí. Para casos sencillos como un dashboard en Power BI, tu equipo de Sistemas puede configurarlo en pocas horas con la documentación pública.

¿Qué pasa si supero el límite de peticiones?

La API responde con un código 429 e indica los segundos que debes esperar. Usa las cabeceras X-RateLimit para regular la frecuencia y aplica reintentos con backoff exponencial.

¿Funciona si mi empresa tiene presencia internacional?

Sí. La API es accesible sobre HTTPS desde cualquier lugar y soporta empleados con distintos países, idiomas y zonas horarias.

¿Puedo integrar con sistemas que no aparecen en este artículo?

Sí. La API es agnóstica: cualquier herramienta capaz de hacer peticiones HTTP REST puede integrarse. Si necesitas un patrón concreto, nuestro equipo técnico puede asesorarte.

¿Más dudas? Consulta nuestra sección de preguntas frecuentes o contacta con nuestro equipo.

Activa la API hoy

Las empresas que sacarán más partido al control horario en los próximos años no serán las que tengan el software más complejo, sino las que sepan integrarlo en el resto de su stack, generar inteligencia con sus datos y automatizar todo lo automatizable.

La API de JornAda es la pieza que faltaba para entrar en ese grupo: sin coste adicional, sin contratos complejos y sin desarrollos a medida. Genera tu clave desde Integraciones y echa un vistazo a la documentación completa para empezar a integrar hoy mismo.

¿Prefieres verlo aplicado a tu empresa? Reserva una sesión técnica de 30 minutos con nuestro equipo, escríbenos por WhatsApp al +34 696 362 327 o habla con nuestro equipo. Y si quieres más contexto, explora nuestro blog sobre control horario, fichaje digital y gestión de Recursos Humanos.

Prueba JornAda gratis

Empieza a cumplir con la normativa de fichaje hoy mismo. 15 días gratis, sin tarjeta de crédito.

Contacto

¿Tienes alguna pregunta?

Rellena el formulario y te respondemos en menos de 24 horas.

Persona de contacto

Nombre de la empresa *

Email *

Teléfono

Número de teléfono con código de país. Ejemplo: +34612345678

Escribe tu mensaje aquí... *

Noticias relacionadas