Factuarea API
Servidor MCP

Scopes i permisos

El catàleg de scopes del consentiment OAuth, com es mapeja als scopes detallats que apliquen les tools, el super-scope i el gating per pla/mòdul.

Cada tool MCP declara el scope que una credencial ha de tenir per invocar-la. Els scopes funcionen de manera lleugerament diferent segons el canal:

  • Les API keys es creen directament amb scopes detallats (resource:action, p. ex. invoices:read) — el mateix catàleg tancat que fa servir l'API REST. També pots concedir el super-scope *.
  • Els tokens OAuth reben scopes amb punt (resource.action, p. ex. invoices.read) a la pantalla de consentiment. El servidor els tradueix als scopes detallats automàticament, de manera que tots dos canals apliquen el mateix conjunt al límit de la tool.

Catàleg de consentiment OAuth

Aquests són els scopes que un usuari pot concedir a una app de tercers a la pantalla de consentiment. Hi ha 56 scopes simples més 3 macros.

Scopes simples

Cadascun concedeix una capacitat. La columna Maps to mostra el scope detallat que apliquen les tools — la capa de consentiment tradueix els scopes OAuth amb punt a aquests automàticament. La columna Sensitive marca els scopes que la pantalla de consentiment destaca i no marca per defecte.

Perfil

ScopeConcedeixMaps toSensitive
profile.readLlegir el teu nom, email i empresa activa.account:readno

CRM — clients i proveïdors

ScopeConcedeixMaps toSensitive
clients.readLlistar i llegir clients.clients:readno
clients.writeCrear i actualitzar clients.clients:writeno
clients.deleteEliminar clients.clients:delete⚠ sí
suppliers.readLlistar i llegir proveïdors.suppliers:readno
suppliers.writeCrear i actualitzar proveïdors.suppliers:writeno
suppliers.deleteEliminar proveïdors.suppliers:delete⚠ sí

Catàleg — productes, sèries, impostos

ScopeConcedeixMaps toSensitive
products.readLlistar i llegir el catàleg de productes.products:readno
products.writeCrear i actualitzar productes.products:writeno
products.deleteEliminar productes.products:delete⚠ sí
series.readLlegir sèries de numeració.series:readno
series.writeCrear i actualitzar sèries de numeració.series:writeno
taxes.readLlegir tipus impositius i retencions.taxes:readno
taxes.writeCrear i actualitzar tipus impositius.taxes:writeno

Vendes — factures, pressupostos, proformes, albarans

ScopeConcedeixMaps toSensitive
invoices.readLlistar i llegir factures.invoices:readno
invoices.writeCrear i actualitzar factures.invoices:writeno
invoices.sendEnviar factures per email.invoices:sendno
invoices.deleteEliminar factures en esborrany.invoices:delete⚠ sí
invoices.annulAnul·lar factures emeses.invoices:void⚠ sí
invoices.create_correctiveEmetre factures rectificatives.invoices:writeno
quotes.readLlistar i llegir pressupostos.quotes:readno
quotes.writeCrear i actualitzar pressupostos.quotes:writeno
quotes.sendEnviar pressupostos per email.quotes:sendno
quotes.deleteEliminar pressupostos.quotes:delete⚠ sí
quotes.convert_to_invoiceAcceptar/rebutjar i convertir pressupostos en factures.quotes:transitionno
proformas.readLlistar i llegir factures proforma.proformas:readno
proformas.writeCrear i actualitzar proformes.proformas:writeno
proformas.sendEnviar proformes per email.proformas:sendno
proformas.deleteEliminar proformes.proformas:delete⚠ sí
proformas.convertConvertir proformes en factures.proformas:transitionno
delivery_notes.readLlistar i llegir albarans.delivery_notes:readno
delivery_notes.writeCrear, actualitzar i enviar albarans.delivery_notes:writeno
delivery_notes.sendEnviar albarans per email.delivery_notes:writeno
delivery_notes.deleteEliminar albarans.delivery_notes:delete⚠ sí
delivery_notes.convertConvertir albarans.delivery_notes:transitionno
delivery_notes.signMarcar com a lliurats / signar albarans.delivery_notes:transition⚠ sí

Compres

ScopeConcedeixMaps toSensitive
purchase_invoices.readLlistar i llegir factures de compra.purchase_invoices:readno
purchase_invoices.writeCrear i actualitzar factures de compra.purchase_invoices:writeno
purchase_invoices.mark_paidMarcar factures de compra com a pagades.purchase_invoices:transition⚠ sí
purchase_invoices.deleteEliminar factures de compra.purchase_invoices:delete⚠ sí

Els scopes de pagament són asimètrics entre vendes i compres. Registrar un pagament en una factura de venda (register_invoice_payment) requereix invoices:write — edita la factura. En canvi, registrar un pagament en una factura de compra (register_purchase_invoice_payment) requereix purchase_invoices:transition, perquè al costat de compra un pagament fa avançar la factura pel seu cicle de vida (pendent → pagada) en lloc d'editar-la.

Factures recurrents

ScopeConcedeixMaps toSensitive
recurring.readLlistar i llegir plantilles recurrents.recurring_invoices:readno
recurring.writeCrear i actualitzar plantilles recurrents.recurring_invoices:writeno
recurring.pausePausar plantilles recurrents.recurring_invoices:transitionno
recurring.resumeReprendre plantilles recurrents.recurring_invoices:transitionno
recurring.generate_nowEmetre una factura recurrent manualment.recurring_invoices:transition⚠ sí
recurring.deleteEliminar plantilles recurrents.recurring_invoices:delete⚠ sí

Compliment (VeriFactu)

ScopeConcedeixMaps toSensitive
verifactu.readLlegir registres, esdeveniments, certificats i configuració de VeriFactu.verifactu:readno

Webhooks

ScopeConcedeixMaps toSensitive
webhooks.readLlistar webhook endpoints i lliuraments.webhooks:readno
webhooks.writeCrear, actualitzar, rotar i fer ping de webhook endpoints.webhooks:write⚠ sí
webhooks.deleteEliminar webhook endpoints.webhooks:delete⚠ sí

Macros

Paquets de conveniència que s'expandeixen a una llista de scopes simples en el moment d'emetre el token. El token persisteix els scopes expandits — les macros mai s'emmagatzemen.

MacroConcedeixSensitive
factuarea.readAccés de lectura complet a tot (sense escriptures).no
factuarea.writeLlegir-ho tot, a més de crear/actualitzar documents i enviar emails.no
factuarea.fullLlegir, escriure, enviar i accions destructives (eliminar, anul·lar, marcar com a pagada, signar). Exclou les escriptures de VeriFactu.⚠ sí

El super-scope *

Una credencial que té * cobreix tots els scopes — les 232 tools en el cas d'una API key. És l'equivalent a una clau de propietari. Reserva'l per a migracions puntuals o automatitzacions de propietari totalment fiables; per a tota la resta, prefereix el conjunt de scopes més reduït. El super-scope està disponible per a les API keys; el consentiment OAuth concedeix scopes explícits (o macros), mai un * directe.

Com els scopes OAuth es converteixen en scopes detallats

Quan s'emet un token OAuth, els seus scopes amb punt es tradueixen un cop al catàleg detallat que apliquen les tools. Val la pena conèixer algunes reconciliacions:

  • recurring.* es mapeja al recurs recurring_invoices:*.
  • invoices.create_corrective es mapeja a invoices:write (crear és una escriptura).
  • invoices.annul es mapeja a invoices:void.
  • Les accions de cicle de vida (*.convert, *.sign, *.pause, *.resume, *.generate_now, *.mark_paid, quotes.convert_to_invoice) es mapegen al scope :transition del recurs.
  • Qualsevol scope de lectura sobre un document també concedeix les utilitats de lectura transversals pdfs:read (descarregar el seu PDF/rebut) i events:read (el seu registre d'activitat).
  • verifactu.write i delivery_notes:gdpr_forget no tenen scope OAuth amb punt — són inabastables via OAuth per disseny.
  • facturae:read / facturae:write encara no són al catàleg de consentiment OAuth — les tools de FacturaE (FACe) només són accessibles amb API key per ara.

Gating per pla i mòdul

Avui cap tool del MCP públic està limitada per mòdul: cada tool publicada és accessible quan la credencial té el scope requerit — només s'aplica la comprovació de scope. Si en el futur es publiqués una tool limitada per mòdul, el servidor l'ocultaria de tools/list quan el pla de l'empresa no inclogui el mòdul i retornaria module_not_in_plan (-32005) davant d'una crida directa.

  • Els límits d'ús del pla (p. ex. quotes mensuals de documents) s'apliquen en el moment de la crida i es manifesten com a plan_limit_exceeded (-32004). Consulta Errors i límits de peticions.

Tota la superfície pública MCP també requereix que l'add-on d'API per a desenvolupadors de l'empresa estigui actiu; en cas contrari, cada crida retorna addon_not_active (-32007).

En aquesta pàgina