/json2fatturapaxml

Primary LanguageJavaScriptMIT LicenseMIT

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.

Options

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)

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.

Per aggiungere/modificare le lingue segui questa guida: TRANSLATIONS.md

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

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