npm / @e-invoice-eu/core
@e-invoice-eu/core
What changed in @e-invoice-eu/core 2 to 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-25.
8 breaking1 security7 new APIs and options6 behavior and defaults1 tooling27 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@e-invoice-eu/core 332 changes
Breaking changes 5
The software now uses cbc:CompanyLegalForm instead of cbc:LegalForm.
Amount elements no longer include @currencyID, which is forbidden by CII-DT-031.
ReceivableSpecifiedTradeAccountingAccount is now placed inside ApplicableHeaderTradeSettlement.
A global ID is downgraded when no scheme is present.
The invoice interface has a breaking change; code referencing its types directly may need changes.
New APIs and options 5
The library allows overriding invoice metadata; this experimental feature may be removed in the next major release.
CII Extensions are supported for invoice note subject codes (BT-21) through this special element.
Base64 padding is optional.
Adds the UnitPriceAmount type for BT-146, BT-147, and BT-148.
Adds a postprocessor option to modify invoice data before XML is rendered.
Behavior and default changes 4
Top-level cbc:Note can now be a single string value or an array of strings.
Top-level x-cii:SubjectCode can now be a single string value or an array of strings.
Uses the new tag schema.
VAT date codes are automatically converted between UBL UNCL 2005 and CII UNCL 2445 according to the selected invoice format.
Fixes and other changes 18
Top-level cbc:Note elements are now nested correctly in CII output.
The embedded colour profile now includes the number of components, fixing PDF/A output intent.
Updates the base64 regex.
Updates BT 21 to the specification.
Reads cbccompanylegalform instead of cbclegalform so BT 33 is not silently dropped.
Emits CII due date type code from cac:InvoicePeriod/cbc:DescriptionCode.
Fixes the missing Creditor Reference ID.
Preserves property order when downgrading ram:GlobalID to ram:ID.
Reports the correct version.
Invoice period description codes are now mapped to CII.
Downgrading ram:GlobalID to ram:ID now preserves the correct ID.
Seller party identifications are mapped to CII.
The CII mapping for the payee identifier is fixed.
Fixes mapping of cac:BillingReference to CII.
Fixes CII price handling.
Invalid tags are avoided.
Fixes XMP metadata encoding.
Fixes invalid elements in XRechnung CII classcode and specifiedlinetradeagreement.
@e-invoice-eu/core 218 changes
Breaking changes 3
ApplicableHeaderTradeDelivery is now forced to exist.
Removes the deprecated data parameter.
Uses ram:ID instead of udt:ID.
Security 1
Fixes vulnerabilities.
New APIs and options 2
Customization ID and profile ID can now be overridden.
Creates a file dictionary for PDF attachments.
Behavior and default changes 2
The endpoint ID is optional for CII invoices, so developers can create them without supplying one.
Distinguishes global from local delivery location IDs.
Tooling 1
Adds a slim Docker image for deployment.
Fixes and other changes 9
Missing contact transformations were added, allowing contact data to be transformed.
A correction to CII handling addresses an issue with corrected invoices.
The transformation for payment means was corrected.
The order of ShipToTradeParty was corrected.
Fixes handling of an empty ApplicableHeaderTradeDelivery.
Addresses UBL-to-CII conversion issues involving GLN output.
Addresses incorrect ID namespaces in UBL-to-CII conversion.
Addresses UBL-to-CII conversion issues involving tax scheme mapping.
Fixes some transformation definitions.