API REST

Authentification

Choisissez une clé API personnelle ou OAuth 2.1 avec PKCE.

Utilisez une clé API personnelle pour vos propres scripts. Utilisez OAuth pour une application agissant pour d’autres clients NinjaBuy, y compris les clients MCP.

OAuth 2.1

Utilisez le flux de code d'autorisation avec PKCE S256. REST et MCP acceptent le même jeton d'accès OAuth NinjaBuy. Chaque jeton agit pour le compte qui s'est connecté et a approuvé l'accès ; vous ne pouvez pas choisir un autre compte dans le corps de la requête.

Tous les points de terminaison OAuth utilisent l’origine https://www.ninjabuy.com. Chemins de découverte et d’autorisation :

Découverte OAuth · Découverte de la ressource MCP

POST /api/auth/mcp/register
GET  /api/auth/mcp/authorize
POST /api/auth/mcp/token
  1. Enregistrez votre client avec POST /api/auth/mcp/register. Un client public envoie du JSON avec client_name, redirect_uris et token_endpoint_auth_method: "none". Conservez le client_id reçu.
  2. Générez de nouvelles valeurs aléatoires state et code_verifier pour PKCE. Calculez le code_challenge SHA-256 encodé en base64url.
  3. Ouvrez /api/auth/mcp/authorize dans le navigateur de l'utilisateur avec response_type=code, client_id, redirect_uri, state, code_challenge, code_challenge_method=S256 et scope=openid offline_access.
  4. L'utilisateur se connecte avec son numéro de téléphone NinjaBuy et approuve votre application. Dans votre callback, vérifiez state avant d'utiliser le code reçu.
  5. Envoyez un POST encodé comme formulaire à /api/auth/mcp/token avec grant_type=authorization_code, code, client_id, le même redirect_uri et code_verifier.

Envoyez le jeton d'accès obtenu dans les requêtes REST :

Authorization: Bearer YOUR_ACCESS_TOKEN

Les jetons d'accès durent 1 heure. Avec offline_access, les jetons de renouvellement permettent de les renouveler pendant 7 jours au maximum. Utilisez le même endpoint de jetons avec un POST encodé comme formulaire contenant grant_type=refresh_token, client_id et refresh_token. Stockez les jetons en lieu sûr et reconnectez-vous lorsque le renouvellement n'est plus valide.

Un jeton d'accès absent, expiré ou invalide renvoie 401 avec un défi de découverte WWW-Authenticate. Consultez Erreurs.

Sur cette page