2. Ouvrir l’événement (le plan apparaît)

POST/api/v1/public/booking-sessions
Explication

En langage simple : « débloquer ce match/concert ». Envoyez seulement le numéro d’événement + le code événement. La réponse contient zones/sections + comptes. map.seats est [] ici (évite les timeouts) — chargez les sièges à l’étape 3 avec section_id. Gardez le numéro de session.

Payload / requête

À envoyer : event_id (numéro) et access_code (code événement). Rien d’autre.

{
  "event_id": "8",
  "access_code": "YOUR_EVENT_SECRET"
}
Réponse

Événement ouvert — zones/sections + counts ; seats[] vide volontairement

{
  "success": true,
  "message": "Booking session created",
  "data": {
    "session_id": "6e5e5b33-ab5c-40da-b9f0-19bec7da55dd",
    "event_id": "8",
    "owner_ref": "YOUR_PARTNER_CODE-user-42",
    "status": "ACTIVE",
    "expires_at": "2026-09-04T13:30:00.000Z",
    "requires_access_code": true,
    "event": {
      "id": "8",
      "title": "Horoya AC — Hafia FC",
      "min_price": 35000,
      "currency": "GNF",
      "pricing": {
        "currency": "GNF",
        "min_price": 35000,
        "zones": [
          { "name": "Tribune Sud", "code": "TRIB-SUD", "price": 40000 }
        ]
      },
      "availability": { "status": "available", "remaining": 18894 }
    },
    "map": {
      "event_id": "8",
      "zones": [{ "id": "7", "name": "Tribune Sud", "sales_price_num": 40000, "sales_available_seats": 4833 }],
      "sections": [{ "id": "49", "zone_id": "7", "price": 40000 }],
      "seats": []
    },
    "availability": {
      "event_id": "8",
      "scope": "overview",
      "generated_at": "2026-09-04T13:00:00.000Z",
      "revision": "2026-09-04T13:00:00.000Z",
      "sold_out": false,
      "remaining": 18894,
      "zones": [{ "id": "7", "remaining": 4833 }],
      "sections": [{ "id": "49", "zone_id": "7", "code": "TS-01", "name": "Tribune Sud — Section 01", "remaining": 260 }]
    },
    "holds": []
  }
}
Exemple de code
const body = {
  "event_id": "8",
  "access_code": "YOUR_EVENT_SECRET"
};
const raw = JSON.stringify(body);
const res = await fetch("https://book.stadepassgn.com/api/v1/public/booking-sessions", {
  method: "POST",
  headers: {
    "content-type": "application/json",
    "x-partner-code": process.env.PARTNER_CODE || "YOUR_PARTNER_CODE",
  },
  body: raw,
});
const json = await res.json();

Essayer cette API (démo)

Playground local — réponse d’exemple en GNF. Pas d’appel réseau réel.

Démo uniquement. En production, signez chaque requête (voir Auth sur l’accueil).