UNPKG

@openade/fe

Version:

Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)

54 lines 2.1 kB
import type { FatturaElettronica } from '@openade/common'; export interface CrossBorderConfig { enableEUVATValidation?: boolean; enableCountryValidation?: boolean; enableCurrencyValidation?: boolean; defaultCurrency?: string; euCountries?: string[]; vatRates?: Record<string, number>; } export interface CrossBorderInvoiceData { supplierCountry: string; customerCountry: string; transactionType: 'B2B' | 'B2C' | 'B2G'; vatTreatment: 'DOMESTIC' | 'EU_B2B' | 'EU_B2C' | 'EXPORT' | 'IMPORT'; currency: string; exchangeRate?: number; vatNumberValid?: boolean; specialRegimes?: string[]; } export interface CrossBorderValidationResult { valid: boolean; errors: string[]; warnings: string[]; crossBorderData?: CrossBorderInvoiceData; recommendations?: string[]; } export interface EUVATValidationResult { valid: boolean; companyName?: string; companyAddress?: string; validationDate: string; error?: string; } export declare class CrossBorderManager { private config; private euVatService; constructor(config?: CrossBorderConfig); validateCrossBorderInvoice(invoice: FatturaElettronica): Promise<CrossBorderValidationResult>; validateEUVATNumber(customer: any): Promise<EUVATValidationResult>; getVATRate(countryCode: string): number | null; isEUCountry(countryCode: string): boolean; private extractCountry; private validateCountries; private determineCrossBorderData; private validateCurrency; private extractCurrency; private validateVATNumberFormat; private formatAddress; private generateRecommendations; } export declare function createCrossBorderManager(config?: CrossBorderConfig): CrossBorderManager; export declare function validateCrossBorderInvoice(invoice: FatturaElettronica, config?: CrossBorderConfig): Promise<CrossBorderValidationResult>; export declare function validateEUVATNumber(vatNumber: string, countryCode: string, config?: CrossBorderConfig): Promise<EUVATValidationResult>; //# sourceMappingURL=crossborder.manager.d.ts.map