Aller au contenu
AccessTime

API REST v1

Mis à jour le 8 juillet 2026

L'API REST d'AccessTime est la même que celle utilisée par notre application mobile : tout ce que fait l'application passe par ici. Vous pouvez aussi l'utiliser pour de petites intégrations maison, par exemple consulter les pointages du jour depuis un script ou demander une absence depuis un autre outil.

L'URL de base est https://votredomaine/api/v1, toutes les requêtes et réponses sont en JSON et les routes protégées exigent l'en-tête Authorization: Bearer {token}.

1. Obtenez un jeton

L'authentification utilise des jetons personnels (Laravel Sanctum), sans cookies ni session. Le jeton s'obtient avec l'e-mail et le mot de passe du salarié, les mêmes qu'il utilise pour accéder au panneau web :

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

La réponse inclut le jeton et les données de base de l'utilisateur :

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

Conservez le jeton en lieu sûr et ne le partagez pas : il donne accès aux données de cette personne. Si les identifiants ne sont pas valides, vous recevrez un 422, et l'endpoint est limité à 10 tentatives par minute.

Pour se déconnecter, POST /api/v1/logout (authentifié) révoque le jeton actuel.

2. Endpoints disponibles

Méthode Route Fonction
POST /login Renvoie un jeton à partir de l'e-mail et du mot de passe
POST /logout Révoque le jeton actuel
POST /fichar Enregistre un pointage (entrée ou sortie)
GET /fichajes/hoy Pointages du jour
GET /fichajes/semana Pointages de la semaine en cours
GET /resumen/mensual?month=YYYY-MM Résumé mensuel des heures travaillées
GET /ausencias Les 50 dernières absences de l'utilisateur
POST /ausencias Demande une absence
GET /ausencias/tipos Types d'absence actifs de l'entreprise
GET /ausencias/saldo?year=YYYY Solde annuel de congés

Tous les endpoints opèrent sur l'utilisateur authentifié : chaque personne ne voit que ses pointages, ses absences et son solde.

3. Pointer via l'API

POST /fichar alterne automatiquement entre entrée et sortie selon le dernier pointage, comme le bouton du panneau (comment fonctionne le pointage). La géolocalisation est facultative :

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

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

Les pointages sont stockés en UTC et les consultations « aujourd'hui » et « semaine » utilisent le fuseau horaire de votre entreprise. Le résumé mensuel est calculé à partir des journées consolidées chaque nuit, les mêmes qui alimentent les rapports.

Si la personne se trouve en dehors des 10 places actives du plan gratuit, POST /fichar répond 403 (plans et facturation).

4. Les absences via l'API

Vous pouvez consulter les types disponibles, le solde et demander une absence :

curl -X POST https://votredomaine/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 applique les mêmes validations que le panneau : chevauchements avec vos autres absences, solde disponible pour les types qui décomptent, et présence de jours ouvrés dans la plage (les week-ends et jours fériés sont déduits). Si le type requiert une approbation, la demande entre dans le flux d'approbations avec le statut pending ; sinon, elle est approuvée directement. Plus de détails dans absences et congés.

Les types d'absence qui exigent un justificatif ne peuvent pas être demandés via l'API : la requête renvoie une erreur et il faut passer par le panneau web, où le document peut être joint.

Et maintenant ?

  • Si votre compte n'est pas encore configuré, commencez par les premiers pas.
  • Pour pointer sur une tablette partagée, l'API n'est pas nécessaire : utilisez la borne QR.

Vous ne trouvez pas ce que vous cherchez ?

Écrivez-nous par le chat de support et nous vous aidons directement.