Autenticación
Elige una clave API personal u OAuth 2.1 con PKCE.
Usa una clave API personal para tus propios scripts. Usa OAuth para una aplicación que actúe en nombre de otros clientes de NinjaBuy, incluidos los clientes MCP.
OAuth 2.1
Usa el flujo de código de autorización con PKCE S256. REST y MCP aceptan el mismo token de acceso OAuth de NinjaBuy. Cada token actúa en nombre de la cuenta que inició sesión y aprobó el acceso; no puedes seleccionar otra cuenta en el cuerpo de la solicitud.
Todos los endpoints de OAuth usan el origen https://www.ninjabuy.com. Rutas de descubrimiento y autorización:
Descubrimiento de OAuth · Descubrimiento del recurso MCP
POST /api/auth/mcp/register
GET /api/auth/mcp/authorize
POST /api/auth/mcp/token- Registra tu cliente en
POST /api/auth/mcp/register. Un cliente público envía JSON conclient_name,redirect_urisytoken_endpoint_auth_method: "none". Guarda elclient_idrecibido. - Genera un
statealeatorio y uncode_verifierde PKCE nuevos. Calcula elcode_challengeSHA-256 codificado en base64url. - Abre
/api/auth/mcp/authorizeen el navegador del usuario conresponse_type=code,client_id,redirect_uri,state,code_challenge,code_challenge_method=S256yscope=openid offline_access. - El usuario inicia sesión con su número de celular de NinjaBuy y aprueba tu aplicación. En tu callback, verifica
stateantes de usar elcoderecibido. - Envía un POST con codificación de formulario a
/api/auth/mcp/tokencongrant_type=authorization_code,code,client_id, el mismoredirect_uriycode_verifier.
Envía el token de acceso obtenido en las solicitudes REST:
Authorization: Bearer YOUR_ACCESS_TOKENLos tokens de acceso duran 1 hora. Con offline_access, los tokens de actualización permiten renovarlos durante un máximo de 7 días. Renueva mediante el mismo endpoint de tokens con un POST con codificación de formulario que incluya grant_type=refresh_token, client_id y refresh_token. Almacena los tokens de forma segura y vuelve a iniciar sesión cuando la renovación deje de ser válida.
Si falta el token de acceso, expiró o no es válido, se devuelve 401 con un desafío de descubrimiento WWW-Authenticate. Consulta Errores.