FrancodesystemsFran<code>systems
Verified by n8n · MIT · npm provenance

The verified n8n node for Holded, with the full API v2.

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.

What it is

n8n + Holded, without the manual glue

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.

Coverage

42 resources · 323 operations

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.).

Sales

  • Invoice
  • Sales Order
  • Sales Receipt
  • Estimate
  • Proforma
  • Credit Note
  • Sales Credit Note
  • Delivery Note
  • Recurring Invoice
  • Billing Forecast
  • Numbering Series

Purchasing

  • Purchase
  • Purchase Order
  • Purchase Delivery Note

Catalog

  • Product
  • Service
  • Price List
  • Warehouse
  • Production Order

CRM

  • Contact
  • Contact Group
  • Opportunity
  • Funnel
  • Tag
  • Event
  • Booking

Accounting

  • Accounting
  • Payment
  • Payment Method
  • Bank Account
  • Expense Account
  • Tax
  • Remittance

Projects & team

  • Project
  • Project Time Tracking
  • Task
  • Employee
  • Employee Time Tracking
  • Payroll Record

Other

  • Sales Channel
  • Inbox
  • Document
Examples

Real workflows

A taste of what people build with the node. These are not tutorials — they are reminders of which cases the package covers.

Shopify → Holded · invoice per order

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 → Holded · tag contact on charge

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.

Daily lead digest

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 deal-won → Holded contact + proforma

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.

Under the hood

What the package takes care of

Verified by n8n

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.

Official API v2

Consolidated base URL (/api/v2/<resource>), Bearer token with scopes, cursor pagination with has_more, and structured RFC 7807 errors.

Full coverage

42 resources and 323 operations generated from the official Holded developer catalog. When Holded extends v2, we regenerate and ship a new release.

Hand-tuned Contact

The Contact resource gets extra manual UX work: nested address, defaults collection, custom fields as JSON, and multipart attachment upload/download.

npm provenance

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.

n8n 1.0+ compatible

Node.js 20.15 or newer. Runs on both self-hosted and n8n Cloud.

MIT licensed

No odd conditions: use it, fork it, modify it. All we ask is that you keep attribution.

FAQ

Frequently asked questions

How do I install it in my n8n?

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.

Does it cover every API v2 endpoint?

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.

What about API v1?

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.

Is it an official Holded integration?

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.

Can I contribute?

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.

What if I need something more complex than an n8n workflow?

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.

Is it verified on n8n.io?

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.

Need more than an n8n node?

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.