API (Technique)
Platform API Keys
Créer, lister, révoquer (dlk_*).

API — Platform API Keys

Préfixe: /api/api-keys

Les Platform API keys sont utilisées pour sécuriser certains endpoints “public server-to-server” (ex: création de session KYC). Elles sont distinctes des clés Marketplace (Gateway).

Important:

  • Gestion via le dashboard (middleware authenticate) — ce n’est pas une auth par API key.
  • Le secret (token) est renvoyé uniquement lors de la création.

GET /api/api-keys

Liste toutes les clés de la company de l’utilisateur.

Response (200)

FieldTypeDescription
apiKeysarrayListe des clés. Chaque entrée inclut scopes et activeNow.

Errors

StatusBody
500{ "error": "Failed to list API keys" }

POST /api/api-keys

Crée une clé et renvoie le secret en clair.

Body (JSON)

FieldTypeRequiredNotes
namestringyesTrim, non vide.
scopesstring[]noDefault ['*'], max 100.
expiresAtstring (ISO)noSi invalide: 400.

Response (201)

FieldTypeDescription
apiKeyobjectMétadonnées (sans secret).
tokenstringSecret (préfixe dlk_...).

Errors

StatusBodyWhen
400{ "error": "name is required" }name manquant.
400{ "error": "expiresAt must be an ISO date string" }expiresAt invalide.
409{ "error": "Please retry (key collision)" }Collision très rare.
500{ "error": "Failed to create API key" }Erreur serveur.

GET /api/api-keys/stats

Retourne un agrégat simple (total, actives, etc.).

Response (200)

FieldType
stats.totalnumber
stats.activenumber
stats.revoked_or_disablednumber
stats.used_last_24hnumber

Errors

StatusBody
500{ "error": "Failed to load API key stats" }

POST /api/api-keys/:id/revoke

Désactive une clé et marque revoked_at.

Response (200)

{ "ok": true }

Errors

StatusBodyWhen
404{ "error": "API key not found" }Clé inconnue pour cette company.
500{ "error": "Failed to revoke key" }Erreur serveur.

Utilisation (authenticateApiKey)

Headers acceptés:

  • x-api-key: <dlk_...>
  • Authorization: Bearer <dlk_...>

Exemple (KYC):

curl -X POST "https://<your-backend-host>/api/kyc/public/sessions" -H "Content-Type: application/json" -H "x-api-key: dlk_<...>" -d '{"instanceKey":"<public_instance_key>","mode":"prod"}'