UNPKG

@fin.cx/einvoice

Version:

A TypeScript module for creating, manipulating, and embedding XML data within PDF files specifically tailored for electronic invoice (einvoice) packages.

76 lines (75 loc) 2.46 kB
import { UBLEncoder } from '../generic/ubl.encoder.js'; import type { TCreditNote, TDebitNote } from '../../../interfaces/common.js'; /** * Encoder for XRechnung (UBL) format * Extends the generic UBL encoder with XRechnung-specific customizations */ export declare class XRechnungEncoder extends UBLEncoder { /** * Encodes a credit note into XRechnung XML * @param creditNote Credit note to encode * @returns XRechnung XML string */ protected encodeCreditNote(creditNote: TCreditNote): Promise<string>; /** * Encodes a debit note (invoice) into XRechnung XML * @param debitNote Debit note to encode * @returns XRechnung XML string */ protected encodeDebitNote(debitNote: TDebitNote): Promise<string>; /** * Applies XRechnung-specific customizations to the document * @param doc XML document * @param invoice Invoice data */ private applyXRechnungCustomizations; /** * Adds electronic address to party if not already present * @param doc XML document * @param partyType Party type selector * @param party Party data */ private addElectronicAddressToParty; /** * Fixes German country codes in the document * @param doc XML document */ private fixGermanCountryCodes; /** * Adds business references from metadata to the document * @param doc XML document * @param businessReferences Business references from metadata */ private addBusinessReferences; /** * Enhances payment information from metadata * @param doc XML document * @param paymentInfo Payment information from metadata */ private enhancePaymentInformation; /** * Adds date information from metadata * @param doc XML document * @param dateInfo Date information from metadata */ private addDateInformation; /** * Enhances party information with contact details from metadata * @param doc XML document * @param invoice Invoice data */ private enhancePartyInformation; /** * Adds contact information to a party * @param doc XML document * @param partySelector Party selector * @param contactInfo Contact information from metadata */ private addContactToParty; /** * Enhances line items with metadata * @param doc XML document * @param invoice Invoice data */ private enhanceLineItems; }