# What changed in @e-invoice-eu/core

> 50 changes in @e-invoice-eu/core 2 to 3 from its official release notes, upgrade guides and advisories: 8 breaking, 1 security, 7 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/npm/@e-invoice-eu/core/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @e-invoice-eu/core 3

### Breaking changes

- The software now uses cbc:CompanyLegalForm instead of cbc:LegalForm. (3.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.2.0)
- Amount elements no longer include @currencyID, which is forbidden by CII-DT-031. (3.0.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.0.2)
- ReceivableSpecifiedTradeAccountingAccount is now placed inside ApplicableHeaderTradeSettlement. (3.0.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.0.2)
- A global ID is downgraded when no scheme is present. (3.0.1) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.0.1)
- The invoice interface has a breaking change; code referencing its types directly may need changes. (3.0.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.0.0)

### New APIs and options

- The library allows overriding invoice metadata; this experimental feature may be removed in the next major release. (3.4.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.4.0)
- CII Extensions are supported for invoice note subject codes (BT-21) through this special element. (3.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.2.0)
- Base64 padding is optional. (3.1.1) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.1.1)
- Adds the UnitPriceAmount type for BT-146, BT-147, and BT-148. (3.1.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.1.0)
- Adds a postprocessor option to modify invoice data before XML is rendered. (3.0.3) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.0.3)

### Behavior and default changes

- Top-level cbc:Note can now be a single string value or an array of strings. (3.4.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.4.2)
- Top-level x-cii:SubjectCode can now be a single string value or an array of strings. (3.4.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.4.2)
- Uses the new tag schema. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- VAT date codes are automatically converted between UBL UNCL 2005 and CII UNCL 2445 according to the selected invoice format. (3.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.2.0)

### Fixes and other changes

- Top-level cbc:Note elements are now nested correctly in CII output. (3.4.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.4.2)
- The embedded colour profile now includes the number of components, fixing PDF/A output intent. (3.4.1) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.4.1)
- Updates the base64 regex. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- Updates BT 21 to the specification. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- Reads cbccompanylegalform instead of cbclegalform so BT 33 is not silently dropped. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- Emits CII due date type code from cac:InvoicePeriod/cbc:DescriptionCode. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- Fixes the missing Creditor Reference ID. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- Preserves property order when downgrading ram:GlobalID to ram:ID. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- Reports the correct version. (3.3.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.3.0)
- Invoice period description codes are now mapped to CII. (3.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.2.0)
- Downgrading ram:GlobalID to ram:ID now preserves the correct ID. (3.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.2.0)
- Seller party identifications are mapped to CII. (3.0.3) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.0.3)
- The CII mapping for the payee identifier is fixed. (3.0.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/%40e-invoice-eu/core%403.0.2)
- Fixes mapping of cac:BillingReference to CII. (3.0.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.0.0)
- Fixes CII price handling. (3.0.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.0.0)
- Invalid tags are avoided. (2.3.4, 3.0.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.0.0), [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.4)
- Fixes XMP metadata encoding. (3.0.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.0.0)
- Fixes invalid elements in XRechnung CII classcode and specifiedlinetradeagreement. (2.3.4, 3.0.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v3.0.0), [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.4)

## @e-invoice-eu/core 2

### Breaking changes

- ApplicableHeaderTradeDelivery is now forced to exist. (2.3.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.2)
- Removes the deprecated data parameter. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)
- Uses ram:ID instead of udt:ID. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)

### Security

- Fixes vulnerabilities. (2.3.4) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.4)

### New APIs and options

- Customization ID and profile ID can now be overridden. (2.3.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.2)
- Creates a file dictionary for PDF attachments. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)

### Behavior and default changes

- The endpoint ID is optional for CII invoices, so developers can create them without supplying one. (2.3.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.2)
- Distinguishes global from local delivery location IDs. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)

### Tooling

- Adds a slim Docker image for deployment. (2.3.4) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.4)

### Fixes and other changes

- Missing contact transformations were added, allowing contact data to be transformed. (2.3.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.2)
- A correction to CII handling addresses an issue with corrected invoices. (2.3.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.2)
- The transformation for payment means was corrected. (2.3.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.2)
- The order of ShipToTradeParty was corrected. (2.3.2) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.3.2)
- Fixes handling of an empty ApplicableHeaderTradeDelivery. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)
- Addresses UBL-to-CII conversion issues involving GLN output. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)
- Addresses incorrect ID namespaces in UBL-to-CII conversion. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)
- Addresses UBL-to-CII conversion issues involving tax scheme mapping. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)
- Fixes some transformation definitions. (2.2.0) — [release notes](https://github.com/gflohr/e-invoice-eu/releases/tag/v2.2.0)
