Espace développeurs

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

Liste les événements publiés de votre organisation.
{
  "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

Récupère le détail d'un événement (catégories de billets incluses).

POST /api/public/v1/scan

Active un billet pour un porteur de carte. Acceptez soit un 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

Vérifie qu'un token SEN1 est authentique et non expiré (sans activer aucun billet). Idéal pour les portails et plateformes partenaires.
GET /api/public/v1/card/verify?token=SEN1.xxx.111.aaaa
→ { "valid": true, "card_number": "SEN ...", "status": "active" }

Codes de réponse

  • 200 — Succès
  • 400 — Requête invalide
  • 401 — Clé manquante, invalide ou révoquée
  • 404 — Ressource introuvable / hors organisation
  • 500 — 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é.

ESM + CJSTypings .d.ts inclusZero-dep, tree-shakable

Installation

npm install @smart-event/sdk
# ou
bun add @smart-event/sdk

Exemple 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