Catálogo de tools
Todas las tools del MCP de Factuarea agrupadas por dominio, más las diez tools privilegiadas de cuentas gestionadas, con el scope que requiere cada una y su categoría de límite de peticiones.
El servidor MCP de Factuarea publica 668 tools en los dominios de la API pública. Esta página es
la lista canónica; el esquema de entrada de cada tool se descubre en tiempo de
ejecución mediante tools/list. Cada tool se corresponde con la misma operación en la
Referencia de la REST API. Las diez tools que aprovisionan cuentas gestionadas no forman parte de ese
total: están al final, porque una key necesita los scopes privilegiados
accounts:* para verlas.
Cómo leer este catálogo
- Tool — el nombre de la tool MCP que invoca tu agente.
- Scope — el scope granular que debe tener la credencial para que la tool
aparezca en
tools/listy sea invocable. Consulta Scopes y permisos. - Category — el bucket de límite de peticiones al que pertenece la tool:
read,write,destructive,sendogenerate. Consulta Errores y límites de peticiones.
Una credencial solo ve las tools que cubren sus scopes. Una API key con el
super-scope * las ve las 668; una key más restringida o un token OAuth ve un subconjunto.
¹ Restringidas en OAuth (solo API key). 127 tools son accesibles únicamente con una
API key, nunca a través de una app OAuth de terceros: las 11 tools verifactu:write,
forget_delivery_note_signature (delivery_notes:gdpr_forget), las 20 tools de Pagos y pasarelas (los scopes
stripe_autoinvoicing:*, payouts:read e integration_events:* son scopes
granulares, solo API key), las 3 tools de Correos enviados y las 4 de registro de
peticiones (emails:read y developers:read inspeccionan el tráfico de tu
propia integración: son scopes de primera parte, nunca se conceden por
consentimiento de terceros), las 14 tools de la cartera de NIF y
get_consolidated_workforce (companies:* es de primera parte: nunca se concede
a terceros por consentimiento OAuth), las tools de la cuenta —5 de administración
(nif_transfers:* y account:owner), 16 de miembros, grants e invitaciones
(members:*, invitations:*) y 10 de webhooks de cuenta (usan los mismos scopes
webhooks:* que las tools de webhooks de empresa, pero la capacidad de cuenta
rechaza un token OAuth): quién es titular de una cuenta, quién pertenece a ella y
adónde van sus eventos nunca se cede a una app de terceros—, las 5 tools de
escritura de cuenta (account:write: crear, rotar o revocar API keys, sustituir
el ámbito de NIF de una key y actualizar la personalización de la cuenta), las 33
tools de control horario cuyos scopes de
escritura/transición (time_entries:write, absences:write,
absences:transition, work_schedules:write) son granulares y solo API key,
fuera del catálogo de consentimiento OAuth (sus lecturas y employees:write sí
se conceden por OAuth), delete_automation_rule (automations:delete se deja
fuera del catálogo de consentimiento OAuth a propósito; los otros tres scopes
del motor de automatizaciones —automations:read, automations:write y
automation_runs:read— sí se conceden) y las 9 tools de borrado de proyectos y
tareas (projects:delete y tasks:delete nunca aparecen en la pantalla de
consentimiento: leer y escribir se conceden, borrar no). Por tanto, las apps
OAuth alcanzan
541 de las 668 tools. Las diez
tools de cuentas gestionadas también son solo API key y quedan fuera de los dos recuentos. Consulta la política de canales.
² Tope por lote — 200 ids por llamada. bulk_send_invoices,
bulk_send_quotes, bulk_send_proformas y bulk_send_delivery_notes admiten
como máximo 200 ids por llamada, el mismo tope que sus rutas REST hermanas
(POST /v1/companies/{company}/{resource}/bulk-send). Un lote mayor se rechaza
antes de enviar nada: no sale ningún correo ni se encola ningún trabajo.
Divide el lote en bloques de 200 y repite la llamada. El mensaje de error cita
dos cifras y nada más —el tope y lo que enviaste—, así que no devuelve ningún
id del lote:
No puedes enviar más de 200 facturas por lote. Has enviado 201. Divide el lote en bloques de 200 como máximo y repite la llamada.
Dominios
Facturas
Facturas: búsqueda, CRUD, rectificativas, ledger de pagos parciales, transiciones (issue/paid/sent/void/annul), programación, operaciones masivas, recordatorios, enlaces públicos, PDFs, presentaciones, enrutado administrativo y exportación a Excel. (51 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
can_annul_invoice | invoices:read | read |
check_invoice_simplified_eligibility | invoices:read | read |
export_invoices_excel | invoices:read | read |
find_invoice_by_external_id | invoices:read | read |
find_invoice_by_number | invoices:read | read |
get_available_quarters | invoices:read | read |
get_invoice | invoices:read | read |
get_invoice_activities | invoices:read | read |
get_invoice_correctives | invoices:read | read |
get_invoice_payment_receipt | pdfs:read | read |
get_invoice_pdf | pdfs:read | read |
get_invoice_presentation | invoices:read | read |
get_invoice_public_link | invoices:read | read |
get_invoice_stats | invoices:read | read |
get_invoice_statuses | invoices:read | read |
list_invoice_administrative_revisions | invoices:read | read |
list_invoice_payments | invoices:read | read |
list_invoice_presentations | invoices:read | read |
list_payment_methods | invoices:read | read |
preview_invoice_reminder | invoices:read | read |
search_invoices | invoices:read | read |
annul_invoice | invoices:void | write |
assign_invoice_presentation | invoices:write | write |
assign_invoice_real_number | invoices:write | write |
bulk_change_invoice_status | invoices:write | write |
bulk_create_invoices | invoices:write | write |
bulk_delete_invoices | invoices:delete | destructive |
bulk_invoices_pdf_link | pdfs:read | generate |
bulk_send_invoices ² | invoices:send | send |
create_corrective_invoice | invoices:write | write |
create_invoice | invoices:write | write |
delete_invoice | invoices:delete | destructive |
duplicate_invoice | invoices:write | write |
issue_invoice | invoices:write | write |
mark_invoice_as_paid | invoices:write | write |
mark_invoice_as_sent | invoices:write | write |
mark_invoice_unsent | invoices:write | write |
quarterly_send_email | invoices:send | send |
register_invoice_payment | invoices:write | write |
reschedule_invoice | invoices:write | write |
revert_invoice_payment | invoices:write | write |
revise_invoice_administrative_routing | invoices:write | write |
revise_invoice_presentation | invoices:write | write |
schedule_invoice | invoices:write | write |
send_invoice | invoices:send | send |
send_invoice_reminder | invoices:send | send |
substitute_simplified_invoice | invoices:write | write |
unschedule_invoice | invoices:write | write |
update_invoice | invoices:write | write |
update_invoice_public_link | invoices:write | write |
void_invoice | invoices:void | write |
get_invoice devuelve la factura completa por su id público: datos comerciales, ids de línea (UUIDv7), centros efectivos, snapshot, override, versión y revisión administrativas y los snapshots estructurados originales. Conserva null y las listas vacías tal como se guardaron. get_invoice_pdf devuelve el enlace firmado de descarga exacto cuando existe una salida retenida; el modo compatible aún puede devolver el PDF en base64. send_invoice puede adjuntar el fichero FacturaE con attach_facturae=true; con submission_id adjunta esa presentación existente, sin crear ni reintentar ninguna, y exige attach_facturae=true. update_invoice_public_link admite revoke, activate, extend (con extend_days), reset o publish, este último con la referencia exacta y la versión observada.
list_invoice_administrative_revisions lee la versión administrativa, el snapshot, el override y el historial por el id público de la factura. Distingue el null heredado de [] y no consulta los centros actuales del contacto. revise_invoice_administrative_routing añade una revisión administrativa con la lista completa de centros, un motivo y expected_version (un entero positivo); [] borra los centros efectivos y no se modifica la fiscalidad. Si falta la versión responde 428; si está obsoleta, 409 con current_version. Reintentar con la versión antigua no duplica la revisión. Devuelve la revisión creada y su propia administrative_version.
assign_invoice_presentation asigna un template_id (UUIDv7) o un null explícito para heredar, con expected_version. Solo se aplica a borradores de la empresa autenticada y no modifica importes ni numeración. get_invoice_presentation lee el estado visual y la captura retenida de un documento autorizado, y list_invoice_presentations lista las capturas retenidas en orden descendente, con page/per_page y los metadatos capturados; ninguna escribe, consulta artefactos ni genera un PDF. revise_invoice_presentation crea una revisión visual auditada con su padre, una comprobación compare-and-set (CAS) y los tokens auténticos de vista previa presentation_revision; current_legal solo admite una corrección jurídica real de una factura emitida. No reemite ni recalcula. Consulta Presentación de documentos.
Contactos
(28 tools)
Los contactos fiscales canónicos tienen roles acumulables de cliente, proveedor y lead; son la única superficie MCP pública para identidades de terceros. No se publican tools separadas de cliente o proveedor. La plantilla CSV sigue siendo una descarga REST. Consulta Migración de contactos.
Nombres retirados. Cuatro tools de contactos siguen respondiendo a su nombre anterior hasta el 15 de noviembre de 2026: search_clients (ahora search_contacts), find_client_by_tax_id (ahora find_contact_by_tax_id), create_client (ahora create_contact) y bulk_create_clients (ahora bulk_create_contacts). No aparecen en tools/list, se aplican los permisos de la sucesora y el resultado incluye _meta["io.factuarea/deprecation"] con deprecated_tool, successor y sunset. Un argumento antiguo sin equivalente se rechaza con -32008 invalid_param_value y un hint que nombra el argumento y la sucesora; en search_clients son city, province, is_active, created_from, created_to y ending_before, y solo se admite una clave de búsqueda entre search, name, tax_id, email y phone, que pasa a la búsqueda libre q (de al menos 2 caracteres) y devuelve solo clientes activos; para listar sin término usa list_contacts con roles=["customer"]. Pasada la fecha, el nombre antiguo responde como una tool inexistente (-32602).
| Tool | Scope | Categoría |
|---|---|---|
archive_contact | contacts:delete | destructive |
assign_contact_role | contacts:write | write |
bulk_archive_contacts | contacts:delete | destructive |
bulk_create_contacts | contacts:write | write |
bulk_change_contact_role_status | contacts:write | write |
bulk_delete_contacts | contacts:delete | destructive |
change_contact_role_status | contacts:write | write |
create_contact | contacts:write | write |
delete_contact | contacts:delete | destructive |
download_contact_import_errors | contacts:read | read |
find_contact_by_external_id | contacts:read | read |
find_contact_by_tax_id | contacts:read | read |
get_contact | contacts:read | read |
get_contact_activities | contacts:read | read |
get_contact_import | contacts:read | read |
get_contact_options | contacts:read | read |
get_contact_stats | contacts:read | read |
import_contacts | contacts:write | write |
list_contacts | contacts:read | read |
preview_contacts_import | contacts:write | write |
remove_contact_role | contacts:delete | destructive |
restore_contact | contacts:write | write |
search_contacts | contacts:read | read |
update_bank_accounts | contacts:write | write |
update_contact | contacts:write | write |
update_customer_profile | contacts:write | write |
update_supplier_profile | contacts:write | write |
verify_contact_census | contacts:read | write |
Productos
Catálogo: búsqueda, CRUD, opciones/combinaciones configurables, ledger de stock, presentaciones, variantes, ofertas de proveedor, acciones masivas, analítica y media. (40 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
download_product_gallery_image | products:read | read |
download_product_video | products:read | read |
find_product_by_external_id | products:read | read |
find_product_by_sku | products:read | read |
get_product | products:read | read |
get_product_activities | products:read | read |
get_product_sales_analytics | products:read | read |
get_product_stats | products:read | read |
low_stock_report | products:read | read |
list_product_configurations | products:read | read |
list_product_options | products:read | read |
list_product_presentations | products:read | read |
list_product_stock_movements | products:read | read |
list_product_variants | products:read | read |
resolve_catalog_selection | products:read | read |
list_supplier_product_offers | products:read | read |
preview_product_base_unit_replacement | products:write | read |
search_products | products:read | read |
bulk_change_product_status | products:write | write |
bulk_delete_products | products:delete | destructive |
bulk_update_stock | products:write | write |
create_product | products:write | write |
create_product_presentation | products:write | write |
create_product_variant | products:write | write |
create_supplier_product_offer | products:write | write |
delete_product | products:delete | destructive |
delete_product_gallery_image | products:delete | destructive |
delete_product_presentation | products:write | destructive |
delete_product_variant | products:write | destructive |
delete_product_video | products:delete | destructive |
delete_supplier_product_offer | products:write | destructive |
replace_product_base_unit | products:write | write |
set_preferred_supplier_product_offer | products:write | write |
toggle_product_active | products:write | write |
update_product | products:write | write |
update_product_presentation | products:write | write |
update_product_variant | products:write | write |
update_supplier_product_offer | products:write | write |
upload_product_gallery_image | products:write | write |
upload_product_video | products:write | write |
create_product, update_product, create_product_variant,
update_product_variant, create_product_presentation y
update_product_presentation aceptan gross_weight_kg: el peso bruto de transporte en
kg (hasta cuatro decimales, mayor que cero) por unidad base en productos y variantes y
por unidad comercial en presentaciones fijas. En las tres tools de edición, omitirlo
conserva el peso actual y null lo borra. Los servicios, las unidades base de masa
(KGM, GRM) y las presentaciones variable_measure lo rechazan con
gross_weight_not_allowed.
preview_product_base_unit_replacement y replace_product_base_unit cambian la unidad base de
un producto sustituyéndolo por uno nuevo. La vista previa calcula, sin escribir nada, qué
ocurre con el stock, el precio, las presentaciones, las variantes, las ofertas de proveedor,
las tarifas y los packs, y qué documentos pendientes seguirán apuntando al producto antiguo;
es una lectura, pero requiere products:write y devuelve el impact_token que exige la
sustitución. La sustitución es irreversible: el producto antiguo queda desactivado con su
historial, exige ese impact_token y acepta idempotency_key.
Tarifas
Precios por cliente y documento: gestionar ítems activos/retirados, opciones compactas y resolver selecciones de catálogo configurable. (13 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_price_list | price_lists:read | read |
get_price_list_options | price_lists:read | read |
list_price_list_items | price_lists:read | read |
list_price_lists | price_lists:read | read |
resolve_catalog_price | price_lists:read | read |
resolve_many_catalog_prices | price_lists:read | read |
create_price_list | price_lists:write | write |
delete_price_list | price_lists:write | destructive |
delete_price_list_item | price_lists:write | destructive |
purge_retired_price_list_item | price_lists:write | destructive |
reassign_retired_price_list_item | price_lists:write | write |
update_price_list | price_lists:write | write |
upsert_price_list_item | price_lists:write | write |
Presupuestos
Presupuestos: búsqueda, CRUD, aceptar/rechazar, enviar, convertir a factura, operaciones masivas, búsqueda por ID externo, enlaces públicos, PDFs y presentaciones. (24 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
find_quote_by_external_id | quotes:read | read |
get_quote | quotes:read | read |
get_quote_pdf | pdfs:read | read |
get_quote_presentation | quotes:read | read |
get_quote_public_link | quotes:read | read |
get_quote_stats | quotes:read | read |
get_quote_statuses | quotes:read | read |
list_quote_presentations | quotes:read | read |
search_quotes | quotes:read | read |
accept_quote | quotes:transition | write |
assign_quote_presentation | quotes:write | write |
bulk_change_quote_status | quotes:transition | write |
bulk_delete_quotes | quotes:delete | destructive |
bulk_quotes_pdf_link | pdfs:read | generate |
bulk_send_quotes ² | quotes:send | send |
convert_quote | quotes:transition | write |
create_quote | quotes:write | write |
delete_quote | quotes:delete | destructive |
duplicate_quote | quotes:write | write |
reject_quote | quotes:transition | write |
revise_quote_presentation | quotes:write | write |
send_quote | quotes:send | send |
update_quote | quotes:write | write |
update_quote_public_link | quotes:write | write |
get_quote_pdf devuelve el enlace firmado de descarga exacto (download_url) con su caducidad (expires_at) cuando existe una salida retenida, o su estado mientras aún se está generando; el modo compatible devuelve el contenido en base64. update_quote_public_link admite revoke, activate, extend (con extend_days), reset o publish, este último con la referencia exacta y la versión observada.
assign_quote_presentation asigna un template_id (UUIDv7) o un null explícito para heredar, con expected_version. Solo se aplica a borradores de la empresa autenticada y no modifica importes ni numeración. get_quote_presentation lee el estado visual y la captura retenida de un documento autorizado, y list_quote_presentations lista las capturas retenidas en orden descendente, con page/per_page y los metadatos capturados; ninguna escribe, consulta artefactos ni genera un PDF. revise_quote_presentation crea una revisión visual auditada con su padre, una comprobación compare-and-set (CAS) y los tokens auténticos de vista previa presentation_revision. Conserva la fuente capturada y admite el propósito complete en formato A4. No reemite ni recalcula. Consulta Presentación de documentos.
Facturas proforma
Proformas: búsqueda, CRUD, aceptar/rechazar, enviar, convertir, operaciones masivas, búsqueda por ID externo, enlaces públicos, PDFs y presentaciones. (24 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
find_proforma_by_external_id | proformas:read | read |
get_proforma | proformas:read | read |
get_proforma_pdf | pdfs:read | read |
get_proforma_presentation | proformas:read | read |
get_proforma_public_link | proformas:read | read |
get_proforma_stats | proformas:read | read |
get_proforma_statuses | proformas:read | read |
list_proforma_presentations | proformas:read | read |
search_proformas | proformas:read | read |
accept_proforma | proformas:transition | write |
assign_proforma_presentation | proformas:write | write |
bulk_change_proforma_status | proformas:transition | write |
bulk_delete_proformas | proformas:delete | destructive |
bulk_proformas_pdf_link | pdfs:read | generate |
bulk_send_proformas ² | proformas:send | send |
convert_proforma | proformas:transition | write |
create_proforma | proformas:write | write |
delete_proforma | proformas:delete | destructive |
duplicate_proforma | proformas:write | write |
reject_proforma | proformas:transition | write |
revise_proforma_presentation | proformas:write | write |
send_proforma | proformas:send | send |
update_proforma | proformas:write | write |
update_proforma_public_link | proformas:write | write |
get_proforma_pdf devuelve el enlace firmado de descarga exacto (download_url) con su caducidad (expires_at) cuando existe una salida preparada, o su estado mientras aún se está generando; 404 pdf_artifact_not_found significa que ningún PDF conservado coincide con la presentación, el propósito y el formato actuales del documento; un PDF conservado que falló al renderizarse o no se puede verificar responde el error de PDF no disponible (500), y uno borrado por privacidad responde 410; el modo compatible devuelve el contenido en base64. update_proforma_public_link admite revoke, activate, extend, reset o publish, este último con la referencia exacta y la versión observada.
assign_proforma_presentation asigna un template_id (UUIDv7) o un null explícito para heredar, con expected_version. Solo se aplica a borradores de la empresa autenticada y no modifica importes ni numeración. get_proforma_presentation lee el estado visual y la captura retenida de un documento autorizado, y list_proforma_presentations lista las capturas retenidas en orden descendente, con page/per_page y los metadatos capturados; ninguna escribe, consulta artefactos ni genera un PDF. revise_proforma_presentation crea una revisión visual auditada con su padre, una comprobación compare-and-set (CAS) y los tokens auténticos de vista previa presentation_revision. Solo conserva la fuente capturada y admite el propósito complete en formato A4. No reemite ni recalcula. Consulta Presentación de documentos.
Albaranes
Albaranes: búsqueda, CRUD, entregar/cancelar/firmar, convertir, enviar, operaciones masivas, búsqueda por ID externo, enlaces públicos, PDFs, presentaciones y borrado GDPR de la firma. (26 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
find_delivery_note_by_external_id | delivery_notes:read | read |
get_delivery_note | delivery_notes:read | read |
get_delivery_note_pdf | pdfs:read | read |
get_delivery_note_presentation | delivery_notes:read | read |
get_delivery_note_public_link | delivery_notes:read | read |
get_delivery_note_stats | delivery_notes:read | read |
get_delivery_note_statuses | delivery_notes:read | read |
list_delivery_note_presentations | delivery_notes:read | read |
search_delivery_notes | delivery_notes:read | read |
assign_delivery_note_presentation | delivery_notes:write | write |
bulk_change_delivery_note_status | delivery_notes:transition | write |
bulk_delete_delivery_notes | delivery_notes:delete | destructive |
bulk_delivery_notes_pdf_link | pdfs:read | generate |
bulk_send_delivery_notes ² | delivery_notes:write | send |
cancel_delivery_note | delivery_notes:transition | write |
convert_delivery_note | delivery_notes:transition | write |
create_delivery_note | delivery_notes:write | write |
delete_delivery_note | delivery_notes:delete | destructive |
duplicate_delivery_note | delivery_notes:write | write |
forget_delivery_note_signature | delivery_notes:gdpr_forget ¹ | destructive |
mark_delivery_note_delivered | delivery_notes:transition | write |
revise_delivery_note_presentation | delivery_notes:write | write |
send_delivery_note | delivery_notes:write | send |
sign_delivery_note | delivery_notes:transition | write |
update_delivery_note | delivery_notes:write | write |
update_delivery_note_public_link | delivery_notes:write | write |
get_delivery_note_pdf devuelve el enlace firmado de descarga exacto (download_url) con su caducidad (expires_at) cuando existe una salida preparada, o su estado mientras aún se está generando; 404 pdf_artifact_not_found significa que ningún PDF conservado coincide con la presentación, el propósito y el formato actuales del documento; un PDF conservado que falló al renderizarse o no se puede verificar responde el error de PDF no disponible (500), y uno borrado por privacidad responde 410; el modo compatible devuelve el contenido en base64. update_delivery_note_public_link admite revoke, activate, extend, reset o publish, este último con la referencia exacta y la versión observada. En send_delivery_note, presentation_precondition identifica el PDF exacto que se revisó, y expected_presentation_uuid y expected_publication_id fijan las identidades esperadas. Para aceptar una presentación exacta, sign_delivery_note admite expected_presentation_id, expected_external_version, expected_source_token, expected_artifact_id y una operation_key (UUID v7); expected_publication_id es opcional si no hubo publicación. Estos campos solo tienen efecto cuando la presentación revisionada está activada para la empresa; en caso contrario se ignoran.
assign_delivery_note_presentation asigna un template_id (UUIDv7) o un null explícito para heredar, con expected_version. Solo se aplica a borradores de la empresa autenticada y no modifica importes ni numeración. get_delivery_note_presentation lee el estado visual y la captura retenida de un documento autorizado, y list_delivery_note_presentations lista las capturas retenidas en orden descendente, con page/per_page y los metadatos capturados; ninguna escribe, consulta artefactos ni genera un PDF. revise_delivery_note_presentation crea una revisión visual auditada con su padre, una comprobación compare-and-set (CAS) y los tokens auténticos de vista previa presentation_revision. Solo conserva la fuente capturada y admite el propósito complete en formato A4. No reemite ni recalcula. Consulta Presentación de documentos.
Documentos de control
Documento electrónico de control administrativo (DeCA) del transporte de mercancías por carretera: búsqueda, borradores (también prerrellenados desde albaranes), emisión, modificación durante el servicio, cierre, reapertura, anulación, sustitución, envío de la copia al transportista por email, registro de emisión y PDF de cada versión. (15 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_transport_document | transport_documents:read | read |
get_transport_document_evidence | transport_documents:read | read |
get_transport_document_pdf | pdfs:read | read |
get_transport_document_statuses | transport_documents:read | read |
search_transport_documents | transport_documents:read | read |
cancel_transport_document | transport_documents:transition | write |
close_transport_document | transport_documents:transition | write |
create_transport_document | transport_documents:write | write |
delete_transport_document | transport_documents:delete | destructive |
issue_transport_document | transport_documents:transition | write |
modify_transport_document | transport_documents:transition | write |
reopen_transport_document | transport_documents:transition | write |
send_transport_document | transport_documents:write | send |
supersede_transport_document | transport_documents:transition | write |
update_transport_document | transport_documents:write | write |
issue_transport_document, modify_transport_document, cancel_transport_document,
supersede_transport_document y send_transport_document son irreversibles y
aceptan idempotency_key. get_transport_document_pdf devuelve la URL pública
permanente y los metadatos de la versión (sha256, tamaño), nunca los bytes del PDF. El
código QR y el justificante de emisión son descargas binarias de la REST API sin tool
(GET /v1/companies/{company}/transport-documents/{transport_document}/qr y /issuance-proof), y los lugares de carga
solo se gestionan en la app. Consulta Documento de control (DeCA).
search_transport_documents admite el mismo q (de 1 a 255 caracteres) y el mismo
sort que GET /v1/companies/{company}/transport-documents: transport_date, number, created o
updated, con un - delante para el orden descendente y -transport_date por defecto.
create_transport_document no admite id, igual que el endpoint REST: lo genera el
servidor y un argumento id se ignora. Las tools de alta y de edición pasan los UUID a
minúsculas y responden a un shipments[].id que ya está en uso, o que es de otro
documento, con el mismo 422 en shipments.N.id que la REST API. Las tools que dejan
una entrada en el registro de emisión (emitir, modificar, cerrar, reabrir, anular,
sustituir y enviar) la atribuyen a la credencial que las llama (la clave de API, o el
cliente OAuth con el usuario que lo autorizó), nunca al usuario que creó la clave; get_transport_document_evidence
devuelve ese actor en actor_name e informa los cierres automáticos como auto_closed.
Gastos
Gastos: búsqueda, CRUD, marcar como pagado, ledger de pagos parciales, operaciones masivas, listas de pendientes/vencidos, búsqueda por ID externo, adjuntos de archivo y recibos de pago. (19 tools)
create_purchase_invoice y update_purchase_invoice aceptan el contrato de línea medida (purchase_measurement, discount_percent, price_source, source_line_index); duplicar desde source_purchase_invoice_id exige además purchase_invoices:read. Consulta Líneas de compra medidas.
| Herramienta | Scope | Categoría |
|---|---|---|
download_purchase_invoice_file | purchase_invoices:read | read |
find_purchase_invoice_by_external_id | purchase_invoices:read | read |
get_purchase_invoice | purchase_invoices:read | read |
get_purchase_invoice_payment_receipt | pdfs:read | read |
list_purchase_invoice_expense_categories | purchase_invoices:read | read |
get_purchase_invoice_stats | purchase_invoices:read | read |
list_overdue_purchase_invoices | purchase_invoices:read | read |
list_pending_purchase_invoices | purchase_invoices:read | read |
list_purchase_invoice_payments | purchase_invoices:read | read |
search_purchase_invoices | purchase_invoices:read | read |
attach_purchase_invoice_file | purchase_invoices:write | write |
bulk_change_purchase_invoice_status | purchase_invoices:transition | write |
bulk_delete_purchase_invoices | purchase_invoices:delete | destructive |
create_purchase_invoice | purchase_invoices:write | write |
delete_purchase_invoice | purchase_invoices:delete | destructive |
delete_purchase_invoice_file | purchase_invoices:write | write |
mark_purchase_invoice_paid | purchase_invoices:transition | write |
register_purchase_invoice_payment | purchase_invoices:transition | write |
update_purchase_invoice | purchase_invoices:write | write |
Escáner de compras
Recibe documentos mediante la API multipart o el buzón del escáner, consulta la extracción y sus evidencias, corrige campos, resuelve duplicados y crea un borrador de compra. La subida y descarga de originales usan HTTP; MCP gestiona los escaneos persistidos. Consulta la guía del escáner de documentos. (10 tools)
| Tool | Scope | Category |
|---|---|---|
search_purchase_scans | purchase_invoices:read | read |
get_purchase_scan | purchase_invoices:read | read |
get_purchase_scan_stats | purchase_invoices:read | read |
list_purchase_scan_emails | purchase_invoices:read | read |
save_purchase_scan_review | purchase_invoices:write | write |
convert_purchase_scan | purchase_invoices:write | write |
resolve_purchase_scan_duplicate | purchase_invoices:write | write |
retry_purchase_scan | purchase_invoices:write | write |
archive_purchase_scan | purchase_invoices:delete | destructive |
restore_purchase_scan | purchase_invoices:write | write |
Dos operaciones del escáner de compras se quedan fuera de MCP a propósito y
solo existen en REST: subir un escaneo
(POST /v1/companies/{company}/purchase-scans)
es una subida multipart/binaria que MCP no puede transportar, y descargar el
fichero original
(GET /v1/companies/{company}/purchase-scans/{id}/source)
devuelve el binario cifrado, por lo que MCP expone sus metadatos en su lugar.
PublicApiV1McpToolParityTest.php mantiene ambas en su allowlist. Sustituir
el fichero original no tiene endpoint en v1 — solo está disponible desde la
aplicación web.
Facturas recurrentes
Plantillas recurrentes: búsqueda, CRUD, crear desde una factura, activar/pausar/reanudar/cancelar/saltar, cambio de estado en bloque, previsualización, generar ahora, búsqueda por ID externo, logs y actividad. (19 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
find_recurring_invoice_by_external_id | recurring_invoices:read | read |
get_recurring_invoice | recurring_invoices:read | read |
get_recurring_invoice_stats | recurring_invoices:read | read |
list_recurring_invoice_activities | recurring_invoices:read | read |
list_recurring_invoice_logs | recurring_invoices:read | read |
preview_recurring_invoice | recurring_invoices:read | read |
search_recurring_invoices | recurring_invoices:read | read |
activate_recurring_invoice | recurring_invoices:transition | write |
bulk_change_recurring_invoice_status | recurring_invoices:transition | write |
bulk_delete_recurring_invoices | recurring_invoices:delete | destructive |
cancel_recurring_invoice | recurring_invoices:transition | write |
create_recurring_invoice | recurring_invoices:write | write |
create_recurring_invoice_from_invoice | recurring_invoices:write | write |
delete_recurring_invoice | recurring_invoices:delete | destructive |
generate_recurring_invoice | recurring_invoices:transition | write |
pause_recurring_invoice | recurring_invoices:transition | write |
resume_recurring_invoice | recurring_invoices:transition | write |
skip_recurring_invoice | recurring_invoices:write | write |
update_recurring_invoice | recurring_invoices:write | write |
generate_recurring_invoice genera una factura ahora desde una recurrencia de la empresa autenticada y, según generation_mode, puede emitirla y enviarla. Es irreversible: requiere confirmación del host o de la UI y una clave de idempotencia, y los reintentos reproducen la misma respuesta. No cambia la configuración ni la fecha del intento. Exige recurring_invoices:transition, como pausar y reanudar, que es lo que concede el scope OAuth recurring.generate_now; la operación REST POST /v1/companies/{company}/recurring-invoices/{recurring_invoice}/generate sigue exigiendo recurring_invoices:write.
Series
Series de numeración (editables bajo las guardas fiscales de la numeración, nunca se eliminan): búsqueda, crear, actualizar, archivar/desarchivar, marcar por defecto, arrancar las cuatro series por defecto de una empresa recién dada de alta, estadísticas, preferencia de plantilla PDF y actividad. (15 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
find_series_by_code | series:read | read |
get_default_series_for_type | series:read | read |
get_series | series:read | read |
get_series_activities | series:read | read |
get_series_pdf_template | series:read | read |
get_series_stats | series:read | read |
list_active_series | series:read | read |
search_series | series:read | read |
archive_series | series:write | write |
assign_series_pdf_template | series:write | write |
bootstrap_series | series:write | write |
create_series | series:write | write |
mark_series_as_default | series:write | write |
unarchive_series | series:write | write |
update_series | series:write | write |
create_series con un pdf_template_id exige la misma autorización que update_series. get_series_pdf_template lee la preferencia de PDF de una serie propia, su versión y su disponibilidad. Conserva la referencia guardada aunque ahora no sea elegible, y no genera documentos ni altera la numeración. assign_series_pdf_template asigna una plantilla compatible de la empresa, o limpia la preferencia con null para heredar. expected_version es la versión del CAS visual leída de la serie, y un replay con la misma clave se resuelve antes de esa comprobación. No renumera ni genera un PDF. unarchive_series siempre funciona: si la plantilla PDF que conservaba la serie ya no es seleccionable, la respuesta añade warnings con inherited_candidate_unavailable y la serie usa la plantilla por defecto aplicable, sin perder la referencia guardada.
Plantillas PDF
Biblioteca de plantillas PDF de la empresa: plantillas, marcas comerciales, activos privados, preferencias por contacto y de la empresa, revisiones e impacto. Requiere el módulo pdf_templates. (25 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_pdf_commercial_identity | pdf_templates:read | read |
get_pdf_commercial_identity_impact | pdf_templates:read | read |
get_pdf_commercial_identity_revision | pdf_templates:read | read |
get_pdf_template | pdf_templates:read | read |
get_pdf_template_asset | pdf_templates:read | read |
get_pdf_template_contact_default | pdf_templates:read | read |
get_pdf_template_defaults | pdf_templates:read | read |
get_pdf_template_impact | pdf_templates:read | read |
get_pdf_template_revision | pdf_templates:read | read |
list_pdf_commercial_identities | pdf_templates:read | read |
list_pdf_templates | pdf_templates:read | read |
archive_pdf_commercial_identity | pdf_templates:write | write |
archive_pdf_template | pdf_templates:write | write |
create_pdf_commercial_identity | pdf_templates:write | write |
create_pdf_template | pdf_templates:write | write |
duplicate_pdf_template | pdf_templates:write | write |
publish_pdf_commercial_identity_revision | pdf_templates:write | write |
publish_pdf_template_revision | pdf_templates:write | write |
restore_pdf_commercial_identity | pdf_templates:write | write |
restore_pdf_template | pdf_templates:write | write |
set_pdf_template_contact_default | pdf_templates:write | write |
set_pdf_template_defaults | pdf_templates:write | write |
update_pdf_commercial_identity | pdf_templates:write | write |
update_pdf_template | pdf_templates:write | write |
upload_pdf_template_asset | pdf_templates:write | write |
Crear, renombrar, archivar, restaurar y publicar una revisión, y guardar preferencias, exigen un administrador. Las tools que cambian una entidad existente llevan expected_version (una comprobación compare-and-set), y un replay con la misma clave se resuelve antes de esa comprobación. create_pdf_template y create_pdf_commercial_identity crean una entidad nueva, así que no llevan expected_version; upload_pdf_template_asset crea un activo privado nuevo y tampoco la lleva. Reutiliza la idempotency_key al reintentarlas para no crear ni subir nada dos veces. duplicate_pdf_template lleva el expected_version de la plantilla origen que has leído y, con idempotency_key, evita crear dos copias. Las tools de lectura son lecturas autorizadas del emisor y no necesitan clave de idempotencia ni precondición de escritura. Consulta la guía de la biblioteca de plantillas PDF.
Artefactos y vistas previas PDF
Artefactos y vistas previas PDF: preparar el PDF de una captura autorizada, ejecutar el plan retenido, leer los metadatos y verificar el original, y previsualizar una plantilla. (5 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_pdf_artifact | pdfs:read | read |
read_pdf_artifact | pdfs:read | read |
prepare_pdf_artifact | pdfs:read | generate |
preview_pdf_template | pdfs:read + pdf_templates:read | generate |
render_pdf_artifact | pdfs:read | generate |
prepare_pdf_artifact prepara el PDF de una captura autorizada exacta; nunca crea una captura. render_pdf_artifact ejecuta el plan retenido exacto en modo sync o async, sin fallback en vivo. get_pdf_artifact lee los metadatos seguros del artefacto exacto; el sondeo nunca genera nada. read_pdf_artifact verifica el PDF original y devuelve sus metadatos con un enlace firmado corto, nunca base64. preview_pdf_template prepara una vista previa con la autoridad y los scopes pdfs:read + pdf_templates:read; no captura ni publica. Consulta Vistas previas y artefactos PDF.
Impuestos
Impuestos (catálogo de Factuarea más los propios de tu empresa): búsqueda, alta, edición, borrado, valores por defecto por empresa, comprobaciones de uso, cálculos de impuesto/totales y el catálogo fiscal AEAT de solo lectura (regímenes, causas de exención, tipos de IRPF y los pares legales IVA ↔ recargo de equivalencia). (18 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
calculate_tax | taxes:read | read |
calculate_totals | taxes:read | read |
check_tax_in_use | taxes:read | read |
get_active_taxes | taxes:read | read |
get_tax | taxes:read | read |
get_tax_catalog | taxes:read | read |
get_tax_defaults_for_document | taxes:read | read |
get_tax_stats | taxes:read | read |
get_taxes_by_type | taxes:read | read |
get_taxes_for_purchases | taxes:read | read |
get_taxes_for_sales | taxes:read | read |
search_taxes | taxes:read | read |
create_tax | taxes:write | write |
set_tax_as_default | taxes:write | write |
set_tax_default_for_document | taxes:write | write |
toggle_tax_active | taxes:write | write |
update_tax | taxes:write | write |
delete_tax | taxes:delete | destructive |
VeriFactu
SIF de la AEAT: registros, eventos, validación de cadena, reintento (de un registro o de todos los bloqueados), subsanación de registros aceptados o rechazados, representación para la remisión por tercero, certificados, ajustes, declaración responsable y log de acceso a la AEAT. (31 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
find_verifactu_record_by_csv | verifactu:read | read |
find_verifactu_record_by_huella | verifactu:read | read |
find_verifactu_record_by_invoice_number | verifactu:read | read |
get_active_company_certificate | verifactu:read | read |
get_aeat_access_record | verifactu:read | read |
get_company_representation | verifactu:read | read |
get_declaracion_responsable | verifactu:read | read |
get_declaracion_responsable_history | verifactu:read | read |
get_invoice_verifactu | verifactu:read | read |
get_verifactu_activities | verifactu:read | read |
get_verifactu_config | verifactu:read | read |
get_verifactu_event | verifactu:read | read |
get_verifactu_event_summary | verifactu:read | read |
get_verifactu_record | verifactu:read | read |
get_verifactu_stats | verifactu:read | read |
list_aeat_access_records | verifactu:read | read |
list_company_certificates | verifactu:read | read |
list_verifactu_events | verifactu:read | read |
search_verifactu_records | verifactu:read | read |
validate_verifactu_chain | verifactu:read | read |
activate_company_certificate | verifactu:write ¹ | write |
create_invoice_verifactu | verifactu:write ¹ | write |
register_company_representation | verifactu:write ¹ | write |
retry_blocked_verifactu_records | verifactu:write ¹ | write |
retry_verifactu_event | verifactu:write ¹ | write |
retry_verifactu_record | verifactu:write ¹ | write |
revoke_company_certificate | verifactu:write ¹ | write |
revoke_company_representation | verifactu:write ¹ | write |
subsanar_verifactu_record | verifactu:write ¹ | write |
update_verifactu_settings | verifactu:write ¹ | write |
upload_company_certificate | verifactu:write ¹ | write |
FacturaE (FACe)
Facturación electrónica B2G: descarga el XML FacturaE 3.2.2 de una factura y gestiona sus presentaciones a FACe (enviar, seguir, cancelar). Requiere el módulo facturae. (5 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_face_submission | facturae:read | read |
list_invoice_face_submissions | facturae:read | read |
cancel_face_submission | facturae:write | write |
get_invoice_facturae_link | facturae:read | read |
send_invoice_to_face | facturae:write | write |
cancel_face_submission exige además la capacidad edit sobre el módulo facturae; sin ella la llamada responde 403 facturae_operation_forbidden.
Informes fiscales
Declaraciones ante la AEAT calculadas a partir de tus propios datos de facturación: genera el Modelo 303, el 347 y el 130 como fichero posicional oficial, PDF o libro de revisión; previsualiza el desglose sin persistir nada; y lee el histórico de generaciones, sus estadísticas, su actividad y sus ficheros. (9 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
download_tax_report | tax_reports:read | read |
find_tax_report_by_period | tax_reports:read | read |
get_tax_report_activities | tax_reports:read | read |
get_tax_report_history | tax_reports:read | read |
get_tax_report_stats | tax_reports:read | read |
preview_tax_report | tax_reports:read | read |
generate_tax_report_130 | tax_reports:write | generate |
generate_tax_report_303 | tax_reports:write | generate |
generate_tax_report_347 | tax_reports:write | generate |
Ante la AEAT solo se presenta el txt_aeat; el PDF y el libro son material de
revisión construido con el mismo cálculo. Consulta
Informes fiscales.
Webhooks y eventos
Endpoints de webhook de un NIF, entregas, rotación de secreto, ping/replay, eventos de prueba y el catálogo de eventos publicados. La cuenta tiene sus propios endpoints: Webhooks de cuenta. (13 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_event | events:read | read |
get_webhook_delivery | webhooks:read | read |
get_webhook_endpoint | webhooks:read | read |
list_events | events:read | read |
list_webhook_deliveries | webhooks:read | read |
search_webhook_endpoints | webhooks:read | read |
create_webhook_endpoint | webhooks:write | write |
delete_webhook_endpoint | webhooks:delete | write |
ping_webhook_endpoint | webhooks:write | write |
replay_webhook_delivery | webhooks:write | write |
rotate_webhook_secret | webhooks:write | write |
test_webhook_endpoint | webhooks:write | write |
update_webhook_endpoint | webhooks:write | write |
Automatizaciones
El motor de automatizaciones: reglas con la forma cuando → si → haz, las versiones inmutables de la definición de cada regla, el ensayo que dice qué haría una regla sin llegar a hacerlo, el historial de ejecuciones con sus pasos y sus motivos de descarte tipificados, el relanzamiento de un paso aparcado o de una ejecución entera, el catálogo de disparadores y acciones con los campos que expone cada disparador, y la cuota mensual de ejecuciones. Requiere el módulo automations. (18 tools)
replay_automation_run y replay_automation_run_step vuelven a ejecutar los
pasos de verdad: envían correos, entregan webhooks y llaman a terceros. No es
un reintento inocuo: confírmalo con la persona usuaria antes de invocarlas. El
trabajo se encola, así que la respuesta confirma que se aceptó, no que haya
terminado; comprueba el desenlace con get_automation_run o
list_automation_run_steps.
| Herramienta | Scope | Categoría |
|---|---|---|
dry_run_automation_rule | automations:read | read |
get_automation_catalog | automations:read | read |
get_automation_rule | automations:read | read |
get_automation_rule_version | automations:read | read |
get_automation_run | automation_runs:read | read |
get_automation_trigger_fields | automations:read | read |
get_automation_usage | automations:read | read |
list_automation_rule_versions | automations:read | read |
list_automation_rules | automations:read | read |
list_automation_run_steps | automation_runs:read | read |
list_automation_runs | automation_runs:read | read |
activate_automation_rule | automations:write | write |
create_automation_rule | automations:write | write |
delete_automation_rule | automations:delete ¹ | destructive |
pause_automation_rule | automations:write | write |
replay_automation_run | automations:write | write |
replay_automation_run_step | automations:write | write |
update_automation_rule | automations:write | write |
Cuenta
Identidad fiscal y personalización de la cuenta: verifica el par nombre + NIF registrado de la empresa contra el censo de la AEAT, consulta plantillas de personalización y actualiza la personalización de la cuenta. (4 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_account_billing | account:read | read |
get_account_personalization_templates | account:read | read |
update_account_personalization | account:write ¹ | write |
verify_account_census | account:read | write |
Administración de la cuenta
Titularidad de la cuenta y traspaso de NIF entre cuentas: emitir, listar, aceptar y revocar un traspaso de NIF, y pasar la titularidad de la cuenta a otro miembro. Son operaciones de la cuenta, no de los datos de un NIF. Al emitir un traspaso se devuelve su secreto una sola vez; la cuenta que lo recibe lo acepta con ese secreto y la cuenta que lo entrega puede revocarlo hasta entonces. accept_nif_transfer, create_nif_transfer, revoke_nif_transfer y transfer_account_ownership son irreversibles: el servidor las publica con destructiveHint: true y una entrada idempotency_key (consulta Protocolo y transporte). Cuando los NIF aceptados necesitan plazas contratadas y no hay ninguna libre, accept_nif_transfer compra las que faltan, así que envía siempre una idempotency_key. (no forman parte de los totales de arriba: * no cubre sus scopes)
| Herramienta | Scope | Categoría |
|---|---|---|
list_nif_transfers | nif_transfers:read ¹ | read |
accept_nif_transfer | nif_transfers:write ¹ | write |
create_nif_transfer | nif_transfers:write ¹ | write |
revoke_nif_transfer | nif_transfers:write ¹ | write |
transfer_account_ownership | account:owner ¹ | write |
Miembros de la cuenta
Las personas de la cuenta: listar y consultar los miembros con su rol de cuenta (owner, admin o member) y su marca de asesor externo, añadir un miembro, cambiar su rol o su marca de asesor externo y retirarlo, consultar, fijar y retirar el grant de un miembro sobre un NIF, consultar y fijar su acceso por módulo, y gestionar las invitaciones que los crean. delete_account_member es irreversible: el servidor la publica con destructiveHint: true y una entrada idempotency_key. (no forman parte de los totales de arriba: * no cubre sus scopes)
| Herramienta | Scope | Categoría |
|---|---|---|
get_account_member | members:read ¹ | read |
get_account_member_grant | members:read ¹ | read |
get_account_member_module_access | members:read ¹ | read |
list_account_member_grants | members:read ¹ | read |
list_account_members | members:read ¹ | read |
get_account_invitation | invitations:read ¹ | read |
list_account_invitations | invitations:read ¹ | read |
create_account_member | members:write ¹ | write |
revoke_account_member_grant | members:write ¹ | write |
set_account_member_grant | members:write ¹ | write |
update_account_member | members:write ¹ | write |
update_account_member_module_access | members:write ¹ | write |
cancel_account_invitation | invitations:write ¹ | write |
create_account_invitation | invitations:write ¹ | write |
resend_account_invitation | invitations:write ¹ | write |
delete_account_member | members:write ¹ | destructive |
NIF de la cuenta
La cartera de NIF de la cuenta: listar, buscar por identificador fiscal, consultar, dar de alta, actualizar, activar (uno o varios), desactivar y archivar NIF, seguir y reconciliar el alta de uno, las estadísticas de facturación por NIF, si un NIF ya puede emitir y una vista previa del cargo de añadir o activar NIF adicionales, además del uso de la cuenta en el periodo vigente (peticiones y documentos, con desglose por NIF). Los NIF adicionales se cobran por plaza contratada: get_additional_nif_seats consulta las plazas contratadas, ocupadas y libres de la cuenta, preview_additional_nif_seat_change previsualiza, sin cobrar, fijarlas en una cantidad y update_additional_nif_seats la fija (cantidad absoluta, idempotente con idempotency_key). Comprar plazas cobra al momento la diferencia prorrateada; reducirlas tiene efecto en la renovación. Por debajo de las plazas ocupadas, deactivate lista los UUID de los NIF que se desactivarán en la renovación, exactamente tantos como sobran; si la reducción hace terminar un paquete de oferta aplicado, accept_offer_package_loss (booleano) confirma la pérdida. create_company, activate_company y activate_companies compran las plazas que faltan cuando no hay ninguna libre y la cuenta paga, así que envía una idempotency_key. Dar de alta o reactivar un NIF adicional puede cobrarse: consulta NIF adicionales. (18 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_account_usage | account:read | read |
find_company_by_tax_id | companies:read ¹ | read |
get_additional_nif_seats | companies:read ¹ | read |
get_companies_stats | companies:read ¹ | read |
get_company | companies:read ¹ | read |
get_company_creation_status | companies:read ¹ | read |
get_company_issuing_readiness | companies:read ¹ | read |
get_company_seat_charge_preview | companies:read ¹ | read |
list_companies | companies:read ¹ | read |
preview_additional_nif_seat_change | companies:read ¹ | read |
activate_companies | companies:write ¹ | write |
activate_company | companies:write ¹ | write |
create_company | companies:write ¹ | write |
deactivate_company | companies:write ¹ | write |
update_additional_nif_seats | companies:write ¹ | write |
update_company | companies:write ¹ | write |
verify_company_creation | companies:write ¹ | write |
delete_company | companies:delete ¹ | write |
Webhooks de cuenta
Los endpoints de webhook de la cuenta, distintos de los endpoints de un NIF: crear, consultar, listar, actualizar y eliminar un endpoint, rotar su secreto de firma, enviar una entrega de prueba, consultar sus entregas y reintentar una fallida. Un endpoint de cuenta recibe los eventos de la cuenta y, según account_relationship (own, managed o all), los de sus NIF. Consulta Webhooks de cuenta. (10 tools)
Estas tools usan los mismos scopes webhooks:* que Webhooks y eventos, pero funcionan solo con API key: un token OAuth nunca las lista y, si llama a una, recibe 403 forbidden_action. Una clave de pruebas lee los endpoints de prueba; crear, actualizar, eliminar, rotar, probar y reintentar exigen una clave de producción. La persona que emitió la clave debe ser hoy titular o administradora de la cuenta, y la clave debe cubrir todos los NIF de la cuenta. delete_account_webhook y rotate_account_webhook_secret son irreversibles: el servidor las publica con destructiveHint: true y una entrada idempotency_key.
| Herramienta | Scope | Categoría |
|---|---|---|
get_account_webhook | webhooks:read ¹ | read |
get_account_webhook_delivery | webhooks:read ¹ | read |
list_account_webhook_deliveries | webhooks:read ¹ | read |
list_account_webhooks | webhooks:read ¹ | read |
create_account_webhook | webhooks:write ¹ | write |
retry_account_webhook_delivery | webhooks:write ¹ | write |
rotate_account_webhook_secret | webhooks:write ¹ | write |
test_account_webhook | webhooks:write ¹ | write |
update_account_webhook | webhooks:write ¹ | write |
delete_account_webhook | webhooks:delete ¹ | write |
API keys
API keys self-service de tu cuenta: listar, crear, consultar, ver su uso diario, rotar el secreto, revocar y sustituir el ámbito de NIF de una key. El ámbito nuevo nunca puede superar el de la credencial que lo cambia. El secreto se devuelve una sola vez, al crear y al rotar. revoke_api_key y rotate_api_key_secret son irreversibles: el servidor las publica con destructiveHint: true y una entrada idempotency_key. Consulta las claves acotadas. (7 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_api_key | account:read | read |
get_api_key_usage | account:read | read |
list_api_keys | account:read | read |
create_api_key | account:write ¹ | write |
revoke_api_key | account:write ¹ | write |
rotate_api_key_secret | account:write ¹ | write |
update_api_key_nif_scope | account:write ¹ | write |
Control horario de la cartera
Panel consolidado de cumplimiento horario de la cartera de NIF: una fila por NIF activo dentro del ámbito de la credencial, sin la empresa titular de la cuenta, con el estado de su último cierre mensual y los totales del último cierre (saldo, horas extra y número de empleados). Una sola llamada agrega toda la cartera, mientras que el resto de tools de control horario opera sobre un NIF. (1 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_consolidated_workforce | companies:read ¹ | read |
Pagos y pasarelas
Integraciones de pagos y tiendas: facturación automática de Stripe, cuentas conectadas, liquidaciones, bandeja de eventos, gestión y diagnóstico de tiendas WooCommerce y Shopify. Estas herramientas solo admiten API key. La disponibilidad también depende de los módulos de la empresa y de la configuración del proveedor. (26 tools)
replay_integrations_event tiene efecto fiscal real. Si la causa que impidió
facturar ya está resuelta, reprocesar un evento parqueado puede emitir una
factura de verdad, con su número de serie y su alta en VeriFactu. No es un
reintento inocuo: confírmalo con la persona usuaria antes de invocarla. No
duplica facturas: el reproceso vuelve a pasar por la misma comprobación de
idempotencia del intento original.
| Herramienta | Scope | Categoría |
|---|---|---|
get_integrations_event | integration_events:read ¹ | read |
get_payout | payouts:read ¹ | read |
get_stripe_autoinvoicing_config | stripe_autoinvoicing:read ¹ | read |
get_stripe_connected_account | stripe_autoinvoicing:read ¹ | read |
list_integrations_events | integration_events:read ¹ | read |
list_stripe_autoinvoiced_correctives | stripe_autoinvoicing:read ¹ | read |
list_stripe_autoinvoiced_payments | stripe_autoinvoicing:read ¹ | read |
list_stripe_charge_rules | stripe_autoinvoicing:read ¹ | read |
list_stripe_connected_accounts | stripe_autoinvoicing:read ¹ | read |
list_stripe_non_invoiced_charges | stripe_autoinvoicing:read ¹ | read |
search_payouts | payouts:read ¹ | read |
create_stripe_charge_rule | stripe_autoinvoicing:write ¹ | write |
delete_stripe_charge_rule | stripe_autoinvoicing:write ¹ | destructive |
disconnect_stripe_connected_account | stripe_autoinvoicing:write ¹ | write |
reorder_stripe_charge_rules | stripe_autoinvoicing:write ¹ | write |
replay_integrations_event | integration_events:write ¹ | write |
update_stripe_autoinvoicing_config | stripe_autoinvoicing:write ¹ | write |
update_stripe_charge_rule | stripe_autoinvoicing:write ¹ | write |
update_stripe_connected_account | stripe_autoinvoicing:write ¹ | write |
list_stores | stores:read ¹ | read |
get_store | stores:read ¹ | read |
connect_store | stores:write ¹ | write |
update_store | stores:write ¹ | write |
disconnect_store | stores:write ¹ | write |
test_woocommerce_store_connection | woocommerce_store:write ¹ | write |
test_shopify_store_connection | shopify_store:write ¹ | write |
Correos enviados
Registro de correos enviados: lista los correos que Factuarea ha enviado en nombre de la empresa (facturas, presupuestos, albaranes, recordatorios de pago), consulta uno por su id y resume de una sola vez cómo acabó el envío de un lote de hasta 100 documentos. Úsalo para responder «¿se envió el correo de esta factura?» y para investigar envíos fallidos. (3 tools)
El estado describe la entrega al servidor SMTP saliente, no la entrega
real. sent significa que el servidor de correo saliente aceptó el mensaje:
aun así puede rebotar o acabar en spam sin que Factuarea se entere. No existen
los estados delivered, bounced ni opened; queued, sending, sent y
failed son los únicos. Nunca afirmes que la persona destinataria lo recibió,
lo abrió o lo leyó.
| Herramienta | Scope | Categoría |
|---|---|---|
get_emails | emails:read ¹ | read |
get_emails_indicators | emails:read ¹ | read |
list_emails | emails:read ¹ | read |
Registro de peticiones a la API
El tráfico de tu integración contra la API pública v1 en los últimos 30 días: lista las llamadas con su método, ruta, código de estado, duración, prefijo de API key y entorno, con filtros por solo errores o por cualquiera de esos campos, y consulta una concreta por su request_id, el identificador opaco que la API devuelve en la cabecera de cada respuesta. list_developers_request_logs y get_developers_request_logs muestran las peticiones de un NIF; list_account_request_logs y get_account_request_log muestran las de todas las claves de la cuenta, en el entorno de la clave que llama. Las tools de cuenta funcionan solo con API key, emitida por un titular o administrador de la cuenta y que cubra todos los NIF de la cuenta: consulta los registros de peticiones de la cuenta. Úsalas para depurar una integración: qué llamó, cuándo, con qué código de estado y cuánto tardó. Las cabeceras, el cuerpo y la query string no se almacenan y nunca se devuelven. (4 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_account_request_log | developers:read ¹ | read |
get_developers_request_logs | developers:read ¹ | read |
list_account_request_logs | developers:read ¹ | read |
list_developers_request_logs | developers:read ¹ | read |
Empleados
Plantilla de personal: búsqueda, alta/edición/baja/reactivación, estadísticas y el ciclo de invitaciones (enviar/reenviar/cancelar y listar invitaciones de empleado). Requiere el módulo control_horario. (18 tools)
create_employee y reactivate_employee compran las plazas contratadas que faltan cuando no hay ninguna libre y la cuenta paga: envía una idempotency_key para que un reintento no cobre dos veces. Consulta Plazas de empleado.
| Herramienta | Scope | Categoría |
|---|---|---|
find_employee_by_external_id | employees:read | read |
get_employee | employees:read | read |
get_employee_stats | employees:read | read |
list_employee_invitations | employees:read | read |
search_employees | employees:read | read |
cancel_employee_invitation | employees:write | write |
create_employee | employees:write | write |
deactivate_employee | employees:write | write |
reactivate_employee | employees:write | write |
resend_employee_invitation | employees:write | write |
send_employee_invitation | employees:write | write |
update_employee | employees:write | write |
cancel_employee_batch | employees:write | write |
confirm_employee_batch | employees:write | write |
get_employee_batch | employees:read | read |
list_employee_batches | employees:read | read |
prepare_employee_batch | employees:write | write |
refresh_employee_batch_quote | employees:write | write |
Plazas de empleado
Facturación de las plazas de empleado por plaza contratada: previsualizar y consultar el cargo y la facturación, suscribir, fijar las plazas contratadas, cambiar la cantidad y cancelar el add-on, además de los canjes de ofertas de plazas. update_employee_seats fija las plazas contratadas (cantidad absoluta, idempotente con idempotency_key): comprar cobra al momento la diferencia prorrateada y reducir tiene efecto en la renovación, sin abono. preview_employee_seat_charge previsualiza el cargo, sin cobrar, de dar de alta empleados o, con contracted_seats, de fijar las plazas; contracted_seats no se combina con count ni con employee_ids. Cuando la nueva cantidad queda por debajo de las plazas ocupadas, update_employee_seats, update_additional_nif_seats y cancel_employee_seat_addon aceptan deactivate, la lista de UUID de lo que se desactiva en la renovación, y accept_offer_package_loss, un booleano que confirma la pérdida de un paquete de oferta aplicado si la reducción lo rompe. Requiere el módulo control_horario. (12 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_employee_seat_billing | employees:read | read |
preview_employee_seat_charge | employees:read | read |
cancel_employee_seat_addon | employees:write | write |
change_employee_seat_quantity | employees:write | write |
subscribe_employee_seat_addon | employees:write | write |
update_employee_seats | employees:write | write |
cancel_employee_seat_offer_redemption | employees:write | write |
confirm_employee_seat_offer_redemption | employees:write | write |
get_employee_seat_offer_redemption | employees:read | read |
list_employee_seat_offer_redemptions | employees:read | read |
prepare_employee_seat_offer_redemption | employees:write | write |
refresh_employee_seat_offer_redemption | employees:write | write |
Ofertas de plazas de empresas gestionadas
Las ofertas privadas de plazas de empresas gestionadas usan la empresa matriz pagadora y el scope vigente companies:*. Preparar o actualizar una cotización no activa empresas ni cobra. prepare_employee_seat_offer_redemption y prepare_gestoria_seat_offer_redemption aceptan kind: apply_to_existing, que aplica el código a las plazas que la cuenta ya tiene y no crea, activa ni reactiva nada; no lleva ninguna otra clave. Durante la prueba, un canje de plazas responde 422 customer_offer_not_eligible con details.reason = trial_active, y un código de paquete de oferta, que MCP no canjea, responde reason = product (consulta Ofertas). (6 tools)
| Tool | Scope | Category |
|---|---|---|
cancel_gestoria_seat_offer_redemption | companies:write | write |
confirm_gestoria_seat_offer_redemption | companies:write | write |
get_gestoria_seat_offer_redemption | companies:read | read |
list_gestoria_seat_offer_redemptions | companies:read | read |
prepare_gestoria_seat_offer_redemption | companies:write | write |
refresh_gestoria_seat_offer_redemption | companies:write | write |
Horarios de trabajo
Horarios de trabajo semanales y sus asignaciones: búsqueda, CRUD, archivar/desarchivar, asignar/desasignar a empleados y consultar el horario efectivo de un empleado. Requiere el módulo control_horario. (11 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_employee_work_schedule | work_schedules:read | read |
get_work_schedule | work_schedules:read | read |
get_work_schedule_stats | work_schedules:read | read |
list_work_schedule_assignments | work_schedules:read | read |
search_work_schedules | work_schedules:read | read |
archive_work_schedule | work_schedules:write ¹ | write |
assign_work_schedule | work_schedules:write ¹ | write |
create_work_schedule | work_schedules:write ¹ | write |
unarchive_work_schedule | work_schedules:write ¹ | write |
unassign_work_schedule | work_schedules:write ¹ | write |
update_work_schedule | work_schedules:write ¹ | write |
Control horario
Registro de jornada (RD-ley 8/2019): fichar entrada/salida con pausas, entradas manuales, el flujo de correcciones de fichaje, saldos y hojas de horas mensuales, el cierre mensual inalterable del registro (cerrar/reabrir/sellar, firma, validación de cadena) y sus exportaciones, además de las exportaciones de nómina. Requiere el módulo control_horario. (29 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
export_closed_register | time_entries:read | read |
get_current_time_entry_session | time_entries:read | read |
get_employee_time_balance | time_entries:read | read |
get_monthly_close_report | time_entries:read | read |
get_monthly_register_signature | time_entries:read | read |
get_monthly_time_record_close | time_entries:read | read |
get_monthly_time_sheet | time_entries:read | read |
get_team_time_balance_summary | time_entries:read | read |
get_time_correction | time_entries:read | read |
get_time_entry | time_entries:read | read |
get_time_tracking_settings | time_entries:read | read |
search_monthly_time_record_closes | time_entries:read | read |
search_time_corrections | time_entries:read | read |
search_time_entries | time_entries:read | read |
validate_time_record_chain | time_entries:read | read |
export_payroll | payroll_exports:read | read |
list_payroll_export_formats | payroll_exports:read | read |
approve_time_correction | time_entries:write ¹ | write |
clock_in | time_entries:write ¹ | write |
clock_out | time_entries:write ¹ | write |
close_monthly_time_record | time_entries:write ¹ | write |
pause_time_entry | time_entries:write ¹ | write |
record_manual_time_entry | time_entries:write ¹ | write |
reject_time_correction | time_entries:write ¹ | write |
reopen_monthly_time_record | time_entries:write ¹ | write |
request_time_correction | time_entries:write ¹ | write |
resume_time_entry | time_entries:write ¹ | write |
seal_monthly_time_record | time_entries:write ¹ | write |
update_time_tracking_settings | time_entries:write ¹ | write |
Ausencias
Ausencias: tipos, políticas (con configuración de carryover y asignaciones), solicitudes (crear/aprobar/rechazar/cancelar), saldos y el calendario de ausencias del equipo. Requiere el módulo control_horario. (25 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_absence_balance | absences:read | read |
get_absence_calendar | absences:read | read |
get_absence_policy | absences:read | read |
get_absence_request | absences:read | read |
get_absence_type | absences:read | read |
list_absence_policy_assignments | absences:read | read |
search_absence_balances | absences:read | read |
search_absence_policies | absences:read | read |
search_absence_requests | absences:read | read |
search_absence_types | absences:read | read |
archive_absence_policy | absences:write ¹ | write |
archive_absence_type | absences:write ¹ | write |
assign_absence_policy | absences:write ¹ | write |
configure_absence_policy_carryover | absences:write ¹ | write |
create_absence_policy | absences:write ¹ | write |
create_absence_request | absences:write ¹ | write |
create_absence_type | absences:write ¹ | write |
unarchive_absence_policy | absences:write ¹ | write |
unarchive_absence_type | absences:write ¹ | write |
unassign_absence_policy | absences:write ¹ | write |
update_absence_policy | absences:write ¹ | write |
update_absence_type | absences:write ¹ | write |
approve_absence_request | absences:transition ¹ | write |
cancel_absence_request | absences:transition ¹ | write |
reject_absence_request | absences:transition ¹ | write |
Presencia
Presencia: el panel de presencia en vivo y el estado de presencia por empleado y diario. Requiere el módulo control_horario. (3 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_employee_presence | presence:read | read |
get_live_presence | presence:read | read |
list_daily_presence | presence:read | read |
Festivos
Festivos: consultar el calendario de festivos de la empresa y resolver los festivos aplicables a la región (CCAA) de un empleado. Requiere el módulo control_horario. (3 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_holiday | holidays:read | read |
list_holidays | holidays:read | read |
resolve_applicable_holidays | holidays:read | read |
Proyectos
Proyectos de tareas y sus tableros: crear, editar, archivar y borrar proyectos, resolver uno por su clave (DEV), gestionar las columnas de su tablero y sus campos personalizados de tarea, exportar e importar sus tareas en JSON, consultar el tiempo imputado y convertir el tiempo facturable en un borrador de factura (invoice_project_time exige invoices:write, porque crea una factura). Requiere el módulo tasks. delete_project, delete_project_column y delete_project_custom_field son irreversibles, igual que las tools de borrado de Tareas. (22 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
export_project_tasks | projects:read | read |
find_project_by_key | projects:read | read |
get_project | projects:read | read |
get_project_time_summary | projects:read | read |
list_project_columns | projects:read | read |
list_project_custom_fields | projects:read | read |
list_projects | projects:read | read |
preview_project_time_invoice | projects:read | read |
archive_project | projects:write | write |
create_project | projects:write | write |
create_project_column | projects:write | write |
create_project_custom_field | projects:write | write |
delete_project | projects:delete ¹ | destructive |
delete_project_column | projects:delete ¹ | destructive |
delete_project_custom_field | projects:delete ¹ | destructive |
import_project_tasks | projects:write | write |
invoice_project_time | invoices:write | write |
reorder_project_columns | projects:write | write |
unarchive_project | projects:write | write |
update_project | projects:write | write |
update_project_column | projects:write | write |
update_project_custom_field | projects:write | write |
Tareas
Tareas del tablero: buscar, crear, editar, duplicar, mover, recolocar y borrar tareas —una a una o en bloque—, resolver una por su clave (DEV-12), cambiar su estado, asignarla, etiquetarla, comentarla, relacionarla con otras tareas, vincularla a documentos y contactos, adjuntar ficheros o crear un enlace de subida de un solo uso, imputar tiempo con temporizador y leer su actividad. El tiempo imputado aquí es tiempo de tarea, no el fichaje de jornada del control horario. Requiere el módulo tasks. (52 tools)
Las tools de borrado —delete_task, bulk_delete_tasks, delete_task_comment, delete_task_attachment, delete_task_time_entry y delete_task_label, más delete_project, delete_project_column y delete_project_custom_field en Proyectos— son irreversibles: no hay papelera. Confírmalo con la persona usuaria antes de invocarlas y envía un idempotency_key para que un reintento no repita el efecto. Sus scopes projects:delete y tasks:delete son solo API key (¹).
| Herramienta | Scope | Categoría |
|---|---|---|
download_task_attachment | tasks:read | read |
find_task_by_key | tasks:read | read |
get_running_task_timer | tasks:read | read |
get_task | tasks:read | read |
get_task_activities | tasks:read | read |
get_task_attachment | tasks:read | read |
get_task_label | tasks:read | read |
get_task_time_entry | tasks:read | read |
list_task_attachments | tasks:read | read |
list_task_comments | tasks:read | read |
list_task_entity_links | tasks:read | read |
list_task_external_links | tasks:read | read |
list_task_labels | tasks:read | read |
list_task_relations | tasks:read | read |
list_task_time_entries | tasks:read | read |
list_tasks_linked_to_entity | tasks:read | read |
search_tasks | tasks:read | read |
assign_task | tasks:write | write |
assign_task_label | tasks:write | write |
attach_task_file | tasks:write | write |
bulk_change_task_status | tasks:write | write |
bulk_delete_tasks | tasks:delete ¹ | destructive |
bulk_update_tasks | tasks:write | write |
change_task_status | tasks:write | write |
create_task | tasks:write | write |
create_task_comment | tasks:write | write |
create_task_external_link | tasks:write | write |
create_task_label | tasks:write | write |
create_task_relation | tasks:write | write |
create_task_time_entry | tasks:write | write |
create_task_upload_link | tasks:write | generate |
delete_task | tasks:delete ¹ | destructive |
delete_task_attachment | tasks:delete ¹ | destructive |
delete_task_comment | tasks:delete ¹ | destructive |
delete_task_external_link | tasks:write | destructive |
delete_task_label | tasks:delete ¹ | destructive |
delete_task_relation | tasks:write | destructive |
delete_task_time_entry | tasks:delete ¹ | destructive |
duplicate_task | tasks:write | write |
link_task_entity | tasks:write | write |
move_task | tasks:write | write |
reposition_task | tasks:write | write |
set_task_custom_field_value | tasks:write | write |
start_task_timer | tasks:write | write |
stop_task_timer | tasks:write | write |
unassign_task | tasks:write | write |
unassign_task_label | tasks:write | destructive |
unlink_task_entity | tasks:write | destructive |
update_task | tasks:write | write |
update_task_comment | tasks:write | write |
update_task_label | tasks:write | write |
update_task_time_entry | tasks:write | write |
Usuarios
Los miembros de la empresa —las personas a las que se puede asignar una tarea— y el usuario de la credencial. No depende de ningún módulo del plan. (2 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
get_current_user | users:read | read |
search_users | users:read | read |
Notificaciones
Los avisos de la bandeja de la persona titular de la credencial: listarlos y marcar uno o todos como leídos. No depende de ningún módulo del plan. (3 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
list_notifications | notifications:read | read |
mark_all_notifications_as_read | notifications:write | write |
mark_notification_as_read | notifications:write | write |
Agenda de la empresa
La agenda combinada de una ventana de hasta 93 días: tareas con vencimiento y, en cada capa que la credencial también puede leer, vencimientos de facturas y gastos, caducidades de presupuestos y proformas, ejecuciones de facturas recurrentes, plazos fiscales, ausencias y festivos. Requiere el módulo tasks. (1 tools)
| Herramienta | Scope | Categoría |
|---|---|---|
list_agenda_items | tasks:read | read |
Tools de cuentas gestionadas
Las diez tools que aprovisionan y administran cuentas gestionadas no forman parte de las 668 de arriba ni cuentan en los 41 dominios. Sus scopes, accounts:read y accounts:write, son privilegiados: el super-scope * no los cubre, así que una key que solo tenga * no ve estas tools en tools/list. Indica el scope de forma explícita. Además, cada llamada comprueba que tu cuenta tenga el privilegio de proveedor de cuentas gestionadas que concedemos nosotros, y responde 403 privileged_scope_required si no lo tiene. Nunca llegan por OAuth: usa una API key. Cuentas gestionadas explica la operación que refleja cada tool.
| Herramienta | Scope | Categoría |
|---|---|---|
get_managed_account | accounts:read | read |
get_provisioning_usage | accounts:read | read |
list_managed_accounts | accounts:read | read |
preview_managed_account_plan_change | accounts:read | read |
preview_managed_account_provisioning | accounts:read | read |
change_managed_account_access_level | accounts:write | write |
change_managed_account_plan | accounts:write | write |
end_account_management | accounts:write | write |
provision_managed_account | accounts:write | write |
reissue_managed_account_claim | accounts:write | write |
provision_managed_account, change_managed_account_plan, reissue_managed_account_claim y end_account_management son irreversibles: el servidor las publica con destructiveHint: true y una entrada idempotency_key.
Tres cosas no tienen tool, por diseño:
- La importación masiva. Lee ficheros CSV subidos, que el servidor MCP no transporta, y también es privilegiada. Usa la REST API: Importación masiva.
- El lado del cliente de una cuenta gestionada. Lo que hace el cliente con su cuenta —reclamarla, subir o bajar el nivel que conserva el proveedor, terminar la gestión y asumir el pago— se hace en la app, y tampoco tiene operación
/v1. - La gestión del acceso cedido. Ceder, reenviar, aceptar, rechazar, revocar, cambiar el nivel o el alcance de un acceso entre cuentas, o renunciar a él, se hace en la app, nunca por la API ni por MCP. Acceso cedido lo explica.