@openade/common
Version:
Common types, validators, and XML builders for Italian fiscal receipts
372 lines • 10.8 kB
TypeScript
export interface DatiTrasmissione {
idTrasmittente: {
idPaese: string;
idCodice: string;
};
progressivoInvio: string;
formatoTrasmissione: 'FPR12' | 'FPA12';
codiceDestinatario: string;
contattiTrasmittente?: {
telefono?: string;
email?: string;
};
pecDestinatario?: string;
}
export interface DatiAnagrafici {
idFiscaleIVA?: {
idPaese: string;
idCodice: string;
};
codiceFiscale?: string;
anagrafica: {
denominazione?: string;
nome?: string;
cognome?: string;
};
alberoProfessionale?: string;
regimeFiscale?: string;
}
export interface Indirizzo {
indirizzo: string;
numeroCivico?: string;
cap: string;
comune: string;
provincia?: string;
nazione: string;
}
export interface CedentePrestatore {
datiAnagrafici: DatiAnagrafici & {
idFiscaleIVA: {
idPaese: string;
idCodice: string;
};
};
sede: Indirizzo;
stabileOrganizzazione?: Indirizzo;
iscrizioneREA?: {
ufficio: string;
numeroREA: string;
capitaleSociale?: string;
socioUnico?: 'SU' | 'SM';
statoLiquidazione: 'LS' | 'LN';
};
contatti?: {
telefono?: string;
fax?: string;
email?: string;
};
riferimentoAmministrazione?: string;
}
export interface CessionarioCommittente {
datiAnagrafici: DatiAnagrafici;
sede: Indirizzo;
stabileOrganizzazione?: Indirizzo;
rappresentanteFiscale?: {
idFiscaleIVA: {
idPaese: string;
idCodice: string;
};
denominazione?: string;
nome?: string;
cognome?: string;
};
}
export interface DettaglioLinee {
numeroLinea: number;
tipoCessionePrestazione?: 'SC' | 'PR' | 'AB' | 'AC';
codiceArticolo?: Array<{
codiceTipo: string;
codiceValore: string;
}>;
descrizione: string;
quantita?: number;
unitaMisura?: string;
dataInizioPeriodo?: string;
dataFinePeriodo?: string;
prezzoUnitario: number;
scontoMaggiorazione?: Array<{
tipo: 'SC' | 'MG';
percentuale?: number;
importo?: number;
}>;
prezzoTotale: number;
aliquotaIVA: number;
ritenuta?: 'SI';
natura?: 'N1' | 'N2' | 'N3' | 'N4' | 'N5' | 'N6' | 'N7';
riferimentoAmministrazione?: string;
altriDatiGestionali?: Array<{
tipoDato: string;
riferimentoTesto?: string;
riferimentoNumero?: number;
riferimentoData?: string;
}>;
}
export interface DatiRiepilogoFE {
aliquotaIVA: number;
natura?: 'N1' | 'N2' | 'N3' | 'N4' | 'N5' | 'N6' | 'N7';
speseAccessorie?: number;
arrotondamento?: number;
imponibileImporto: number;
imposta: number;
esigibilitaIVA?: 'I' | 'D' | 'S';
riferimentoNormativo?: string;
}
export interface DatiPagamentoFE {
condizioniPagamento: 'TP01' | 'TP02' | 'TP03';
dettaglioPagamento: Array<{
beneficiario?: string;
modalitaPagamento: 'MP01' | 'MP02' | 'MP03' | 'MP04' | 'MP05' | 'MP06' | 'MP07' | 'MP08' | 'MP09' | 'MP10' | 'MP11' | 'MP12' | 'MP13' | 'MP14' | 'MP15' | 'MP16' | 'MP17' | 'MP18' | 'MP19' | 'MP20' | 'MP21' | 'MP22' | 'MP23';
dataRiferimentoTerminiPagamento?: string;
giorniTerminiPagamento?: number;
dataScadenzaPagamento?: string;
importoPagamento: number;
codUfficioPostale?: string;
cognomeQuietanzante?: string;
nomeQuietanzante?: string;
cfQuietanzante?: string;
titoloQuietanzante?: string;
istitutoFinanziario?: string;
iban?: string;
abi?: string;
cab?: string;
bic?: string;
scontoPagamentoAnticipato?: number;
dataScontoPagamentoAnticipato?: string;
penalitaPagamentiRitardati?: number;
dataPenalitaPagamentiRitardati?: string;
codicePagamento?: string;
}>;
}
export interface DatiGenerali {
datiGeneraliDocumento: {
tipoDocumento: 'TD01' | 'TD02' | 'TD03' | 'TD04' | 'TD05' | 'TD06' | 'TD16' | 'TD17' | 'TD18' | 'TD19' | 'TD20' | 'TD21' | 'TD22' | 'TD23' | 'TD24' | 'TD25' | 'TD26' | 'TD27' | 'TD28';
divisa: string;
data: string;
numero: string;
datiRitenuta?: {
tipoRitenuta: 'RT01' | 'RT02' | 'RT03' | 'RT04' | 'RT05' | 'RT06';
importoRitenuta: number;
aliquotaRitenuta: number;
causalePagamento: string;
};
datiBollo?: {
bolloVirtuale: 'SI';
importoBollo: number;
};
datiCassaPrevidenziale?: Array<{
tipoCassa: 'TC01' | 'TC02' | 'TC03' | 'TC04' | 'TC05' | 'TC06' | 'TC07' | 'TC08' | 'TC09' | 'TC10' | 'TC11' | 'TC12' | 'TC13' | 'TC14' | 'TC15' | 'TC16' | 'TC17' | 'TC18' | 'TC19' | 'TC20' | 'TC21' | 'TC22';
alCassa: number;
importoContributoCassa: number;
imponibileCassa?: number;
aliquotaIVA: number;
ritenuta?: 'SI';
natura?: 'N1' | 'N2' | 'N3' | 'N4' | 'N5' | 'N6' | 'N7';
riferimentoAmministrazione?: string;
}>;
scontoMaggiorazione?: Array<{
tipo: 'SC' | 'MG';
percentuale?: number;
importo?: number;
}>;
importoTotaleDocumento?: number;
arrotondamento?: number;
causale?: string[];
art73?: 'SI';
};
datiOrdineAcquisto?: Array<{
riferimentoNumeroLinea?: number[];
idDocumento: string;
data?: string;
numItem?: string;
codiceCommessaConvenzione?: string;
codiceCUP?: string;
codiceCIG?: string;
}>;
datiContratto?: Array<{
riferimentoNumeroLinea?: number[];
idDocumento: string;
data?: string;
numItem?: string;
codiceCommessaConvenzione?: string;
codiceCUP?: string;
codiceCIG?: string;
}>;
datiConvenzione?: Array<{
riferimentoNumeroLinea?: number[];
idDocumento: string;
data?: string;
numItem?: string;
codiceCommessaConvenzione?: string;
codiceCUP?: string;
codiceCIG?: string;
}>;
datiRicezione?: Array<{
riferimentoNumeroLinea?: number[];
idDocumento: string;
data?: string;
numItem?: string;
codiceCommessaConvenzione?: string;
codiceCUP?: string;
codiceCIG?: string;
}>;
datiFattureCollegate?: Array<{
riferimentoNumeroLinea?: number[];
idDocumento: string;
data?: string;
numItem?: string;
codiceCommessaConvenzione?: string;
codiceCUP?: string;
codiceCIG?: string;
}>;
datiDDT?: Array<{
numeroDDT: string;
dataDDT: string;
riferimentoNumeroLinea?: number[];
}>;
datiTrasporto?: {
datiAnagraficiVettore?: {
idFiscaleIVA?: {
idPaese: string;
idCodice: string;
};
codiceFiscale?: string;
anagrafica: {
denominazione?: string;
nome?: string;
cognome?: string;
};
numeroLicenzaGuida?: string;
};
mezzoTrasporto?: string;
causaleTrasporto?: string;
numeroColli?: number;
descrizione?: string;
unitaMisuraPeso?: string;
pesoLordo?: number;
pesoNetto?: number;
dataOraRitiro?: string;
dataInizioTrasporto?: string;
tipoResa?: string;
indirizzoResa?: Indirizzo;
dataOraConsegna?: string;
};
fatturaPrincipale?: {
numeroFatturaPrincipale: string;
dataFatturaPrincipale: string;
};
}
export interface FatturaElettronicaBody {
datiGenerali: DatiGenerali;
datiBeniServizi: {
dettaglioLinee: DettaglioLinee[];
datiRiepilogo: DatiRiepilogoFE[];
};
datiVeicoli?: {
data: string;
totalePercorso: string;
};
datiPagamento?: DatiPagamentoFE[];
allegati?: Array<{
nomeAttachment: string;
algorithmCompressione?: string;
formatoAttachment?: string;
descrizioneAttachment?: string;
attachment: string;
}>;
}
export interface FatturaElettronicaHeader {
datiTrasmissione: DatiTrasmissione;
cedentePrestatore: CedentePrestatore;
rappresentanteFiscale?: {
datiAnagrafici: {
idFiscaleIVA: {
idPaese: string;
idCodice: string;
};
anagrafica: {
denominazione?: string;
nome?: string;
cognome?: string;
};
};
};
cessionarioCommittente: CessionarioCommittente;
terzoIntermediarioOSoggettoEmittente?: {
datiAnagrafici: DatiAnagrafici;
};
soggettoEmittente?: 'CC' | 'TZ';
}
export interface FatturaElettronica {
'@_versione': 'FPR12' | 'FPA12';
'@_xmlns:ds'?: string;
'@_xmlns:p'?: string;
'@_xmlns:xsi'?: string;
fatturaElettronicaHeader: FatturaElettronicaHeader;
fatturaElettronicaBody: FatturaElettronicaBody | FatturaElettronicaBody[];
}
export type ReceiptType = 'RC' | 'NS' | 'MC' | 'NE' | 'MT' | 'DT';
export interface RicevutaConsegna {
identifcativoSdI: string;
nomeFile: string;
hash: string;
dataOraRicezione: string;
dataOraConsegna: string;
destinatario: {
codice?: string;
descrizione?: string;
};
messaggioPEC?: {
identificativo?: string;
};
}
export interface NotificaScarto {
identifcativoSdI: string;
nomeFile: string;
hash: string;
dataOraRicezione: string;
riferimentoFattura?: {
numeroFattura: string;
annoFattura: string;
posizione: number;
};
listaErrori: Array<{
errore: {
codice: string;
descrizione: string;
suggerimento?: string;
};
}>;
messaggioPEC?: {
identificativo?: string;
};
}
export interface NotificaMancataConsegna {
identifcativoSdI: string;
nomeFile: string;
hash: string;
dataOraRicezione: string;
descrizione: string;
messaggioPEC?: {
identificativo?: string;
};
}
export interface NotificaEsito {
identifcativoSdI: string;
riferimentoFattura: {
numeroFattura: string;
annoFattura: string;
posizione: number;
};
esito: 'EC01' | 'EC02';
descrizione?: string;
messageIdCommittente?: string;
pecCommittente?: string;
dataOraRicezione: string;
}
export interface InvoiceTransmissionResult {
success: boolean;
identifcativoSdI?: string;
error?: string;
warnings?: string[];
}
//# sourceMappingURL=fe.d.ts.map