Skip to main content

Release Notes — February 28, 2026

This release delivers five major features: German (DE) UI localization, CEE currency support (PLN, RON, CZK), Pennylane invoice integration for the French market, Holded invoice integration for the Spanish market, and SmartBill invoice integration for the Romanian market.


German (DE) Localization

New Feature

CADENSA is now fully available in German (Deutsch), covering the DACH market (Germany, Austria, Switzerland — ~100M+ potential users).

What's new:

  • Full German UI translation across all 23 namespaces (frontend)
  • Mobile app translated to German (de/translation.json)
  • German registered in i18n.ts with automatic device locale detection
  • DD.MM.YYYY date format and Europe/Berlin timezone defaults for DE locale
  • German language option in Settings → Localization → Language dropdown
  • dayjs German locale applied in: Time Tracking, Audit Log, Task Analytics, Report Builder, Create/Edit Time Entry dialogs, Generate Invoice dialog, Advanced Time Entry form

How to activate:

  1. Go to Settings → Localization
  2. Select Deutsch from the Language dropdown
  3. The interface reloads in German

French (FR) & Spanish (ES) Localization

New Feature (Finalized)

French and Spanish localization, first shipped on 2026-02-27, is now fully finalized across all layers.

Coverage:

  • Backend: fr/email.json + es/email.json (472 lines of email templates)
  • Frontend: 24 locale JSON files each (FR + ES)
  • Mobile app: fr/translation.json + es/translation.json
  • Locale-aware date formatting, currency formatting (Intl.NumberFormat), and dayjs locale
  • Language selector in Settings → Localization for both FR and ES

CEE Currency Support (PLN, RON, CZK)

New Feature

Three new currencies added, enabling billing for the Central & Eastern European market:

CurrencyCountrySymbol
PLNPoland
RONRomanialei
CZKCzech Republic / Slovakia

Where it appears:

  • Rate configuration (Settings → Rates)
  • Invoice generation dialog (currency selector)
  • Budget progress display
  • All billing reports and exports
  • All locale files updated (EN, HU, DE, FR, ES)

Full stack coverage:

  • Rate.model.ts, TimeEntry.model.ts — currency enum extended
  • rate.service.tsgetCurrencySymbol() returns correct symbol (zł / lei / Kč)
  • formatters.ts, RateForm.tsx, RateDisplay.tsx, BudgetProgress.tsx, GenerateInvoiceDialog.tsx — all updated

Pennylane Integration (France — Factur-X)

New Feature

Pennylane is now available as an invoice provider, targeting the French market and Factur-X (PDF/A-3 + embedded XML) e-invoicing standard.

Factur-X compliance

Factur-X e-invoicing becomes mandatory in France from September 2026 for large companies, with a phased rollout to all businesses by 2027.

What's supported:

  • Create legally valid French invoices via the Pennylane API
  • Automatic customer find-or-create (by name match)
  • French VAT rate codes: FR_200 (20%), FR_100 (10%), FR_055 (5.5%), exempt (0%)
  • PDF download directly from Pennylane
  • Draft mode support (invoices created as draft — finalized on demand)
  • Supported markets: France 🇫🇷, Belgium 🇧🇪, Luxembourg 🇱🇺, Switzerland 🇨🇭

Integration model:

  • API token-based — you supply your own Pennylane Bearer token
  • No OAuth required; no Pennylane app registration needed

How to set up:

  1. Go to Settings → Invoice
  2. Select Pennylane 🇫🇷 as the provider
  3. Paste your Pennylane API token into the API Key field
  4. Click Test Connection — confirms your token is valid
  5. Set Default Tax Rate to 20 (standard French VAT)
  6. Click Save

📖 See the full setup guide: Pennylane Setup


Holded Integration (Spain — FacturaE)

New Feature

Holded is now available as an invoice provider, targeting the Spanish market (ES) and the FacturaE e-invoicing standard. Also supports Portugal, Italy, France, and Germany.

FacturaE compliance

FacturaE e-invoicing is already mandatory for public sector invoices in Spain, and increasingly required in B2B transactions. Holded ensures your invoices are compliant.

What's supported:

  • Create legally valid Spanish invoices via the Holded API
  • Automatic contact find-or-create (by NIF/CIF VAT number, then by name)
  • Spanish IVA rate mapping: IVA 21% / IVA 10% / IVA 4% / Exento
  • PDF download directly from Holded
  • Partner picker — searchable dropdown of your Holded contacts in the Generate Invoice dialog; selecting a partner auto-fills all client fields
  • Country display — partner country shown as the original Holded name (e.g. "Spain", "Hungary"); ISO code used internally for VAT logic
  • Invoice voiding/cancellation via API (POST /documents/invoice/{id}/void)
  • Supported markets: Spain 🇪🇸, Portugal 🇵🇹, Italy 🇮🇹, France 🇫🇷, Germany 🇩🇪

Integration model:

  • API key-based — you supply your own Holded API key (key: <apiKey> header)
  • No OAuth required; generate key in Holded Settings → Integrations → API

How to set up:

  1. Go to Settings → Invoice
  2. Select Holded 🇪🇸 as the provider
  3. Paste your Holded API key into the API Key field
  4. Click Test Connection — confirms your key is valid
  5. Set Default Tax Rate to 21 (standard Spanish IVA)
  6. Click Save

📖 See the full setup guide: Holded Setup


SmartBill Integration (Romania — e-Factura)

New Feature

SmartBill is now available as an invoice provider, targeting the Romanian market (RO) with full e-Factura / ANAF compliance.

e-Factura compliance

Romania mandates e-Factura reporting to ANAF for B2B transactions. SmartBill automatically handles ANAF submission when configured in your SmartBill Cloud account.

What's supported:

  • Create legally valid Romanian invoices (facturi fiscale) via the SmartBill API
  • Romanian TVA rate mapping: Normala 19% / Redusa 9% / Redusa1 5% / Scutit 0%
  • PDF download directly from SmartBill
  • Partner picker — searchable dropdown of your SmartBill clients in the Generate Invoice dialog; selecting a client auto-fills all fields including CIF/VAT number
  • Invoice cancellation (anulare) via API (PUT /invoice/cancel)
  • Series validation — invoice series must be pre-configured in SmartBill Cloud
  • Supports both TVA-payer and non-TVA-payer companies

Integration model:

  • Basic Auth — email + API token combination
  • Credentials: apiKey (API token) + apiSecret (account email) + companyId (company CIF)
  • Generate API token in SmartBill Cloud → Contul Meu → Integrări → API

How to set up:

  1. Go to Settings → Invoice
  2. Select SmartBill 🇷🇴 as the provider
  3. Fill in API Key (token), Account Email (apiSecret), and Company ID (CIF)
  4. Click Test Connection — confirms credentials and CIF are valid
  5. Set Default Tax Rate to 19 (cota normală TVA)
  6. Click Save

📖 See the full setup guide: SmartBill Setup


Documentation


See Also