2. Open the event (map appears)

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

In plain words: “unlock this match/concert.” Send only the event number + your event code. The reply has zones/sections + counts. map.seats is [] here (avoids timeouts) — load seats in step 3 with section_id. Keep the session id.

Payload / request

Send: event_id (number) and access_code (event code). Nothing else.

{
  "event_id": "8",
  "access_code": "YOUR_EVENT_SECRET"
}
Response

Event opened — zones/sections + counts; seats[] empty on purpose

{
  "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": []
  }
}
Code example
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();

Try this API (demo)

Local playground — sample GNF response. No real network call.

Demo only. In production, sign every request (see Auth on the home page).