{
    "name": "TimeClock API",
    "version": "1.0.0",
    "description": "API de pointage des employés (entrée\/sortie\/pause\/repas) pour BusinessMe",
    "base_url": "https:\/\/modules.businessme.app\/timeclock\/api",
    "endpoints": {
        "pos": {
            "base_url": "https:\/\/modules.businessme.app\/timeclock\/api\/pos",
            "authentication": "Headers id-retail (requis) et id-employee",
            "description": "App iOS (outil de travail) : pointage, corrections manager, consultation de ses propres données",
            "routes": {
                "GET \/entries?from=YYYY-MM-DD&to=YYYY-MM-DD": "Pointages du retail + statut courant par employé",
                "POST \/punch": "Enregistrer un pointage live { employee_id, type, client_uuid? }",
                "POST \/entry": "Ajouter un pointage manuel (roles.timeclock_edit) { employee_id, type, punched_at, note }",
                "PUT \/entry\/{id}": "Corriger un pointage (roles.timeclock_edit) { type?, punched_at?, note }",
                "DELETE \/entry\/{id}": "Supprimer un pointage (roles.timeclock_edit)",
                "GET \/periods": "Périodes de référence",
                "GET \/balance\/{employee_id}": "Son propre compteur (id-employee uniquement)",
                "GET \/planning?from=&to=": "Son propre planning",
                "GET \/absences?from=&to=": "Ses propres absences"
            }
        },
        "admin": {
            "base_url": "https:\/\/modules.businessme.app\/timeclock\/api\/admin",
            "authentication": "Dashboard web uniquement, serveur à serveur : X-TimeClock-Key, id-retail, id-employee (auteur)",
            "routes": {
                "GET \/entries, POST \/entry, PUT|DELETE \/entry\/{id}": "Pointages : consultation et corrections",
                "GET|PUT \/settings": "Paramètres du temps de travail (voir ANNUALISATION.md)",
                "GET \/contracts, POST \/contract, PUT|DELETE \/contract\/{id}": "Contrats de temps de travail",
                "GET \/periods, POST \/period, PUT|DELETE \/period\/{id}": "Périodes de référence",
                "GET \/balances?period_id=&date=": "Compteurs (objectif, réalisé, HS, déficit)",
                "GET \/balance\/{employee_id}?period_id=&date=&detail=weeks|days": "Compteur détaillé d'un employé",
                "GET \/compliance?from=&to=&employee_id=": "Alertes de conformité et anomalies de pointage",
                "GET|PUT|DELETE \/planning, POST \/planning\/generate, POST \/planning\/copy": "Planning prévisionnel (jour, semaine type, copie)",
                "GET \/absences, POST \/absence, PUT|DELETE \/absence\/{id}": "Absences (CP, maladie, formation…)",
                "GET \/adjustments, POST \/adjustment, DELETE \/adjustment\/{id}": "Ajustements du compteur",
                "POST \/period\/{id}\/close, POST \/period\/{id}\/reopen": "Clôture (photo figée, verrouillage) et réouverture motivée",
                "GET \/export?period_id=&month=YYYY-MM&format=json|csv": "Récapitulatif mensuel pour la paie",
                "GET \/holidays?year=, POST \/holidays\/apply": "Jours fériés français (+ Alsace-Moselle)"
            }
        }
    }
}