{
    "openapi": "3.1.0",
    "info": {
        "title": "API Franchify",
        "version": "v1",
        "description": "API de lecture des données de votre réseau. Une clé par intégration, cloisonnée à votre réseau, limitée aux domaines que vous cochez.\n\n**Lecture seule.** Aucun verbe d'écriture n'existe : toute méthode autre que GET répond 405.\n\n**Pagination par curseur.** Suivez `links.next` jusqu'à ce qu'il disparaisse. Ne construisez pas les curseurs vous-même.\n\n**Synchronisation incrémentale.** Toutes les ressources acceptent `updated_since` : ne retéléchargez pas ce que vous avez déjà. Pensez à encoder le `+` du décalage horaire (`%2B`), sinon il devient une espace et la date part de travers.\n\n**Quotas.** Par clé, annoncés dans les en-têtes `X-RateLimit-*`. Un dépassement répond 429 avec `Retry-After`."
    },
    "servers": [
        {
            "url": "https://api.ldde.fr/v1"
        }
    ],
    "security": [
        {
            "bearerAuth": []
        }
    ],
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "description": "Clé émise depuis Paramètres → API. En-tête : Authorization: Bearer <clé>."
            }
        },
        "responses": {
            "Unauthenticated": {
                "description": "Clé absente, inconnue, expirée ou révoquée (`key_missing`, `key_invalid`, `key_expired`, `key_revoked`)."
            },
            "ScopeMissing": {
                "description": "La clé n'a pas le périmètre exigé (`scope_missing`). Le périmètre attendu est dans `error.required_scope`."
            },
            "NotFound": {
                "description": "Ressource inexistante, ou appartenant à un autre réseau (`not_found`)."
            },
            "BadParameter": {
                "description": "Filtre inconnu ou tri impossible (`filter_unknown`, `sort_unknown`). La liste des valeurs acceptées est dans la réponse."
            },
            "RateLimited": {
                "description": "Quota dépassé (`rate_limited`). Attendre `Retry-After` secondes."
            }
        }
    },
    "tags": [
        {
            "name": "Réseau",
            "description": "Agences, zones, couverture géographique."
        },
        {
            "name": "Réputation",
            "description": "Fiches Google, notes, avis publics, historique."
        },
        {
            "name": "Statistiques",
            "description": "Agrégats d'activité et séries temporelles du réseau."
        },
        {
            "name": "Notation",
            "description": "Notes des agences, classement, distribution des grades."
        },
        {
            "name": "Satisfaction",
            "description": "Baromètre agrégé, sans verbatim nominatif."
        },
        {
            "name": "Publicité",
            "description": "Comptes Google Ads, dépenses et conversions par agence."
        },
        {
            "name": "Commercial",
            "description": "Opportunités, devis, factures, règlements."
        },
        {
            "name": "Chantiers",
            "description": "Chantiers, volumes traités, déchets déclarés."
        },
        {
            "name": "Redevances",
            "description": "Calculs et factures de redevances du siège."
        },
        {
            "name": "Agenda",
            "description": "Rendez-vous et réunions."
        },
        {
            "name": "Communication",
            "description": "Actualités publiées au réseau et taux de lecture agrégés."
        },
        {
            "name": "Emploi",
            "description": "Offres d'emploi publiées par les agences du réseau."
        },
        {
            "name": "Boutique",
            "description": "Catalogue de la centrale d'achat et commandes des agences."
        },
        {
            "name": "Savoir-faire",
            "description": "Articles du savoir-faire, leurs rubriques et leurs versions."
        },
        {
            "name": "Formation",
            "description": "Parcours de formation et avancement par agence."
        },
        {
            "name": "Conformité",
            "description": "Exigences du réseau, état des documents obligatoires et échéances par agence."
        },
        {
            "name": "Flotte",
            "description": "Parc de véhicules, affectations aux agences et journal d'entretien."
        },
        {
            "name": "Marque et supports",
            "description": "Bibliothèque de marque, gabarits de supports et productions des agences."
        },
        {
            "name": "Leads",
            "description": "Demandes entrantes, avec les coordonnées des prospects. Contient des données personnelles."
        },
        {
            "name": "Recrutement",
            "description": "Candidatures de franchisés, avec les coordonnées des candidats. Contient des données personnelles."
        },
        {
            "name": "Clients",
            "description": "Fiches clients des agences, coordonnées comprises. Contient des données personnelles."
        },
        {
            "name": "Finance",
            "description": "Synthèses financières mensuelles figées : chiffre d'affaires, charges, marge, redevances, encours par agence. Contient des données personnelles."
        }
    ],
    "paths": {
        "/me": {
            "get": {
                "summary": "Identité de la clé",
                "description": "Le réseau, les périmètres accordés et les quotas restants. C'est l'appel à faire en premier pour valider une intégration.",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/meta": {
            "get": {
                "summary": "Contrat servi",
                "description": "Version, catalogue des périmètres, style de pagination.",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/resources": {
            "get": {
                "summary": "Catalogue des ressources",
                "description": "Ce que la clé peut lire, avec les champs, filtres et tris de chaque ressource.",
                "tags": [
                    "Service"
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/acquisition/funnel": {
            "get": {
                "summary": "Entonnoir d'acquisition par canal",
                "description": "Lead → devis → accepté → facturé → payé, par canal et par agence, avec les taux de passage et le chiffre d'affaires encaissé.",
                "tags": [
                    "Publicité"
                ],
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "description": "Défaut : il y a trente jours."
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "description": "Défaut : aujourd'hui. Période limitée à deux ans."
                    },
                    {
                        "name": "franchisee",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Restreindre à une agence."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/acquisition/ads-summary": {
            "get": {
                "summary": "Performance publicitaire consolidée",
                "description": "Coût, clics, impressions et conversions sur la période, réseau et par agence. Les taux (CTR, CPC, CPA) sont recalculés sur la période demandée, jamais moyennés depuis les valeurs quotidiennes.\n\n**Le bloc `attributed` porte le vrai retour publicitaire** : le chiffre d'affaires réellement facturé aux clients venus des annonces, compté à partir de la date de leur demande, dans ses trois bases (signé, facturé, encaissé) et avec le seuil de rentabilité du réseau.\n\n`attributed.ad_calls` compte les appels de plus de 30 secondes déclenchés par une annonce, prouvés par Google (numéros de transfert des extensions d'appel), et `attributed.ad_calls_unlinked` ceux d'entre eux qu'aucune demande n'a suivis. Ce sont des ÉVÉNEMENTS, jamais des euros : aucun revenu ne s'y attache et ils n'entrent dans aucun `roas`. Quand `ad_calls_unlinked` domine, le retour publicitaire est sous-évalué.\n\n**`roas` est déprécié.** Il vaut la valeur que Franchify remonte à Google pour piloter ses enchères, divisée par la dépense — pas un retour sur investissement. Le même nombre est désormais servi sous `declared_value_ratio`, qui dit ce qu'il est. Sur mai-août 2026 il vaut 6,42 quand le retour réel est de 0,84. Lisez `attributed.roas`.",
                "tags": [
                    "Publicité"
                ],
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "description": "Défaut : il y a trente jours."
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "description": "Défaut : aujourd'hui. Période limitée à deux ans."
                    },
                    {
                        "name": "franchisee",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Restreindre à une agence."
                    },
                    {
                        "name": "basis",
                        "in": "query",
                        "description": "La base de revenu du bloc `attributed` : `invoiced` (défaut), `paid` ou `signed`. Les trois sont de toute façon servies côte à côte ; ce paramètre choisit seulement laquelle porte la clé `roas`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "invoiced",
                                "paid",
                                "signed"
                            ]
                        }
                    },
                    {
                        "name": "view",
                        "in": "query",
                        "description": "Le point de vue du bloc `attributed` : `payer` (défaut, l'agence qui a payé le clic) ou `recipient` (celle qui a reçu la demande). Sur le réseau les deux donnent le même chiffre ; agence par agence ils diffèrent, et c'est ce que la porosité du réseau veut dire.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "payer",
                                "recipient"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/franchisees": {
            "get": {
                "summary": "Les agences du réseau : identité commerciale et implantation.",
                "tags": [
                    "Réseau"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "postal_code",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "active",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "company_name",
                                "-company_name",
                                "city",
                                "-city",
                                "postal_code",
                                "-postal_code",
                                "joined_at",
                                "-joined_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : company_name."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/franchisees/{id}": {
            "get": {
                "summary": "Un enregistrement de « franchisees »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Réseau"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/zones": {
            "get": {
                "summary": "Les zones de territoire, attribuées ou libres.",
                "tags": [
                    "Réseau"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "assigned",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "available",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "code",
                                "-code",
                                "name",
                                "-name",
                                "population",
                                "-population",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : code."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/zones/{id}": {
            "get": {
                "summary": "Un enregistrement de « zones »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Réseau"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/candidates": {
            "get": {
                "summary": "Les candidatures de franchisés : origine, zone visée, étape, apport déclaré.",
                "tags": [
                    "Recrutement"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "stage",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "source",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "zone",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "lost_reason",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "min_funds",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "converted",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "created_at",
                                "-created_at",
                                "next_action_at",
                                "-next_action_at",
                                "personal_funds",
                                "-personal_funds",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -created_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/candidates/{id}": {
            "get": {
                "summary": "Un enregistrement de « candidates »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Recrutement"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/locations": {
            "get": {
                "summary": "Les fiches Google Business du réseau, avec leur note et leur volume d'avis.",
                "tags": [
                    "Réputation"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "postal_code",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "min_rating",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "with_reviews",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "name",
                                "-name",
                                "city",
                                "-city",
                                "average_rating",
                                "-average_rating",
                                "total_reviews",
                                "-total_reviews",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -total_reviews."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/locations/{id}": {
            "get": {
                "summary": "Un enregistrement de « locations »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Réputation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/reviews": {
            "get": {
                "summary": "Les avis publics des fiches du réseau, avec la réponse publiée le cas échéant.",
                "tags": [
                    "Réputation"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "location",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "min_rating",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "max_rating",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "replied",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "review_date",
                                "-review_date",
                                "rating",
                                "-rating",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -review_date."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/reviews/{id}": {
            "get": {
                "summary": "Un enregistrement de « reviews »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Réputation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-accounts": {
            "get": {
                "summary": "Les comptes Google Ads du réseau et leur état de synchronisation.",
                "tags": [
                    "Publicité"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "active",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "name",
                                "-name",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : name."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-accounts/{id}": {
            "get": {
                "summary": "Un enregistrement de « ads-accounts »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Publicité"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-daily-stats": {
            "get": {
                "summary": "Les performances publicitaires jour par jour, par agence : coût, clics, conversions, ROAS.",
                "tags": [
                    "Publicité"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "account",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "date",
                                "-date",
                                "cost",
                                "-cost",
                                "clicks",
                                "-clicks",
                                "conversions",
                                "-conversions",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -date."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-daily-stats/{id}": {
            "get": {
                "summary": "Un enregistrement de « ads-daily-stats »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Publicité"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-conversions": {
            "get": {
                "summary": "Les conversions hors ligne remontées à Google Ads, du lead à la vente, avec leur valeur réelle.",
                "tags": [
                    "Publicité"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "stage",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "failed",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "conversion_at",
                                "-conversion_at",
                                "value",
                                "-value",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -conversion_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-conversions/{id}": {
            "get": {
                "summary": "Un enregistrement de « ads-conversions »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Publicité"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-calls": {
            "get": {
                "summary": "Les appels téléphoniques venus d'une annonce, et leur rapprochement avec un lead qualifié.",
                "tags": [
                    "Publicité"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "qualified",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "answered",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "call_start_at",
                                "-call_start_at",
                                "duration_seconds",
                                "-duration_seconds",
                                "matched_value",
                                "-matched_value",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -call_start_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ads-calls/{id}": {
            "get": {
                "summary": "Un enregistrement de « ads-calls »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Publicité"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/monthly-stats": {
            "get": {
                "summary": "L'activité de chaque agence, mois par mois : chiffre d'affaires, devis, opportunités, encaissements.",
                "tags": [
                    "Statistiques"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "month",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "year",
                                "-year",
                                "month",
                                "-month",
                                "revenue",
                                "-revenue",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -year."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/monthly-stats/{id}": {
            "get": {
                "summary": "Un enregistrement de « monthly-stats »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Statistiques"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/opportunities": {
            "get": {
                "summary": "Les affaires en cours et closes, leur étape de pipeline et leur montant.",
                "tags": [
                    "Commercial"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "won",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "min_amount",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "amount",
                                "-amount",
                                "closed_at",
                                "-closed_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -updated_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/opportunities/{id}": {
            "get": {
                "summary": "Un enregistrement de « opportunities »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Commercial"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/quotations": {
            "get": {
                "summary": "Les devis émis par les agences, avec leur montant et leur sort.",
                "tags": [
                    "Commercial"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "channel",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "signed",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "dormant",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "min_amount",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "quote_date",
                                "-quote_date",
                                "total_ht",
                                "-total_ht",
                                "total_ttc",
                                "-total_ttc",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -quote_date."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/quotations/{id}": {
            "get": {
                "summary": "Un enregistrement de « quotations »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Commercial"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/invoices": {
            "get": {
                "summary": "Les factures des agences, leur encaissement et leur canal d'origine.",
                "tags": [
                    "Commercial"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "paid",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "channel",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "invoice_date",
                                "-invoice_date",
                                "total_ttc",
                                "-total_ttc",
                                "paid_date",
                                "-paid_date",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -invoice_date."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/invoices/{id}": {
            "get": {
                "summary": "Un enregistrement de « invoices »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Commercial"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/payments": {
            "get": {
                "summary": "Les règlements encaissés, rattachés à leur facture.",
                "tags": [
                    "Commercial"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "payment_date",
                                "-payment_date",
                                "amount",
                                "-amount",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -payment_date."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/payments/{id}": {
            "get": {
                "summary": "Un enregistrement de « payments »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Commercial"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/worksites": {
            "get": {
                "summary": "Les chantiers : planification, volumes traités, montants. Sans les coordonnées du client.",
                "tags": [
                    "Chantiers"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "scheduled_start_at",
                                "-scheduled_start_at",
                                "actual_volume_m3",
                                "-actual_volume_m3",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -scheduled_start_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/worksites/{id}": {
            "get": {
                "summary": "Un enregistrement de « worksites »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Chantiers"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/waste-movements": {
            "get": {
                "summary": "Le registre des déchets : quantités déposées, converties en poids et en volume.",
                "tags": [
                    "Chantiers"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "worksite",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "moved_at",
                                "-moved_at",
                                "weight_kg",
                                "-weight_kg",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -moved_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/waste-movements/{id}": {
            "get": {
                "summary": "Un enregistrement de « waste-movements »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Chantiers"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/vehicles": {
            "get": {
                "summary": "Le parc de véhicules du réseau : identité technique, état, agence qui l'exploite.",
                "tags": [
                    "Flotte"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "owner_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "in_fleet",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "registration",
                                "-registration",
                                "status",
                                "-status",
                                "mileage",
                                "-mileage",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : registration."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/vehicles/{id}": {
            "get": {
                "summary": "Un enregistrement de « vehicles »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Flotte"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/vehicle-assignments": {
            "get": {
                "summary": "Qui exploite quel véhicule, depuis quand et jusqu'à quand. Sans les loyers.",
                "tags": [
                    "Flotte"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "vehicle",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "start_at",
                                "-start_at",
                                "status",
                                "-status",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -start_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/vehicle-assignments/{id}": {
            "get": {
                "summary": "Un enregistrement de « vehicle-assignments »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Flotte"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/vehicle-events": {
            "get": {
                "summary": "Le journal d'un véhicule : entretiens, réparations, sinistres, immobilisations.",
                "tags": [
                    "Flotte"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "vehicle",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "occurred_at",
                                "-occurred_at",
                                "cost_ht",
                                "-cost_ht",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -occurred_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/vehicle-events/{id}": {
            "get": {
                "summary": "Un enregistrement de « vehicle-events »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Flotte"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ratings": {
            "get": {
                "summary": "Les notes des agences par période, avec le détail des critères.",
                "tags": [
                    "Notation"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "grade",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "period_end",
                                "-period_end",
                                "total_score",
                                "-total_score",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -period_end."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/ratings/{id}": {
            "get": {
                "summary": "Un enregistrement de « ratings »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Notation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/satisfaction-responses": {
            "get": {
                "summary": "Les retours clients, réduits à leur note et à leur sentiment. Sans identité ni verbatim.",
                "tags": [
                    "Satisfaction"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "sentiment",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "min_rating",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "responded_at",
                                "-responded_at",
                                "rating_overall",
                                "-rating_overall",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -responded_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/satisfaction-responses/{id}": {
            "get": {
                "summary": "Un enregistrement de « satisfaction-responses »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Satisfaction"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/royalty-calculations": {
            "get": {
                "summary": "Les redevances calculées par agence et par mois, de l'assiette au montant dû.",
                "tags": [
                    "Redevances"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "month",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "year",
                                "-year",
                                "month",
                                "-month",
                                "total_amount",
                                "-total_amount",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -year."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/royalty-calculations/{id}": {
            "get": {
                "summary": "Un enregistrement de « royalty-calculations »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Redevances"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/meetings": {
            "get": {
                "summary": "Les réunions et webinaires du réseau.",
                "tags": [
                    "Agenda"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "starts_at",
                                "-starts_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -starts_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/meetings/{id}": {
            "get": {
                "summary": "Un enregistrement de « meetings »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Agenda"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/rdv-bookings": {
            "get": {
                "summary": "Les créneaux de rendez-vous réservés, sans les coordonnées du prospect.",
                "tags": [
                    "Agenda"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "starts_at",
                                "-starts_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -starts_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/rdv-bookings/{id}": {
            "get": {
                "summary": "Un enregistrement de « rdv-bookings »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Agenda"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/job-offers": {
            "get": {
                "summary": "Les offres d'emploi publiées par les agences du réseau.",
                "tags": [
                    "Emploi"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "postal_code",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "contract_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "working_time",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "experience_level",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "remote",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "agency",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "published_at",
                                "-published_at",
                                "expires_at",
                                "-expires_at",
                                "title",
                                "-title",
                                "city",
                                "-city",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -published_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/job-offers/{id}": {
            "get": {
                "summary": "Un enregistrement de « job-offers »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Emploi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/announcements": {
            "get": {
                "summary": "Les actualités publiées au réseau, avec leurs compteurs de lecture.",
                "tags": [
                    "Communication"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "severity",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "requires_ack",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "published_at",
                                "-published_at",
                                "title",
                                "-title",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -published_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/announcements/{id}": {
            "get": {
                "summary": "Un enregistrement de « announcements »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Communication"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/kb-articles": {
            "get": {
                "summary": "Les articles publiés du savoir-faire, avec leur rubrique et leur version.",
                "tags": [
                    "Savoir-faire"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "requires_ack",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "title",
                                "-title",
                                "published_at",
                                "-published_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : title."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/kb-articles/{id}": {
            "get": {
                "summary": "Un enregistrement de « kb-articles »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Savoir-faire"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/training-progress": {
            "get": {
                "summary": "L'avancement des agences sur les parcours de formation.",
                "tags": [
                    "Formation"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "path",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "overdue",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "due_at",
                                "-due_at",
                                "completed_at",
                                "-completed_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -updated_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/training-progress/{id}": {
            "get": {
                "summary": "Un enregistrement de « training-progress »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Formation"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/compliance-requirements": {
            "get": {
                "summary": "Le référentiel des documents obligatoires exigés par le réseau.",
                "tags": [
                    "Conformité"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "applies_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "requires_proof",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "sort_order",
                                "-sort_order",
                                "code",
                                "-code",
                                "label",
                                "-label",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : sort_order."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/compliance-requirements/{id}": {
            "get": {
                "summary": "Un enregistrement de « compliance-requirements »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Conformité"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/compliance-items": {
            "get": {
                "summary": "L'état des documents obligatoires par agence : feu, période de validité, échéance.",
                "tags": [
                    "Conformité"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "requirement",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "subject_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "expiring_before",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "awaiting_review",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "valid_until",
                                "-valid_until",
                                "status",
                                "-status",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : valid_until."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/compliance-items/{id}": {
            "get": {
                "summary": "Un enregistrement de « compliance-items »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Conformité"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/customers": {
            "get": {
                "summary": "Les clients des agences, coordonnées comprises. Périmètre nominatif.",
                "tags": [
                    "Clients"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "postal_code",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "is_company",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "name",
                                "-name",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : name."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/customers/{id}": {
            "get": {
                "summary": "Un enregistrement de « customers »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Clients"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/leads": {
            "get": {
                "summary": "Les demandes entrantes, avec les coordonnées du prospect. Périmètre nominatif.",
                "tags": [
                    "Leads"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "channel",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "source",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "postal_code",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "received_at",
                                "-received_at",
                                "status",
                                "-status",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -received_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/leads/{id}": {
            "get": {
                "summary": "Un enregistrement de « leads »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Leads"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/finance-snapshots": {
            "get": {
                "summary": "La synthèse financière figée de chaque mois clos : chiffre d'affaires, charges, marge, redevances et encours, pour le réseau et pour chaque agence. Montants hors taxes.",
                "tags": [
                    "Finance"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "scope",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "period",
                                "-period",
                                "computed_at",
                                "-computed_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -period."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/finance-snapshots/{id}": {
            "get": {
                "summary": "Un enregistrement de « finance-snapshots »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Finance"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/dunning-actions": {
            "get": {
                "summary": "Les relances de factures impayées menées par les agences : nature du geste, résultat, promesse de paiement obtenue. Sans le contenu des notes.",
                "tags": [
                    "Commercial"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "invoice",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "customer",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "outcome",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "automatic",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "performed_at",
                                "-performed_at",
                                "promise_date",
                                "-promise_date",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -performed_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/dunning-actions/{id}": {
            "get": {
                "summary": "Un enregistrement de « dunning-actions »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Commercial"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/dunning-disputes": {
            "get": {
                "summary": "Les factures contestées par un client : ouverture, montant en jeu, issue. Sans le motif, qui est une note interne à l'agence.",
                "tags": [
                    "Commercial"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "invoice",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "customer",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "open",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "opened_at",
                                "-opened_at",
                                "resolved_at",
                                "-resolved_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -opened_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/dunning-disputes/{id}": {
            "get": {
                "summary": "Un enregistrement de « dunning-disputes »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Commercial"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/brand-assets": {
            "get": {
                "summary": "La bibliothèque de marque : ce qui existe, dans quelle catégorie, avec quels droits d'usage, et ce qui a été remplacé. Sans les fichiers eux-mêmes.",
                "tags": [
                    "Marque et supports"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "usage_rights",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "current",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "name",
                                "-name",
                                "category",
                                "-category",
                                "downloads_count",
                                "-downloads_count",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : name."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/brand-assets/{id}": {
            "get": {
                "summary": "Un enregistrement de « brand-assets »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Marque et supports"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/support-templates": {
            "get": {
                "summary": "Les gabarits de supports proposés aux agences : type, format, validation exigée. Sans la définition des blocs, qui décrit les zones verrouillées.",
                "tags": [
                    "Marque et supports"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "kind",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "format",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "active",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "name",
                                "-name",
                                "kind",
                                "-kind",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : name."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/support-templates/{id}": {
            "get": {
                "summary": "Un enregistrement de « support-templates »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Marque et supports"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/support-generations": {
            "get": {
                "summary": "Qui a produit quel support, quand, et où en est sa validation. C'est l'indicateur d'animation locale du réseau : une agence sans production est un signal.",
                "tags": [
                    "Marque et supports"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "template",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "created_at",
                                "-created_at",
                                "reviewed_at",
                                "-reviewed_at",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -created_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/support-generations/{id}": {
            "get": {
                "summary": "Un enregistrement de « support-generations »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Marque et supports"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/shop-products": {
            "get": {
                "summary": "Le catalogue de la centrale d'achat du réseau.",
                "tags": [
                    "Boutique"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "sort_order",
                                "-sort_order",
                                "name",
                                "-name",
                                "price_ht",
                                "-price_ht",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : sort_order."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/shop-products/{id}": {
            "get": {
                "summary": "Un enregistrement de « shop-products »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Boutique"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/shop-orders": {
            "get": {
                "summary": "Les commandes passées à la centrale, cloisonnées par agence.",
                "tags": [
                    "Boutique"
                ],
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "franchisee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": null
                    },
                    {
                        "name": "updated_since",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ne renvoie que ce qui a changé depuis cette date (ISO 8601)."
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "placed_at",
                                "-placed_at",
                                "shipped_at",
                                "-shipped_at",
                                "total_ht",
                                "-total_ht",
                                "updated_at",
                                "-updated_at",
                                "id",
                                "-id"
                            ]
                        },
                        "description": "Préfixer d'un « - » pour l'ordre décroissant. Défaut : -placed_at."
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    },
                    {
                        "name": "cursor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Repris tel quel depuis `links.next`."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/shop-orders/{id}": {
            "get": {
                "summary": "Un enregistrement de « shop-orders »",
                "description": "Répond 404 si l'enregistrement n'existe pas OU s'il appartient à un autre réseau : les deux cas sont indiscernables, à dessein.",
                "tags": [
                    "Boutique"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Succès"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthenticated"
                    },
                    "403": {
                        "$ref": "#/components/responses/ScopeMissing"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/BadParameter"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        }
    }
}