@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
TypeScript
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;
}