Docs · Primeros pasos
Autenticación
La API usa el grant client credentials de OAuth 2.0. El titular de la cuenta crea un cliente en la app de Novo; tu código lo cambia por un token de corta duración y envía ese token en cada llamada.
Clientes
Scopes
El titular elige los scopes de un cliente al crearlo. Son fijos durante toda la vida del cliente: para cambiarlos, crea un cliente nuevo. Todo lo que un scope no permite se rechaza.
accounts:read- Saldos y datos de la cuenta, con los números ocultos salvo los últimos 4 dígitos
transactions:read- Transacciones registradas, pendientes y de tarjeta
bookkeeping:read- Transacciones de contabilidad
cards:read- Lista de tarjetas con los últimos 4 dígitos y su estado
cards:freeze- Congelar una tarjeta. Solo congelar: descongelar se queda en la app de Novo
Tokens de acceso
Cambia el client id y el secret en /v1/oauth/token con grant_type=client_credentials. HTTP Basic es lo predeterminado; enviar ambos como campos de formulario también funciona.
curl -X POST "https://$NOVO_API_HOST/v1/oauth/token" \
-u "nvo_client_example:$CLIENT_SECRET" \
-d "grant_type=client_credentials"El endpoint de tokens responde con errores de OAuth 2.0 en lugar de problem details: uno de invalid_request, invalid_client, invalid_grant, unauthorized_client, unsupported_grant_type, invalid_scope. Cualquier problema con el propio cliente recibe la misma respuesta invalid_client, sea cual sea la causa.
Revocación
El titular puede revocar un cliente en la app de Novo en cualquier momento. La revocación surte efecto en 30 segundos propuesto, más cualquier llamada que ya esté en curso. Un cliente revocado o suspendido, o uno que Novo desactivó, recibe 401 client-disabled.
Si el titular al que está vinculado este cliente pierde el rol de titular, o su perfil se bloquea o deja de estar en regla, las llamadas se detienen. Primero recibes 403 owner-standing-lost; una vez revocado el cliente, 401 client-disabled. Un titular actual crea un cliente nuevo en la app.
Dar acceso a un agente de IA
Guarda el client secret en tu gestor de secretos y úsalo solo para llamar al endpoint de tokens. El agente recibe el token de acceso de corta duración, nunca el secret: un token filtrado son, como mucho, 15 minutos de los scopes del cliente, mientras que un secret filtrado es el cliente entero hasta que lo rotes propuesto. Dale al agente un cliente con solo los scopes que necesita: un cliente sin cards:freeze solo puede leer. Consulta texto no confiable para ver qué no debe tomar nunca un agente como una instrucción.
Limitar una clave a donde se ejecuta Previsto
Puedes limitar una clave a las herramientas y equipos que aprobaste. Si se usa desde cualquier otro lugar, se detiene y espera tu sí en la app de Novo.
Tu integración guarda un par de claves donde se ejecuta y firma cada solicitud con él (OAuth 2.0 DPoP, RFC 9449). Novo nunca ve la clave privada; tu herramienta solo envía la clave pública. Una vez limitada la clave, un client secret o un token de acceso robado no consigue nada por sí solo. Un cliente limitado recibe token_type DPoP en lugar de Bearer, y envía una prueba nueva con cada solicitud.
Lo que no impide: