2. Ouvrir l’événement (le plan apparaît)
POST
/api/v1/public/booking-sessionsExplication
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();import json, requests
body = { "event_id": "8", "access_code": "YOUR_EVENT_SECRET" }
raw = json.dumps(body)
res = requests.post(
"https://book.stadepassgn.com/api/v1/public/booking-sessions",
data=raw,
headers={
"content-type": "application/json",
"x-partner-code": PARTNER_CODE,
},
)
data = res.json()body := []byte(`{ "event_id": "8", "access_code": "YOUR_EVENT_SECRET" }`)
req, _ := http.NewRequest("POST", "https://book.stadepassgn.com/api/v1/public/booking-sessions", bytes.NewReader(body))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-partner-code", partnerCode)
res, _ := http.DefaultClient.Do(req)var raw = @"{ ""event_id"": ""8"", ""access_code"": ""YOUR_EVENT_SECRET"" }";
using var client = new HttpClient();
var req = new HttpRequestMessage(HttpMethod.Post, "https://book.stadepassgn.com/api/v1/public/booking-sessions");
req.Content = new StringContent(raw, Encoding.UTF8, "application/json");
req.Headers.Add("x-partner-code", partnerCode);
var res = await client.SendAsync(req);String raw = "{ \"event_id\": \"8\", \"access_code\": \"YOUR_EVENT_SECRET\" }";
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://book.stadepassgn.com/api/v1/public/booking-sessions"))
.header("Content-Type", "application/json")
.header("x-partner-code", partnerCode)
.POST(HttpRequest.BodyPublishers.ofString(raw))
.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