Sales
- Invoice
- Sales Order
- Sales Receipt
- Estimate
- Proforma
- Credit Note
- Sales Credit Note
- Delivery Note
- Recurring Invoice
- Billing Forecast
- Numbering Series
Approved by the n8n team as a verified community node. 42 resources and 323 operations of the official Holded API v2 exposed as a native node — open source under MIT, published to npm with a signed provenance attestation, maintained by Francodesystems.
n8n is the most widely used open-source workflow engine for wiring SaaS together without writing a full service. Holded is the ERP most Spanish SMBs run on. What was missing was an n8n node that actually covered API v2 — not the 10 most common operations, but all 323. That is what this package is.
The node is generated from the official Holded developer catalog, so when Holded extends v2 we regenerate and publish a new release. The Contact resource gets extra manual work — polished UX for the most common cases.
Everything the official API v2 exposes, grouped by functional area. Each resource carries its usual CRUD operations plus the specific ones the API offers (bulk, void, ship, etc.).
A taste of what people build with the node. These are not tutorials — they are reminders of which cases the package covers.
Shopify Trigger (orders/create) → Holded (Invoice / Create)
Creates the matching invoice in Holded the moment Shopify confirms an order, with the customer linked and the correct numbering series.
Stripe Trigger (charge.succeeded) → Holded (Contact / Update, tag: paid)
Flags the contact as an active customer as soon as Stripe confirms the charge — no waiting for a nightly sync.
Schedule (daily) → Holded (Contact / Get Many, filter: lead) → Slack
Every morning the sales channel gets the list of leads created in Holded the day before.
HubSpot Trigger (deal.stage = closed-won) → Holded (Contact / Create or Update) → Holded (Proforma / Create)
Turns a won CRM opportunity into a ready-to-send proforma, without touching Holded by hand.
Approved by the n8n team on 20 June 2026 after a technical Creator Portal review, and published on the official marketplace at n8n.io/integrations/holded.
Consolidated base URL (/api/v2/<resource>), Bearer token with scopes, cursor pagination with has_more, and structured RFC 7807 errors.
42 resources and 323 operations generated from the official Holded developer catalog. When Holded extends v2, we regenerate and ship a new release.
The Contact resource gets extra manual UX work: nested address, defaults collection, custom fields as JSON, and multipart attachment upload/download.
Every release is published with a signed attestation from GitHub Actions via OIDC. Anyone can cryptographically verify the package came from this exact repo and commit.
Node.js 20.15 or newer. Runs on both self-hosted and n8n Cloud.
No odd conditions: use it, fork it, modify it. All we ask is that you keep attribution.
Settings → Community Nodes → Install → type @francodesystems-npm/n8n-nodes-holded and confirm. For self-hosted n8n on Docker, make sure the N8N_COMMUNITY_PACKAGES_ENABLED environment variable is set to true. On n8n Cloud it works out of the box.
Yes. 42 resources and 323 operations, regenerated from the official catalog. The Contact resource gets extra manual UX work (nested address, custom fields as JSON, multipart attachments). Everything else is exposed with its path params, query filters and body fields as native n8n inputs.
Up to v0.3.x the package supported v1 and v2 in parallel. From v0.4.0 (June 2026) we focus on v2 only — Holded recommends v2 for all new development and v1 is archived. If you specifically need v1, pin to 0.3.8 or open an issue.
No. It is an unofficial community integration maintained by Francodesystems. "Holded" and its logo are trademarks of Holded Technologies S.L. and are used under nominative fair use to identify the service the node integrates with. We are not affiliated with or sponsored by Holded — we are just a consultancy specialized in its API.
Yes, please. Open issues, send PRs, or suggest missing resources or ones with UX that could be better. The fastest way to start is to try the node against your real use case and open an issue with whatever does not fit.
For serious integrations (critical processes with SLAs, idempotency under concurrency, high volume, complex tax logic) we recommend building a dedicated service outside n8n, against the API directly. n8n is excellent for automating workflows but it is not the right tool to replace a backend service. If you are unsure what fits, let's talk it through, no strings attached.
Yes. Approved by the n8n team on 20 June 2026 and published on the official marketplace: n8n.io/integrations/holded. Install it from Settings → Community Nodes → @francodesystems-npm/n8n-nodes-holded.
For critical processes (high volume, idempotency under concurrency, serious tax logic, SLAs) the n8n node is a good starting point, but a dedicated service against the API is often the better call. We build it, we maintain it, and if it fits, we open-source it here too.