---
title: "Holded Integration"
description: "Holded is Spanish business management software that puts invoicing, accounting, inventory, CRM, projects, and payroll in one account. Agents create and send documents, manage contacts and products, ship orders, record payments, and react to changes as they happen."
url: https://flowrunner.ai/integrations/holded
date_modified: 2026-09-04T19:45:02-07:00
---

# Holded

[ERP](https://flowrunner.ai/integrations/category/finance-accounting)

Holded is Spanish business management software that puts invoicing, accounting, inventory, CRM, projects, and payroll in one account. Agents create and send documents, manage contacts and products, ship orders, record payments, and react to changes as they happen.

1 trigger · 51 actions · API key · available

[Holded website](https://www.holded.com/) · [Platform Documentation](https://developers.holded.com/) · Capability data verified 2026-08-24

1.  An order is paid in the storefront and reaches the flow
2.  Agent reads the buyer, the line items, and the tax number off the order
3.  List Contacts matched on the tax number decides whether this buyer already exists in Holded
4.  Create Document raises the invoice unapproved, so it consumes no number from the series yet
5.  The agent compares the document's totals and tax lines against the order that produced it
6.  The unapproved invoice posts to the finance channel with the numbering series it would take
7.  The controller approves, and that approval is what issues the document and spends its number

## What This Integration Enables

Most invoicing connectors stop at the invoice and hand the rest to an accounting export. Holded does not, and that is the reason to build on it. The daily ledger, the chart of accounts, the treasury accounts, and the numbering series sit in the same account as the document that generated them. A flow that raises an invoice here is not staging something for the books later. It is writing into the books.

FlowRunner agents work across the whole of that account. They raise and read documents across ten kinds, from invoices and credit notes through sales orders, waybills, estimates, and the purchase side. They record payments and settle documents, ship sales orders in full or line by line with tracking details attached, maintain contacts and products, and post balanced double entry lines into the daily ledger. The realtime trigger closes the loop, so a payment recorded by a person inside Holded starts a flow the same way a payment recorded by an agent does.

Two behaviors are worth designing around. A document can create its own contact from nothing but a name, and the contact's stored defaults are copied onto the document unless you turn that off. And an approved document is a numbered, issued document, which Spanish numbering rules will not let you simply delete. Both are reasons to be deliberate about what an agent is allowed to finish on its own.

### Without FlowRunner

**Invoicing and bookkeeping as two jobs**: Documents are raised in one place and entered into the books somewhere else

**Numbering pressure at month end**: Issued documents are corrected by hand under a deadline, with the series watching

**Contacts created by accident**: A new buyer's name goes onto a document and becomes a CRM record nobody reviewed

### With FlowRunner

**One account, one record**: The document, the payment, and the ledger entry live in the same account and reconcile there

**Issued means reviewed**: Documents are raised unapproved by default, and approval is a person's act

**Buyers matched on tax number**: The tax number resolves the contact, so a document does not quietly invent one

## Use Case Scenarios

### Storefront orders that land in the books, not in a queue

A paid order arrives from [Shopify](https://flowrunner.ai/integrations/shopify) or [PrestaShop](https://flowrunner.ai/integrations/prestashop). The agent resolves the buyer with a contact lookup on the tax number, because a contact whose code is the tax number means a flow never has to store Holded's own identifiers. It creates the invoice unapproved with the order's lines, tax rates, and sales channel, downloads the rendered PDF into file storage, and attaches the order confirmation to the document so the evidence travels with it. When a payment clears in [Stripe](https://flowrunner.ai/integrations/stripe), a separate step settles the document and the payment lands against the right treasury account.

### The purchase side reconciled without a spreadsheet

Supplier invoices are raised as purchase documents against the correct expense account, read back from the expense account listing rather than hard coded. On a schedule the agent lists purchase documents and payments for the period, compares them to the daily ledger, and posts a short reconciliation into [Slack](https://flowrunner.ai/integrations/slack) naming the documents with no matching payment and the payments with no matching document. Where a correcting journal is genuinely needed, the agent drafts the balanced lines and a person posts them, because the connector checks locally that debits and credits agree and names both totals when they do not.

### Sales orders that ship in the open

A sales order moves through its pipeline stages as the warehouse works it. The agent records shipment tracking details on the order, marks lines shipped either wholesale or in named quantities, and reads back how many units of each line have actually gone. Stock corrections are handled explicitly rather than incidentally, because setting a product's stock level in Holded is a correction and creates no movement document, so the flow logs the correction and its reason to [Google Sheets](https://flowrunner.ai/integrations/google-sheets) where an inventory owner can see what changed and why.

## Human-in-Loop Highlight

Holded ships the pause already built, and the right design is to use it rather than invent one. Approval is off by default: a document created without it waits, and is not yet a numbered, issued document. Approval is the moment it takes a number from a series, and a Spanish numbering series cannot have gaps, which is why the deletion of an approved document may simply be refused. Past that point the only correction is a credit note, which is itself a permanent document in the same series.

So the agent raises everything unapproved and stops. It posts the batch to the controller with the details that decide it: "Eleven invoices ready for the March storefront batch, total 42,180 euros, series Ventas 2026. Two buyers matched on tax number, one is a new contact this document would create, and one carries a tax rate different from the contact's default. Approve all, approve nine and hold two, or reject?" The controller answers. Everything before that line is arithmetic and lookups, which an agent does faster and more consistently than a person. The act of issuing a numbered document into a series the tax authority expects to be unbroken is not arithmetic. It is a decision with a name attached, and it stays that way.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

51 actions

### Documents

14

-   **List Documents** Lists Holded documents of one kind: invoices, sales receipts, credit notes, sales orders, proformas, waybills, estimates, purchase invoices, purchase orders, or purchase refunds. The kind is a path segment rather than a filter, so reading every kind means running this once per kind.
-   **Get Document** Reads one Holded document with its lines and totals.
-   **Create Document** Creates a document of any of the ten kinds. The contact can be supplied as a known identifier, as a tax number Holded matches, or as a bare name, in which case Holded creates the contact from the document. Approval is off unless you ask for it, so by default the document waits rather than being issued.
-   **Update Document** Updates a document. Sending line items replaces the existing lines rather than merging with them, so a partial line update is a whole line rewrite.
-   **Delete Document** Deletes a document. An approved document may be refused, because an issued Spanish numbering series cannot have gaps.
-   **Pay Document** Records a payment against a document, which is what settles an invoice.
-   **Send Document** Emails a document to its contact. The vendor requires a subject of at least ten characters and a message of at least twenty, and the connector checks locally so the refusal is legible rather than arriving as a generic rejection.
-   **Download Document PDF** Downloads a document as a PDF and stores it in FlowRunner file storage. Holded returns the file encoded inside a JSON body rather than as bytes, and this operation decodes it into a real file.
-   **Attach File To Document** Attaches a file to a document, which is how the order confirmation or the supplier's original travels with the record.
-   **Set Document Pipeline** Moves a sales order or waybill to another stage of its pipeline.
-   **Update Document Tracking** Records shipment tracking details on a sales order or waybill. This is the one route in the connector whose dates follow a different format from every other, which is the vendor's own inconsistency and is stated in the parameter descriptions.
-   **Ship All Items** Marks every line of a sales order as shipped.
-   **Ship Items By Line** Marks named quantities of a sales order as shipped, line by line, for a partial dispatch.
-   **Get Shipped Items** Reads how many units of each line of a sales order have shipped.

### Contacts

9

-   **List Contacts** Lists the contacts on the account: clients, suppliers, debtors, creditors, and leads. The phone and mobile filters are exact matches including punctuation, in the vendor's own words, so match on tax number where you can.
-   **Get Contact** Reads one contact.
-   **Create Contact** Creates a contact as a client, supplier, debtor, creditor, or lead. Setting the contact's code to its tax number is what lets later documents resolve it without storing Holded identifiers.
-   **Update Contact** Updates a contact.
-   **Delete Contact** Deletes a contact from the account.
-   **List Contact Attachments** Lists the files attached to a contact.
-   **List Contact Groups** Lists the contact groups on the account.
-   **Create Contact Group** Creates a contact group.
-   **Delete Contact Group** Deletes a contact group.

### Products

10

-   **List Products** Lists the products on the account.
-   **Get Product** Reads one product.
-   **Create Product** Creates a product. The tax field here is a percentage rather than a reference to a tax record.
-   **Update Product** Updates a product.
-   **Delete Product** Deletes a product.
-   **Update Product Stock** Sets the stock level of a product. This is a correction rather than a movement, and it creates no document, so a flow that uses it should record its own reason somewhere a person will find it.
-   **List Services** Lists the services on the account, which are the non stocked things a document can charge for.
-   **Create Service** Creates a service.
-   **List Warehouses** Lists the warehouses on the account.
-   **List Warehouse Stock** Reads the stock held in one warehouse.

### Money

6

-   **List Payments** Lists the payments recorded on the account.
-   **Create Payment** Records a standalone payment on a treasury account. Settling an invoice is a different operation.
-   **Delete Payment** Deletes a payment, which reopens any document it settled.
-   **List Treasury Accounts** Lists the bank and cash accounts, which is where a payment's treasury identifier comes from.
-   **List Remittances** Lists the remittances of the account, which are batches of payments sent to the bank.
-   **List Expense Accounts** Lists the expense accounts, which is where a purchase document books to.

### Reference

4

-   **List Taxes** Lists the tax rates configured on the account.
-   **List Payment Methods** Lists the payment methods configured on the account.
-   **List Sales Channels** Lists the sales channels of the account.
-   **List Numbering Series** Lists the numbering series of one document kind, which is where a document's series identifier comes from and what a human gate should quote before approving.

### Accounting

4

-   **List Ledger Entries** Reads the daily ledger, which is the double entry accounting side of the account.
-   **Create Ledger Entry** Creates a double entry ledger entry from balanced lines. The connector checks the balance locally and names both totals when they disagree.
-   **List Chart Of Accounts** Reads the chart of accounts.
-   **Create Accounting Account** Creates an account in the chart of accounts.

### Webhooks

4

-   **List Webhooks** Lists the webhook subscriptions of the account. The signing secret is shown only when a webhook is created and never appears here.
-   **Create Webhook** Registers a webhook. The answer carries the signing secret, which Holded shows once and never again.
-   **Set Webhook Enabled** Switches a webhook on or off. Holded disables one itself when the endpoint keeps failing, and this is how it is switched back on.
-   **Delete Webhook** Removes a webhook from the account.

## Triggers

1 triggers

### Event Triggers

1

-   **On Holded Event** Starts the flow when Holded raises the chosen event: a document of any kind being created, updated, deleted, or approved, a payment being recorded, a contact or product changing, or stock moving. FlowRunner registers the webhook for you, keeps the signing secret Holded issues, verifies every delivery, and removes the subscription when the trigger is switched off.

## Frequently Asked Questions

### What can FlowRunner do with Holded?

FlowRunner agents can run List Documents, Get Document, and Create Document in Holded, plus 48 more actions.

### Does connecting Holded to FlowRunner require OAuth?

No. Holded connects to FlowRunner with an API key, no OAuth flow required.

### Can Holded trigger a FlowRunner workflow automatically?

Yes. Holded supports 1 trigger that can start a FlowRunner workflow automatically.

**Work at Holded?** This integration exposes Holded to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/holded. Site index: https://flowrunner.ai/llms.txt
