Holded Integration
Holded is an all-in-one business management platform designed for the Spanish market (ES), also supporting Portugal, Italy, France, and Germany. When configured in CADENSA, you can issue legally valid invoices directly from your tracked time entries, compatible with the FacturaE Spanish e-invoicing standard.
Holded is primarily designed for businesses in Spain ๐ช๐ธ, with additional support for Portugal ๐ต๐น, Italy ๐ฎ๐น, France ๐ซ๐ท, and Germany ๐ฉ๐ช.
Spain mandates time tracking records since 2019 (Real Decreto-ley 8/2019). Cadensa's time tracking combined with Holded invoicing provides a complete time log โ invoice workflow for Spanish businesses.
Before You Beginโ
You need:
- An active Holded account (any paid plan)
- A Holded API key (see below)
- CADENSA unit with at least Admin role
Step 1 โ Get Your Holded API Keyโ
- Log in to app.holded.com
- Go to Settings (gear icon, top right)
- Navigate to Integrations โ API
- Click "+ New API Key" (or copy an existing key)
- Copy the generated key
Never share your API key or commit it to version control. Anyone with the key can create and manage invoices and contacts on your behalf.
For the official Holded API docs, see: developers.holded.com/reference
Step 2 โ Configure in CADENSAโ
- Open Settings โ Invoice in CADENSA
- Select Holded ๐ช๐ธ as the provider
- Paste your API key into the API Key field
- Click Test Connection โ a green
confirms the key is valid
- Click Save
Step 3 โ Set Defaultsโ
Configure defaults so the Generate Invoice dialog is pre-filled with sensible values:
| Setting | Recommended value (ES) | Description |
|---|---|---|
| Default Currency | EUR | Currency used on new invoices |
| Default VAT % | 21 | Standard Spanish IVA (impuesto sobre el valor aรฑadido) |
| Payment Terms Days | 30 | Days until due date |
| Default Document Type | Invoice | Pre-selects "Invoice" in the dialog |
| Issuer Country | ES | Your company's country โ enables automatic VAT suggestion |
- 21% โ Standard rate (tipo general) โ most services
- 10% โ Reduced rate (tipo reducido) โ hospitality, transport, some food
- 4% โ Super-reduced rate (tipo superreducido) โ books, medicine, some food
- 0% โ Exempt โ intra-EU supply, export, certain financial services
Issuing an Invoice via Holdedโ
Once configured, follow the standard invoice generation flow:
- Open Reports โ apply date range and project filters
- Click Generate Invoice
- In the Document Type field, select Invoice โ the output channel shows
Holded - Fill in client details (name, address, country, VAT/NIF number)
- Set the VAT rate (default: 21%)
- Click Preview Invoice โ review line items and totals
- Click Issue Invoice (Holded)
CADENSA sends the invoice to the Holded API. A contact record is automatically found or created (searched by VAT number first, then by name). The invoice is created and the PDF is available for download.
- A new invoice document is created in Holded under Facturaciรณn โ Facturas emitidas
- A contact is automatically created if not found
- The invoice PDF is available for immediate download
Contact Matchingโ
CADENSA searches for an existing Holded contact in this order:
- By VAT/NIF number โ most reliable match (enter the client's VAT number in the invoice dialog)
- By company name โ exact match (case-insensitive)
- Create new โ if no match found, a new contact is created automatically
For Spanish clients, always enter the NIF/CIF (e.g. B12345678) in the client VAT number field. This ensures the correct Holded contact is matched even if the company name varies slightly.
Saved Partners (Partner Picker)โ
When Holded is configured as your invoice provider, the Generate Invoice dialog shows a partner picker โ a searchable dropdown populated directly from your Holded contacts.
How it works:
- Type a name or partial text to search your Holded contacts in real time
- Selecting a partner auto-fills all client fields: company name, address, postal code, city, country, VAT number
- The country field shows the original Holded country name (e.g. "Spain", "Hungary") for easy recognition โ while the underlying ISO code (e.g.
ES,HU) is used for VAT calculation and reverse charge logic
Holded stores country names in full text form ("Spain", "Germany", etc.). CADENSA automatically converts these to ISO 3166-1 alpha-2 codes internally for correct VAT suggestion (domestic / reverse charge / export). The full name is displayed in the UI for readability.
Supported workflows:
- Select an existing partner โ all fields filled automatically
- Clear the partner โ edit fields manually
- Enter client details manually if the partner is not in Holded yet (a new contact will be created on invoice issue)
VAT Rate Mappingโ
Holded uses named tax objects. CADENSA maps your numeric tax rate automatically:
| Tax Rate | Holded Tax Name | Use case |
|---|---|---|
| 21% | IVA 21% | Standard Spanish IVA |
| 10% | IVA 10% | Reduced rate |
| 4% | IVA 4% | Super-reduced rate |
| 0% | Exento | Exempt / export |
Invoice Languagesโ
CADENSA automatically selects the invoice language based on the issuer country:
| Issuer Country | Invoice Language |
|---|---|
| ES | Spanish (es) |
| FR | French (fr) |
| DE | German (de) |
| PT | Portuguese (pt) |
| IT | Italian (it) |
| Other | Spanish (es, default) |
Document Routingโ
| Document Type | Output |
|---|---|
| Proforma | Internal PDF (never sent to Holded) |
| Work Summary | Internal PDF (never sent to Holded) |
| Invoice | Sent to Holded API โ PDF returned |
Only Invoice type documents are sent to Holded. Proforma and Work Summary are always generated internally, regardless of provider setting.
Invoice History & PDF Downloadโ
After a successful invoice creation:
- The invoice appears in Reports โ Invoices in CADENSA
- The invoice also appears in your Holded account under Facturaciรณn โ Facturas emitidas
- You can re-download the PDF at any time from either place
Testing the Connectionโ
Use the Test Connection button after entering your API key. CADENSA calls the Holded Contacts API to verify the key is valid.
A successful test shows:
โ Connection successful
Holded has no sandbox environment. For testing:
- Create a test contact in Holded (e.g. "Test Client ES")
- Generate a small test invoice in CADENSA
- Void/cancel it immediately in Holded (Facturas emitidas โ โฏ โ Anular)
Troubleshootingโ
"401 Unauthorized" / "403 Forbidden" errorโ
The API key is invalid, expired, or lacks the required permissions.
Fix: Generate a new API key in Holded (Settings โ Integrations โ API) and re-enter it in CADENSA.
"INVOICE_NO_ENTRIES" errorโ
No time entries were found for the selected date range and project filters.
Fix: Adjust the date range or project filter and try again.
Contact not created / wrong contact matchedโ
If the VAT number is missing and the company name doesn't exactly match an existing Holded contact, a duplicate may be created.
Fix: Check Contactos in Holded and merge duplicate records. For future invoices, always enter the client's NIF/CIF in the VAT number field.
PDF download failsโ
Holded generates PDFs synchronously โ the PDF should be available immediately after invoice creation.
Fix: Re-download from Reports โ Invoices. If the issue persists, check Holded's status page or contact Holded support.
Invoice voiding failsโ
Only invoices in pending or draft status can be voided. Paid invoices cannot be reversed via the API.
Fix: Void the invoice manually in Holded (Facturas emitidas โ โฏ โ Anular) if the API call fails.
See Alsoโ
- Invoice Provider Settings โ Overview of all providers
- Invoice Generation โ How to create invoices from time entries
- Invoice History โ View and re-download past invoices