FacturaDirecta integration
FacturaDirecta is Spanish cloud invoicing and accounting software. An agent can create and email sales invoices, estimates, customer orders, delivery notes and purchase orders, record expenses (purchase invoices and tickets) and their payments, manage contacts, products and stock, recurring invoices, custom fields and webhooks, scan supplier documents through the inbox, reconcile bank statement lines, and read ledger entries, financial reports and saved tax returns. Issuing an invoice (main.draft false) with VeriFactu or TicketBAI active reports it to the Spanish tax authority at once and it can no longer be edited or deleted. Not exposed: payroll documents and payroll data, API key management, PDF and Facturae generation, document version history, the global search, the results-detail report and the analytics query, and the per-third-party detail of the reports (all of them can list per-employee payroll lines), the OAuth-only profile route, and the full-replace update routes of documents, contacts, products and payment methods (they erase attachments and bank details that these reads do not return; change tags, payments and attachments with their own tools, or edit in the web app). Not returned: attachment and webhook URLs, full bank account numbers (IBAN, BIC), the webhook signing secret, activity IP addresses, per-person records of informative tax returns, ledger entry texts and the contact behind each ledger line, and the inbox email address and Drive folder link. Full IBANs inside tax-return boxes appear only when the key has the banks:readIban scope: leave that scope off. Authentication: an API key created in the web app (Settings, API and integrations) sent in the facturadirecta-api-key header; each key works for one company with the scopes chosen when it was created, and every tool also takes that company's companyId.
Say what should happen.
The workflow builds itself.
What you can do with FacturaDirecta
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Attachment, 22 operations
add_bill_attachmentsAdd bill attachmentsPOSTAttaches files uploaded with create_upload to an existing purchase invoice or ticket. New attachments are added to the current ones (a document holds at most 10), and each upload can be used once.add_client_order_attachmentsAdd client order attachmentsPOSTAttaches files uploaded with create_upload to an existing customer order. New attachments are added to the current ones (a document holds at most 10), and each upload can be used once.add_delivery_note_attachmentsAdd delivery note attachmentsPOSTAttaches files uploaded with create_upload to an existing delivery note. New attachments are added to the current ones (a document holds at most 10), and each upload can be used once.add_estimate_attachmentsAdd estimate attachmentsPOSTAttaches files uploaded with create_upload to an existing estimate. New attachments are added to the current ones (a document holds at most 10), and each upload can be used once.add_invoice_attachmentsAdd invoice attachmentsPOSTAttaches files uploaded with create_upload to an existing sales invoice. New attachments are added to the current ones (a document holds at most 10), and each upload can be used once.add_purchase_order_attachmentsAdd purchase order attachmentsPOSTAttaches files uploaded with create_upload to an existing purchase order. New attachments are added to the current ones (a document holds at most 10), and each upload can be used once.add_recurring_invoice_attachmentsAdd recurring invoice attachmentsPOSTAttaches files uploaded with create_upload to an existing recurring invoice. New attachments are added to the current ones (a document holds at most 10), and each upload can be used once.delete_bill_attachmentDelete bill attachmentDELETERemoves one attachment, by its zero-based position, from a purchase invoice or ticket. The stored file itself is kept by FacturaDirecta.delete_client_order_attachmentDelete client order attachmentDELETERemoves one attachment, by its zero-based position, from a customer order. The stored file itself is kept by FacturaDirecta.delete_delivery_note_attachmentDelete delivery note attachmentDELETERemoves one attachment, by its zero-based position, from a delivery note. The stored file itself is kept by FacturaDirecta.delete_estimate_attachmentDelete estimate attachmentDELETERemoves one attachment, by its zero-based position, from a estimate. The stored file itself is kept by FacturaDirecta.delete_invoice_attachmentDelete invoice attachmentDELETERemoves one attachment, by its zero-based position, from a sales invoice. The stored file itself is kept by FacturaDirecta.delete_purchase_order_attachmentDelete purchase order attachmentDELETERemoves one attachment, by its zero-based position, from a purchase order. The stored file itself is kept by FacturaDirecta.delete_recurring_invoice_attachmentDelete recurring invoice attachmentDELETERemoves one attachment, by its zero-based position, from a recurring invoice. The stored file itself is kept by FacturaDirecta.list_bill_attachmentsList bill attachmentsGETLists the files attached to one purchase invoice or ticket: name, size, content type and creation time, in attachment order (the index delete_bill_attachment takes). File links are not returned.list_client_order_attachmentsList client order attachmentsGETLists the files attached to one customer order: name, size, content type and creation time, in attachment order (the index delete_client_order_attachment takes). File links are not returned.list_delivery_note_attachmentsList delivery note attachmentsGETLists the files attached to one delivery note: name, size, content type and creation time, in attachment order (the index delete_delivery_note_attachment takes). File links are not returned.list_estimate_attachmentsList estimate attachmentsGETLists the files attached to one estimate: name, size, content type and creation time, in attachment order (the index delete_estimate_attachment takes). File links are not returned.list_invoice_attachmentsList invoice attachmentsGETLists the files attached to one sales invoice: name, size, content type and creation time, in attachment order (the index delete_invoice_attachment takes). File links are not returned.list_purchase_order_attachmentsList purchase order attachmentsGETLists the files attached to one purchase order: name, size, content type and creation time, in attachment order (the index delete_purchase_order_attachment takes). File links are not returned.list_recurring_invoice_attachmentsList recurring invoice attachmentsGETLists the files attached to one recurring invoice: name, size, content type and creation time, in attachment order (the index delete_recurring_invoice_attachment takes). File links are not returned.list_tax_declaration_attachmentsList tax declaration attachmentsGETLists the files attached to a saved tax return: name, size, content type, creation time. File links are not returned.
Custom field, 6 operations
create_custom_fieldCreate custom fieldPOSTCreates a custom field shown on the given document types. The plan limit on custom fields can answer 403.delete_custom_fieldDelete custom fieldDELETEDeletes a custom field without destroying data: values already stored in documents are kept, and restore_custom_field brings it back.get_custom_fieldGet custom fieldGETGets one custom field, also when it has been deleted.list_custom_fieldsList custom fieldsGETLists the custom fields defined for documents (active ones by default; archived=true or all for deleted ones). Pages with limit and offset.restore_custom_fieldRestore custom fieldPOSTRestores a deleted custom field. Idempotent; can answer 403 when the plan lacks the feature or the field limit is reached.update_custom_fieldUpdate custom fieldPUTReplaces the title and document types of a custom field (both required). Values on removed types are kept but no longer shown; a deleted field must be restored first.
Invoice, 6 operations
create_invoiceCreate invoicePOSTCreates a sales invoice. Always set content.main.draft: true keeps a draft; false ISSUES it for real (numbered and, with VeriFactu or TicketBAI active, reported to the tax authority at once, then no longer editable or deletable).create_substitution_invoiceCreate substitution invoicePOSTCreates and ISSUES at once a substitution invoice (VeriFactu type F3) replacing several simplified invoices with one full invoice to an identified customer. There is no draft: it is final when created.delete_invoiceDelete invoiceDELETEDeletes (archives) a sales invoice. An invoice already issued with VeriFactu or TicketBAI cannot be deleted, only voided or corrected in the web app.get_invoiceGet invoiceGETGets one sales invoice with its lines, taxes, totals, contact data and accounting entry. related can add tax definitions, pending balance, state or ledger entries.list_invoicesList invoicesGETLists sales invoices, filtered by date, number, state (draft, pending, overdue, paid, overpaid, voided), contact, amount or tags. Pages with limit and offset; totals=true adds sums over all matches.send_invoiceSend invoicePUTEmails the sales invoice for real, with its PDF, to its contact: recipients, subject and body come from the document template unless given here. The recipients receive it at once.
Webhook endpoint, 6 operations
create_webhook_endpointCreate webhook endpointPOSTCreates a webhook endpoint that receives the chosen events (invoice.*, expense.*) at an HTTPS URL. The signing secret is not returned, so deliveries cannot be verified from here.delete_webhook_endpointDelete webhook endpointDELETEDeletes a webhook endpoint; it receives no more events.disable_webhook_endpointDisable webhook endpointPOSTDisables a webhook endpoint; it stops receiving events until enabled again.enable_webhook_endpointEnable webhook endpointPOSTEnables a webhook endpoint so it receives events again.get_webhook_endpointGet webhook endpointGETGets one webhook endpoint: name, events, enabled, warning and mode. The destination URL is not returned.list_webhook_endpointsList webhook endpointsGETLists the webhook endpoints of the company: name, subscribed events, enabled, warning (repeated delivery failures), live or sandbox. Destination URLs are not returned.
Estimate, 5 operations
create_estimateCreate estimatePOSTCreates an estimate (quote) for a customer. It is not sent; use send_estimate to email it.delete_estimateDelete estimateDELETEDeletes (archives) an estimate.get_estimateGet estimateGETGets one estimate with its lines, taxes, totals and contact data. related=taxIds adds the tax definitions.list_estimatesList estimatesGETLists estimates (quotes): filter by date, number, series, contact, amount, currency, email, tags. Pages with limit and offset.send_estimateSend estimatePUTEmails the estimate for real, with its PDF, to its contact: recipients, subject and body come from the document template unless given here. The recipients receive it at once.
Bill, 4 operations
create_billCreate billPOSTRecords a purchase invoice or ticket (an expense). To book a scanned document, call propose_bill or propose_ticket first and send its content here with fromInbox.delete_billDelete billDELETEDeletes (archives) a purchase invoice or ticket.get_billGet billGETGets one purchase invoice or ticket with its lines, taxes, totals and accounting entry. related can add tax definitions, pending balance, state or ledger entries.list_billsList billsGETLists purchase invoices and tickets (expenses): filter by date, supplier, amount, state (draft, pending, overdue, paid, overpaid, voided), currency, tags. Pages with limit and offset; totals=true adds sums.
Contact, 4 operations
create_contactCreate contactPOSTCreates a contact (customer or supplier) with its legal name, tax id, address and ledger accounts.delete_contactDelete contactDELETEDeletes (archives) a contact.get_contactGet contactGETGets one contact: names, tax id, email, phone, address, ledger accounts, persons and addresses.list_contactsList contactsGETLists contacts (customers, suppliers, employees): search by name, email or tax id, filter by role, country, phone, external id, tags. Pages with limit and offset.
Delivery note, 4 operations
create_delivery_noteCreate delivery notePOSTCreates a delivery note for a customer. It is not sent; use send_delivery_note to email it.delete_delivery_noteDelete delivery noteDELETEDeletes (archives) a delivery note.get_delivery_noteGet delivery noteGETGets one delivery note with its lines, taxes, totals and contact data.list_delivery_notesList delivery notesGETLists delivery notes: filter by date, number, series, contact, amount, currency, email, tags. Pages with limit and offset.
Inbox item, 4 operations
create_inbox_itemCreate inbox itemPOSTPuts an uploaded file (upload id from create_upload) into the inbox, where FacturaDirecta scans it in the background; poll get_inbox_item until status is scanned or scan_failed.delete_inbox_itemDelete inbox itemDELETEArchives an inbox item (it is not physically deleted and is still listed with archived=true).get_inbox_itemGet inbox itemGETGets one inbox item with its scan status and the data extracted from the document (supplier, lines, taxes, totals).list_inbox_itemsList inbox itemsGETLists documents in the inbox (uploaded, emailed, from Google Drive or the scanner) with their scan status: pending, scanned or scan_failed. Archived items only with archived=true. Pages with limit and offset.
Order, 4 operations
create_client_orderCreate client orderPOSTCreates a customer order. Each line has its own state (pending when left out) and the order state follows from the lines.delete_client_orderDelete client orderDELETEDeletes (archives) a customer order.get_client_orderGet client orderGETGets one customer order with its lines (each with its state), taxes, totals and contact data.list_client_ordersList client ordersGETLists customer orders. Order state is computed from its lines: pending, ready (ready to deliver), delivered or canceled. Filter by date, number, state, contact, amount, tags; pages with limit and offset.
Payment method, 4 operations
create_payment_methodCreate payment methodPOSTCreates a payment method: a manual one, or a SEPA direct debit or credit transfer mandate for a contact.delete_payment_methodDelete payment methodDELETEDeletes a payment method.get_payment_methodGet payment methodGETGets one payment method (title, type, direction, bank, contact). Full bank account numbers are not returned.list_payment_methodsList payment methodsGETLists payment methods: global ones and those of one customer (SEPA direct debit mandates, SEPA transfers). Full bank account numbers are not returned. Pages with limit and offset.
Product, 4 operations
create_productCreate productPOSTCreates a product or service with its sale and purchase prices, taxes and ledger accounts, and optionally stock tracking.delete_productDelete productDELETEDeletes (archives) a product.get_productGet productGETGets one product: name, SKU, sale and purchase settings (price, tax, account) and stock settings.list_productsList productsGETLists products and services: search by name, SKU, external id or description; filter sales, purchase or capital-asset items. Pages with limit and offset.
Purchase order, 4 operations
create_purchase_orderCreate purchase orderPOSTCreates a purchase order to a supplier (main.contact). Line taxes come from list_purchase_taxes; each line state is pending when left out.delete_purchase_orderDelete purchase orderDELETEDeletes (archives) a purchase order.get_purchase_orderGet purchase orderGETGets one purchase order with its lines (each with its state), taxes, totals and supplier data.list_purchase_ordersList purchase ordersGETLists purchase orders to suppliers. State is computed from the lines: pending (to receive), received or canceled. Filter by date, number, state, supplier, amount, tags; pages with limit and offset.
Recurring invoice, 4 operations
create_recurring_invoiceCreate recurring invoicePOSTCreates a recurring invoice schedule that creates real sales invoices while enabled. Set template main.draft: false ISSUES each one (VeriFactu or TicketBAI report at once); action.send emails it.delete_recurring_invoiceDelete recurring invoiceDELETEDeletes a recurring invoice schedule; no further invoices are created from it.get_recurring_invoiceGet recurring invoiceGETGets one recurring invoice schedule with its invoice template. related can add the next run time, the next 5 run times or tax definitions.list_recurring_invoicesList recurring invoicesGETLists recurring invoices (schedules that create sales invoices automatically): filter by next run date, enabled, frequency, contact, amount, tags. Pages with limit and offset.
Report, 4 operations
get_balance_sheetGet balance sheetGETGets the balance sheet in the official Spanish format at a date, with optional comparison or period columns. Needs the Accounting module (403 otherwise).get_profit_lossGet profit lossGETGets the profit and loss account in the official Spanish chart of accounts format, for a period, with optional comparison or monthly, quarterly or yearly columns. Needs the Accounting module (403 otherwise).get_results_summaryGet results summaryGETGets income, expenses and profit for a period, split by origin (invoices, bills, payroll, depreciation, currency differences, other). Available on every plan; compare or breakdown add columns.get_trial_balanceGet trial balanceGETGets the trial balance: opening balance, debit, credit and closing balance of each ledger account in a period. Paged with limit and offset; totals cover the whole report. Needs the Accounting module.
Tag, 4 operations
update_bill_tagsUpdate bill tagsPUTChanges only the tags of a purchase invoice or ticket, leaving the rest untouched: add tags, remove tags or replace the whole list (tagsOperation).update_client_order_tagsUpdate client order tagsPUTChanges only the tags of a customer order, leaving the rest untouched: add tags, remove tags or replace the whole list (tagsOperation).update_contact_tagsUpdate contact tagsPUTChanges only the tags of a contact, leaving the rest untouched: add tags, remove tags or replace the whole list (tagsOperation).update_delivery_note_tagsUpdate delivery note tagsPUTChanges only the tags of a delivery note, leaving the rest untouched: add tags, remove tags or replace the whole list (tagsOperation).
Reconciliation, 3 operations
reconcile_statementReconcile statementPUTReconciles a bank statement line with an accounting entry that already exists (transactionId).reconcile_statement_with_new_entryReconcile statement with new entryPOSTReconciles a bank statement line by creating a new accounting entry: either the payment of an invoice or bill (document) or explicit ledger lines. Writes to the books for real.unreconcile_statementUnreconcile statementDELETEUndoes the reconciliation of a bank statement line (back to pending); with deleteTransaction=true it also archives the linked accounting entry.
Webhook event, 3 operations
get_webhook_eventGet webhook eventGETGets one webhook event and its delivery status.list_webhook_eventsList webhook eventsGETLists the webhook events sent to the endpoints, newest first, with their delivery status (pending, delivered, failed). Pages with cursor (pass nextCursor).retry_webhook_eventRetry webhook eventPOSTQueues a webhook event for delivery again to its endpoint.
Bank, 2 operations
get_bankGet bankGETGets one bank or treasury account. related can add its book balance, the balance reported by the bank, the bank link status and unreconciled lines.list_banksList banksGETLists the company banks and treasury accounts (bank, card, Stripe, cash). related can add the book balance, the balance reported by the bank, the bank link status and unreconciled lines.
Bank statement, 2 operations
get_bank_statementGet bank statementGETGets one bank statement line with its reconciliation state and matched accounting entry.list_bank_statementsList bank statementsGETLists bank statement lines (imported or synced bank movements) with their reconciliation state: pending, reconciled or ignored. Filter by date, bank, amount, state; pages with limit and offset.
Bill proposal, 2 operations
propose_billPropose billPOSTRead only: builds a purchase invoice proposal from a scanned inbox item (lines, taxes, matched supplier, totals) without saving anything; review it, then send it to create_bill.propose_ticketPropose ticketPOSTRead only: builds a purchase ticket proposal from a scanned inbox item without saving anything; review it, then send it to create_bill.
Payment, 2 operations
create_bill_paymentsCreate bill paymentsPOSTRecords one or more payments made against a purchase invoice or ticket, each in a bank from list_banks, and returns the updated document. A payment without amount settles the whole pending balance.create_invoice_paymentsCreate invoice paymentsPOSTRecords one or more payments received against a sales invoice, each in a bank from list_banks, and returns the updated document. A payment without amount settles the whole pending balance.
Tax, 2 operations
list_purchase_taxesList purchase taxesGETLists the purchase taxes available in the company with the tax ids to put in bill and purchase order lines.list_sales_taxesList sales taxesGETLists the sales taxes available in the company (VAT, surcharges, withholdings) with the tax ids to put in sales document lines.
Tax declaration, 2 operations
get_tax_declarationGet tax declarationGETGets one saved tax return with its boxes, as written in the AEAT filing file. Per-person records of informative returns are not returned.list_tax_declarationsList tax declarationsGETLists the tax returns (AEAT forms) already generated and saved in FacturaDirecta, newest first: form, period, result, status. related=boxes adds their boxes. Read only: nothing is filed.
Activity, 1 operation
list_activityList activityGETLists the company activity log, newest first: documents created, changed or deleted, emails sent, user logins, bank syncs, tax filings. Pages with cursor (pass nextCursor).
Api key, 1 operation
get_api_key_infoGet api key infoGETGets the scopes granted to the API key in use; use it to check which resources this key may read or write.
Clientorder, 1 operation
send_client_orderSend client orderPUTEmails the customer order for real, with its PDF, to its contact: recipients, subject and body come from the document template unless given here. The recipients receive it at once.
Company settings, 1 operation
get_company_settingsGet company settingsGETGets the company profile and working settings: fiscal address, currency, language, time zone, draft or final invoice mode, tax regime, VeriFactu and TicketBAI, accounting lock date, modules.
Deliverynote, 1 operation
send_delivery_noteSend delivery notePUTEmails the delivery note for real, with its PDF, to its contact: recipients, subject and body come from the document template unless given here. The recipients receive it at once.
Journal entry, 1 operation
list_journal_entriesList journal entriesGETLists ledger (journal) entries: date, account, debit, credit, source document id and type. Filter by date, account or prefix, source document, tags. Pages with limit and offset.
Purchaseorder, 1 operation
send_purchase_orderSend purchase orderPUTEmails the purchase order for real, with its PDF, to its contact: recipients, subject and body come from the document template unless given here. The recipients receive it at once.
Series, 1 operation
list_seriesList seriesGETLists the numbering series defined for one document type; pass a series code as docNumber.series when creating a document.
Stock, 1 operation
get_product_stockGet product stockGETGets the stock figures of a product: physical, committed (in open customer orders), incoming (open purchase orders), available and projected. Needs stock tracking on the product and in the plan.
Stock adjustment, 1 operation
adjust_product_stockAdjust product stockPOSTRecords a manual stock adjustment (positive in, negative out) with a reason; it changes the physical stock for real. Needs stock tracking on the product.
Stock movement, 1 operation
list_product_stock_movementsList product stock movementsGETLists the stock movements of a product, newest first, with the balance after each one. Needs stock tracking on the product. Pages with limit and offset.
Theme, 1 operation
list_themesList themesGETLists the document templates (themes) available for sales documents.
Upload, 1 operation
create_uploadCreate uploadPOSTUploads a file (at most 10 MB) and returns an upload id (upl_) to attach to a document or put in the inbox within 24 hours, after which it expires.
Showing the first 120 of 125 endpoints. The rest are in the product, searchable from the workflow builder and from chat.
Use FacturaDirecta from Claude Code, Cursor or Codex
Connect FacturaDirecta in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its FacturaDirecta operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect FacturaDirecta
- Create your workspace
Sign up free. Nothing to install.
- Connect FacturaDirecta once
Add your FacturaDirecta connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
FacturaDirecta integration FAQ
What can you do with the FacturaDirecta integration?
LiveContext exposes 125 operations on FacturaDirecta, covering attachment, custom field, invoice and webhook endpoint.
