@openade/fe
Version:
Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)
54 lines • 2.1 kB
TypeScript
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