L'API Smart Event Network
Intégrez la Smart Event Card et le réseau Smart Event dans votre propre plateforme. API REST, authentifiée par clés sen_live_, hébergée à la racine de chaque déploiement.
Clés API par organisation
Générées depuis Smart Event Studio. Chaque appel est signé, audité, et limité à votre plateforme.
Scopes granulaires
Chaque clé est limitée (events:read, tickets:activate, cards:verify, webhooks:read, admin).
Webhooks + sandbox
Notifications HTTPS signées (HMAC) sur activation / annulation. Clés sen_test_ pour tester.
Authentification
Toutes les requêtes nécessitent un header Authorization avec votre clé sen_live_. Générez vos clés depuis Smart Event Studio → API.
curl https://api.smartevent.network/api/public/v1/events \
-H "Authorization: Bearer sen_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"GET /api/public/v1/events
{
"data": [
{
"id": "…",
"title": "Afro Night Lagos",
"starts_at": "2026-08-12T20:00:00Z",
"city": "Lagos",
"ticket_categories": [{ "id": "…", "name": "VIP", "price": 25000 }]
}
]
}GET /api/public/v1/events/:id
POST /api/public/v1/scan
card_number brut (saisie manuelle), soit un token SEN1 signé scanné depuis l'app du participant.POST /api/public/v1/scan
{
"event_id": "uuid-evt",
"token": "SEN1.b64card.exp.sig"
}POST /api/public/v1/scan
{
"event_id": "uuid-evt",
"card_number": "SEN 1234 5678 9012"
}GET /api/public/v1/card/verify
GET /api/public/v1/card/verify?token=SEN1.xxx.111.aaaa
→ { "valid": true, "card_number": "SEN ...", "status": "active" }Codes de réponse
200— Succès400— Requête invalide401— Clé manquante, invalide ou révoquée404— Ressource introuvable / hors organisation500— Erreur serveur
Documentation interactive (Swagger)
Explorez et testez chaque endpoint dans votre navigateur, requêtes signées en direct avec votre clé.
SDK officiel @smart-event/sdk
Le SDK TypeScript officiel — browsers, Node 18+, Deno, Bun, Cloudflare Workers et React Native. Auth Bearer, idempotence automatique, vérification HMAC des webhooks, types complets, sandbox & live à partir du préfixe de clé.
Installation
npm install @smart-event/sdk
# ou
bun add @smart-event/sdkExemple complet — vérifier une carte puis activer un billet
import { SmartEventClient, SmartEventError } from "@smart-event/sdk";
const sen = new SmartEventClient({
apiKey: process.env.SEN_API_KEY!, // sen_live_… ou sen_test_…
});
console.log(sen.env); // → "live" | "sandbox"
// 1. Vérifier la Smart Event Card scannée à l'entrée
const card = await sen.cards.verify(qrToken);
if (!card.valid) throw new Error(card.reason ?? "card_invalid");
// 2. Activer le billet — Idempotency-Key généré automatiquement
try {
const scan = await sen.tickets.scan({
ticketId: card.card_id!,
scannerId: "scn_main_01",
gate: "VIP-2",
occurredAt: new Date().toISOString(),
});
console.log(scan.status, scan.scanned_at);
} catch (err) {
if (err instanceof SmartEventError) {
// 409 = déjà utilisé, 410 = expiré, 422 = validation, 429 = rate limit
console.error(err.status, err.code, err.requestId);
}
}Vérification de signature webhook
import { verifyWebhookSignature } from "@smart-event/sdk";
export async function POST(req: Request) {
const rawBody = await req.text();
const ok = await verifyWebhookSignature({
rawBody,
signature: req.headers.get("x-sen-signature") ?? "",
secret: process.env.SEN_WEBHOOK_SECRET!,
});
if (!ok) return new Response("Invalid signature", { status: 401 });
// ... traiter l'événement
}Voir aussi les exemples React Native & Dart et la référence OpenAPI interactive.
Vous n'avez pas encore de clé ?
Créez une organisation depuis Smart Event Studio pour générer vos premières clés API.
Accéder à Smart Event Studio