Cada token hace solo lo que se le concedió: por área, recurso y acción.
Las cuatro capas
Sobre qué datos. Un token solo alcanza las empresas que se eligieron al crearlo: su cuenta
principal, otras empresas que administra quien lo crea y, si se eligen, grupos enteros, que incluyen sus filiales
(también las que se den de alta más adelante). Elegir una empresa no añade el resto de su grupo. Las rutas con
companyId comprueban que la empresa esté en ese alcance; si no, responden 403 o
404 sin revelar datos ajenos. La lista de empresas de un token la devuelve
GET /auth/whoami (Primeros pasos).
Qué puede hacer. Los permisos tienen la forma área:recurso.acción, por ejemplo
sales:invoices.read. Cada ruta exige uno y el token debe tener una concesión que lo cubra.
Condiciones. Fecha de caducidad, direcciones IP permitidas y acceso a datos personales
(Autenticación).
Cuotas. Límite de peticiones por minuto del token, dentro del de la cuenta y del usuario
(Límites de uso).
Niveles
Al crear un token eliges un nivel para cada área o recurso:
Nivel
Qué concede
Ninguno
Nada.
Leer
Las lecturas (read), incluida la descarga de ficheros.
Escribir
Leer, más crear, modificar y borrar (create, update, delete). No incluye las acciones críticas.
Full
Todo lo anterior y las acciones críticas.
Escribir no implica leer: el nivel Escribir de la pantalla guarda las dos concesiones, la de lectura y la de escritura.
Gramática de concesiones
Un token guarda una lista de concesiones. De la más amplia a la más concreta:
Concesión
Abre
Nivel
área:*
Todo el área, críticas incluidas.
Full del área
área:*.read
Las lecturas del área.
Leer del área
área:*.write
Crear, modificar y borrar en el área, sin críticas.
Escribir del área
área:recurso.*
Todo el recurso, críticas incluidas.
Full del recurso
área:recurso.write
Crear, modificar y borrar en el recurso, sin críticas.
Escribir del recurso
área:recurso.acción
Una acción concreta.
Avanzado
Un token de cliente solo acepta concesiones que abran permisos del catálogo público. Si una concesión abriría
algo interno de BMC, se rechaza entera en lugar de recortarse en silencio.
Acciones críticas
Además de leer, crear, modificar y borrar, algunas acciones son irreversibles o tienen efecto fuera de la
plataforma: emitir una factura, presentar un modelo a la AEAT, enviar un documento al cliente final, anular,
fusionar, contabilizar o conciliar. Son las acciones críticas.
Las acciones críticas no las cubre el nivel Escribir. Solo las abren Full (área:* o
área:recurso.*) o el nombre exacto de la acción, elegido en Avanzado. En el catálogo
van marcadas.
Catálogo completo
El catálogo público tiene 154 permisos en 14 áreas y
50 recursos; 28 son acciones críticas. Los recursos
marcados como «Datos personales» devuelven NIF, IBAN, teléfono, fecha de nacimiento o domicilio, que salen
enmascarados si el token no tiene el permiso de datos personales. Añadir un permiso al catálogo no concede
nada a nadie: cada token guarda solo lo que se eligió al crearlo.
Contactos contacts:*
Recurso
Acciones
Contactos contacts:contacts.*Datos personales
contacts:contacts.read Leer
contacts:contacts.create Crear
contacts:contacts.update Modificar
contacts:contacts.delete Borrar
contacts:contacts.merge FusionarAcción crítica
contacts:contacts.transition Cambiar de faseAcción crítica
Cuentas y sociedades contacts:accounts.*Datos personales
contacts:accounts.read Leer
contacts:accounts.create Crear
contacts:accounts.update Modificar
contacts:accounts.delete Borrar
contacts:accounts.merge FusionarAcción crítica
Titularidad real y participaciones contacts:ownership.*Datos personales
contacts:ownership.read Leer
contacts:ownership.create Crear
contacts:ownership.update Modificar
contacts:ownership.delete Borrar
CRM y expedientes crm:*
Recurso
Acciones
Expedientes crm:cases.*
crm:cases.read Leer
crm:cases.create Crear
crm:cases.update Modificar
Citas crm:appointments.*
crm:appointments.read Leer
crm:appointments.create Crear
crm:appointments.update Modificar
crm:appointments.cancel CancelarAcción crítica
Consultas al equipo crm:tickets.*
crm:tickets.read Leer
crm:tickets.create Crear
crm:tickets.update Modificar
crm:tickets.delete Borrar
Ventas sales:*
Recurso
Acciones
Facturas, proformas y rectificativas sales:invoices.*
sales:invoices.read Leer
sales:invoices.create Crear
sales:invoices.update Modificar
sales:invoices.delete Borrar
sales:invoices.issue EmitirAcción crítica
sales:invoices.send EnviarAcción crítica
sales:invoices.pay Registrar cobro o pagoAcción crítica