3. Ouvrir une tribune / section
GET
/api/v1/public/booking-sessions/6e5e5b33-ab5c-40da-b9f0-19bec7da55dd?section_id=49Explication
En langage simple : « montrer les places de cette zone ». Choisissez une section sur le plan, puis demandez ses sièges. Prenez seulement ceux marqués disponibles (available).
Payload / requête
Indiquez section_id (numéro de la section sur le plan).
(aucun body)
Réponse
Places de la section — détail type places-restantes (sans qr_code : le QR n’existe qu’après achat). Utilisez id / place_id pour le hold.
{
"success": true,
"message": "Booking session",
"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", "currency": "GNF" },
"map": {
"event_id": "8",
"zones": [{ "id": "7", "name": "Tribune Ouest", "code": "TRIB-OUEST", "display_color": "#8B4513" }],
"sections": [{ "id": "49", "zone_id": "7", "code": "To-03", "price": 40000 }],
"seats": [
{
"id": "75977",
"zone_id": "7",
"section_id": "49",
"seat_code": "W13",
"row": 23,
"number": 13,
"status": "available",
"price": 40000,
"place_id": 75977,
"place": "W13",
"numero_place": 13,
"rangee": "W",
"secteur": "To-03",
"porte": { "code": "T01", "nom": "Tribune Ouest 1", "libelle": "Ouest 1" },
"tribune": { "code": "TRIB-OUEST", "nom": "Tribune Ouest", "couleur": "#8B4513" },
"route": ["Tribune Ouest 1", "To-03", "W", "W13"],
"route_texte": "Tribune Ouest 1 → To-03 → W → W13",
"code_litige": "STD-8-S75977"
}
]
},
"availability": {
"event_id": "8",
"scope": "section",
"section_id": "49",
"generated_at": "2026-09-04T13:01:00.000Z",
"revision": "2026-09-04T13:01:00.000Z",
"sold_out": false,
"remaining": 260,
"zones": [],
"sections": [{ "id": "49", "zone_id": "7", "remaining": 260 }],
"seats": [
{ "id": "75977", "status": "available", "seat_code": "W13" },
{ "id": "75978", "status": "available", "seat_code": "W14" },
{ "id": "75979", "status": "held", "seat_code": "W15" },
{ "id": "75980", "status": "sold", "seat_code": "W16" }
]
},
"holds": []
}
}
Exemple de code
const res = await fetch("https://book.stadepassgn.com/api/v1/public/booking-sessions/6e5e5b33-ab5c-40da-b9f0-19bec7da55dd?section_id=49", {
method: "GET",
headers: {
"x-partner-code": process.env.PARTNER_CODE || "YOUR_PARTNER_CODE",
},
});
const json = await res.json();import requests
res = requests.get(
"https://book.stadepassgn.com/api/v1/public/booking-sessions/6e5e5b33-ab5c-40da-b9f0-19bec7da55dd?section_id=49",
headers={"x-partner-code": PARTNER_CODE},
)
json = res.json()req, _ := http.NewRequest("GET", "https://book.stadepassgn.com/api/v1/public/booking-sessions/6e5e5b33-ab5c-40da-b9f0-19bec7da55dd?section_id=49", nil)
req.Header.Set("x-partner-code", partnerCode)
res, _ := http.DefaultClient.Do(req)using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-partner-code", partnerCode);
var json = await client.GetStringAsync("https://book.stadepassgn.com/api/v1/public/booking-sessions/6e5e5b33-ab5c-40da-b9f0-19bec7da55dd?section_id=49");HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://book.stadepassgn.com/api/v1/public/booking-sessions/6e5e5b33-ab5c-40da-b9f0-19bec7da55dd?section_id=49"))
.header("x-partner-code", partnerCode)
.GET().build();
HttpResponse<String> res = client.send(req, BodyHandlers.ofString());
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).
200 OK · demo