Documentation API TimeWellScheduled
1. Introduction
L’API TimeWellScheduled permet aux développeurs d’intégrer de façon sécurisée les fonctionnalités de gestion des horaires, de suivi du temps, de paie et de ressources humaines à leurs applications. Toutes les requêtes sont effectuées via HTTPS et retournent des données structurées aux formats JSON ou XML.
2. Pour commencer
Avant de commencer, vous aurez besoin d’une clé API et de votre identifiant d’entreprise (Company ID).
Suivez le guide de configuration de la clé API pour générer votre clé API.
URL de l’API :
- Si vos données sont hébergées au Canada, l’URL de votre API est :
https://api.ca.timewellscheduled.com
- Si vos données sont hébergées aux États-Unis, l’URL de votre API est :
https://api.us.timewellscheduled.com
3. Authentification et sécurité
- ID de l’application [appid] – fourni par notre équipe. Consultez le guide de configuration de la clé API.
- ID de l’entreprise [c] – l’identifiant unique de votre entreprise. Vous pouvez le trouver ici.
- Module [module] – le module appelé par la requête.
- Chiffrement : tous les mots de passe sont stockés à l’aide de bCrypt.
Vous devrez hacher les identifiants des employés à l’aide du sel (salt) propre à votre entreprise fourni lors de l’authentification. Pour en savoir plus sur bCrypt, consultez cet article.
4. Format des requêtes
Toutes les requêtes utilisent la méthode GET, avec les paramètres transmis dans la chaîne de requête (query string).
Exemple :
GET /?appid={AppID}&c={CompanyID}&module=verify
Paramètres requis :
appid – Votre ID d’application c – ID de l’entreprise module – Module API à appeler
5. Format des réponses
Les réponses retournent des données structurées au format JSON ou XML (certaines requêtes retournent du JSON, d’autres du XML).
Exemple de réponse JSON :
{
"success": 1,
"ontime": 1,
"message": "Votre action a été enregistrée avec succès"
}
6. Modules
verify
Permet de récupérer les informations de votre entreprise.
| Paramètres | Notes | Retourne |
|
|
|
Exemple de requête:
/?appid={App ID}&c={Company ID}&module=verify
Exemple de réponse:
<?xml version=”1.0”?> <response> <success>1</success> <ontime>1</ontime> <message> <employees> <employee> <name>Bob Robertson</name> <id>12345</id> </employee> <employee> <name>Jane Johnson</name> <id>abc123</id> </employee> <employee> <name>Bill Smith</name> <id>995jk</id> </employee> </employees> <branding logo="https://url_to_logo/MainLogo.png">Your Company Here</branding> <bcryptSalt>yourKey</bcryptSalt> </message> </response>
begin
Enregistre le début du quart de travail d’un employé.
URL du point de terminaison :
<URL API>/response.asp
Paramètres supplémentaires :
U – code de poinçon P – mot de passe de l’employé (en bCrypt) Year – année où l’action a lieu Month – mois où l’action a lieu Day – jour où l’action a lieu Hour – heure où l’action a lieu Minute – minute où l’action a lieu Second – seconde où l’action a lieu
Exemple de requête :
GET /?appid={AppID}&c={CompanyID}&module=begin&u={punchCode}&p={bCryptPassword}&Year=2025&Month=9&Day=22&Hour=16&Minute=0&Second=34
Exemple de réponse :
<?xml version=”1.0”?> <response> <success>1</success> <ontime>1</ontime> <message>Votre action a été enregistrée avec succès. Vous avez 12 message(s) non lu(s) dans votre boîte de réception.</message> </response>
end
Enregistre la fin du quart de travail d’un employé.
URL du point de terminaison :
<URL API>/response.asp
Paramètres supplémentaires :
U – code de poinçon P – mot de passe de l’employé (en bCrypt) Year – année où l’action a lieu Month – mois où l’action a lieu Day – jour où l’action a lieu Hour – heure où l’action a lieu Minute – minute où l’action a lieu Second – seconde où l’action a lieu
Exemple de requête :
GET /?appid={AppID}&c={CompanyID}&module=end&u={punchCode}&p={bCryptPassword}&Year=2025&Month=9&Day=22&Hour=19&Minute=05&Second=25
Exemple de réponse :
<?xml version=”1.0”?> <response> <success>0</success> <ontime>0</ontime> <message>Il est trop tôt pour effectuer votre SORTIE</message> <watchdog> <message>Sélectionnez une raison.</message> <reasons> <reason ID="2233">Accident de route</reason> <reason ID="153">Problème de voiture</reason> <reason ID="157">Problème informatique</reason> <reason ID="1482">Code de raison par défaut</reason> <reason ID="159">Départ anticipé</reason> <reason ID="154">Ne se sent pas bien</reason> <reason ID="156">Autre (veuillez préciser)</reason> <reason ID="1983">Urgence personnelle</reason> <reason ID="2231">Rendez-vous chez le médecin</reason> <reason ID="158">Circulation</reason> </reasons> </watchdog> </response>
Comme la requête n’a pas été effectuée avec succès et qu’un événement Watchdog a été déclenché, vous devez soumettre la même requête à nouveau en ajoutant le paramètre supplémentaire reason avec l’ID de la raison sélectionnée.
Exemple de requête :
GET /?appid={AppID}&c={CompanyID}&module=end&u={punchCode}&p={bCryptPassword}&Year=2025&Month=9&Day=22&Hour=19&Minute=05&Second=25&reason={reason ID}
Exemple de réponse :
<?xml version=”1.0”?> <response> <success>1</success> <ontime>1</ontime> <message>Votre action a été enregistrée avec succès.</message> </response>
break
Enregistre le début ou la fin d’une pause.
URL du point de terminaison :
<URL API>/response.asp
Paramètres supplémentaires :
U – code de poinçon P – mot de passe de l’employé (en bCrypt) Year – année où l’action a lieu Month – mois où l’action a lieu Day – jour où l’action a lieu Hour – heure où l’action a lieu Minute – minute où l’action a lieu Second – seconde où l’action a lieu
Exemple de requête :
GET /?appid={AppID}&c={CompanyID}&module=break&u={punchCode}&p={bCryptPassword}&Year=2025&Month=9&Day=22&Hour=18&Minute=15&Second=09
Exemple de réponse :
<?xml version=”1.0”?> <response> <success>1</success> <ontime>1</ontime> <message>Votre action a été enregistrée avec succès.</message> </response>
meal
Enregistre le début ou la fin d’une période de repas.
URL du point de terminaison :
<URL API>/response.asp
Paramètres supplémentaires :
U – code de poinçon P – mot de passe de l’employé (en bCrypt) Year – année où l’action a lieu Month – mois où l’action a lieu Day – jour où l’action a lieu Hour – heure où l’action a lieu Minute – minute où l’action a lieu Second – seconde où l’action a lieu
Exemple de requête :
GET /?appid={AppID}&c={CompanyID}&module=meal&u={punchCode}&p={bCryptPassword}&Year=2025&Month=9&Day=22&Hour=17&Minute=08&Second=25
Exemple de réponse :
<?xml version=”1.0”?> <response> <success>0</success> <ontime>0</ontime> <message>Cette action ne peut pas être effectuée. Votre horaire ne permet aucune période de repas.</message> </response>
schedule_list
Récupère les horaires d’un employé pour une période donnée.
URL du point de terminaison :
<URL API>/response_json.asp
Paramètres supplémentaires :
StartDate – date de début de la période EndDate – date de fin de la période
Exemple de requête :
POST /?appid={AppID}&c={CompanyID}&module=schedule_list&u={punchCode}&StartDate=2025-09-01&EndDate=2025-09-02
Exemple de réponse :
{
"success": 1,
"schedules": [
{"date": "2025-09-01", "time": "9:00-17:00", "dept": "Bureau"},
{"date": "2025-09-02", "time": "9:00-17:00", "dept": "Bureau"}
]
}
employee_list
Récupère la liste de tous les employés actifs.
URL du point de terminaison :
<URL API>/response_json.asp
Exemple de requête :
POST /?appid={AppID}&c={CompanyID}&module=employee_list
Exemple de réponse :
{
"success": 1,
"employees": [
{"id": "001", "name": "Alice Johnson"},{"id": "002", "name": "Mark Smith"}
]
}
absence_list
Récupère les absences des employés pour une période donnée.
URL du point de terminaison :
<URL API>/response_json.asp
Paramètres supplémentaires :
StartDate – date de début de la période EndDate – date de fin de la période
Exemple de requête :
POST /?appid={AppID}&c={CompanyID}&module=absence_list&StartDate=2025-09-01&EndDate=2025-09-30
Exemple de réponse :
{
"success": 1,
"absences": [
{"employee": "John Doe", "from": "2025-09-10", "to": "2025-09-12", "type": "Vacances"}
]
}
payroll_list
Récupère les données de paie pour une période donnée.
URL du point de terminaison :
<URL API>/response_json.asp
Paramètres supplémentaires :
StartDate – date de début de la période EndDate – date de fin de la période
Exemple de requête :
POST /?appid={AppID}&c={CompanyID}&module=payroll_list&StartDate=2025-09-01&EndDate=2025-09-15
Exemple de réponse :
{
"success": 1,
"payroll": [
{"employee": "Anne Robinson", "totalRT": 40, "totalOT": 5},
{"employee": "Sam Smith", "totalRT": 38, "totalOT": 0}
]
}
qui_travail
Récupère la liste de tous les employés à l’horaire aujourd’hui.
URL du point de terminaison :
<URL API>/response_json.asp
Paramètres supplémentaires :
Date – date pour laquelle consulter les horaires
Exemple de requête :
POST /?appid={AppID}&c={CompanyID}&module=who_is_working&Date=2025-09-25
Exemple de réponse :
{
"schedules": [
{
"employeeName": "Chester Field",
"departmentName": "Assemblage de widgets",
"departmentCode": "WA",
"shiftStartDate": "28 octobre 2025",
"shiftStartTime": "7:00",
"shiftEndDate": "28 octobre 2025",
"shiftEndTime": "16:30",
"status": "En service"
}
],
"displayDate": "28 octobre 2025"
}
7. Paramètres optionnels
file – Joindre une photo aux actions de poinçon lat/lng – Transmettre les coordonnées de géolocalisation ip – Restreindre les actions aux adresses IP enregistrées reason – Fournir les raisons « Watchdog » lorsque requis
8. Authentification unique (SSO)
TimeWellScheduled prend en charge l’authentification unique (SSO), permettant aux utilisateurs d’ouvrir une session directement à l’aide d’une URL sécurisée. Les paramètres requis sont :
appid, c, userEmail, timestamp et hash.
Communiquez avec le soutien technique pour confirmer l’URL de votre centre de données.
9. Gestion des erreurs
Les réponses de l’API incluent un indicateur de succès ainsi que des messages descriptifs.
success = 1 → Requête effectuée avec succès
success = 0 → Erreur (consultez le message ou la réponse Watchdog pour obtenir plus de détails)
10. Soutien
Si vous rencontrez des problèmes :
Courriel : support@wordpress-1368217-6485904.cloudwaysapps.com
Téléphone : 1-877-689-7977