Generazione di una fattura in formato xml compatibile con le specifiche di fatturapa.gov.it
npm install --save json2fatturapaxml
const json2fatturapaxml = require('json2fatturapaxml')
const invoice = {
FatturaElettronicaHeader: {
DatiTrasmissione: {
IdTrasmittente: {
IdPaese: 'IT',
IdCodice: '03469550986'
},
ProgressivoInvio: '001',
FormatoTrasmissione: 'FPR12',
CodiceDestinatario: '0000000',
PECDestinatario: 'palmabit@pec.it'
},
CedentePrestatore: {
DatiAnagrafici: {
IdFiscaleIVA: {
IdPaese: 'IT',
IdCodice: '03469550986'
},
Anagrafica: {
Denominazione: 'dfa'
},
RegimeFiscale: 'RF19'
},
Sede: {
Indirizzo: 'Indirizzo',
CAP: '00000',
Comune: 'Comune',
Nazione: 'IT'
}
},
CessionarioCommittente: {
DatiAnagrafici: {
IdFiscaleIVA: {
IdPaese: 'IT',
IdCodice: '03469550986'
},
Anagrafica: {
Denominazione: 'Denominazione'
}
},
Sede: {
Indirizzo: 'Indirizzo',
CAP: '00000',
Comune: 'Comune',
Nazione: 'IT'
}
}
},
FatturaElettronicaBody: {
DatiGenerali: {
DatiGeneraliDocumento: {
TipoDocumento: 'TD01',
Divisa: 'EUR',
Data: '2018-11-19',
Numero: '1'
}
},
DatiBeniServizi: {
DettaglioLinee: {
NumeroLinea: 1,
Descrizione: 'Descrizione',
PrezzoUnitario: '0.00',
PrezzoTotale: '0.00',
AliquotaIVA: '22.00'
},
DatiRiepilogo: {
AliquotaIVA: '22.00',
ImponibileImporto: '0.00',
Imposta: '0.00'
}
}
}
}
const result = json2fatturapaxml(invoice)
if (!result.error) { // Check error
console.log('xml', result)
}
Alcuni caratteri speciali possono essere sostituiti o rimossi dall'XML.
Caratteri ammessi
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
,;:-_*+!%
\/()=?
Caratteri sostituiti
à -> a'
è -> e'
é -> e'
ì -> i'
ò -> o'
ù -> u'
€ -> Euro
& -> e
[ -> (
] -> )
{ -> (
} -> )
< -> spazio vuoto
> -> spazio vuoto
Tutti gli altri caratteri non ammessi sono rimossi dall'XML.
La funzione json2fatturapaxml
accetta un secondo parametro contenente le opzioni
const options = {
returnXmlWithErrors: false //default false
language: "EN" // default "EN". Attualmente le lingue supportate sono: "IT", "EN".
}
const { error, xml } = json2fatturapaxml(invoice, options)
Il JSON in ingresso viene validato secondo questo formato fattura.
npm test
- xml-js - A convertor between XML text and Javascript object / JSON text
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Per aggiungere/modificare le lingue segui questa guida: TRANSLATIONS.md
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Palmabit - Initial work - Palmabit
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details