Base URL https://api.afer.pro Referencia aferapp.com Reservar demo

Fichajes del período

GET https://api.afer.pro/api/v1/employees/times
También disponible en: GET /api/v1/employees/{id}/times
Alias en castellano (v0, sigue operativo): POST https://api.afer.pro/consultarFichajes

Los registros de jornada entre dos fechas: entrada, salida y horas de cada apunte.

El detalle apunte a apunte del registro de jornada. Cada fila lleva su entrada y su salida con fecha, hora y método (app, tarjeta, kiosco…), las horas efectivas entre ambas y, si se imputó, el proyecto o la tarea.

Los apuntes abiertos —alguien que ha fichado la entrada y aún no la salida— llegan con abierto: true, la salida a null y horas: 0. No suman en ningún agregado hasta que se cierran.

El filtro por fechas se aplica sobre la fecha de entrada: una jornada de noche que empieza el 31 y acaba el 1 pertenece al día 31.

Autenticación

Envía tus claves API en las cabeceras X-API-KEY y X-API-SECRET. La cuenta sobre la que se opera se resuelve automáticamente a partir de la clave. Cómo obtener tus claves →

Este endpoint requiere autenticación con API key: sin credenciales responde 401.

Solo lectura. El registro de jornada es un libro legal y solo se alimenta desde la app y el circuito interno: la API no crea, no modifica y no borra fichajes, y no hay previsión de que lo haga.

Parámetros del cuerpo

El cuerpo de la petición es un objeto JSON con Content-Type: application/json.

fecha_iniciodate
obligatorio
Inicio del período, incluido. Formato YYYY-MM-DD.
fecha_findate
obligatorio
Fin del período, incluido.
empleadoIdstring
opcional
Solo los fichajes de esta persona. También disponible como GET /api/v1/employees/{id}/times.
proyectoIdstring
opcional
Solo los fichajes imputados a este proyecto.
paginaint
opcional
Página a devolver. Por defecto 1.
por_paginaint
opcional
Resultados por página. Por defecto 200, máximo 1000.

Ejemplo de petición

curl -X GET 'https://api.afer.pro/api/v1/employees/times?fecha_inicio=2026-05-01&fecha_fin=2026-05-31&empleadoId=eMp001' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET'
<?php

$ch = curl_init('https://api.afer.pro/api/v1/employees/times?fecha_inicio=2026-05-01&fecha_fin=2026-05-31&empleadoId=eMp001');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-KEY: afer_tk_TU_TOKEN',
    'X-API-SECRET: afer_sk_TU_SECRET',
]);

$respuesta = json_decode(curl_exec($ch), true);
curl_close($ch);
const respuesta = await fetch('https://api.afer.pro/api/v1/employees/times?fecha_inicio=2026-05-01&fecha_fin=2026-05-31&empleadoId=eMp001', {
  method: 'GET',
  headers: {
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  }
});

const resultado = await respuesta.json();

Respuesta

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "total_fichajes": 2,
        "pagina": 1,
        "por_pagina": 200,
        "num_paginas": 1,
        "fichajes": [
            {
                "fichajeId": "fIc801…",
                "empleado": {
                    "empleadoId": "eMp001…",
                    "nombre": "Ana",
                    "apellidos": "Pons Ferrer"
                },
                "entrada": {
                    "fecha": "2026-05-04",
                    "hora": "08:00",
                    "metodo": "app"
                },
                "salida": {
                    "fecha": "2026-05-04",
                    "hora": "16:30",
                    "metodo": "app"
                },
                "abierto": false,
                "horas": 8.5,
                "proyectoId": "aBc123XyZ…",
                "tareaId": null,
                "observaciones": null
            },
            {
                "fichajeId": "fIc802…",
                "empleado": {
                    "empleadoId": "eMp001…",
                    "nombre": "Ana",
                    "apellidos": "Pons Ferrer"
                },
                "entrada": {
                    "fecha": "2026-05-05",
                    "hora": "08:02",
                    "metodo": "app"
                },
                "salida": {
                    "fecha": null,
                    "hora": null,
                    "metodo": null
                },
                "abierto": true,
                "horas": 0,
                "proyectoId": null,
                "tareaId": null,
                "observaciones": null
            }
        ]
    }
}
Notas