Factuarea APIDevelopers

Tool catalog

All Factuarea MCP tools grouped by domain, plus the ten privileged managed-account tools, with the scope each one requires and its rate-limit category.

The Factuarea MCP server publishes 668 tools across the public API domains. This page is the canonical list; each tool's input schema is discoverable at runtime via tools/list. Every tool maps to the same operation in the REST API Reference. The ten tools that provision managed accounts are not part of that total: they are listed at the end, because a key needs the privileged accounts:* scopes to see them.

How to read this catalog

  • Tool — the MCP tool name your agent calls.
  • Scope — the fine-grained scope the credential must hold for the tool to appear in tools/list and to be invocable. See Scopes & permissions.
  • Category — the rate-limit bucket the tool falls into: read, write, destructive, send or generate. See Errors & rate limits.

A credential only sees the tools its scopes cover. An API key with the super-scope * sees all 668; a narrower key or an OAuth token sees a subset.

¹ OAuth-restricted (API key only). 127 tools are reachable only with an API key, never through a third-party OAuth app: the 11 verifactu:write tools, forget_delivery_note_signature (delivery_notes:gdpr_forget), the 20 Payments & gateways tools (the stripe_autoinvoicing:*, payouts:read and integration_events:* scopes are fine-grained, API-key-only scopes), the 3 Emails tools and the 4 API-request-log tools (emails:read and developers:read inspect your own integration's traffic — first-party scopes, never granted by third-party consent), the 14 tax ID portfolio tools and get_consolidated_workforce (companies:* is first-party only, never granted by third-party consent), the account tools — 5 for account administration (nif_transfers:* and account:owner), 16 for members, grants and invitations (members:*, invitations:*) and 10 for account webhooks (they take the same webhooks:* scopes as the company webhook tools, but the account capability refuses an OAuth token): who owns an account, who belongs to it and where its events go is never handed to a third-party app —, the 5 account-write self-service tools (account:write — creating, rotating or revoking API keys, replacing the tax ID scope of a key and updating account personalization), the 33 workforce control-horario tools whose write/transition scopes (time_entries:write, absences:write, absences:transition, work_schedules:write) are fine-grained, API-key-only scopes not in the OAuth consent catalog (their read counterparts and employees:write are OAuth-grantable), delete_automation_rule (automations:delete is deliberately kept out of the OAuth consent catalog; the automation engine's other three scopes — automations:read, automations:write and automation_runs:read — are grantable) and the 9 project and task delete tools (projects:delete and tasks:delete never appear on the consent screen: reading and writing are grantable, deleting is not). OAuth apps therefore reach 541 of the 668 tools. The ten managed-account tools are API-key only as well, and outside both counts. See the channel policy.

² Batch size limit — 200 ids per call. bulk_send_invoices, bulk_send_quotes, bulk_send_proformas and bulk_send_delivery_notes accept at most 200 ids per call — the same limit as their REST counterparts (POST /v1/companies/{company}/{resource}/bulk-send). A larger batch is rejected before anything is sent: no email goes out and no job is queued. Split the batch into blocks of 200 and repeat the call. The error message is returned in Spanish, like every other API message, and names two numbers and nothing else — the limit and what you sent — so no id of the batch is echoed back: 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.

Domains

Invoices

Invoices: search, CRUD, correctives, partial-payment ledger, transitions (issue/paid/sent/void/annul), scheduling, bulk operations, reminders, public links, PDFs, presentations, administrative routing and Excel export. (51 tools)

ToolScopeCategory
can_annul_invoiceinvoices:readread
check_invoice_simplified_eligibilityinvoices:readread
export_invoices_excelinvoices:readread
find_invoice_by_external_idinvoices:readread
find_invoice_by_numberinvoices:readread
get_available_quartersinvoices:readread
get_invoiceinvoices:readread
get_invoice_activitiesinvoices:readread
get_invoice_correctivesinvoices:readread
get_invoice_payment_receiptpdfs:readread
get_invoice_pdfpdfs:readread
get_invoice_presentationinvoices:readread
get_invoice_public_linkinvoices:readread
get_invoice_statsinvoices:readread
get_invoice_statusesinvoices:readread
list_invoice_administrative_revisionsinvoices:readread
list_invoice_paymentsinvoices:readread
list_invoice_presentationsinvoices:readread
list_payment_methodsinvoices:readread
preview_invoice_reminderinvoices:readread
search_invoicesinvoices:readread
annul_invoiceinvoices:voidwrite
assign_invoice_presentationinvoices:writewrite
assign_invoice_real_numberinvoices:writewrite
bulk_change_invoice_statusinvoices:writewrite
bulk_create_invoicesinvoices:writewrite
bulk_delete_invoicesinvoices:deletedestructive
bulk_invoices_pdf_linkpdfs:readgenerate
bulk_send_invoices ²invoices:sendsend
create_corrective_invoiceinvoices:writewrite
create_invoiceinvoices:writewrite
delete_invoiceinvoices:deletedestructive
duplicate_invoiceinvoices:writewrite
issue_invoiceinvoices:writewrite
mark_invoice_as_paidinvoices:writewrite
mark_invoice_as_sentinvoices:writewrite
mark_invoice_unsentinvoices:writewrite
quarterly_send_emailinvoices:sendsend
register_invoice_paymentinvoices:writewrite
reschedule_invoiceinvoices:writewrite
revert_invoice_paymentinvoices:writewrite
revise_invoice_administrative_routinginvoices:writewrite
revise_invoice_presentationinvoices:writewrite
schedule_invoiceinvoices:writewrite
send_invoiceinvoices:sendsend
send_invoice_reminderinvoices:sendsend
substitute_simplified_invoiceinvoices:writewrite
unschedule_invoiceinvoices:writewrite
update_invoiceinvoices:writewrite
update_invoice_public_linkinvoices:writewrite
void_invoiceinvoices:voidwrite

get_invoice returns the full invoice by its public id: commercial data, line ids (UUIDv7), effective centres, snapshot, override, administrative version and revision, and the original structured snapshots. It keeps null and empty lists as stored. get_invoice_pdf returns the exact signed download link when a retained output exists; the compatible mode can still return the PDF as base64. send_invoice can attach the FacturaE file with attach_facturae=true; with submission_id it attaches that existing submission, without creating or retrying one, and it requires attach_facturae=true. update_invoice_public_link takes revoke, activate, extend (with extend_days), reset or publish, the last one with the exact reference and the observed version.

list_invoice_administrative_revisions reads the administrative version, snapshot, override and history by the invoice's public id. It keeps the legacy null distinct from [] and does not look up the contact's current centres. revise_invoice_administrative_routing appends an administrative revision with the full list of centres, a reason and expected_version (a positive integer); [] clears the effective centres, and taxation is not modified. A missing version is answered with 428; a stale one with 409 and current_version. Retrying with the old version does not duplicate the revision. It returns the created revision and its own administrative_version.

assign_invoice_presentation assigns a template_id (UUIDv7) or an explicit null to inherit, with expected_version. It only applies to drafts of the authenticated company and does not change amounts or numbering. get_invoice_presentation reads the visual state and the retained capture of an authorized document, and list_invoice_presentations lists the retained captures in descending order with page/per_page and the captured metadata; neither writes, queries artifacts or generates a PDF. revise_invoice_presentation creates an audited visual revision with its parent, a compare-and-set (CAS) check and the authentic presentation_revision preview tokens; current_legal only admits a real legal correction of an issued invoice. It does not reissue or recalculate. See Document presentations.

Contacts

(28 tools)

Canonical fiscal contacts have cumulative customer, supplier and lead roles; they are the only public MCP surface for third-party identities. Separate client and supplier tools are not published. The CSV template remains a REST download. See Contact migration.

Retired names. Four contact tools keep answering to their former names until 15 November 2026: search_clients (now search_contacts), find_client_by_tax_id (now find_contact_by_tax_id), create_client (now create_contact) and bulk_create_clients (now bulk_create_contacts). They do not appear in tools/list, the permissions of the successor apply, and the result carries _meta["io.factuarea/deprecation"] with deprecated_tool, successor and sunset. An old argument with no equivalent is rejected with -32008 invalid_param_value and a hint that names the argument and the successor; in search_clients that covers city, province, is_active, created_from, created_to and ending_before, and only one search key among search, name, tax_id, email and phone is accepted; it becomes the free-text search q (at least 2 characters) and only active customers are returned. To list without a term, use list_contacts with roles=["customer"]. After the date, the old name answers as an unknown tool (-32602).

ToolScopeCategory
archive_contactcontacts:deletedestructive
assign_contact_rolecontacts:writewrite
bulk_archive_contactscontacts:deletedestructive
bulk_create_contactscontacts:writewrite
bulk_change_contact_role_statuscontacts:writewrite
bulk_delete_contactscontacts:deletedestructive
change_contact_role_statuscontacts:writewrite
create_contactcontacts:writewrite
delete_contactcontacts:deletedestructive
download_contact_import_errorscontacts:readread
find_contact_by_external_idcontacts:readread
find_contact_by_tax_idcontacts:readread
get_contactcontacts:readread
get_contact_activitiescontacts:readread
get_contact_importcontacts:readread
get_contact_optionscontacts:readread
get_contact_statscontacts:readread
import_contactscontacts:writewrite
list_contactscontacts:readread
preview_contacts_importcontacts:writewrite
remove_contact_rolecontacts:deletedestructive
restore_contactcontacts:writewrite
search_contactscontacts:readread
update_bank_accountscontacts:writewrite
update_contactcontacts:writewrite
update_customer_profilecontacts:writewrite
update_supplier_profilecontacts:writewrite
verify_contact_censuscontacts:readwrite

Products

Catalog: search, CRUD, configurable options/combinations, stock ledger, presentations, variants, supplier offers, bulk actions, analytics and media. (40 tools)

ToolScopeCategory
download_product_gallery_imageproducts:readread
download_product_videoproducts:readread
find_product_by_external_idproducts:readread
find_product_by_skuproducts:readread
get_productproducts:readread
get_product_activitiesproducts:readread
get_product_sales_analyticsproducts:readread
get_product_statsproducts:readread
low_stock_reportproducts:readread
list_product_configurationsproducts:readread
list_product_optionsproducts:readread
list_product_presentationsproducts:readread
list_product_stock_movementsproducts:readread
list_product_variantsproducts:readread
resolve_catalog_selectionproducts:readread
list_supplier_product_offersproducts:readread
preview_product_base_unit_replacementproducts:writeread
search_productsproducts:readread
bulk_change_product_statusproducts:writewrite
bulk_delete_productsproducts:deletedestructive
bulk_update_stockproducts:writewrite
create_productproducts:writewrite
create_product_presentationproducts:writewrite
create_product_variantproducts:writewrite
create_supplier_product_offerproducts:writewrite
delete_productproducts:deletedestructive
delete_product_gallery_imageproducts:deletedestructive
delete_product_presentationproducts:writedestructive
delete_product_variantproducts:writedestructive
delete_product_videoproducts:deletedestructive
delete_supplier_product_offerproducts:writedestructive
replace_product_base_unitproducts:writewrite
set_preferred_supplier_product_offerproducts:writewrite
toggle_product_activeproducts:writewrite
update_productproducts:writewrite
update_product_presentationproducts:writewrite
update_product_variantproducts:writewrite
update_supplier_product_offerproducts:writewrite
upload_product_gallery_imageproducts:writewrite
upload_product_videoproducts:writewrite

create_product, update_product, create_product_variant, update_product_variant, create_product_presentation and update_product_presentation accept gross_weight_kg: the gross transport weight in kg (up to four decimals, greater than zero) per base unit on products and variants and per commercial unit on fixed presentations. In the three update tools, omitting it keeps the current weight and null clears it. Services, mass base units (KGM, GRM) and variable_measure presentations reject it with gross_weight_not_allowed.

preview_product_base_unit_replacement and replace_product_base_unit change the base unit of a product by replacing it with a new one. The preview computes, without writing anything, what happens to the stock, the price, the presentations, the variants, the supplier offers, the price lists and the packs, and which pending documents will keep pointing at the old product; it is a read, but it requires products:write and returns the impact_token that the replacement demands. The replacement is irreversible: the old product is deactivated and keeps its history, it requires that impact_token and accepts idempotency_key.

Price lists

Customer and document pricing: manage active/retired items, compact selector options and resolve configurable catalog selections. (13 tools)

ToolScopeCategory
get_price_listprice_lists:readread
get_price_list_optionsprice_lists:readread
list_price_list_itemsprice_lists:readread
list_price_listsprice_lists:readread
resolve_catalog_priceprice_lists:readread
resolve_many_catalog_pricesprice_lists:readread
create_price_listprice_lists:writewrite
delete_price_listprice_lists:writedestructive
delete_price_list_itemprice_lists:writedestructive
purge_retired_price_list_itemprice_lists:writedestructive
reassign_retired_price_list_itemprice_lists:writewrite
update_price_listprice_lists:writewrite
upsert_price_list_itemprice_lists:writewrite

Quotes

Quotes: search, CRUD, accept/reject, send, convert to invoice, bulk operations, lookup by external ID, public links, PDFs and presentations. (24 tools)

ToolScopeCategory
find_quote_by_external_idquotes:readread
get_quotequotes:readread
get_quote_pdfpdfs:readread
get_quote_presentationquotes:readread
get_quote_public_linkquotes:readread
get_quote_statsquotes:readread
get_quote_statusesquotes:readread
list_quote_presentationsquotes:readread
search_quotesquotes:readread
accept_quotequotes:transitionwrite
assign_quote_presentationquotes:writewrite
bulk_change_quote_statusquotes:transitionwrite
bulk_delete_quotesquotes:deletedestructive
bulk_quotes_pdf_linkpdfs:readgenerate
bulk_send_quotes ²quotes:sendsend
convert_quotequotes:transitionwrite
create_quotequotes:writewrite
delete_quotequotes:deletedestructive
duplicate_quotequotes:writewrite
reject_quotequotes:transitionwrite
revise_quote_presentationquotes:writewrite
send_quotequotes:sendsend
update_quotequotes:writewrite
update_quote_public_linkquotes:writewrite

get_quote_pdf returns the exact signed download link (download_url) with its expiry (expires_at) when a retained output exists, or its state while it is still being generated; the compatible mode returns the content as base64. update_quote_public_link takes revoke, activate, extend (with extend_days), reset or publish, the last one with the exact reference and the observed version.

assign_quote_presentation assigns a template_id (UUIDv7) or an explicit null to inherit, with expected_version. It only applies to drafts of the authenticated company and does not change amounts or numbering. get_quote_presentation reads the visual state and the retained capture of an authorized document, and list_quote_presentations lists the retained captures in descending order with page/per_page and the captured metadata; neither writes, queries artifacts or generates a PDF. revise_quote_presentation creates an audited visual revision with its parent, a compare-and-set (CAS) check and the authentic presentation_revision preview tokens. It keeps the captured source and admits the purpose complete in A4 format. It does not reissue or recalculate. See Document presentations.

Pro-forma invoices

Pro-formas: search, CRUD, accept/reject, send, convert, bulk operations, lookup by external ID, public links, PDFs and presentations. (24 tools)

ToolScopeCategory
find_proforma_by_external_idproformas:readread
get_proformaproformas:readread
get_proforma_pdfpdfs:readread
get_proforma_presentationproformas:readread
get_proforma_public_linkproformas:readread
get_proforma_statsproformas:readread
get_proforma_statusesproformas:readread
list_proforma_presentationsproformas:readread
search_proformasproformas:readread
accept_proformaproformas:transitionwrite
assign_proforma_presentationproformas:writewrite
bulk_change_proforma_statusproformas:transitionwrite
bulk_delete_proformasproformas:deletedestructive
bulk_proformas_pdf_linkpdfs:readgenerate
bulk_send_proformas ²proformas:sendsend
convert_proformaproformas:transitionwrite
create_proformaproformas:writewrite
delete_proformaproformas:deletedestructive
duplicate_proformaproformas:writewrite
reject_proformaproformas:transitionwrite
revise_proforma_presentationproformas:writewrite
send_proformaproformas:sendsend
update_proformaproformas:writewrite
update_proforma_public_linkproformas:writewrite

get_proforma_pdf returns the exact signed download link (download_url) with its expiry (expires_at) when a prepared output exists, or its state while it is still being generated; 404 pdf_artifact_not_found means no retained PDF matches the document's current presentation, purpose and format; a retained PDF that failed to render or cannot be verified answers the PDF-unavailable error (500), and one erased for privacy answers 410; the compatible mode returns the content as base64. update_proforma_public_link takes revoke, activate, extend, reset or publish, the last one with the exact reference and the observed version.

assign_proforma_presentation assigns a template_id (UUIDv7) or an explicit null to inherit, with expected_version. It only applies to drafts of the authenticated company and does not change amounts or numbering. get_proforma_presentation reads the visual state and the retained capture of an authorized document, and list_proforma_presentations lists the retained captures in descending order with page/per_page and the captured metadata; neither writes, queries artifacts or generates a PDF. revise_proforma_presentation creates an audited visual revision with its parent, a compare-and-set (CAS) check and the authentic presentation_revision preview tokens. It only keeps the captured source and admits the purpose complete in A4 format. It does not reissue or recalculate. See Document presentations.

Delivery notes

Delivery notes: search, CRUD, deliver/cancel/sign, convert, send, bulk operations, lookup by external ID, public links, PDFs, presentations and GDPR signature erasure. (26 tools)

ToolScopeCategory
find_delivery_note_by_external_iddelivery_notes:readread
get_delivery_notedelivery_notes:readread
get_delivery_note_pdfpdfs:readread
get_delivery_note_presentationdelivery_notes:readread
get_delivery_note_public_linkdelivery_notes:readread
get_delivery_note_statsdelivery_notes:readread
get_delivery_note_statusesdelivery_notes:readread
list_delivery_note_presentationsdelivery_notes:readread
search_delivery_notesdelivery_notes:readread
assign_delivery_note_presentationdelivery_notes:writewrite
bulk_change_delivery_note_statusdelivery_notes:transitionwrite
bulk_delete_delivery_notesdelivery_notes:deletedestructive
bulk_delivery_notes_pdf_linkpdfs:readgenerate
bulk_send_delivery_notes ²delivery_notes:writesend
cancel_delivery_notedelivery_notes:transitionwrite
convert_delivery_notedelivery_notes:transitionwrite
create_delivery_notedelivery_notes:writewrite
delete_delivery_notedelivery_notes:deletedestructive
duplicate_delivery_notedelivery_notes:writewrite
forget_delivery_note_signaturedelivery_notes:gdpr_forget ¹destructive
mark_delivery_note_delivereddelivery_notes:transitionwrite
revise_delivery_note_presentationdelivery_notes:writewrite
send_delivery_notedelivery_notes:writesend
sign_delivery_notedelivery_notes:transitionwrite
update_delivery_notedelivery_notes:writewrite
update_delivery_note_public_linkdelivery_notes:writewrite

get_delivery_note_pdf returns the exact signed download link (download_url) with its expiry (expires_at) when a prepared output exists, or its state while it is still being generated; 404 pdf_artifact_not_found means no retained PDF matches the document's current presentation, purpose and format; a retained PDF that failed to render or cannot be verified answers the PDF-unavailable error (500), and one erased for privacy answers 410; the compatible mode returns the content as base64. update_delivery_note_public_link takes revoke, activate, extend, reset or publish, the last one with the exact reference and the observed version. In send_delivery_note, presentation_precondition identifies the exact PDF that was reviewed, and expected_presentation_uuid and expected_publication_id pin the expected identities. To accept an exact presentation, sign_delivery_note takes expected_presentation_id, expected_external_version, expected_source_token, expected_artifact_id and an operation_key (UUID v7); expected_publication_id is optional when there was no publication. These fields only take effect when revisioned presentation is enabled for the company; otherwise they are ignored.

assign_delivery_note_presentation assigns a template_id (UUIDv7) or an explicit null to inherit, with expected_version. It only applies to drafts of the authenticated company and does not change amounts or numbering. get_delivery_note_presentation reads the visual state and the retained capture of an authorized document, and list_delivery_note_presentations lists the retained captures in descending order with page/per_page and the captured metadata; neither writes, queries artifacts or generates a PDF. revise_delivery_note_presentation creates an audited visual revision with its parent, a compare-and-set (CAS) check and the authentic presentation_revision preview tokens. It only keeps the captured source and admits the purpose complete in A4 format. It does not reissue or recalculate. See Document presentations.

Transport control documents

Spanish electronic administrative control document (DeCA) for road freight: search, drafts (also pre-filled from delivery notes), issue, modify during the service, close, reopen, cancel, supersede, email the copy to the carrier, issuance evidence and the PDF of each version. (15 tools)

ToolScopeCategory
get_transport_documenttransport_documents:readread
get_transport_document_evidencetransport_documents:readread
get_transport_document_pdfpdfs:readread
get_transport_document_statusestransport_documents:readread
search_transport_documentstransport_documents:readread
cancel_transport_documenttransport_documents:transitionwrite
close_transport_documenttransport_documents:transitionwrite
create_transport_documenttransport_documents:writewrite
delete_transport_documenttransport_documents:deletedestructive
issue_transport_documenttransport_documents:transitionwrite
modify_transport_documenttransport_documents:transitionwrite
reopen_transport_documenttransport_documents:transitionwrite
send_transport_documenttransport_documents:writesend
supersede_transport_documenttransport_documents:transitionwrite
update_transport_documenttransport_documents:writewrite

issue_transport_document, modify_transport_document, cancel_transport_document, supersede_transport_document and send_transport_document are irreversible and accept idempotency_key. get_transport_document_pdf returns the permanent public URL and the metadata of the version (sha256, size), never the PDF bytes. The QR code and the proof of issuance are binary REST downloads without a tool (GET /v1/companies/{company}/transport-documents/{transport_document}/qr and /issuance-proof), and loading places are managed only in the app. See Transport control documents.

search_transport_documents takes the same q (1 to 255 characters) and sort as GET /v1/companies/{company}/transport-documents: transport_date, number, created or updated, with a leading - for descending order and -transport_date by default. create_transport_document does not take id, like the REST endpoint: the server generates it and an id argument is ignored. Both the create and the edit tools normalise UUIDs to lower case and answer a shipments[].id that is already in use, or that belongs to another document, with the same 422 on shipments.N.id as the REST API. The tools that leave an entry in the issuance evidence (issue, modify, close, reopen, cancel, supersede and send) attribute it to the credential that calls them (the API key, or the OAuth client with the user who authorised it), never to the user who created the key; get_transport_document_evidence returns that actor in actor_name and reports automatic closes as auto_closed.

Expenses

Expenses: search, CRUD, mark paid, partial-payment ledger, bulk operations, pending/overdue lists, lookup by external ID, file attachments and payment receipts. (19 tools)

create_purchase_invoice and update_purchase_invoice accept the measured-line contract (purchase_measurement, discount_percent, price_source, source_line_index); duplicating from source_purchase_invoice_id also requires purchase_invoices:read. See Measured purchase lines.

ToolScopeCategory
download_purchase_invoice_filepurchase_invoices:readread
find_purchase_invoice_by_external_idpurchase_invoices:readread
get_purchase_invoicepurchase_invoices:readread
get_purchase_invoice_payment_receiptpdfs:readread
list_purchase_invoice_expense_categoriespurchase_invoices:readread
get_purchase_invoice_statspurchase_invoices:readread
list_overdue_purchase_invoicespurchase_invoices:readread
list_pending_purchase_invoicespurchase_invoices:readread
list_purchase_invoice_paymentspurchase_invoices:readread
search_purchase_invoicespurchase_invoices:readread
attach_purchase_invoice_filepurchase_invoices:writewrite
bulk_change_purchase_invoice_statuspurchase_invoices:transitionwrite
bulk_delete_purchase_invoicespurchase_invoices:deletedestructive
create_purchase_invoicepurchase_invoices:writewrite
delete_purchase_invoicepurchase_invoices:deletedestructive
delete_purchase_invoice_filepurchase_invoices:writewrite
mark_purchase_invoice_paidpurchase_invoices:transitionwrite
register_purchase_invoice_paymentpurchase_invoices:transitionwrite
update_purchase_invoicepurchase_invoices:writewrite

Purchase scanner

Receive documents through the multipart API or scanner mailbox, inspect extraction and evidence, correct fields, resolve duplicates and create a purchase draft. Upload and original downloads use HTTP; MCP manages the persisted scans. See the document scanner guide. (10 tools)

ToolScopeCategory
search_purchase_scanspurchase_invoices:readread
get_purchase_scanpurchase_invoices:readread
get_purchase_scan_statspurchase_invoices:readread
list_purchase_scan_emailspurchase_invoices:readread
save_purchase_scan_reviewpurchase_invoices:writewrite
convert_purchase_scanpurchase_invoices:writewrite
resolve_purchase_scan_duplicatepurchase_invoices:writewrite
retry_purchase_scanpurchase_invoices:writewrite
archive_purchase_scanpurchase_invoices:deletedestructive
restore_purchase_scanpurchase_invoices:writewrite

Two purchase-scanner operations stay off MCP by design and are REST-only: uploading a scan (POST /v1/companies/{company}/purchase-scans) is a multipart/binary upload MCP cannot carry, and downloading the original file (GET /v1/companies/{company}/purchase-scans/{id}/source) returns the encrypted binary, so MCP exposes its metadata instead. PublicApiV1McpToolParityTest.php keeps both on its allowlist. Replacing the original file has no v1 endpoint at all — it's only available from the web app.

Recurring invoices

Recurring templates: search, CRUD, create from an invoice, activate/pause/resume/cancel/skip, bulk status change, preview, generate now, lookup by external ID, logs and activity. (19 tools)

ToolScopeCategory
find_recurring_invoice_by_external_idrecurring_invoices:readread
get_recurring_invoicerecurring_invoices:readread
get_recurring_invoice_statsrecurring_invoices:readread
list_recurring_invoice_activitiesrecurring_invoices:readread
list_recurring_invoice_logsrecurring_invoices:readread
preview_recurring_invoicerecurring_invoices:readread
search_recurring_invoicesrecurring_invoices:readread
activate_recurring_invoicerecurring_invoices:transitionwrite
bulk_change_recurring_invoice_statusrecurring_invoices:transitionwrite
bulk_delete_recurring_invoicesrecurring_invoices:deletedestructive
cancel_recurring_invoicerecurring_invoices:transitionwrite
create_recurring_invoicerecurring_invoices:writewrite
create_recurring_invoice_from_invoicerecurring_invoices:writewrite
delete_recurring_invoicerecurring_invoices:deletedestructive
generate_recurring_invoicerecurring_invoices:transitionwrite
pause_recurring_invoicerecurring_invoices:transitionwrite
resume_recurring_invoicerecurring_invoices:transitionwrite
skip_recurring_invoicerecurring_invoices:writewrite
update_recurring_invoicerecurring_invoices:writewrite

generate_recurring_invoice generates an invoice now from a recurrence of the authenticated company and, depending on generation_mode, can issue and send it. It is irreversible: it needs confirmation from the host or UI and an idempotency key, and retries replay the same response. It changes neither the configuration nor the date of the attempt. It requires recurring_invoices:transition, like pausing and resuming, which is what the OAuth scope recurring.generate_now grants; the REST operation POST /v1/companies/{company}/recurring-invoices/{recurring_invoice}/generate keeps requiring recurring_invoices:write.

Series

Numbering series (editable under the fiscal guards of the numbering, never deleted): search, create, update, archive/unarchive, set default, bootstrap the four default series of a brand-new company, stats, PDF template preference and activity. (15 tools)

ToolScopeCategory
find_series_by_codeseries:readread
get_default_series_for_typeseries:readread
get_seriesseries:readread
get_series_activitiesseries:readread
get_series_pdf_templateseries:readread
get_series_statsseries:readread
list_active_seriesseries:readread
search_seriesseries:readread
archive_seriesseries:writewrite
assign_series_pdf_templateseries:writewrite
bootstrap_seriesseries:writewrite
create_seriesseries:writewrite
mark_series_as_defaultseries:writewrite
unarchive_seriesseries:writewrite
update_seriesseries:writewrite

create_series with a pdf_template_id requires the same authorization as update_series. get_series_pdf_template reads the PDF preference of one of your series, its version and its availability. It keeps the saved reference even when it is not currently eligible, and it neither generates documents nor alters the numbering. assign_series_pdf_template assigns a compatible company template, or clears the preference with null to inherit. expected_version is the visual CAS version read from the series, and a replay with the same key is resolved before that check. It does not renumber or generate a PDF. unarchive_series always succeeds: if the PDF template the series kept is no longer selectable, the response adds warnings with inherited_candidate_unavailable and the series uses the applicable default template, without losing the saved reference.

PDF templates

Company PDF template library: templates, commercial identities (brands), private assets, per-contact and company preferences, revisions and impact. Gated by the pdf_templates module. (25 tools)

ToolScopeCategory
get_pdf_commercial_identitypdf_templates:readread
get_pdf_commercial_identity_impactpdf_templates:readread
get_pdf_commercial_identity_revisionpdf_templates:readread
get_pdf_templatepdf_templates:readread
get_pdf_template_assetpdf_templates:readread
get_pdf_template_contact_defaultpdf_templates:readread
get_pdf_template_defaultspdf_templates:readread
get_pdf_template_impactpdf_templates:readread
get_pdf_template_revisionpdf_templates:readread
list_pdf_commercial_identitiespdf_templates:readread
list_pdf_templatespdf_templates:readread
archive_pdf_commercial_identitypdf_templates:writewrite
archive_pdf_templatepdf_templates:writewrite
create_pdf_commercial_identitypdf_templates:writewrite
create_pdf_templatepdf_templates:writewrite
duplicate_pdf_templatepdf_templates:writewrite
publish_pdf_commercial_identity_revisionpdf_templates:writewrite
publish_pdf_template_revisionpdf_templates:writewrite
restore_pdf_commercial_identitypdf_templates:writewrite
restore_pdf_templatepdf_templates:writewrite
set_pdf_template_contact_defaultpdf_templates:writewrite
set_pdf_template_defaultspdf_templates:writewrite
update_pdf_commercial_identitypdf_templates:writewrite
update_pdf_templatepdf_templates:writewrite
upload_pdf_template_assetpdf_templates:writewrite

Creating, renaming, archiving, restoring and publishing a revision, and saving preferences, require an administrator. The tools that change an existing entity take expected_version (a compare-and-set check), and a replay with the same key is resolved before that check. create_pdf_template and create_pdf_commercial_identity create a new entity, so they take no expected_version; upload_pdf_template_asset creates a new private asset and takes none either. Reuse the idempotency_key when retrying them so nothing is created or uploaded twice. duplicate_pdf_template takes the expected_version of the source template you read and, with idempotency_key, avoids creating two copies. The read tools are authorized reads of the issuer and need neither an idempotency key nor a write precondition. See the PDF template library guide.

PDF artifacts and previews

PDF artifacts and previews: prepare the PDF of an authorized capture, run the retained plan, read the metadata and verify the original, and preview a template. (5 tools)

ToolScopeCategory
get_pdf_artifactpdfs:readread
read_pdf_artifactpdfs:readread
prepare_pdf_artifactpdfs:readgenerate
preview_pdf_templatepdfs:read + pdf_templates:readgenerate
render_pdf_artifactpdfs:readgenerate

prepare_pdf_artifact prepares the PDF of an exact authorized capture; it never creates a capture. render_pdf_artifact runs the exact retained plan in sync or async mode, with no live fallback. get_pdf_artifact reads the safe metadata of the exact artifact; polling never generates anything. read_pdf_artifact verifies the original PDF and returns its metadata with a short signed link, never base64. preview_pdf_template prepares a preview with the authority and the scopes pdfs:read + pdf_templates:read; it neither captures nor publishes. See PDF previews and artifacts.

Taxes

Taxes (Factuarea catalog plus your own taxes): search, create, update, delete, defaults per company, in-use checks, tax/total calculations and the read-only AEAT tax catalog (regimes, exemption causes, IRPF rates and the legal VAT ↔ equivalence-surcharge pairs). (18 tools)

ToolScopeCategory
calculate_taxtaxes:readread
calculate_totalstaxes:readread
check_tax_in_usetaxes:readread
get_active_taxestaxes:readread
get_taxtaxes:readread
get_tax_catalogtaxes:readread
get_tax_defaults_for_documenttaxes:readread
get_tax_statstaxes:readread
get_taxes_by_typetaxes:readread
get_taxes_for_purchasestaxes:readread
get_taxes_for_salestaxes:readread
search_taxestaxes:readread
create_taxtaxes:writewrite
set_tax_as_defaulttaxes:writewrite
set_tax_default_for_documenttaxes:writewrite
toggle_tax_activetaxes:writewrite
update_taxtaxes:writewrite
delete_taxtaxes:deletedestructive

VeriFactu

AEAT SIF: records, events, chain validation, retry (one record or every blocked one), subsanación of accepted or rejected records, third-party remission representation, certificates, settings, responsible declaration and AEAT access log. (31 tools)

ToolScopeCategory
find_verifactu_record_by_csvverifactu:readread
find_verifactu_record_by_huellaverifactu:readread
find_verifactu_record_by_invoice_numberverifactu:readread
get_active_company_certificateverifactu:readread
get_aeat_access_recordverifactu:readread
get_company_representationverifactu:readread
get_declaracion_responsableverifactu:readread
get_declaracion_responsable_historyverifactu:readread
get_invoice_verifactuverifactu:readread
get_verifactu_activitiesverifactu:readread
get_verifactu_configverifactu:readread
get_verifactu_eventverifactu:readread
get_verifactu_event_summaryverifactu:readread
get_verifactu_recordverifactu:readread
get_verifactu_statsverifactu:readread
list_aeat_access_recordsverifactu:readread
list_company_certificatesverifactu:readread
list_verifactu_eventsverifactu:readread
search_verifactu_recordsverifactu:readread
validate_verifactu_chainverifactu:readread
activate_company_certificateverifactu:write ¹write
create_invoice_verifactuverifactu:write ¹write
register_company_representationverifactu:write ¹write
retry_blocked_verifactu_recordsverifactu:write ¹write
retry_verifactu_eventverifactu:write ¹write
retry_verifactu_recordverifactu:write ¹write
revoke_company_certificateverifactu:write ¹write
revoke_company_representationverifactu:write ¹write
subsanar_verifactu_recordverifactu:write ¹write
update_verifactu_settingsverifactu:write ¹write
upload_company_certificateverifactu:write ¹write

FacturaE (FACe)

B2G electronic invoicing: download the FacturaE 3.2.2 XML of an invoice and manage its FACe submissions (submit, track, cancel). Gated by the facturae module. (5 tools)

ToolScopeCategory
get_face_submissionfacturae:readread
list_invoice_face_submissionsfacturae:readread
cancel_face_submissionfacturae:writewrite
get_invoice_facturae_linkfacturae:readread
send_invoice_to_facefacturae:writewrite

cancel_face_submission also requires the edit capability on the facturae module; without it the call answers 403 facturae_operation_forbidden.

Tax reports

AEAT filings computed from your own invoicing data: generate Modelo 303, 347 and 130 as the official positional file, a PDF or a review workbook; preview the breakdown without persisting anything; and read the generation history, stats, activity and files. (9 tools)

ToolScopeCategory
download_tax_reporttax_reports:readread
find_tax_report_by_periodtax_reports:readread
get_tax_report_activitiestax_reports:readread
get_tax_report_historytax_reports:readread
get_tax_report_statstax_reports:readread
preview_tax_reporttax_reports:readread
generate_tax_report_130tax_reports:writegenerate
generate_tax_report_303tax_reports:writegenerate
generate_tax_report_347tax_reports:writegenerate

Only txt_aeat is filed with the AEAT; the PDF and the workbook are review material built from the same calculation. See Tax reports.

Webhooks & events

Webhook endpoints of a tax ID, deliveries, secret rotation, ping/replay, test events, and the published event catalog. The account has its own endpoints: Account webhooks. (13 tools)

ToolScopeCategory
get_eventevents:readread
get_webhook_deliverywebhooks:readread
get_webhook_endpointwebhooks:readread
list_eventsevents:readread
list_webhook_deliverieswebhooks:readread
search_webhook_endpointswebhooks:readread
create_webhook_endpointwebhooks:writewrite
delete_webhook_endpointwebhooks:deletewrite
ping_webhook_endpointwebhooks:writewrite
replay_webhook_deliverywebhooks:writewrite
rotate_webhook_secretwebhooks:writewrite
test_webhook_endpointwebhooks:writewrite
update_webhook_endpointwebhooks:writewrite

Automations

The automation engine: rules in the when → if → do shape, the immutable versions of each rule's definition, the dry run that reports what a rule would do without doing it, the run history with its steps and their typed discard reasons, replay of a parked step or of a whole run, the trigger/action catalog with the fields each trigger exposes, and the monthly execution quota. Gated by the automations module. (18 tools)

replay_automation_run and replay_automation_run_step run the steps for real: they send emails, deliver webhooks and call third parties. This is not a harmless retry — confirm with the user before calling them. The work is queued, so the response confirms it was accepted, not that it finished: check the outcome with get_automation_run or list_automation_run_steps.

ToolScopeCategory
dry_run_automation_ruleautomations:readread
get_automation_catalogautomations:readread
get_automation_ruleautomations:readread
get_automation_rule_versionautomations:readread
get_automation_runautomation_runs:readread
get_automation_trigger_fieldsautomations:readread
get_automation_usageautomations:readread
list_automation_rule_versionsautomations:readread
list_automation_rulesautomations:readread
list_automation_run_stepsautomation_runs:readread
list_automation_runsautomation_runs:readread
activate_automation_ruleautomations:writewrite
create_automation_ruleautomations:writewrite
delete_automation_ruleautomations:delete ¹destructive
pause_automation_ruleautomations:writewrite
replay_automation_runautomations:writewrite
replay_automation_run_stepautomations:writewrite
update_automation_ruleautomations:writewrite

Account

Account fiscal identity and personalization: verify the company's registered name + NIF against the AEAT census, read personalization templates and update account personalization. (4 tools)

ToolScopeCategory
get_account_billingaccount:readread
get_account_personalization_templatesaccount:readread
update_account_personalizationaccount:write ¹write
verify_account_censusaccount:readwrite

Account administration

Ownership of the account and the transfer of tax IDs between accounts: issue, list, accept and revoke a tax ID transfer, and hand the ownership of the account to another member. These tools act on the account, not on the data of a tax ID. Issuing a transfer returns its secret once; the receiving account accepts it with that secret, and the giving account can revoke it until then. accept_nif_transfer, create_nif_transfer, revoke_nif_transfer and transfer_account_ownership are irreversible: the server publishes them with destructiveHint: true and an idempotency_key input (see Protocol and transport). When the accepted tax IDs need contracted seats and none is free, accept_nif_transfer buys the missing ones, so always send an idempotency_key. (not part of the totals above: * does not cover their scopes)

ToolScopeCategory
list_nif_transfersnif_transfers:read ¹read
accept_nif_transfernif_transfers:write ¹write
create_nif_transfernif_transfers:write ¹write
revoke_nif_transfernif_transfers:write ¹write
transfer_account_ownershipaccount:owner ¹write

Account members

The people of the account: list and read the members with their account role (owner, admin or member) and their external-advisor mark, add a member, change their role or their external-advisor mark and remove them, read, set and revoke the grant of a member on one tax ID, read and set their module access, and manage the invitations that create them. delete_account_member is irreversible: the server publishes it with destructiveHint: true and an idempotency_key input. (not part of the totals above: * does not cover their scopes)

ToolScopeCategory
get_account_membermembers:read ¹read
get_account_member_grantmembers:read ¹read
get_account_member_module_accessmembers:read ¹read
list_account_member_grantsmembers:read ¹read
list_account_membersmembers:read ¹read
get_account_invitationinvitations:read ¹read
list_account_invitationsinvitations:read ¹read
create_account_membermembers:write ¹write
revoke_account_member_grantmembers:write ¹write
set_account_member_grantmembers:write ¹write
update_account_membermembers:write ¹write
update_account_member_module_accessmembers:write ¹write
cancel_account_invitationinvitations:write ¹write
create_account_invitationinvitations:write ¹write
resend_account_invitationinvitations:write ¹write
delete_account_membermembers:write ¹destructive

Tax IDs of the account

The tax ID portfolio of the account: list, find by fiscal identifier, read, register, update, activate (one or many), deactivate and archive tax IDs, follow and reconcile the creation of one, the invoicing statistics per tax ID, whether a tax ID can already issue and a preview of the charge of adding or activating additional tax IDs, plus the usage of the account in the current period (requests and documents, broken down by tax ID). Additional tax IDs are billed by contracted seat: get_additional_nif_seats reads the contracted, occupied and free seats of the account, preview_additional_nif_seat_change previews, without charging, setting them to a quantity, and update_additional_nif_seats sets it (absolute quantity, idempotent with idempotency_key). Buying seats charges the prorated difference at once; reducing them takes effect at renewal. Below the occupied seats, deactivate lists the UUIDs of the tax IDs that will be deactivated at renewal, exactly as many as exceed the seats; if the reduction ends an applied offer package, accept_offer_package_loss (boolean) confirms the loss. create_company, activate_company and activate_companies buy the seats that are missing when none is free and the account pays, so send an idempotency_key. Registering or reactivating an additional tax ID can be charged: see Additional tax IDs. (18 tools)

ToolScopeCategory
get_account_usageaccount:readread
find_company_by_tax_idcompanies:read ¹read
get_additional_nif_seatscompanies:read ¹read
get_companies_statscompanies:read ¹read
get_companycompanies:read ¹read
get_company_creation_statuscompanies:read ¹read
get_company_issuing_readinesscompanies:read ¹read
get_company_seat_charge_previewcompanies:read ¹read
list_companiescompanies:read ¹read
preview_additional_nif_seat_changecompanies:read ¹read
activate_companiescompanies:write ¹write
activate_companycompanies:write ¹write
create_companycompanies:write ¹write
deactivate_companycompanies:write ¹write
update_additional_nif_seatscompanies:write ¹write
update_companycompanies:write ¹write
verify_company_creationcompanies:write ¹write
delete_companycompanies:delete ¹write

Account webhooks

The webhook endpoints of the account, separate from the endpoints of one tax ID: create, read, list, update and delete an endpoint, rotate its signing secret, send a test delivery, read its deliveries and retry a failed one. An account endpoint receives the events of the account and, by account_relationship (own, managed or all), those of its tax IDs. See Account webhooks. (10 tools)

These tools use the same webhooks:* scopes as Webhooks & events, but they work only with an API key: an OAuth token never lists them, and calling one answers 403 forbidden_action. A test key reads the test endpoints; creating, updating, deleting, rotating, testing and retrying need a live key. The person who issued the key must be an owner or admin of the account today, and the key must cover all its tax IDs. delete_account_webhook and rotate_account_webhook_secret are irreversible: the server publishes them with destructiveHint: true and an idempotency_key input.

ToolScopeCategory
get_account_webhookwebhooks:read ¹read
get_account_webhook_deliverywebhooks:read ¹read
list_account_webhook_deliverieswebhooks:read ¹read
list_account_webhookswebhooks:read ¹read
create_account_webhookwebhooks:write ¹write
retry_account_webhook_deliverywebhooks:write ¹write
rotate_account_webhook_secretwebhooks:write ¹write
test_account_webhookwebhooks:write ¹write
update_account_webhookwebhooks:write ¹write
delete_account_webhookwebhooks:delete ¹write

API keys

Self-service API keys of your account: list, create, get, read its daily usage, rotate the secret, revoke and replace the tax ID scope of a key. A new scope can never exceed the one of the credential that changes it. The secret is returned once, at creation and rotation. revoke_api_key and rotate_api_key_secret are irreversible: the server publishes them with destructiveHint: true and an idempotency_key input. See scoped keys. (7 tools)

ToolScopeCategory
get_api_keyaccount:readread
get_api_key_usageaccount:readread
list_api_keysaccount:readread
create_api_keyaccount:write ¹write
revoke_api_keyaccount:write ¹write
rotate_api_key_secretaccount:write ¹write
update_api_key_nif_scopeaccount:write ¹write

Portfolio workforce

Consolidated time-tracking compliance across the tax ID portfolio: one row per active tax ID within the scope of the credential, the owner company of the account excluded, with the state of its latest monthly close and the totals of the last closed one (balance, overtime and number of employees). One call aggregates the whole portfolio, where every other time-tracking tool operates on one tax ID. (1 tools)

ToolScopeCategory
get_consolidated_workforcecompanies:read ¹read

Payments & gateways

Payment and store integrations: Stripe auto-invoicing, connected accounts, payouts, the integration event inbox, WooCommerce and Shopify store management and diagnostics. These tools are API-key-only. Availability also depends on the company’s modules and provider configuration. (26 tools)

replay_integrations_event has a real fiscal effect. If the cause that blocked invoicing is now resolved, replaying a parked event can issue an actual invoice, with its series number and its VeriFactu submission. It is not a harmless retry: confirm with the user before calling it. It does not duplicate invoices — the replay goes through the same idempotency check as the original attempt.

ToolScopeCategory
get_integrations_eventintegration_events:read ¹read
get_payoutpayouts:read ¹read
get_stripe_autoinvoicing_configstripe_autoinvoicing:read ¹read
get_stripe_connected_accountstripe_autoinvoicing:read ¹read
list_integrations_eventsintegration_events:read ¹read
list_stripe_autoinvoiced_correctivesstripe_autoinvoicing:read ¹read
list_stripe_autoinvoiced_paymentsstripe_autoinvoicing:read ¹read
list_stripe_charge_rulesstripe_autoinvoicing:read ¹read
list_stripe_connected_accountsstripe_autoinvoicing:read ¹read
list_stripe_non_invoiced_chargesstripe_autoinvoicing:read ¹read
search_payoutspayouts:read ¹read
create_stripe_charge_rulestripe_autoinvoicing:write ¹write
delete_stripe_charge_rulestripe_autoinvoicing:write ¹destructive
disconnect_stripe_connected_accountstripe_autoinvoicing:write ¹write
reorder_stripe_charge_rulesstripe_autoinvoicing:write ¹write
replay_integrations_eventintegration_events:write ¹write
update_stripe_autoinvoicing_configstripe_autoinvoicing:write ¹write
update_stripe_charge_rulestripe_autoinvoicing:write ¹write
update_stripe_connected_accountstripe_autoinvoicing:write ¹write
list_storesstores:read ¹read
get_storestores:read ¹read
connect_storestores:write ¹write
update_storestores:write ¹write
disconnect_storestores:write ¹write
test_woocommerce_store_connectionwoocommerce_store:write ¹write
test_shopify_store_connectionshopify_store:write ¹write

Emails

Sent-email log: list the emails Factuarea sent on the company's behalf (invoices, quotes, delivery notes, payment reminders), read one by its id, and summarise the outcome for a batch of up to 100 documents in a single call. Use it to answer "did the email for this invoice go out?" and to investigate failed sends. (3 tools)

The status describes the hand-off to the outgoing SMTP server, not actual delivery. sent means the outgoing mail server accepted the message — it can still bounce or land in spam without Factuarea ever knowing. There is no delivered, bounced or opened state: queued, sending, sent and failed are the only ones. Never state that the recipient received, opened or read the message.

ToolScopeCategory
get_emailsemails:read ¹read
get_emails_indicatorsemails:read ¹read
list_emailsemails:read ¹read

API request logs

The traffic of your integration against the public v1 API over the last 30 days: list the calls with their method, path, status code, duration, API-key prefix and environment, filtering by errors only or by any of those fields, and read a single one by its request_id — the opaque identifier every response returns in its header. list_developers_request_logs and get_developers_request_logs show the requests of one tax ID; list_account_request_logs and get_account_request_log show those of every key of the account, in the environment of the key that calls. The account tools work only with an API key, issued by an owner or admin of the account and covering all its tax IDs: see account request logs. Use them to debug an integration: what it called, when, with which status and how long it took. Headers, body and query string are not stored and are never returned. (4 tools)

ToolScopeCategory
get_account_request_logdevelopers:read ¹read
get_developers_request_logsdevelopers:read ¹read
list_account_request_logsdevelopers:read ¹read
list_developers_request_logsdevelopers:read ¹read

Employees

Workforce roster: search, CRUD-lite (create/update/deactivate/reactivate), stats and the invitation lifecycle (send/resend/cancel and list employee invitations). Gated by the control_horario module. (18 tools)

create_employee and reactivate_employee buy the contracted seats that are missing when none is free and the account pays: send an idempotency_key so a retry does not charge twice. See Employee seats.

Durable employee batches support preparation, quote review, confirmation and recovery through the same operation.

ToolScopeCategory
find_employee_by_external_idemployees:readread
get_employeeemployees:readread
get_employee_statsemployees:readread
list_employee_invitationsemployees:readread
search_employeesemployees:readread
cancel_employee_invitationemployees:writewrite
create_employeeemployees:writewrite
deactivate_employeeemployees:writewrite
reactivate_employeeemployees:writewrite
resend_employee_invitationemployees:writewrite
send_employee_invitationemployees:writewrite
update_employeeemployees:writewrite
cancel_employee_batchemployees:writewrite
confirm_employee_batchemployees:writewrite
get_employee_batchemployees:readread
list_employee_batchesemployees:readread
prepare_employee_batchemployees:writewrite
refresh_employee_batch_quoteemployees:writewrite

Employee seats

Employee-seat billing by contracted seat: preview and read the charge and the billing, subscribe, set the contracted seats, change the quantity and cancel the add-on, plus the seat offer redemptions. update_employee_seats sets the contracted seats (absolute quantity, idempotent with idempotency_key): buying charges the prorated difference at once, and reducing takes effect at renewal without a refund. preview_employee_seat_charge previews the charge, without charging, of hiring employees or, with contracted_seats, of setting the seats; contracted_seats cannot be combined with count or employee_ids. When the new quantity is below the occupied seats, update_employee_seats, update_additional_nif_seats and cancel_employee_seat_addon accept deactivate, the list of UUIDs of what is deactivated at renewal, and accept_offer_package_loss, a boolean that confirms the loss of an applied offer package if the reduction breaks it. Gated by the control_horario module. (12 tools)

ToolScopeCategory
get_employee_seat_billingemployees:readread
preview_employee_seat_chargeemployees:readread
cancel_employee_seat_addonemployees:writewrite
change_employee_seat_quantityemployees:writewrite
subscribe_employee_seat_addonemployees:writewrite
update_employee_seatsemployees:writewrite
cancel_employee_seat_offer_redemptionemployees:writewrite
confirm_employee_seat_offer_redemptionemployees:writewrite
get_employee_seat_offer_redemptionemployees:readread
list_employee_seat_offer_redemptionsemployees:readread
prepare_employee_seat_offer_redemptionemployees:writewrite
refresh_employee_seat_offer_redemptionemployees:writewrite

Managed-company seat offers

Private managed-company seat offers use the paying master company and the current companies:* scope. Preparing or refreshing a quote does not activate companies or charge. prepare_employee_seat_offer_redemption and prepare_gestoria_seat_offer_redemption accept kind: apply_to_existing, which applies the code to the seats the account already has and creates, activates and reactivates nothing; it carries no other key. During the trial a seat redemption answers 422 customer_offer_not_eligible with details.reason = trial_active, and an offer package code, which MCP does not redeem, answers reason = product (see Offers). (6 tools)

ToolScopeCategory
cancel_gestoria_seat_offer_redemptioncompanies:writewrite
confirm_gestoria_seat_offer_redemptioncompanies:writewrite
get_gestoria_seat_offer_redemptioncompanies:readread
list_gestoria_seat_offer_redemptionscompanies:readread
prepare_gestoria_seat_offer_redemptioncompanies:writewrite
refresh_gestoria_seat_offer_redemptioncompanies:writewrite

Work schedules

Weekly work schedules and their assignments: search, CRUD, archive/unarchive, assign/unassign to employees, and read an employee's effective schedule. Gated by the control_horario module. (11 tools)

ToolScopeCategory
get_employee_work_schedulework_schedules:readread
get_work_schedulework_schedules:readread
get_work_schedule_statswork_schedules:readread
list_work_schedule_assignmentswork_schedules:readread
search_work_scheduleswork_schedules:readread
archive_work_schedulework_schedules:write ¹write
assign_work_schedulework_schedules:write ¹write
create_work_schedulework_schedules:write ¹write
unarchive_work_schedulework_schedules:write ¹write
unassign_work_schedulework_schedules:write ¹write
update_work_schedulework_schedules:write ¹write

Time tracking

Time clock (RD-ley 8/2019): clock in/out with pauses, manual entries, the time-correction workflow, balances and monthly time sheets, the tamper-evident monthly register close (close/reopen/seal, signature, chain validation) and its exports, plus payroll exports. Gated by the control_horario module. (29 tools)

ToolScopeCategory
export_closed_registertime_entries:readread
get_current_time_entry_sessiontime_entries:readread
get_employee_time_balancetime_entries:readread
get_monthly_close_reporttime_entries:readread
get_monthly_register_signaturetime_entries:readread
get_monthly_time_record_closetime_entries:readread
get_monthly_time_sheettime_entries:readread
get_team_time_balance_summarytime_entries:readread
get_time_correctiontime_entries:readread
get_time_entrytime_entries:readread
get_time_tracking_settingstime_entries:readread
search_monthly_time_record_closestime_entries:readread
search_time_correctionstime_entries:readread
search_time_entriestime_entries:readread
validate_time_record_chaintime_entries:readread
export_payrollpayroll_exports:readread
list_payroll_export_formatspayroll_exports:readread
approve_time_correctiontime_entries:write ¹write
clock_intime_entries:write ¹write
clock_outtime_entries:write ¹write
close_monthly_time_recordtime_entries:write ¹write
pause_time_entrytime_entries:write ¹write
record_manual_time_entrytime_entries:write ¹write
reject_time_correctiontime_entries:write ¹write
reopen_monthly_time_recordtime_entries:write ¹write
request_time_correctiontime_entries:write ¹write
resume_time_entrytime_entries:write ¹write
seal_monthly_time_recordtime_entries:write ¹write
update_time_tracking_settingstime_entries:write ¹write

Absences

Absences: types, policies (with carryover configuration and assignments), requests (create/approve/reject/cancel), balances and the team absence calendar. Gated by the control_horario module. (25 tools)

ToolScopeCategory
get_absence_balanceabsences:readread
get_absence_calendarabsences:readread
get_absence_policyabsences:readread
get_absence_requestabsences:readread
get_absence_typeabsences:readread
list_absence_policy_assignmentsabsences:readread
search_absence_balancesabsences:readread
search_absence_policiesabsences:readread
search_absence_requestsabsences:readread
search_absence_typesabsences:readread
archive_absence_policyabsences:write ¹write
archive_absence_typeabsences:write ¹write
assign_absence_policyabsences:write ¹write
configure_absence_policy_carryoverabsences:write ¹write
create_absence_policyabsences:write ¹write
create_absence_requestabsences:write ¹write
create_absence_typeabsences:write ¹write
unarchive_absence_policyabsences:write ¹write
unarchive_absence_typeabsences:write ¹write
unassign_absence_policyabsences:write ¹write
update_absence_policyabsences:write ¹write
update_absence_typeabsences:write ¹write
approve_absence_requestabsences:transition ¹write
cancel_absence_requestabsences:transition ¹write
reject_absence_requestabsences:transition ¹write

Presence

Presence: the live presence board and per-employee / daily presence state. Gated by the control_horario module. (3 tools)

ToolScopeCategory
get_employee_presencepresence:readread
get_live_presencepresence:readread
list_daily_presencepresence:readread

Holidays

Holidays: read the company holiday calendar and resolve the holidays applicable to an employee's region (CCAA). Gated by the control_horario module. (3 tools)

ToolScopeCategory
get_holidayholidays:readread
list_holidaysholidays:readread
resolve_applicable_holidaysholidays:readread

Projects

Task projects and their boards: create, edit, archive and delete projects, resolve one by its key (DEV), manage the columns of its board and its task custom fields, export and import its tasks as JSON, read the time logged on it and turn billable time into a draft invoice (invoice_project_time needs invoices:write, because it creates an invoice). Gated by the tasks module. delete_project, delete_project_column and delete_project_custom_field are irreversible, like the delete tools of Tasks. (22 tools)

ToolScopeCategory
export_project_tasksprojects:readread
find_project_by_keyprojects:readread
get_projectprojects:readread
get_project_time_summaryprojects:readread
list_project_columnsprojects:readread
list_project_custom_fieldsprojects:readread
list_projectsprojects:readread
preview_project_time_invoiceprojects:readread
archive_projectprojects:writewrite
create_projectprojects:writewrite
create_project_columnprojects:writewrite
create_project_custom_fieldprojects:writewrite
delete_projectprojects:delete ¹destructive
delete_project_columnprojects:delete ¹destructive
delete_project_custom_fieldprojects:delete ¹destructive
import_project_tasksprojects:writewrite
invoice_project_timeinvoices:writewrite
reorder_project_columnsprojects:writewrite
unarchive_projectprojects:writewrite
update_projectprojects:writewrite
update_project_columnprojects:writewrite
update_project_custom_fieldprojects:writewrite

Tasks

Tasks on the board: search, create, edit, duplicate, move, reposition and delete tasks — one by one or in bulk —, resolve one by its key (DEV-12), change its status, assign it, label it, comment on it, relate it to other tasks, link it to documents and contacts, attach files or create a single-use upload link, log time with a timer and read its activity. The time logged here is task time, not the working-day clock-in of Time tracking. Gated by the tasks module. (52 tools)

The delete tools — delete_task, bulk_delete_tasks, delete_task_comment, delete_task_attachment, delete_task_time_entry and delete_task_label, plus delete_project, delete_project_column and delete_project_custom_field in Projects — are irreversible: there is no trash. Confirm with the user before calling them and send an idempotency_key so a retry does not repeat the effect. Their projects:delete and tasks:delete scopes are API-key-only (¹).

ToolScopeCategory
download_task_attachmenttasks:readread
find_task_by_keytasks:readread
get_running_task_timertasks:readread
get_tasktasks:readread
get_task_activitiestasks:readread
get_task_attachmenttasks:readread
get_task_labeltasks:readread
get_task_time_entrytasks:readread
list_task_attachmentstasks:readread
list_task_commentstasks:readread
list_task_entity_linkstasks:readread
list_task_external_linkstasks:readread
list_task_labelstasks:readread
list_task_relationstasks:readread
list_task_time_entriestasks:readread
list_tasks_linked_to_entitytasks:readread
search_taskstasks:readread
assign_tasktasks:writewrite
assign_task_labeltasks:writewrite
attach_task_filetasks:writewrite
bulk_change_task_statustasks:writewrite
bulk_delete_taskstasks:delete ¹destructive
bulk_update_taskstasks:writewrite
change_task_statustasks:writewrite
create_tasktasks:writewrite
create_task_commenttasks:writewrite
create_task_external_linktasks:writewrite
create_task_labeltasks:writewrite
create_task_relationtasks:writewrite
create_task_time_entrytasks:writewrite
create_task_upload_linktasks:writegenerate
delete_tasktasks:delete ¹destructive
delete_task_attachmenttasks:delete ¹destructive
delete_task_commenttasks:delete ¹destructive
delete_task_external_linktasks:writedestructive
delete_task_labeltasks:delete ¹destructive
delete_task_relationtasks:writedestructive
delete_task_time_entrytasks:delete ¹destructive
duplicate_tasktasks:writewrite
link_task_entitytasks:writewrite
move_tasktasks:writewrite
reposition_tasktasks:writewrite
set_task_custom_field_valuetasks:writewrite
start_task_timertasks:writewrite
stop_task_timertasks:writewrite
unassign_tasktasks:writewrite
unassign_task_labeltasks:writedestructive
unlink_task_entitytasks:writedestructive
update_tasktasks:writewrite
update_task_commenttasks:writewrite
update_task_labeltasks:writewrite
update_task_time_entrytasks:writewrite

Users

The members of the company — the people a task can be assigned to — and the user behind the credential. Not tied to a plan module. (2 tools)

ToolScopeCategory
get_current_userusers:readread
search_usersusers:readread

Notifications

The in-app notifications of the credential holder: list them and mark one or all of them as read. Not tied to a plan module. (3 tools)

ToolScopeCategory
list_notificationsnotifications:readread
mark_all_notifications_as_readnotifications:writewrite
mark_notification_as_readnotifications:writewrite

Agenda

The combined agenda of a date window of up to 93 days: due tasks and, for each layer the credential can also read, invoice and expense due dates, quote and pro-forma expiries, recurring invoice runs, tax deadlines, absences and holidays. Gated by the tasks module. (1 tools)

ToolScopeCategory
list_agenda_itemstasks:readread

Managed-account tools

The ten tools that provision and administer managed accounts are not part of the 668 above, and they do not count in the 41 domains. Their scopes, accounts:read and accounts:write, are privileged: the super-scope * does not cover them, so a key that only holds * does not see these tools in tools/list. List the scope explicitly. Every call also checks that your account holds the managed-account provider privilege that we grant, and answers 403 privileged_scope_required if it does not. They never come through OAuth: use an API key. Managed accounts explains the operation each tool mirrors.

ToolScopeCategory
get_managed_accountaccounts:readread
get_provisioning_usageaccounts:readread
list_managed_accountsaccounts:readread
preview_managed_account_plan_changeaccounts:readread
preview_managed_account_provisioningaccounts:readread
change_managed_account_access_levelaccounts:writewrite
change_managed_account_planaccounts:writewrite
end_account_managementaccounts:writewrite
provision_managed_accountaccounts:writewrite
reissue_managed_account_claimaccounts:writewrite

provision_managed_account, change_managed_account_plan, reissue_managed_account_claim and end_account_management are irreversible: the server publishes them with destructiveHint: true and an idempotency_key input.

Three things have no tool, by design:

  • The bulk import. It reads uploaded CSV files, which the MCP server does not carry, and it is privileged too. Use the REST API: Bulk import.
  • The client's side of a managed account. What the client does with their account — claiming it, raising or lowering the level the provider keeps, ending the management and taking over the payment — happens in the app, and has no /v1 operation either.
  • The management of granted access. Giving, resending, accepting, declining, revoking, changing the level or the scope of, or renouncing an access between accounts happens in the app, never through the API or MCP. Granted access explains it.

On this page

Need a hand?Contact support