Base URL https://api.afer.pro Referencia aferapp.com Reservar demo

Conectar con OAuth

La forma de conectar un asistente sin pegarle tus claves: se identifica el usuario en Afer, elige empresa y permisos, y el asistente recibe su propio token.

Cuándo hace falta

Hay dos maneras de conectar un asistente al servidor MCP de Afer:

API keycabeceras Pegas X-API-KEY y X-API-SECRET en la configuración del cliente. Es lo más directo y lo que usan Claude Code y Claude Desktop.
OAuthsin credenciales El cliente te manda a Afer, te identificas y él recibe su propio token. Es la única vía para los que no dejan poner cabeceras propias — ChatGPT, sobre todo.

Ninguna sustituye a la otra: si tu cliente admite cabeceras, con la clave vas más rápido. OAuth gana cuando quieres no compartir la credencial —porque conectas a alguien de fuera, o porque el asistente es de un tercero— o cuando el cliente sencillamente no acepta otra cosa.

Cómo se conecta

Desde el lado de quien conecta no hay nada que configurar más allá de la URL. El resto lo negocian el cliente y nuestro servidor:

La única URL que hace falta
https://api.afer.pro/mcp/
  1. El cliente llama al servidor sin credenciales y recibe un 401 que le dice dónde autenticarse.
  2. Se registra solo (registro dinámico): no hay que darle de alta a mano ni generar client_id.
  3. Te abre Afer para que inicies sesión, elijas empresa y concedas permisos.
  4. Recibe un token propio, con caducidad, atado a esa empresa y a esos permisos.

Qué permisos puedes dar

afer.readsiempre Consultar: ventas, tesorería, CRM, productos, proyectos y control horario. Es el mínimo y no se puede quitar — sin lectura no hay conexión que valga.
afer.writeopcional Además, crear contactos y oportunidades en el CRM y moverlas de etapa. Puedes desmarcarlo en la pantalla de permisos aunque el cliente lo pida.

El recorte es de verdad, no cosmético: si concedes solo lectura, las herramientas de escritura ni siquiera aparecen en la lista que ve el asistente, y si las llama igualmente, el servidor las rechaza.

A qué da acceso un token

A una empresa, la que elegiste al autorizar. Si tu usuario lleva varias, cada una necesita su propia autorización — y así el asistente no puede saltar de una a otra.

El token dura una hora y se renueva solo con su refresh token, que a su vez rota en cada uso: el anterior deja de valer en el momento. Si alguien te robara uno, la ventana es corta y el robo se detecta.

Retirar el acceso

Desde Configuración → Integraciones → API de Afer, en el listado de conexiones autorizadas. Al retirar una, el asistente deja de tener acceso en ese momento, sin esperar a que caduque nada.

Quitar el conector desde el propio asistente también corta el acceso por su lado, pero lo que manda es Afer: si quieres estar seguro, retíralo aquí.

Para quien implementa un cliente

El servidor sigue el perfil de autorización de MCP: OAuth 2.1 con PKCE obligatorio, metadatos publicados y registro dinámico de clientes. Si tu cliente habla el estándar, no hay nada que configurar a mano.

/.well-known/oauth-protected-resourceRFC 9728 Metadatos del recurso: dice qué servidor de autorización manda. Es lo que apunta la cabecera WWW-Authenticate del 401.
/.well-known/oauth-authorization-serverRFC 8414 Metadatos del servidor: endpoints, ámbitos y métodos soportados.
POST /oauth/registerRFC 7591 Registro dinámico. Devuelve client_id; sin secreto si el cliente es público.
GET /oauth/authorizePKCE S256 Inicio del flujo. Exige code_challenge_method=S256: sin PKCE no se emite nada.
POST /oauth/tokencode · refresh Canje del código y renovación. La redirect_uri debe ser la misma que se usó al autorizar.
POST /oauth/revokeRFC 7009 Revocar un token. Responde 200 exista o no, para no filtrar qué tokens hay.
Detalles que conviene saber
  • Las redirect_uri se comparan exactas. Deben ser https, salvo las de loopback (http://127.0.0.1) que se aceptan para aplicaciones de escritorio.
  • El código de autorización vive 60 segundos y es de un solo uso. Reutilizarlo revoca todo lo emitido con él: si te lo interceptan, el ataque se cae solo.
  • Las llamadas con token OAuth cuentan para la misma cuota de la empresa que las de API key.
  • OAuth es para el MCP. La API REST se autentica con claves API.