Salta al contingut
AccessTime

API REST v1

Actualitzat el 8 de juliol de 2026

L'API REST d'AccessTime és la mateixa que fa servir la nostra app mòbil: tot el que fa l'app passa per aquí. També la pots fer servir per a petites integracions pròpies, per exemple consultar els fitxatges del dia des d'un script o sol·licitar una absència des d'una altra eina.

L'URL base és https://tudominio/api/v1, totes les peticions i respostes són JSON i les rutes protegides requereixen la capçalera Authorization: Bearer {token}.

1. Aconsegueix un token

L'autenticació fa servir tokens personals (Laravel Sanctum), sense cookies ni sessió. El token s'obté amb l'email i la contrasenya de l'empleat, els mateixos amb què entra al panell web:

curl -X POST https://tudominio/api/v1/login \
  -H "Content-Type: application/json" \
  -d '{ "email": "empleado@empresademo.com", "password": "********" }'

La resposta inclou el token i les dades bàsiques de l'usuari:

{
  "token": "1|abcdef...",
  "user": { "id": 1, "name": "...", "email": "...", "role": "empleado", "company_id": 2 }
}

Guarda el token en un lloc segur i no el comparteixis: dona accés a les dades d'aquella persona. Si les credencials no són vàlides rebràs un 422, i l'endpoint està limitat a 10 intents per minut.

Per tancar sessió, POST /api/v1/logout (autenticat) revoca el token actual.

2. Endpoints disponibles

Mètode Ruta Què fa
POST /login Retorna un token a partir d'email i contrasenya
POST /logout Revoca el token actual
POST /fichar Registra un fitxatge (entrada o sortida)
GET /fichajes/hoy Fitxatges del dia actual
GET /fichajes/semana Fitxatges de la setmana actual
GET /resumen/mensual?month=YYYY-MM Resum mensual d'hores treballades
GET /ausencias Últimes 50 absències de l'usuari
POST /ausencias Sol·licita una absència
GET /ausencias/tipos Tipus d'absència actius de l'empresa
GET /ausencias/saldo?year=YYYY Saldo anual de vacances

Tots els endpoints operen sobre l'usuari autenticat: cada persona veu només els seus fitxatges, les seves absències i el seu saldo.

3. Fitxar des de l'API

POST /fichar alterna automàticament entre entrada i sortida segons l'últim fitxatge, igual que el botó del panell (com funciona el fitxatge). La geolocalització és opcional:

curl -X POST https://tudominio/api/v1/fichar \
  -H "Authorization: Bearer 1|abcdef..." \
  -H "Content-Type: application/json" \
  -d '{ "latitude": 40.4168, "longitude": -3.7038, "accuracy": 12 }'

Resposta 201: { "type": "in", "happened_at": "2026-07-07T09:00:00+00:00" }.

Els fitxatges es guarden en UTC i les consultes de "avui" i "setmana" fan servir la zona horària de la teva empresa. El resum mensual es calcula a partir de les jornades consolidades cada nit, les mateixes que alimenten els informes.

Si la persona queda fora de les 10 places actives del pla gratuït, POST /fichar respon 403 (plans i facturació).

4. Absències des de l'API

Pots consultar els tipus disponibles, el saldo i sol·licitar una absència:

curl -X POST https://tudominio/api/v1/ausencias \
  -H "Authorization: Bearer 1|abcdef..." \
  -H "Content-Type: application/json" \
  -d '{ "absence_type_id": 1, "starts_on": "2026-08-03", "ends_on": "2026-08-07", "reason": "Vacaciones" }'

L'API aplica les mateixes validacions que el panell: solapaments amb altres absències pròpies, saldo disponible en els tipus que descompten i que el rang contingui dies laborables (descompta caps de setmana i festius). Si el tipus requereix aprovació, la sol·licitud entra en el flux d'aprovacions amb estat pending; si no, queda aprovada directament. Més detall a absències i vacances.

Els tipus d'absència que exigeixen justificant no es poden sol·licitar per API: la petició retorna un error i cal fer-la des del panell web, on sí que es pot adjuntar el document.

I ara què?

  • Si encara no tens el compte muntat, comença pels primers passos.
  • Per fitxar en una tauleta compartida no necessites l'API: fes servir el quiosc QR.

No trobes el que busques?

Escriu-nos pel xat de suport i t'ajudem directament.