Saltar a contenido

Cómo generar una API Key en Odoo

Las API Keys de Odoo permiten autenticar peticiones a la API (XML-RPC, JSON-RPC o REST) usando la clave en lugar de la contraseña del usuario. Se usan en integraciones y scripts.

Objetivo: establecer un procedimiento claro para generar una API Key con el usuario correcto, definir su vigencia y gestionarla de forma segura, incluyendo cómo evitar filtraciones en entornos de desarrollo.

Video del procedimiento

Referencia en video

El procedimiento completo está en el reproductor de arriba, o puedes abrirlo directamente en Loom. Cada paso a continuación enlaza al minuto correspondiente.

Trata la API Key como una contraseña

Una API Key otorga los mismos permisos que el usuario que la creó. Guárdala en un gestor de secretos o variable de entorno; nunca la subas al repositorio ni la compartas por chat.

Requisitos previos

  • Acceso al proyecto/módulo Legalys en Odoo.
  • El usuario con el que se generará la clave.
    • Recomendado: un usuario de servicio dedicado a sistemas.
    • En la práctica se ha usado la cuenta de Francisco por conveniencia, pero lo ideal es no depender de cuentas personales.
  • La contraseña de ese usuario (y código 2FA si está habilitado).

Pasos

1. Ingresar al proyecto y seleccionar el usuario correcto — 0:01

Ficha del usuario en Odoo

  • Abre Odoo.sh y accede al proyecto correspondiente.
  • Ubica proyecto Legalys.
  • Identifica el usuario con el que se generará la API Key.

2. Iniciar sesión con las credenciales del usuario — 0:54

Autenticación del usuario

  • Autentícate con el usuario con el cual vas a generar el API (desde Odoo.sh) o ingresa la contraseña del usuario seleccionado.
  • Espera a que el sistema termine de autenticar la sesión.
  • Verifica que el acceso haya sido exitoso antes de continuar.

3. Configurar la API Key antes de generarla — 0:54

Pestaña Seguridad de la cuenta

  • Ve a tu perfil → Seguridad de la cuenta → sección API KeysNueva clave de API.
  • Asigna un nombre/identificador descriptivo (por ejemplo: cotizador-dev, o mejor aún algo como Integración facturación - producción).
  • Define la vigencia de la clave:
    • Persistente si no debe expirar.
    • 1 año (u otra fecha) si se requiere expiración programada.
  • Confirma la configuración antes de generar.

4. Generar y copiar la API Key — 2:02

Generación de la API Key

  • Haz clic en Generar.
  • Copia la clave inmediatamente: solo se muestra una vez.
  • Guárdala en el sistema o destino donde será utilizada.
  • Valida que la clave copiada sea correcta antes de cerrar la ventana.

5. Aplicar buenas prácticas de uso y seguridad — 2:09

Buenas prácticas de seguridad

  • Prefiere una API Key por sistema para reducir riesgos.
  • No reutilices claves de producción en otros entornos.
  • Usa claves específicas para cada necesidad cuando sea posible.
  • Recuerda que las claves en entornos de desarrollo tienen menor protección y pueden filtrarse con mayor facilidad.

6. Limpiar claves expuestas en entornos de desarrollo — 2:21

Limpieza de claves en entornos de desarrollo

  • Revisa los entornos de desarrollo para detectar API Keys de producción o claves que no deban permanecer ahí.
  • Comenta o elimina las claves expuestas según corresponda.
  • Confirma que no queden credenciales sensibles visibles.
  • Repite esta limpieza cada vez que se resetee un entorno, para reducir el riesgo de filtración.

Notas importantes

  • La API Key solo se muestra una vez; si no la copias en ese momento, tendrás que generar una nueva.
  • No uses claves de producción en entornos de desarrollo.
  • Los entornos de desarrollo tienen menos protección → mayor riesgo de exposición.
  • Idealmente, cada sistema debería tener su propia API Key y su propio usuario de servicio.
  • Si la clave debe expirar, define una política de rotación periódica.

Consejos de eficiencia

  • Ten listo el usuario de servicio antes de iniciar el proceso.
  • Usa un usuario dedicado para sistemas en lugar de cuentas personales.
  • Decide desde el inicio si la clave será persistente o con vencimiento, para evitar reprocesos.
  • Incluye la revisión y limpieza de API Keys en el checklist de cada reseteo de entorno.
  • Mantén un registro interno de qué API Key corresponde a cada sistema, para facilitar soporte y rotación.

Cómo usar la API Key

La clave sustituye a la contraseña en las llamadas a la API. Ejemplo con XML-RPC en Python:

import os
import xmlrpc.client

url = "https://panama.legalys.com"
db = "legalyspanama"          # ajusta al nombre real de la base de datos
username = "usuario@legalys.com"
api_key = os.environ["ODOO_API_KEY"]   # nunca escribas la clave en el código

common = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/common")
uid = common.authenticate(db, username, api_key, {})

models = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/object")
# Ejemplo: contar los contactos
total = models.execute_kw(
    db, uid, api_key,
    "res.partner", "search_count", [[]],
)
print("Contactos:", total)

Revocar una API Key

  1. Vuelve a Mi perfil → Seguridad de la cuenta → API Keys.
  2. Elimina (icono de papelera) la clave que quieras revocar.

Revoca de inmediato cualquier clave que se haya expuesto o que ya no se use.