# Herramientas del servidor MCP

> Todas las herramientas del servidor MCP de FacturaDirecta: qué hace cada una, qué acciones expone, si solo consulta o modifica datos y qué permisos necesita.


Estas son las herramientas que tu asistente ve al conectar el servidor MCP de FacturaDirecta. Están agrupadas por área: una herramienta de consulta para facturas, presupuestos, compras, bancos, impuestos y el resto, y otra de escritura en las áreas que admiten cambios. Además están la búsqueda, la consulta analítica (sumar, contar y clasificar en una sola llamada), la lectura de documentos y la subida de ficheros. Cada herramienta de área expone sus acciones, cada una con su operación de la API, y el asistente pide el detalle de una acción solo cuando la va a usar.

Las herramientas de escritura piden al asistente que te enseñe lo que va a crear, modificar o enviar, y que espere tu confirmación.

La lista exacta que ve tu asistente depende de los permisos que concedas al conectar. Esta página se actualiza sola con cada versión del servidor.


Servidor: https://mcp.facturadirecta.com · versión 0.4.3 · OAuth 2.1 · Streamable HTTP

## `whoami` — Identidad y empresas del usuario

Solo consulta datos.

Devuelve el email del usuario autenticado y las empresas a las que tiene acceso, con su identificador (companyId) y nombre. Úsala al inicio de la conversación. No existe empresa activa en el servidor: si el usuario tiene más de una empresa, pregúntale con cuál trabajar e indica su companyId en cada llamada posterior; con una sola empresa no hace falta indicarlo. Para saber cómo trabaja la empresa (moneda, borrador o definitivo, bloqueo contable, módulos del plan, buzón de la bandeja) llama después a get_company_settings de facturadirecta_settings.

## `search` — Buscar en FacturaDirecta

Solo consulta datos. Permisos: `bills:read`, `clientOrders:read`, `contacts:read`, `deliveryNotes:read`, `estimates:read`, `invoices:read`, `payrolls:read`, `products:read`, `purchaseOrders:read`, `recurring:read`.

Busca un texto en los datos de FacturaDirecta del usuario, con el mismo criterio que la búsqueda rápida de la aplicación, y devuelve resultados citables con su id, título y URL. Cubre contactos, facturas de venta, presupuestos, albaranes, pedidos, órdenes de compra, facturas de compra y tickets, nóminas, productos y facturas recurrentes, y busca por nombre, NIF o email del contacto, número o referencia del documento y texto de sus líneas y notas (todas las palabras, sin distinguir acentos ni mayúsculas; 'F-2026-12' encuentra 'F-2026-0012'). Úsala cuando el usuario mencione un cliente, proveedor, producto, concepto o número de documento y necesites localizarlo; después usa fetch con el id para leer el documento completo. Devuelve hasta 20 resultados repartidos entre tipos; para consultas por fechas, estados o importes, o para recorrer todos los resultados de un tipo, usa las acciones list_* con sus filtros (admiten el mismo parámetro search). Sin companyId busca en todas las empresas del usuario.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `query` | `string` | sí | Texto a buscar (al menos dos caracteres): nombre, NIF o email de un contacto, número o referencia de un documento, concepto de una línea, nombre o referencia de un producto… |
| `companyId` | `string` | no | Empresa sobre la que operar (ver whoami). Obligatorio si el usuario tiene más de una empresa; con una sola se resuelve automáticamente. |

## `fetch` — Leer un documento de FacturaDirecta

Solo consulta datos. Permisos: `bills:read`, `clientOrders:read`, `contacts:read`, `deliveryNotes:read`, `estimates:read`, `invoices:read`, `payrolls:read`, `products:read`, `purchaseOrders:read`, `recurring:read`.

Devuelve el contenido completo y legible de un resultado de search (contacto, factura de venta, presupuesto, albarán, pedido, orden de compra, factura de compra o ticket, nómina, producto o factura recurrente) junto con su URL para citarlo. Úsala después de search, con el id que devolvió; la empresa va codificada en el id.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `id` | `string` | sí | Identificador devuelto por search, con la forma tipo:empresa:id (p. ej. invoice:com_123:inv_456). Tipos: contact, invoice, estimate, deliveryNote, clientOrder, purchaseOrder, bill, payroll, product, recurring. |

## `upload_to_inbox` — Subir un fichero a la bandeja de entrada

Puede modificar datos. Permisos: `inbox:write`.

Sube un fichero (factura de un proveedor, ticket o nómina: PDF, imagen JPEG, PNG, HEIC, WebP o TIFF, o XML; hasta 10 MB) a la bandeja de entrada de FacturaDirecta, que extrae sus datos en segundo plano. En url indica un enlace https público y directo al fichero (portales de proveedores, enlaces de descarga, carpetas públicas) o el contenido en una URL data: en base64 (hasta 300 KB; entonces filename es obligatorio). No sirven los enlaces privados de Drive, Dropbox o OneDrive ni las páginas que exigen sesión: la tool devuelve un error explicándolo. Un fichero adjuntado al chat no tiene enlace público: no inventes una URL ni una ruta local; pide un enlace público y directo o, como con uno grande o sin enlace, que el usuario lo suba a la bandeja de entrada (por web o por email) y sigue con list_inbox_items. Antes de llamar, muestra al usuario qué fichero vas a subir (enlace o nombre) y a qué empresa, y pide su confirmación explícita; envía idempotencyKey para que un reintento no cree dos items. Devuelve el item creado (id tas_…, status, title y el adjunto con su url pública) y el siguiente paso: consultar get_inbox_item hasta que status sea scanned, preparar el gasto con propose_bill o propose_ticket y crearlo con create_bill, o vincular el fichero a una factura de compra existente con add_bill_attachments e inboxIds.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `companyId` | `string` | no | Empresa sobre la que operar (ver whoami). Obligatorio si el usuario tiene más de una empresa; con una sola se resuelve automáticamente. |
| `url` | `string` | sí | Enlace https público y directo al fichero (sin sesión ni contraseña), o URL data: con el contenido en base64 (data:application/pdf;base64,…; hasta 300 KB). |
| `filename` | `string` | no | Nombre del fichero con extensión (factura-marzo.pdf). Obligatorio con data:; con https se toma del origen o del último segmento del enlace. |
| `contentType` | `string` | no | Tipo MIME del fichero (application/pdf, image/jpeg…), solo si el origen no lo indica. |
| `title` | `string` | no | Título del item en la bandeja; por defecto, el nombre del fichero. |
| `idempotencyKey` | `string` | no | Clave de idempotencia (UUID recomendado): un reintento con la misma clave devuelve el mismo item en vez de crear otro, mientras siga en la bandeja. |

## `facturadirecta_invoices` — FacturaDirecta · Facturas

Solo consulta datos. Permisos: `invoices:read`.

Facturas de venta: listar, consultar, crear, modificar, registrar cobros, enviar por email, PDF, Facturae, sustitutivas de simplificadas, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_invoices_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_invoice_facturae (RO): Generar la factura en formato facturae
- create_invoice_pdf (RO): Generar la factura en formato PDF
- get_invoice (RO): Obtener una factura
- get_invoice_attachments (RO): Listar adjuntos de una factura de venta
- get_invoice_version (RO): Versión de la factura
- list_invoice_versions (RO, paginada): Versiones de la factura
- list_invoices (RO, paginada): Lista de facturas

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_invoice_facturae` | Generar la factura en formato facturae | `createInvoiceFacturae` |
| `create_invoice_pdf` | Generar la factura en formato PDF | `createInvoicePDF` |
| `get_invoice` | Obtener una factura | `getInvoice` |
| `get_invoice_attachments` | Listar adjuntos de una factura de venta | `getInvoiceAttachments` |
| `get_invoice_version` | Versión de la factura | `getInvoiceVersion` |
| `list_invoice_versions` | Versiones de la factura | `getInvoiceVersions` |
| `list_invoices` | Lista de facturas | `getInvoices` |

## `facturadirecta_invoices_write` — FacturaDirecta · Facturas (escritura)

Puede modificar datos. Permisos: `invoices:write`.

Facturas de venta: listar, consultar, crear, modificar, registrar cobros, enviar por email, PDF, Facturae, sustitutivas de simplificadas, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_invoices.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Emitir una factura (main.draft false), anularla (main.voided true) o subsanarla es un acto fiscal: con VeriFactu o TicketBAI activos se registra y se envía a Hacienda al momento y no se deshace. Crea siempre con draft true y emite solo si el usuario lo pide para esa factura, avisándole antes; anular no corrige ni borra.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_invoice_attachments: Vincular adjuntos a una factura
- create_invoice: Crear factura
- create_invoice_payments: Crear pagos para una factura
- create_substitution_invoice: Crear factura sustitutiva de simplificadas
- send_invoice: Enviar factura por correo electrónico
- update_invoice: Actualizar factura
- update_invoice_tags: Actualizar etiquetas de factura

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_invoice_attachments` | Vincular adjuntos a una factura | `addInvoiceAttachments` |
| `create_invoice` | Crear factura | `createInvoice` |
| `create_invoice_payments` | Crear pagos para una factura | `createInvoicePayments` |
| `create_substitution_invoice` | Crear factura sustitutiva de simplificadas | `createSubstitutionInvoice` |
| `send_invoice` | Enviar factura por correo electrónico | `sendInvoice` |
| `update_invoice` | Actualizar factura | `updateInvoice` |
| `update_invoice_tags` | Actualizar etiquetas de factura | `updateInvoiceTags` |

## `facturadirecta_estimates` — FacturaDirecta · Presupuestos

Solo consulta datos. Permisos: `estimates:read`.

Presupuestos (también las facturas proforma, que son presupuestos con isProforma): listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_estimates_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_estimate_pdf (RO): Generar el presupuesto en formato PDF
- get_estimate (RO): Obtener un presupuesto
- get_estimate_attachments (RO): Listar adjuntos de un presupuesto
- get_estimate_version (RO): Versión de el presupuesto
- list_estimate_versions (RO, paginada): Versiones de el presupuesto
- list_estimates (RO, paginada): Lista de presupuestos

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_estimate_pdf` | Generar el presupuesto en formato PDF | `createEstimatePDF` |
| `get_estimate` | Obtener un presupuesto | `getEstimate` |
| `get_estimate_attachments` | Listar adjuntos de un presupuesto | `getEstimateAttachments` |
| `get_estimate_version` | Versión de el presupuesto | `getEstimateVersion` |
| `list_estimate_versions` | Versiones de el presupuesto | `getEstimateVersions` |
| `list_estimates` | Lista de presupuestos | `getEstimates` |

## `facturadirecta_estimates_write` — FacturaDirecta · Presupuestos (escritura)

Puede modificar datos. Permisos: `estimates:write`.

Presupuestos (también las facturas proforma, que son presupuestos con isProforma): listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_estimates.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_estimate_attachments: Vincular adjuntos a un presupuesto
- create_estimate: Crear presupuesto
- send_estimate: Enviar presupuesto por correo electrónico
- update_estimate: Actualizar presupuesto
- update_estimate_tags: Actualizar etiquetas de presupuesto

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_estimate_attachments` | Vincular adjuntos a un presupuesto | `addEstimateAttachments` |
| `create_estimate` | Crear presupuesto | `createEstimate` |
| `send_estimate` | Enviar presupuesto por correo electrónico | `sendEstimate` |
| `update_estimate` | Actualizar presupuesto | `updateEstimate` |
| `update_estimate_tags` | Actualizar etiquetas de presupuesto | `updateEstimateTags` |

## `facturadirecta_client_orders` — FacturaDirecta · Pedidos

Solo consulta datos. Permisos: `clientOrders:read`.

Pedidos de cliente: listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_client_orders_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_client_order_pdf (RO): Generar el pedido en formato PDF
- get_client_order (RO): Obtener un pedido
- get_client_order_attachments (RO): Listar adjuntos de un pedido
- get_client_order_version (RO): Versión de el pedido
- list_client_order_versions (RO, paginada): Versiones de el pedido
- list_client_orders (RO, paginada): Lista de pedidos

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_client_order_pdf` | Generar el pedido en formato PDF | `createClientOrderPDF` |
| `get_client_order` | Obtener un pedido | `getClientOrder` |
| `get_client_order_attachments` | Listar adjuntos de un pedido | `getClientOrderAttachments` |
| `get_client_order_version` | Versión de el pedido | `getClientOrderVersion` |
| `list_client_order_versions` | Versiones de el pedido | `getClientOrderVersions` |
| `list_client_orders` | Lista de pedidos | `getClientOrders` |

## `facturadirecta_client_orders_write` — FacturaDirecta · Pedidos (escritura)

Puede modificar datos. Permisos: `clientOrders:write`.

Pedidos de cliente: listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_client_orders.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_client_order_attachments: Vincular adjuntos a un pedido
- create_client_order: Crear pedido
- send_client_order: Enviar pedido por correo electrónico
- update_client_order: Actualizar pedido
- update_client_order_tags: Actualizar etiquetas de pedido

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_client_order_attachments` | Vincular adjuntos a un pedido | `addClientOrderAttachments` |
| `create_client_order` | Crear pedido | `createClientOrder` |
| `send_client_order` | Enviar pedido por correo electrónico | `sendClientOrder` |
| `update_client_order` | Actualizar pedido | `updateClientOrder` |
| `update_client_order_tags` | Actualizar etiquetas de pedido | `updateClientOrderTags` |

## `facturadirecta_delivery_notes` — FacturaDirecta · Albaranes

Solo consulta datos. Permisos: `deliveryNotes:read`.

Albaranes: listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_delivery_notes_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_delivery_note_pdf (RO): Generar el albarán en formato PDF
- get_delivery_note (RO): Obtener un albarán
- get_delivery_note_attachments (RO): Listar adjuntos de un albarán
- get_delivery_note_version (RO): Versión de el albarán
- list_delivery_note_versions (RO, paginada): Versiones de el albarán
- list_delivery_notes (RO, paginada): Lista de albaranes

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_delivery_note_pdf` | Generar el albarán en formato PDF | `createDeliveryNotePDF` |
| `get_delivery_note` | Obtener un albarán | `getDeliveryNote` |
| `get_delivery_note_attachments` | Listar adjuntos de un albarán | `getDeliveryNoteAttachments` |
| `get_delivery_note_version` | Versión de el albarán | `getDeliveryNoteVersion` |
| `list_delivery_note_versions` | Versiones de el albarán | `getDeliveryNoteVersions` |
| `list_delivery_notes` | Lista de albaranes | `getDeliveryNotes` |

## `facturadirecta_delivery_notes_write` — FacturaDirecta · Albaranes (escritura)

Puede modificar datos. Permisos: `deliveryNotes:write`.

Albaranes: listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_delivery_notes.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_delivery_note_attachments: Vincular adjuntos a un albarán
- create_delivery_note: Crear albarán
- send_delivery_note: Enviar albarán por correo electrónico
- update_delivery_note: Actualizar albarán
- update_delivery_note_tags: Actualizar etiquetas de albarán

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_delivery_note_attachments` | Vincular adjuntos a un albarán | `addDeliveryNoteAttachments` |
| `create_delivery_note` | Crear albarán | `createDeliveryNote` |
| `send_delivery_note` | Enviar albarán por correo electrónico | `sendDeliveryNote` |
| `update_delivery_note` | Actualizar albarán | `updateDeliveryNote` |
| `update_delivery_note_tags` | Actualizar etiquetas de albarán | `updateDeliveryNoteTags` |

## `facturadirecta_bills` — FacturaDirecta · Compras

Solo consulta datos. Permisos: `bills:read`.

Compras: facturas de compra y tickets de gasto: listar, consultar, crear, modificar, registrar pagos, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_bills_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_bill (RO): Obtener una factura de compra o ticket
- get_bill_attachments (RO): Listar adjuntos de una factura de compra o ticket
- get_bill_version (RO): Versión de la factura de compra o el ticket
- list_bill_versions (RO, paginada): Versiones de la factura de compra o el ticket
- list_bills (RO, paginada): Lista de facturas de compra o tickets

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_bill` | Obtener una factura de compra o ticket | `getBill` |
| `get_bill_attachments` | Listar adjuntos de una factura de compra o ticket | `getBillAttachments` |
| `get_bill_version` | Versión de la factura de compra o el ticket | `getBillVersion` |
| `list_bill_versions` | Versiones de la factura de compra o el ticket | `getBillVersions` |
| `list_bills` | Lista de facturas de compra o tickets | `getBills` |

## `facturadirecta_bills_write` — FacturaDirecta · Compras (escritura)

Puede modificar datos. Permisos: `bills:write`.

Compras: facturas de compra y tickets de gasto: listar, consultar, crear, modificar, registrar pagos, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_bills.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_bill_attachments: Vincular adjuntos a una factura de compra o ticket
- create_bill: Crear factura de compra o ticket
- create_bill_payments: Crear pagos para una factura de compra o ticket
- update_bill: Actualizar factura de compra o ticket
- update_bill_tags: Actualizar etiquetas de factura de compra o ticket

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_bill_attachments` | Vincular adjuntos a una factura de compra o ticket | `addBillAttachments` |
| `create_bill` | Crear factura de compra o ticket | `createBill` |
| `create_bill_payments` | Crear pagos para una factura de compra o ticket | `createBillPayments` |
| `update_bill` | Actualizar factura de compra o ticket | `updateBill` |
| `update_bill_tags` | Actualizar etiquetas de factura de compra o ticket | `updateBillTags` |

## `facturadirecta_purchase_orders` — FacturaDirecta · Órdenes de compra

Solo consulta datos. Permisos: `purchaseOrders:read`.

Órdenes de compra a proveedores: listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_purchase_orders_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_purchase_order_pdf (RO): Generar la orden de compra en formato PDF
- get_purchase_order (RO): Obtener una orden de compra
- get_purchase_order_attachments (RO): Listar adjuntos de una orden de compra
- get_purchase_order_version (RO): Versión de la orden de compra
- list_purchase_order_versions (RO, paginada): Versiones de la orden de compra
- list_purchase_orders (RO, paginada): Lista de órdenes de compra

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_purchase_order_pdf` | Generar la orden de compra en formato PDF | `createPurchaseOrderPDF` |
| `get_purchase_order` | Obtener una orden de compra | `getPurchaseOrder` |
| `get_purchase_order_attachments` | Listar adjuntos de una orden de compra | `getPurchaseOrderAttachments` |
| `get_purchase_order_version` | Versión de la orden de compra | `getPurchaseOrderVersion` |
| `list_purchase_order_versions` | Versiones de la orden de compra | `getPurchaseOrderVersions` |
| `list_purchase_orders` | Lista de órdenes de compra | `getPurchaseOrders` |

## `facturadirecta_purchase_orders_write` — FacturaDirecta · Órdenes de compra (escritura)

Puede modificar datos. Permisos: `purchaseOrders:write`.

Órdenes de compra a proveedores: listar, consultar, crear, modificar, enviar por email, PDF, etiquetas, adjuntos y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_purchase_orders.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_purchase_order_attachments: Vincular adjuntos a una orden de compra
- create_purchase_order: Crear orden de compra
- send_purchase_order: Enviar orden de compra por correo electrónico
- update_purchase_order: Actualizar orden de compra
- update_purchase_order_tags: Actualizar etiquetas de orden de compra

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_purchase_order_attachments` | Vincular adjuntos a una orden de compra | `addPurchaseOrderAttachments` |
| `create_purchase_order` | Crear orden de compra | `createPurchaseOrder` |
| `send_purchase_order` | Enviar orden de compra por correo electrónico | `sendPurchaseOrder` |
| `update_purchase_order` | Actualizar orden de compra | `updatePurchaseOrder` |
| `update_purchase_order_tags` | Actualizar etiquetas de orden de compra | `updatePurchaseOrderTags` |

## `facturadirecta_payrolls` — FacturaDirecta · Nóminas

Solo consulta datos. Permisos: `payrolls:read`.

Nóminas: listar, consultar, crear, modificar, registrar pagos, etiquetas, adjuntos y versiones. Contienen datos personales de los empleados: muéstralos solo si el usuario los pide.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_payrolls_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_payroll (RO): Obtener una nómina
- get_payroll_attachments (RO): Listar adjuntos de una nómina
- get_payroll_version (RO): Versión de la nómina
- list_payroll_versions (RO, paginada): Versiones de la nómina
- list_payrolls (RO, paginada): Lista de nóminas

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_payroll` | Obtener una nómina | `getPayroll` |
| `get_payroll_attachments` | Listar adjuntos de una nómina | `getPayrollAttachments` |
| `get_payroll_version` | Versión de la nómina | `getPayrollVersion` |
| `list_payroll_versions` | Versiones de la nómina | `getPayrollVersions` |
| `list_payrolls` | Lista de nóminas | `getPayrolls` |

## `facturadirecta_payrolls_write` — FacturaDirecta · Nóminas (escritura)

Puede modificar datos. Permisos: `payrolls:write`.

Nóminas: listar, consultar, crear, modificar, registrar pagos, etiquetas, adjuntos y versiones. Contienen datos personales de los empleados: muéstralos solo si el usuario los pide.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_payrolls.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_payroll_attachments: Vincular adjuntos a una nómina
- create_payroll: Crear nómina
- create_payroll_payments: Crear pagos para una nómina
- update_payroll: Actualizar nómina
- update_payroll_tags: Actualizar etiquetas de nómina

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_payroll_attachments` | Vincular adjuntos a una nómina | `addPayrollAttachments` |
| `create_payroll` | Crear nómina | `createPayroll` |
| `create_payroll_payments` | Crear pagos para una nómina | `createPayrollPayments` |
| `update_payroll` | Actualizar nómina | `updatePayroll` |
| `update_payroll_tags` | Actualizar etiquetas de nómina | `updatePayrollTags` |

## `facturadirecta_inbox` — FacturaDirecta · Escaneos

Solo consulta datos. Permisos: `inbox:read`.

Escaneos: la bandeja de entrada de documentos pendientes de procesar (OCR) y la subida de ficheros: listar, consultar, proponer gasto, ticket o nómina a partir de un documento, archivar.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_inbox_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_inbox_item (RO): Detalle de un item de la bandeja
- list_inbox_items (RO, paginada): Lista de items en la bandeja de entrada
- propose_bill (RO): Propuesta de factura de compra desde un item de la bandeja
- propose_payroll (RO): Propuesta de nómina desde un item de la bandeja
- propose_ticket (RO): Propuesta de ticket de compra desde un item de la bandeja

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_inbox_item` | Detalle de un item de la bandeja | `getInboxItem` |
| `list_inbox_items` | Lista de items en la bandeja de entrada | `getInboxItems` |
| `propose_bill` | Propuesta de factura de compra desde un item de la bandeja | `proposeBill` |
| `propose_payroll` | Propuesta de nómina desde un item de la bandeja | `proposePayroll` |
| `propose_ticket` | Propuesta de ticket de compra desde un item de la bandeja | `proposeTicket` |

## `facturadirecta_inbox_write` — FacturaDirecta · Escaneos (escritura)

Puede modificar datos. Permisos: `inbox:write`.

Escaneos: la bandeja de entrada de documentos pendientes de procesar (OCR) y la subida de ficheros: listar, consultar, proponer gasto, ticket o nómina a partir de un documento, archivar.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Esta tool escribe; las lecturas del dominio están en facturadirecta_inbox.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- delete_inbox_item: Archivar un item de la bandeja

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `delete_inbox_item` | Archivar un item de la bandeja | `deleteInboxItem` |

## `facturadirecta_contacts` — FacturaDirecta · Contactos

Solo consulta datos. Permisos: `contacts:read`.

Contactos: clientes, proveedores y empleados: listar (con búsqueda por nombre, NIF o email), consultar, crear, modificar, etiquetas y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_contacts_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_contact (RO): Obtener un contacto
- get_contact_version (RO): Versión de el contacto
- list_contact_versions (RO, paginada): Versiones de el contacto
- list_contacts (RO, paginada): Lista de contactos

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_contact` | Obtener un contacto | `getContact` |
| `get_contact_version` | Versión de el contacto | `getContactVersion` |
| `list_contact_versions` | Versiones de el contacto | `getContactVersions` |
| `list_contacts` | Lista de contactos | `getContacts` |

## `facturadirecta_contacts_write` — FacturaDirecta · Contactos (escritura)

Puede modificar datos. Permisos: `contacts:write`.

Contactos: clientes, proveedores y empleados: listar (con búsqueda por nombre, NIF o email), consultar, crear, modificar, etiquetas y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_contacts.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_contact: Crear contacto
- update_contact: Actualizar contacto
- update_contact_tags: Actualizar etiquetas de contacto

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_contact` | Crear contacto | `createContact` |
| `update_contact` | Actualizar contacto | `updateContact` |
| `update_contact_tags` | Actualizar etiquetas de contacto | `updateContactTags` |

## `facturadirecta_products` — FacturaDirecta · Productos

Solo consulta datos. Permisos: `products:read`.

Productos y servicios, con su stock y movimientos: listar (con búsqueda por nombre), consultar, crear, modificar, ajustar stock y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_products_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_product (RO): Obtener un producto
- get_product_stock (RO): Stock de un producto
- get_product_version (RO): Versión de el producto
- list_product_stock_movements (RO, paginada): Movimientos de stock de un producto
- list_product_versions (RO, paginada): Versiones de el producto
- list_products (RO, paginada): Lista de productos

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_product` | Obtener un producto | `getProduct` |
| `get_product_stock` | Stock de un producto | `getProductStock` |
| `get_product_version` | Versión de el producto | `getProductVersion` |
| `list_product_stock_movements` | Movimientos de stock de un producto | `listProductStockMovements` |
| `list_product_versions` | Versiones de el producto | `getProductVersions` |
| `list_products` | Lista de productos | `getProducts` |

## `facturadirecta_products_write` — FacturaDirecta · Productos (escritura)

Puede modificar datos. Permisos: `products:write`.

Productos y servicios, con su stock y movimientos: listar (con búsqueda por nombre), consultar, crear, modificar, ajustar stock y versiones.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_products.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- adjust_product_stock: Ajuste manual de stock
- create_product: Crear producto
- update_product: Actualizar producto

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `adjust_product_stock` | Ajuste manual de stock | `adjustProductStock` |
| `create_product` | Crear producto | `createProduct` |
| `update_product` | Actualizar producto | `updateProduct` |

## `facturadirecta_automation` — FacturaDirecta · Tareas recurrentes

Solo consulta datos. Permisos: `invoices:read`, `recurring:read`.

Tareas recurrentes: facturas de venta recurrentes (plantillas que generan facturas periódicamente): listar, consultar, crear, modificar, PDF de muestra, etiquetas y adjuntos.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_automation_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_recurring_invoice_pdf (RO): Generar muestra de la factura de venta recurrente en formato PDF
- get_recurring_invoice (RO): Obtener una factura de venta recurrente
- get_recurring_invoice_attachments (RO): Listar adjuntos de una factura recurrente
- list_recurring_invoices (RO, paginada): Lista de facturas de venta recurrentes

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_recurring_invoice_pdf` | Generar muestra de la factura de venta recurrente en formato PDF | `createRecurringInvoicePDF` |
| `get_recurring_invoice` | Obtener una factura de venta recurrente | `getRecurringInvoice` |
| `get_recurring_invoice_attachments` | Listar adjuntos de una factura recurrente | `getRecurringInvoiceAttachments` |
| `list_recurring_invoices` | Lista de facturas de venta recurrentes | `getRecurringInvoices` |

## `facturadirecta_automation_write` — FacturaDirecta · Tareas recurrentes (escritura)

Puede modificar datos. Permisos: `invoices:write`, `recurring:write`.

Tareas recurrentes: facturas de venta recurrentes (plantillas que generan facturas periódicamente): listar, consultar, crear, modificar, PDF de muestra, etiquetas y adjuntos.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_automation.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- add_recurring_invoice_attachments: Vincular adjuntos a una factura recurrente
- create_recurring_invoice: Crea factura de venta recurrente
- update_recurring_invoice: Actualizar factura recurrente
- update_recurring_invoice_tags: Actualizar etiquetas de factura de venta recurrente

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `add_recurring_invoice_attachments` | Vincular adjuntos a una factura recurrente | `addRecurringInvoiceAttachments` |
| `create_recurring_invoice` | Crea factura de venta recurrente | `createRecurringInvoice` |
| `update_recurring_invoice` | Actualizar factura recurrente | `updateRecurringInvoice` |
| `update_recurring_invoice_tags` | Actualizar etiquetas de factura de venta recurrente | `updateRecurringInvoiceTags` |

## `facturadirecta_activity` — FacturaDirecta · Actividad

Solo consulta datos. Permisos: `activity:read`.

Actividad: el registro de altas, modificaciones, borrados, envíos por email, accesos y tareas automáticas de la empresa, con quién y cuándo; paginación por cursor.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- list_activity (RO, paginada): Registro de actividad de la empresa

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `list_activity` | Registro de actividad de la empresa | `getActivity` |

## `facturadirecta_banks` — FacturaDirecta · Bancos

Solo consulta datos. Permisos: `banks:read`, `statements:read`.

Bancos y cuentas de tesorería, con su saldo contable, el saldo según la entidad, el estado del enlace y los movimientos pendientes (related), extractos bancarios y su conciliación con asientos contables.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_banks_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_bank (RO): Obtener un banco
- get_bank_version (RO): Versión de el banco
- get_statement (RO): Obtener un extracto bancario
- list_bank_versions (RO, paginada): Versiones de el banco
- list_banks (RO, paginada): Lista de bancos
- list_statements (RO, paginada): Lista de extractos bancarios

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_bank` | Obtener un banco | `getBank` |
| `get_bank_version` | Versión de el banco | `getBankVersion` |
| `get_statement` | Obtener un extracto bancario | `getStatement` |
| `list_bank_versions` | Versiones de el banco | `getBankVersions` |
| `list_banks` | Lista de bancos | `getBanks` |
| `list_statements` | Lista de extractos bancarios | `getStatements` |

## `facturadirecta_banks_write` — FacturaDirecta · Bancos (escritura)

Puede modificar datos. Permisos: `statements:write`.

Bancos y cuentas de tesorería, con su saldo contable, el saldo según la entidad, el estado del enlace y los movimientos pendientes (related), extractos bancarios y su conciliación con asientos contables.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_banks.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- reconcile_statement: Conciliar extracto bancario con asiento contable existente
- reconcile_statement_with_new_transaction: Conciliar extracto bancario creando un nuevo asiento contable
- unreconcile_statement: Desconciliar extracto bancario

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `reconcile_statement` | Conciliar extracto bancario con asiento contable existente | `reconcileStatement` |
| `reconcile_statement_with_new_transaction` | Conciliar extracto bancario creando un nuevo asiento contable | `reconcileStatementWithNewTransaction` |
| `unreconcile_statement` | Desconciliar extracto bancario | `unreconcileStatement` |

## `facturadirecta_accounting` — FacturaDirecta · Asientos contables

Solo consulta datos. Permisos: `accounting:read`.

Asientos contables: el diario con filtros por fechas, cuenta y documento. Solo con el módulo de Contabilidad; para totales de ingresos, gastos y beneficio usa los informes.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- list_journal (RO, paginada): Diario contable

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `list_journal` | Diario contable | `getJournal` |

## `facturadirecta_tax_declarations` — FacturaDirecta · Impuestos

Solo consulta datos. Permisos: `taxDeclarations:read`.

Impuestos: los modelos de la AEAT que la empresa ha generado y guardado (303, 111, 115, 130, 202, 180, 190, 347, 349 y 390): listar por modelo, ejercicio y periodo con su resultado, consultar uno con sus casillas y, en las informativas, sus registros por tercero, y descargar su PDF y su fichero de presentación. Solo lectura: la API no genera ni presenta modelos. Los tipos de IVA e IRPF que se aplican a los documentos están en la configuración (get_sales_taxes, get_purchases_taxes).

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_tax_declaration_aeat_file (RO): Generar el fichero de presentación de un modelo de impuestos
- create_tax_declaration_pdf (RO): Generar el PDF de un modelo de impuestos
- get_tax_declaration (RO): Obtener un modelo de impuestos
- get_tax_declaration_attachments (RO): Listar adjuntos de un modelo de impuestos
- list_tax_declarations (RO, paginada): Lista de modelos de impuestos

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_tax_declaration_aeat_file` | Generar el fichero de presentación de un modelo de impuestos | `createTaxDeclarationAeatFile` |
| `create_tax_declaration_pdf` | Generar el PDF de un modelo de impuestos | `createTaxDeclarationPDF` |
| `get_tax_declaration` | Obtener un modelo de impuestos | `getTaxDeclaration` |
| `get_tax_declaration_attachments` | Listar adjuntos de un modelo de impuestos | `getTaxDeclarationAttachments` |
| `list_tax_declarations` | Lista de modelos de impuestos | `getTaxDeclarations` |

## `facturadirecta_reports` — FacturaDirecta · Informes

Solo consulta datos. Permisos: `accounting:read`.

Informes, calculados en el servidor con las mismas cifras que la web: resumen de resultados (ingresos, gastos y beneficio) y sus documentos, pérdidas y ganancias, balance de situación y sumas y saldos.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_balance_sheet (RO): Balance de situación
- get_profit_loss (RO): Pérdidas y ganancias
- get_results_summary (RO): Resumen de resultados
- list_results_detail (RO, paginada): Detalle del resumen de resultados
- list_trial_balance (RO, paginada): Sumas y saldos

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_balance_sheet` | Balance de situación | `getBalanceSheet` |
| `get_profit_loss` | Pérdidas y ganancias | `getProfitLoss` |
| `get_results_summary` | Resumen de resultados | `getResultsSummary` |
| `list_results_detail` | Detalle del resumen de resultados | `getResultsDetail` |
| `list_trial_balance` | Sumas y saldos | `getTrialBalance` |

## `facturadirecta_query` — FacturaDirecta · Consultas

Solo consulta datos. Permisos: `accounting:read`, `bills:read`, `contacts:read`, `invoices:read`.

Consulta analítica: suma, cuenta y clasifica en una sola llamada las facturas de venta, las compras, sus líneas, los contactos o los apuntes del diario: mejores clientes o proveedores, productos más vendidos y su margen, facturas vencidas y cuánto suman, compras pendientes de pago, gastos por proveedor, ventas por provincia o país, días de cobro, comparativa con el periodo anterior y desglose por meses. Sustituye a paginar un listado y sumar. Llama antes a describe con la acción query: devuelve las fuentes, medidas, dimensiones y filtros admitidos y ejemplos.

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- query (RO): Consulta analítica

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `query` | Consulta analítica | `analyticsQuery` |

## `facturadirecta_settings` — FacturaDirecta · Configuración

Solo consulta datos. Permisos: `customFields:read`, `paymentMethods:read`, `settings:read`.

Configuración de la empresa: su ficha y forma de trabajar (datos fiscales, moneda, borrador o definitivo, VeriFactu y TicketBAI, bloqueo contable, buzón de la bandeja y módulos del plan), series de numeración, impuestos de venta y de compra, plantillas de documento, campos personalizados y métodos de pago (los genéricos de la empresa y, con el filtro contact, los de cada cliente o proveedor).

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
Esta tool solo lee; las escrituras del dominio están en facturadirecta_settings_write.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- get_company_settings (RO): Ficha y forma de trabajar de la empresa
- get_custom_field (RO): Obtener campo personalizado
- get_payment_method (RO): Obtener un método de pago
- get_payment_method_version (RO): Versión de el método de pago
- get_purchases_taxes (RO): Lista de impuestos de compra disponibles
- get_sales_taxes (RO): Lista de impuestos de venta disponibles
- get_series (RO): Lista de series de numeración
- get_themes (RO): Lista de plantillas de documentos disponibles
- list_custom_fields (RO, paginada): Lista de campos personalizados
- list_payment_method_versions (RO, paginada): Versiones de el método de pago
- list_payment_methods (RO, paginada): Lista de métodos de pago

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `get_company_settings` | Ficha y forma de trabajar de la empresa | `getCompanySettings` |
| `get_custom_field` | Obtener campo personalizado | `getCustomField` |
| `get_payment_method` | Obtener un método de pago | `getPaymentMethod` |
| `get_payment_method_version` | Versión de el método de pago | `getPaymentMethodVersion` |
| `get_purchases_taxes` | Lista de impuestos de compra disponibles | `getPurchasesTaxes` |
| `get_sales_taxes` | Lista de impuestos de venta disponibles | `getSalesTaxes` |
| `get_series` | Lista de series de numeración | `getSeries` |
| `get_themes` | Lista de plantillas de documentos disponibles | `getThemes` |
| `list_custom_fields` | Lista de campos personalizados | `getCustomFields` |
| `list_payment_method_versions` | Versiones de el método de pago | `getPaymentMethodVersions` |
| `list_payment_methods` | Lista de métodos de pago | `getPaymentMethods` |

## `facturadirecta_settings_write` — FacturaDirecta · Configuración (escritura)

Puede modificar datos. Permisos: `customFields:write`, `paymentMethods:write`.

Configuración de la empresa: su ficha y forma de trabajar (datos fiscales, moneda, borrador o definitivo, VeriFactu y TicketBAI, bloqueo contable, buzón de la bandeja y módulos del plan), series de numeración, impuestos de venta y de compra, plantillas de documento, campos personalizados y métodos de pago (los genéricos de la empresa y, con el filtro contact, los de cada cliente o proveedor).

Tool gateway: llama con {"action": "...", "params": {...}}.
Llama {"action": "describe", "params": {"action": "NOMBRE"}} para el contrato completo de una acción (parámetros, cuerpo, respuesta, ejemplos, permiso), o sin params para el índice del dominio.
En las acciones con cuerpo, envía el objeto de describe.body.schema bajo params.body.
Esta tool escribe; las lecturas del dominio están en facturadirecta_settings.
Antes de llamar a cualquier acción de esta tool, muestra al usuario un resumen de lo que vas a crear, modificar, enviar o borrar, incluida la empresa, y pide su confirmación explícita. Crea los documentos como borrador salvo que el usuario pida lo contrario. Envía idempotencyKey para que un reintento no repita la operación.
Toda acción admite companyId (ver whoami); con una sola empresa se resuelve solo.

ACCIONES (RO = solo lectura):
- create_custom_field: Crear campo personalizado
- create_payment_method: Crear método de pago
- delete_custom_field: Borrar campo personalizado
- restore_custom_field: Recuperar campo personalizado
- update_custom_field: Actualizar campo personalizado
- update_payment_method: Actualizar método de pago

| Acción | Qué hace | Operación de la API |
|---|---|---|
| `create_custom_field` | Crear campo personalizado | `createCustomField` |
| `create_payment_method` | Crear método de pago | `createPaymentMethod` |
| `delete_custom_field` | Borrar campo personalizado | `deleteCustomField` |
| `restore_custom_field` | Recuperar campo personalizado | `restoreCustomField` |
| `update_custom_field` | Actualizar campo personalizado | `updateCustomField` |
| `update_payment_method` | Actualizar método de pago | `updatePaymentMethod` |


