JSON 2 FatturaPa XML
Generazione di una fattura in formato xml compatibile con le specifiche di fatturapa.gov.it
Getting Started
Installing
npm install --save json2fatturapaxml
Usage
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.
Error
Il JSON in ingresso viene validato secondo questo formato fattura.
Running the tests
npm test
Built With
- xml-js - A convertor between XML text and Javascript object / JSON text
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- Palmabit - Initial work - Palmabit
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details