diff --git a/.gitignore b/.gitignore index 023a6b4..0584679 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules update.sh +.directory diff --git a/LICENSE b/LICENSE index cc3f122..37f9251 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2018, simevo +Copyright (c) 2018, Paolo Greppi All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Makefile b/Makefile index 9dbaa6e..12dbbd8 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,7 @@ all: + cp fatturaPA_1.2_schema.json www/. + cp fatturaPA_1.2.hbs www/. + cp samples/IT01234567890_FPA01.json www/. mkdir -p www/js cp node_modules/@json-editor/json-editor/dist/jsoneditor.min.js www/js/. cp node_modules/handlebars/dist/handlebars.min.js www/js/. diff --git a/README.md b/README.md index 59db3df..67b8019 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,66 @@ # Rappresentazione JSON per le fatture elettroniche -**Proof-of-concept** per una rappresentazione in formato JSON di fatture elettroniche. +**Proof-of-concept** per una rappresentazione in formato JSON delle fatture elettroniche secondo la normativa italiana ("fatturaPA"). -## Rationale +## Scopo Le fatture elettroniche vengono trasmesse ed archiviate in formato **XML**. -La documentazione tecnica del **formato XML** delle fatture elettroniche è disponibile al seguente url: http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm +La documentazione tecnica di riferimento del **formato XML** delle fatture elettroniche è disponibile al seguente url: http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm -Tuttavia per lo sviluppo di front-end per la creazione di fatture è più comodo manipolare i dati in formato **JSON**, e convertire ad XML al termine delle fasi che richiedono l'interazione con l'utente. +Poiché per lo sviluppo di API ed SDK è più comodo manipolare i dati in formato **JSON**, questo proof-of-concept mira a valutare la fattibilità di: +- **convertire** XML <-> JSON +- **validare** JSON +- **generare** di file fattura JSON e XML **randomizzati** a scopo di test e fuzzy-test +- **rapid prototyping** di visualizzatori ed editor +- persistenza in **database** SQL e No-SQL. -## Proof-of-concept +## Prerequisiti + +``` +sudo apt install make nodejs yarnpkg python libxml2-utils +yarnpkg install +``` + +## Procedura + +La procedura seguita per il proof-of-concept è rappresentata nel seguente flow-chart (in blu i files tratti dal sito `fatturapa.gov.it`, in rosso quelli generati in questo progetto): + +![Flow-chart](flowchart.png "Flow-chart del proof-of-concept") + +Innanzitutto lo [schema XML (*XSD**)](https://en.wikipedia.org/wiki/XML_Schema_(W3C)) della fattura elettronica tratto dal sito `fatturapa.gov.it` ([`Schema_del_file_xml_FatturaPA_versione_1.2.xsd`](Schema_del_file_xml_FatturaPA_versione_1.2.xsd)) è stato trasformato in una versione ([`Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd`](Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd)) normalizzata (fromdos, xmllint, 2-space indent) e che importa una [copia locale dello schema `xmldsig`](xmldsig-core-schema.xsd): +``` +- ++ +``` + +Quindi i files XML di esempio tratti dal sito `fatturapa.gov.it` sono stati validati con questo schema così modificato (script [`bin/validate_samples.sh`](bin/validate_samples.sh)). + +Le fatture in formato JSON possono essere validate per mezzo di un **JSON schema** (vedi [paragrafo Riferimenti](#riferimenti)), anche se quest'ultimo è più limitato dello schema XML, alcuni vincoli dovranno essere validati dall'applicazione, ad esempio: + +- limitazioni ai **set di caratteri ammessi**: ad esempio il campo `FatturaElettronica.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio` secondo lo schema XML è vincolato al tipo `String10Type` così definito: + ``` + + + + + + ``` + che accetta da 1 a 10 caratteri del [blocco Unicode Basic Latin](https://www.w3.org/TR/xsd-unicode-blocknames/), mentre lo schema JSON accetta qualunque stringa di lunghezza compresa tra 1 e 10 caratteri: + ``` + "ProgressivoInvio": { + "type": "string", + "minLength": 1, + "maxLength": 10, + ``` +- **alternative**: ad esempio il tipo `AnagraficaType` usato per i campi: + - `FatturaElettronica.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici.Anagrafica`, + - `FatturaElettronica.FatturaElettronicaBody[].DatiTrasporto.DatiAnagraficiVettore.Anagrafica` + - `FatturaElettronica.FatturaElettronicaHeader.RappresentanteFiscale.DatiAnagraficiRappresentante.Anagrafica` + - `FatturaElettronica.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagraficiCessionario.Anagrafica` + - `FatturaElettronica.FatturaElettronicaHeader.TerzoIntermediarioOSoggettoEmittente.DatiAnagraficiTerzoIntermediario.Anagrafica` + + contiene un campo `Denominazione` che è in alternativa a `Nome` + `Cognome`; non vi è modo di esprimere questo tipo di vincolo in JSON schema. Inizialmente si è tentato di convertire lo schema XSD in uno [schema JSON](http://json-schema.org/) usando la libreria [jgeXml](https://github.com/Mermade/jgeXml): ``` @@ -18,58 +68,79 @@ nodejs ./node_modules/jgexml/testxsd2j.js Schema_del_file_xml_FatturaPA_versione ``` ottenendo però uno schema non utilizzabile. -Successivamente i files XML di esempio sono stati convertiti a JSON per mezzo della libreria [node-xml2json](https://github.com/buglabs/node-xml2json) con i comandi: -``` -./bin/xml2json.js IT01234567890_FPR01.xml | grep -v 'xmlns:' | grep -v 'xsi:' | sed 's/p:FatturaElettronica/FatturaElettronica/g' > IT01234567890_FPR01.json -./bin/xml2json.js IT01234567890_FPR02.xml | grep -v 'xmlns:' | grep -v 'xsi:' | sed 's/p:FatturaElettronica/FatturaElettronica/g' > IT01234567890_FPR02.json -./bin/xml2json.js IT01234567890_FPR03.xml | grep -v 'xmlns:' | grep -v 'xsi:' | sed 's/p:FatturaElettronica/FatturaElettronica/g' > IT01234567890_FPR03.json -./bin/xml2json.js IT01234567890_FPA01.xml | grep -v 'xmlns:' | grep -v 'xsi:' | sed 's/p:FatturaElettronica/FatturaElettronica/g' > IT01234567890_FPA01.json -./bin/xml2json.js IT01234567890_FPA02.xml | grep -v 'xmlns:' | grep -v 'xsi:' | sed 's/p:FatturaElettronica/FatturaElettronica/g' > IT01234567890_FPA02.json -./bin/xml2json.js IT01234567890_FPA03.xml | grep -v 'xmlns:' | grep -v 'xsi:' | sed 's/p:FatturaElettronica/FatturaElettronica/g' > IT01234567890_FPA03.json -``` +Successivamente i files XML di esempio sono stati convertiti a JSON per mezzo della libreria [node-xml2json](https://github.com/buglabs/node-xml2json) (script [`bin/convert_samples.sh`](bin/convert_samples.sh)). -Questa conversione automatica funziona più o meno, ma c'è un intoppo per quegli elementi che possono ripetersi (es. `FatturaElettronica.FatturaElettronicaBody` e `FatturaElettronica.FatturaElettronicaBody[1].DatiBeniServizi.DettaglioLinee`), nel caso ve ne sia uno solo la conversione genera un JSON dove invece di un `array` ci è un `object` vedi: +Questa conversione automatica funziona più o meno, ma c'è un intoppo per quegli elementi che possono ripetersi (ad esempio `FatturaElettronica.FatturaElettronicaBody` e `FatturaElettronica.FatturaElettronicaBody[1].DatiBeniServizi.DettaglioLinee`), nel caso ve ne sia uno solo la conversione genera un JSON dove invece di un `array` c'è un `object` vedi: - https://social.msdn.microsoft.com/Forums/windowsapps/en-US/03fe9c57-b7a8-41aa-ade4-652b6b5eafc3/single-element-xml-to-json-array - http://jersey.576304.n2.nabble.com/Single-Element-Arrays-and-JSON-td5532105.html -Per questi casi occorre wrappare manualmente l'`object` con `[]`. -Si è quindi generato uno schema a partire dai files fattura JSON di esempio, per mezzo del servizio on-line [jsonschema](https://www.jsonschema.net/), che dopo semplificazione (`grep -v '$id'`) e aggiunta di campi `title` e `description` desunti dalle SPECIFICHE TECNICHE OPERATIVE DEL FORMATO DELLA FATTURA DEL SISTEMA DI INTERSCAMBIO ha dato origine allo schema `www/fatturaPA_1.2_schema_semplificato.json`. +Per questi casi occorre wrappare manualmente l'`object` con `[]`, vedi punto 1 del [paragrafo **TODO**](#todo). + +Si è quindi generato uno schema a partire dai files fattura JSON di esempio, per mezzo del servizio on-line [jsonschema.net](https://www.jsonschema.net/), che dopo semplificazione (`grep -v '$id'`) e aggiustamento manuale aggiunta di campi `title` e `description` desunti dalle SPECIFICHE TECNICHE OPERATIVE DEL FORMATO DELLA FATTURA DEL SISTEMA DI INTERSCAMBIO ha dato origine allo schema [`fatturaPA_1.2_schema.json`](fatturaPA_1.2_schema.json). + +Tutti i files di esempio JSON sono validati dallo schema (script [`bin/validate_samples_json.sh`](bin/validate_samples_json.sh)). + +La generazione di files XML random a scopo di test è possibile con alcuni strumenti commerciali, ad esempio: +- https://msdn.microsoft.com/en-us/library/aa302296.aspx "Generating XML Documents from XML Schemas" Priya Lakshminarayanan, Microsoft Corporation - August 2004 +- https://msdn.microsoft.com/en-us/library/dd489258.aspx "How to: Create an XML Document Based on an XSD Schema Visual Studio 2015" +- https://msdn.microsoft.com/en-us/library/cc716766.aspx "XML Schema Explorer" + +In questo proof-of-concept si è scelto di generare dei files JSON random partendo dallo schema JSON per mezzo di [json-schema-faker](https://github.com/json-schema-faker/json-schema-faker), e di riconvertirli a XML per mezzo del template [handlebars](http://handlebarsjs.com/) [`fatturaPA_1.2.hbs`](fatturaPA_1.2.hbs) (script [`bin/generate_random.sh`](bin/generate_random.sh)). -Tutti i files di esempio JSON sono validati dallo schema come si può verificare con: +Il template handlebars è stato validato riconvertendo ad XML i files di esempio (script [`bin/reconvert_samples.sh`](bin/reconvert_samples.sh)). + +Al momento tuttavia i files XML così ottenuti non passano la validazione con lo schema XML, con degli errori del tipo: ``` -bin/validate.js +random/00.xml:21: element Nome: Schemas validity error : Element 'Nome': This element is not expected. Expected is one of ( Titolo, CodEORI ). +random/00.xml:23: element RegimeFiscale: Schemas validity error : Element 'RegimeFiscale': [facet 'enumeration'] The value 'RF33' is not an element of the set {'RF01', 'RF02', 'RF03', 'RF04', 'RF05', 'RF06', 'RF07', 'RF08', 'RF09', 'RF10', 'RF11', 'RF12', 'RF13', 'RF14', 'RF15', 'RF16', 'RF17', 'RF19', 'RF18'}. +random/00.xml:23: element RegimeFiscale: Schemas validity error : Element 'RegimeFiscale': 'RF33' is not a valid value of the atomic type '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}RegimeFiscaleType'. +random/00.xml:50: element TipoDocumento: Schemas validity error : Element 'TipoDocumento': [facet 'enumeration'] The value 'TD24' is not an element of the set {'TD01', 'TD02', 'TD03', 'TD04', 'TD05', 'TD06'}. +random/00.xml:50: element TipoDocumento: Schemas validity error : Element 'TipoDocumento': 'TD24' is not a valid value of the atomic type '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}TipoDocumentoType'. +random/00.xml:52: element Data: Schemas validity error : Element 'Data': '6591-35-44' is not a valid value of the atomic type '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}DataFatturaType'. +random/00.xml:107: element TipoDocumento: Schemas validity error : Element 'TipoDocumento': [facet 'enumeration'] The value 'TD74' is not an element of the set {'TD01', 'TD02', 'TD03', 'TD04', 'TD05', 'TD06'}. +random/00.xml:107: element TipoDocumento: Schemas validity error : Element 'TipoDocumento': 'TD74' is not a valid value of the atomic type '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}TipoDocumentoType'. +random/00.xml:109: element Data: Schemas validity error : Element 'Data': '5281-04-38' is not a valid value of the atomic type '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}DataFatturaType'. +random/00.xml:160: element TipoDocumento: Schemas validity error : Element 'TipoDocumento': [facet 'enumeration'] The value 'TD85' is not an element of the set {'TD01', 'TD02', 'TD03', 'TD04', 'TD05', 'TD06'}. +random/00.xml:160: element TipoDocumento: Schemas validity error : Element 'TipoDocumento': 'TD85' is not a valid value of the atomic type '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}TipoDocumentoType'. +random/00.xml:162: element Data: Schemas validity error : Element 'Data': '8927-46-70' is not a valid value of the atomic type '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}DataFatturaType'. +random/00.xml fails to validate ``` +causati dalla eccessiva randomizzazione, vedi punto 2 del [paragrafo **TODO**](#todo). ## Demo -Con lo schema semplificato così ottenuto e [JSON Editor](https://github.com/json-editor/json-editor) è possibile generare automaticamente un editor: +Con lo schema così ottenuto e [JSON Editor](https://github.com/json-editor/json-editor) è possibile generare automaticamente un editor basico. +Per lanciare il demo: ``` -yarn install make python -m SimpleHTTPServer ``` -visitare http://localhost:8000/www/index.html +quindi visitare http://localhost:8000/www/index.html ## TODO -- completare lo schema +0. Completare lo schema JSON + +1. implementare la conversione automatica da fattura formato XML a formato JSON; dovrebbe essere possibile configurando xml2json con l'[opzione `arrayNotation`](https://github.com/buglabs/node-xml2json#options-object-for-tojson) + +2. configurare `json-schema-faker` [annotando lo schema](https://github.com/json-schema-faker/json-schema-faker#faking-values) in modo che i files JSON dopo conversione a XML passino la validazione -- aggiungere funzioni all'editor usando [le estensioni allo schema JSON specifiche di JSON Editor](https://github.com/json-editor/json-editor#json-schema-support) +3. aggiungere funzioni al demo usando [le estensioni allo schema JSON specifiche di JSON Editor](https://github.com/json-editor/json-editor#json-schema-support) e implementando le funzioni avanzate e lo styling come negli esempi [Advanced Usage](http://rawgithub.com/jdorn/json-editor/master/examples/advanced.html) e [CSS Integration](http://rawgithub.com/jdorn/json-editor/master/examples/css_integration.html) -- testare editor basato su specifici fronr-end frameworks: +4. testare editor basato su specifici front-end frameworks: - - vue.js, es: https://gitlab.com/formschema/native + - vue.js, esempio: https://gitlab.com/formschema/native - - react, es: https://github.com/mozilla-services/react-jsonschema-form + - react, esempio: https://github.com/mozilla-services/react-jsonschema-form - - angular, es: https://github.com/json-schema-form/angular-schema-form + - angular, esempio: https://github.com/json-schema-form/angular-schema-form -- aggiungere funzione di import di un file XML esistente +## Legalese -- unit tests: - - verificare che lo schema JSON valida tutti i files fattura JSON di esempio - - verificare che i files XML generati sono compliant con lo schema XSD +Copyright (c) 2018, Paolo Greppi + +Licenza: BSD 3-Clause, vedi file [`LICENSE`](LICENSE). ## Riferimenti @@ -80,5 +151,3 @@ visitare http://localhost:8000/www/index.html - https://spacetelescope.github.io/understanding-json-schema/reference/index.html - https://jsonschemalint.com/#/version/draft-06/markup/json - -- https://github.com/json-editor/json-editor diff --git a/Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd b/Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd new file mode 100644 index 0000000..efcadbd --- /dev/null +++ b/Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd @@ -0,0 +1,1331 @@ + + + + + + XML schema fatture destinate a PA e privati in forma ordinaria 1.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Blocco relativo ai dati di trasmissione della Fattura Elettronica + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fattura verso PA + + + + + Fattura verso privati + + + + + + + + + + + + + + Blocco relativo ai Dati Generali della Fattura Elettronica + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SC = Sconto + + + + + + + MG = Maggiorazione + + + + + + + + + + + + SI = Documento emesso secondo modalità e termini stabiliti con DM ai sensi dell'art. 73 DPR 633/72 + + + + + + + + + + + + Cassa nazionale previdenza e assistenza avvocati e procuratori legali + + + + + + + Cassa previdenza dottori commercialisti + + + + + + + Cassa previdenza e assistenza geometri + + + + + + + Cassa nazionale previdenza e assistenza ingegneri e architetti liberi professionisti + + + + + + + Cassa nazionale del notariato + + + + + + + Cassa nazionale previdenza e assistenza ragionieri e periti commerciali + + + + + + + Ente nazionale assistenza agenti e rappresentanti di commercio (ENASARCO) + + + + + + + Ente nazionale previdenza e assistenza consulenti del lavoro (ENPACL) + + + + + + + Ente nazionale previdenza e assistenza medici (ENPAM) + + + + + + + Ente nazionale previdenza e assistenza farmacisti (ENPAF) + + + + + + + Ente nazionale previdenza e assistenza veterinari (ENPAV) + + + + + + + Ente nazionale previdenza e assistenza impiegati dell'agricoltura (ENPAIA) + + + + + + + Fondo previdenza impiegati imprese di spedizione e agenzie marittime + + + + + + + Istituto nazionale previdenza giornalisti italiani (INPGI) + + + + + + + Opera nazionale assistenza orfani sanitari italiani (ONAOSI) + + + + + + + Cassa autonoma assistenza integrativa giornalisti italiani (CASAGIT) + + + + + + + Ente previdenza periti industriali e periti industriali laureati (EPPI) + + + + + + + Ente previdenza e assistenza pluricategoriale (EPAP) + + + + + + + Ente nazionale previdenza e assistenza biologi (ENPAB) + + + + + + + Ente nazionale previdenza e assistenza professione infermieristica (ENPAPI) + + + + + + + Ente nazionale previdenza e assistenza psicologi (ENPAP) + + + + + + + INPS + + + + + + + + + + + Fattura + + + + + Acconto / anticipo su fattura + + + + + Acconto / anticipo su parcella + + + + + Nota di credito + + + + + Nota di debito + + + + + Parcella + + + + + + + + + + Ritenuta di acconto persone fisiche + + + + + Ritenuta di acconto persone giuridiche + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cessionario / Committente + + + + + Terzo + + + + + + + + Blocco relativo ai dati del Cedente / Prestatore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Regime ordinario + + + + + Regime dei contribuenti minimi (art. 1,c.96-117, L. 244/2007) + + + + + Regime delle nuove iniziative produttive (art. 13, L. 388/2000) + + + + + Agricoltura e attività connesse e pesca (artt. 34 e 34-bis, D.P.R. 633/1972) + + + + + Vendita sali e tabacchi (art. 74, c.1, D.P.R. 633/1972) + + + + + Commercio dei fiammiferi (art. 74, c.1, D.P.R. 633/1972) + + + + + Editoria (art. 74, c.1, D.P.R. 633/1972) + + + + + Gestione di servizi di telefonia pubblica (art. 74, c.1, D.P.R. 633/1972) + + + + + Rivendita di documenti di trasporto pubblico e di sosta (art. 74, c.1, D.P.R. 633/1972) + + + + + Intrattenimenti, giochi e altre attività di cui alla tariffa allegata al D.P.R. 640/72 (art. 74, c.6, D.P.R. 633/1972) + + + + + + Agenzie di viaggi e turismo (art. 74-ter, D.P.R. 633/1972) + + + + + Agriturismo (art. 5, c.2, L. 413/1991) + + + + + Vendite a domicilio (art. 25-bis, c.6, D.P.R. 600/1973) + + + + + Rivendita di beni usati, di oggetti d’arte, d’antiquariato o da collezione (art. 36, D.L. 41/1995) + + + + + Agenzie di vendite all’asta di oggetti d’arte, antiquariato o da collezione (art. 40-bis, D.L. 41/1995) + + + + + IVA per cassa P.A. (art. 6, c.5, D.P.R. 633/1972) + + + + + IVA per cassa (art. 32-bis, D.L. 83/2012) + + + + + Regime forfettario + + + + + Altro + + + + + + + + Il campo Denominazione è in alternativa ai campi Nome e Cognome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Blocco relativo ai dati del Rappresentante Fiscale + + + + + + + + + + + + + + + + Blocco relativo ai dati del Cessionario / Committente + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Blocco relativo ai dati di Beni Servizi della Fattura Elettronica + + + + + + + + + + + Blocco relativo ai dati dei Veicoli della Fattura + Elettronica (da indicare nei casi di cessioni tra Paesi + membri di mezzi di trasporto nuovi, in base all'art. 38, + comma 4 del dl 331 del 1993) + + + + + + + + + + + Blocco relativo ai dati di Pagamento della Fattura Elettronica + + + + + + + + + + + + + + pagamento a rate + + + + + pagamento completo + + + + + anticipo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contanti + + + + + assegno + + + + + assegno circolare + + + + + contanti presso Tesoreria + + + + + bonifico + + + + + vaglia cambiario + + + + + bollettino bancario + + + + + carta di pagamento + + + + + RID + + + + + RID utenze + + + + + RID veloce + + + + + RIBA + + + + + MAV + + + + + quietanza erario + + + + + giroconto su conti di contabilità speciale + + + + + domiciliazione bancaria + + + + + domiciliazione postale + + + + + bollettino di c/c postale + + + + + SEPA Direct Debit + + + + + SEPA Direct Debit CORE + + + + + SEPA Direct Debit B2B + + + + + Trattenuta su somme già riscosse + + + + + + + + + + + + + + + + + + Blocco relativo ai dati del Terzo Intermediario che + emette fattura elettronica per conto del + Cedente/Prestatore + + + + + + + + + + + + + + + + + Blocco relativo ai dati di eventuali allegati + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SI = Cessione / Prestazione soggetta a ritenuta + + + + + + + + + + + + + + + + + + + + + + + + esigibilità differita + + + + + esigibilità immediata + + + + + scissione dei pagamenti + + + + + + + + + Escluse ex. art. 15 + + + + + Non soggette + + + + + Non Imponibili + + + + + Esenti + + + + + Regime del margine + + + + + Inversione contabile (reverse charge) + + + + + IVA assolta in altro stato UE (vendite a distanza ex art. 40 commi 3 e 4 e art. 41 comma 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, DPR 633/72 e art. 74-sexies, DPR 633/72) + + + + + + + + + + + + + + + + + + + + + + + + + socio unico + + + + + più soci + + + + + + + + + in liquidazione + + + + + non in liquidazione + + + + + + + + + + Sconto + + + + + Premio + + + + + Abbuono + + + + + Spesa accessoria + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/convert_samples.sh b/bin/convert_samples.sh new file mode 100755 index 0000000..09aa680 --- /dev/null +++ b/bin/convert_samples.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# +# converts to JSON the sample XML invoice files from fatturapa.gov.it +# +# Copyright (c) 2018, Paolo Greppi +# License: BSD 3-Clause + +set -e + +for name in "samples/IT01234567890_FPA01" "samples/IT01234567890_FPA02" "samples/IT01234567890_FPA03" "samples/IT01234567890_FPR01" "samples/IT01234567890_FPR02" "samples/IT01234567890_FPR03" +do + echo "converting $name" + ./bin/xml2json.js "$name" | grep -v 'xmlns:' | grep -v 'xsi:' | sed 's/p:FatturaElettronica/FatturaElettronica/g' > "$name.json" +done diff --git a/bin/fake.js b/bin/fake.js new file mode 100755 index 0000000..28328f7 --- /dev/null +++ b/bin/fake.js @@ -0,0 +1,25 @@ +#!/usr/bin/nodejs +// +// generates a randomized JSON invoice file compliant with the JSON schema +// +// Copyright (c) 2018, Paolo Greppi +// License: BSD 3-Clause + +"use strict"; + +var fs = require('fs'); +var jsf = require('json-schema-faker'); + +jsf.option({ + optionalsProbability: 0.7 +}); +var schema = loadJson('www/fatturaPA_1.2_schema.json'); +jsf.resolve(schema).then(function(sample) { + console.log(JSON.stringify(sample, null, 2)); +}); + +function loadJson(path) { + var data = fs.readFileSync(path, 'utf-8'); + var json = JSON.parse(data); + return json; +} diff --git a/bin/generate_random.sh b/bin/generate_random.sh new file mode 100755 index 0000000..a5f66e5 --- /dev/null +++ b/bin/generate_random.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# +# 1. generates 10 randomized JSON invoice files +# 2. validates them against the JSON invoice schema +# 3. converts them to XML +# 4. validates the resulting XML files against the XML invoice schema +# +# Copyright (c) 2018, Paolo Greppi +# License: BSD 3-Clause + +set -e + +for i in $(seq 0 1 9) +do + name=$(printf %02d "$i") + echo "generating $name.json" + bin/fake.js > "random/$name.json" + echo "validate $name.json" + bin/validate.js "random/$name.json" + echo "convert to $name.xml" + bin/hbs.js "random/$name.json" > "random/$name.xml" + # echo "validate $name.xml" + # xmllint --debug --schema Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd "random/$name.xml" -noout +done diff --git a/bin/hbs.js b/bin/hbs.js new file mode 100755 index 0000000..9dfcbdb --- /dev/null +++ b/bin/hbs.js @@ -0,0 +1,33 @@ +#!/usr/bin/nodejs +// +// converts the JSON invoice data retrieved from the supplied file +// to XML using the Handlebars XML invoice template and +// +// Copyright (c) 2018, Paolo Greppi +// License: BSD 3-Clause + +"use strict"; + +var fs = require('fs'); + +if (process.argv.length <= 2) { + console.log("Usage: hbs fattura.json"); + process.exit(-1); +} + +var Handlebars = require('handlebars'); +Handlebars.registerHelper('with', function(context, options) { + return options.fn(context); +}); +var source = fs.readFileSync('fatturaPA_1.2.hbs', 'utf-8'); +var template = Handlebars.compile(source); +var filename = process.argv[2]; +var context = loadJson(filename); +var xml = template(context); +console.log(xml); + +function loadJson(path) { + var data = fs.readFileSync(path, 'utf-8'); + var json = JSON.parse(data); + return json; +} diff --git a/bin/json2xml.js b/bin/json2xml.js index 1e0085a..0657c3e 100755 --- a/bin/json2xml.js +++ b/bin/json2xml.js @@ -1,4 +1,11 @@ #!/usr/bin/nodejs +// +// converts the supplied JSON file to XML +// +// Copyright (c) 2018, Paolo Greppi +// License: BSD 3-Clause + +"use strict"; var parser = require('xml2json'); var fs = require('fs'); diff --git a/bin/reconvert_samples.sh b/bin/reconvert_samples.sh new file mode 100755 index 0000000..303a10c --- /dev/null +++ b/bin/reconvert_samples.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# +# 1. converts the sample JSON invoice files to XML +# 2. validates them +# 3. and compares them to the original files +# +# Copyright (c) 2018, Paolo Greppi +# License: BSD 3-Clause + +for name in "IT01234567890_FPA01" "IT01234567890_FPA02" "IT01234567890_FPA03" "IT01234567890_FPR01" "IT01234567890_FPR02" "IT01234567890_FPR03" +do + echo "reconverting $name" + ./bin/hbs.js "samples/$name.json" > "$name.xml" + xmllint --debug --schema Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd "$name.xml" -noout + diff "samples/$name.xml" "$name.xml" + rm "$name.xml" +done diff --git a/bin/validate.js b/bin/validate.js index 4e02404..0586582 100755 --- a/bin/validate.js +++ b/bin/validate.js @@ -1,24 +1,27 @@ #!/usr/bin/nodejs +// +// validates the supplied JSON invoice file against the JSON invoice schema +// +// Copyright (c) 2018, Paolo Greppi +// License: BSD 3-Clause + +"use strict"; -var path = require('path'); var fs = require('fs'); var validate = require('json-schema/lib/validate').validate; -var schema = loadJson('www/fatturaPA_1.2_schema_semplificato.json'); -files = [ - 'samples/IT01234567890_FPA01.json', - 'samples/IT01234567890_FPA02.json', - 'samples/IT01234567890_FPA03.json', - 'samples/IT01234567890_FPR01.json', - 'samples/IT01234567890_FPR02.json', - 'samples/IT01234567890_FPR03.json' -]; -files.forEach(function(file) { - console.log('validating:', file); - var doc = loadJson(file); - var result = validate(doc, schema); - console.log(result); -}); +if (process.argv.length <= 2) { + console.log("Usage: json2xml file.json"); + process.exit(-1); +} + +var filename = process.argv[2]; + +var schema = loadJson('www/fatturaPA_1.2_schema.json'); +console.log('validating:', filename); +var doc = loadJson(filename); +var result = validate(doc, schema); +console.log(result); function loadJson(path) { var data = fs.readFileSync(path, 'utf-8'); diff --git a/bin/validate_samples.sh b/bin/validate_samples.sh new file mode 100755 index 0000000..0cb7ad1 --- /dev/null +++ b/bin/validate_samples.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# +# validates against the XML invoice schema the sample XML invoice files from +# fatturapa.gov.it +# +# Copyright (c) 2018, Paolo Greppi +# License: BSD 3-Clause + +set -e + +for name in "samples/IT01234567890_FPA01.xml" "samples/IT01234567890_FPA02.xml" "samples/IT01234567890_FPA03.xml" "samples/IT01234567890_FPR01.xml" "samples/IT01234567890_FPR02.xml" "samples/IT01234567890_FPR03.xml" +do + echo "validating $name" + xmllint --debug --schema Schema_del_file_xml_FatturaPA_versione_1.2_cleanup.xsd "$name" -noout +done diff --git a/bin/validate_samples_json.sh b/bin/validate_samples_json.sh new file mode 100755 index 0000000..ee34ce9 --- /dev/null +++ b/bin/validate_samples_json.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# +# validates against the invoice JSON schema the sample XML invoice files from +# fatturapa.gov.it converted to JSON +# +# Copyright (c) 2018, Paolo Greppi +# License: BSD 3-Clause + +set -e + +for name in "samples/IT01234567890_FPA01.json" "samples/IT01234567890_FPA02.json" "samples/IT01234567890_FPA03.json" "samples/IT01234567890_FPR01.json" "samples/IT01234567890_FPR02.json" "samples/IT01234567890_FPR03.json" +do + echo "validating $name" + ./bin/validate.js "$name" +done diff --git a/bin/xml2json.js b/bin/xml2json.js index 67fedcd..dd695ba 100755 --- a/bin/xml2json.js +++ b/bin/xml2json.js @@ -1,4 +1,11 @@ #!/usr/bin/nodejs +// +// converts the supplied XML file to JSON +// +// Copyright (c) 2018, Paolo Greppi +// License: BSD 3-Clause + +"use strict"; var parser = require('xml2json'); var fs = require('fs'); diff --git a/fatturaPA_1.2.hbs b/fatturaPA_1.2.hbs new file mode 100644 index 0000000..0fa3ba9 --- /dev/null +++ b/fatturaPA_1.2.hbs @@ -0,0 +1,358 @@ + + + + {{#with FatturaElettronica.FatturaElettronicaHeader.DatiTrasmissione}} + + + {{IdTrasmittente.IdPaese}} + {{IdTrasmittente.IdCodice}} + + {{ProgressivoInvio}} + {{FormatoTrasmissione}} + {{#if CodiceDestinatario}} + {{CodiceDestinatario}} + {{/if}} + {{#if ContattiTrasmittente}} + + {{#if ContattiTrasmittente.Telefono}} + {{ContattiTrasmittente.Telefono}} + {{/if}} + {{#if ContattiTrasmittente.Email}} + {{ContattiTrasmittente.Email}} + {{/if}} + + {{/if}} + {{#if PECDestinatario}} + {{PECDestinatario}} + {{/if}} + + {{/with}} + {{#with FatturaElettronica.FatturaElettronicaHeader.CedentePrestatore}} + + + + {{DatiAnagrafici.IdFiscaleIVA.IdPaese}} + {{DatiAnagrafici.IdFiscaleIVA.IdCodice}} + + + {{#if DatiAnagrafici.Anagrafica.Denominazione}} + {{DatiAnagrafici.Anagrafica.Denominazione}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Nome}} + {{DatiAnagrafici.Anagrafica.Nome}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Cognome}} + {{DatiAnagrafici.Anagrafica.Cognome}} + {{/if}} + + {{DatiAnagrafici.RegimeFiscale}} + {{#if DatiAnagrafici.CodiceFiscale}} + {{DatiAnagrafici.CodiceFiscale}} + {{/if}} + {{#if AlboProfessionale}} + {{DatiAnagrafici.AlboProfessionale}} + {{/if}} + {{#if DatiAnagrafici.ProvinciaAlbo}} + {{DatiAnagrafici.ProvinciaAlbo}} + {{/if}} + {{#if DatiAnagrafici.NumeroIscrizioneAlbo}} + {{DatiAnagrafici.NumeroIscrizioneAlbo}} + {{/if}} + {{#if DatiAnagrafici.DataIscrizioneAlbo}} + {{DatiAnagrafici.DataIscrizioneAlbo}} + {{/if}} + + + {{Sede.Indirizzo}} + {{Sede.CAP}} + {{Sede.Comune}} + {{#if Sede.Provincia}} + {{Sede.Provincia}} + {{/if}} + {{Sede.Nazione}} + {{#if Sede.NumeroCivico}} + {{Sede.NumeroCivico}} + {{/if}} + + + {{/with}} + {{#with FatturaElettronica.FatturaElettronicaHeader.CessionarioCommittente}} + + + {{#if DatiAnagrafici.CodiceFiscale}} + {{DatiAnagrafici.CodiceFiscale}} + {{/if}} + + {{#if DatiAnagrafici.Anagrafica.Denominazione}} + {{DatiAnagrafici.Anagrafica.Denominazione}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Nome}} + {{DatiAnagrafici.Anagrafica.Nome}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Cognome}} + {{DatiAnagrafici.Anagrafica.Cognome}} + {{/if}} + + + + {{Sede.Indirizzo}} + {{Sede.CAP}} + {{Sede.Comune}} + {{#if Sede.Provincia}} + {{Sede.Provincia}} + {{/if}} + {{Sede.Nazione}} + {{#if Sede.NumeroCivico}} + {{Sede.NumeroCivico}} + {{/if}} + + + {{/with}} + + {{#each FatturaElettronica.FatturaElettronicaBody}} + + + {{#with DatiGenerali.DatiGeneraliDocumento}} + + {{TipoDocumento}} + {{Divisa}} + {{Data}} + {{Numero}} + {{#each Causale}} + {{this}} + {{/each}} + + {{/with}} + {{#each DatiGenerali.DatiOrdineAcquisto}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiContratto}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiConvenzione}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiRicezione}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiFattureCollegate}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#if DatiGenerali.DatiTrasporto}} + {{#with DatiGenerali.DatiTrasporto}} + + + + {{DatiAnagraficiVettore.IdFiscaleIVA.IdPaese}} + {{DatiAnagraficiVettore.IdFiscaleIVA.IdCodice}} + + + {{#if DatiAnagraficiVettore.Anagrafica.Denominazione}} + {{DatiAnagraficiVettore.Anagrafica.Denominazione}} + {{/if}} + {{#if DatiAnagraficiVettore.Anagrafica.Nome}} + {{DatiAnagraficiVettore.Anagrafica.Nome}} + {{/if}} + {{#if DatiAnagraficiVettore.Anagrafica.Cognome}} + {{DatiAnagraficiVettore.Anagrafica.Cognome}} + {{/if}} + + + {{DataOraConsegna}} + + {{/with}} + {{/if}} + + + {{#each DatiBeniServizi.DettaglioLinee}} + + {{NumeroLinea}} + {{Descrizione}} + {{#if Quantita}} + {{Quantita}} + {{/if}} + {{PrezzoUnitario}} + {{PrezzoTotale}} + {{AliquotaIVA}} + {{#if TipoCessionePrestazione}} + {{TipoCessionePrestazione}} + {{/if}} + {{#if UnitaMisura}} + {{UnitaMisura}} + {{/if}} + {{#if DataInizioPeriodo}} + {{DataInizioPeriodo}} + {{/if}} + {{#if DataFinePeriodo}} + {{DataFinePeriodo}} + {{/if}} + {{#if Ritenuta}} + {{Ritenuta}} + {{/if}} + {{#if Natura}} + {{Natura}} + {{/if}} + {{#if RiferimentoAmministrazione}} + {{RiferimentoAmministrazione}} + {{/if}} + {{#each CodiceArticolo}} + + {{CodiceTipo}} + {{CodiceValore}} + + {{/each}} + {{#each AltriDatiGestionali}} + + {{TipoDato}} + {{#if RiferimentoTesto}} + {{RiferimentoTesto}} + {{/if}} + {{#if RiferimentoNumero}} + {{RiferimentoNumero}} + {{/if}} + {{#if RiferimentoData}} + {{RiferimentoData}} + {{/if}} + + {{/each}} + {{#each ScontoMaggiorazione}} + + {{/each}} + + {{/each}} + {{#each DatiBeniServizi.DatiRiepilogo}} + + {{AliquotaIVA}} + {{ImponibileImporto}} + {{Imposta}} + {{#if Natura}} + {{Natura}} + {{/if}} + {{#if SpeseAccessorie}} + {{SpeseAccessorie}} + {{/if}} + {{#if Arrotondamento}} + {{Arrotondamento}} + {{/if}} + {{#if EsigibilitaIVA}} + {{EsigibilitaIVA}} + {{/if}} + {{#if RiferimentoNormativo}} + {{RiferimentoNormativo}} + {{/if}} + + {{/each}} + + {{#each DatiPagamento}} + + {{CondizioniPagamento}} + + {{DettaglioPagamento.ModalitaPagamento}} + {{DettaglioPagamento.DataScadenzaPagamento}} + {{DettaglioPagamento.ImportoPagamento}} + + + {{/each}} + + {{/each}} + diff --git a/fatturaPA_1.2_schema.json b/fatturaPA_1.2_schema.json new file mode 100644 index 0000000..f1140a3 --- /dev/null +++ b/fatturaPA_1.2_schema.json @@ -0,0 +1,1723 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2", + "title": "Fattura Elettronica v 1.2", + "description": "Schema JSON per la Fattura Elettronica Italiana", + "type": "object", + "definitions": {}, + "properties": { + "FatturaElettronica": { + "title": "Fattura Elettronica Italiana", + "type": "object", + "properties": { + "versione": { + "type": "string", + "title": "Versione documento", + "description": "FPR12: Fattura tra Privati, FPA12: Fattura verso Pubblica Amministrazione", + "pattern": "^FP(A|R)12$", + "default": "FPA12" + }, + "FatturaElettronicaHeader": { + "title": "Intestazione della Fattura Elettronica", + "type": "object", + "properties": { + "DatiTrasmissione": { + "title": "Dati per il recapito del documento elettronico", + "type": "object", + "properties": { + "IdTrasmittente": { + "title": "Identificativo fiscale del soggetto trasmittente", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice della nazione assegnante l’identificativo fiscale al soggetto trasmittente", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto trasmittente (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + }, + "required": ["IdPaese", "IdCodice"] + }, + "ProgressivoInvio": { + "title": "Progressivo che il soggetto trasmittente attribuisce al file che inoltra al Sistema di Interscambio per una propria finalità di identificazione univoca", + "type": "string", + "minLength": 1, + "maxLength": 10, + "default": "", + "examples": [ + "00001" + ] + }, + "FormatoTrasmissione": { + "type": "string", + "title": "Codice identificativo del tipo di trasmissione che si sta effettuando e del relativo formato", + "pattern": "^FP(A|R)12$", + "default": "", + "examples": [ + "FPA12" + ] + }, + "CodiceDestinatario": { + "type": "string", + "title": "Identifica il soggetto al quale è destinata la fattura", + "description": "Per PA: Codice Ufficio (6 caratteri, vedi https://www.indicepa.gov.it/). Per fatturazione verso privati, codice del canale di ricezione accreditato nel Sistema di Interscambio (7 caratteri) oppure ‘0000000’ se riceve tramite PEC", + "pattern": "^[A-Z0-9]{6,7}$", + "default": "", + "examples": [ + "AAAAAA" + ] + } + }, + "additionalProperties": { + "ContattiTrasmittente": { + "Telefono": { + "type": "string", + "title": "Contatto telefonico fisso / mobile", + "default": "", + "minLength": 5, + "maxLength": 12 + }, + "Email": { + "type": "email", + "title": "Indirizzo di posta elettronica", + "default": "" + } + }, + "PECDestinatario": { + "type": "email", + "title": "indirizzo di Posta Elettronica Certificata al quale viene recapitata la fattura; viene valorizzato nei soli casi di destinatario diverso da Pubblica Amministrazione, qualora il destinatario utilizzi il canale PEC per ricevere le fatture.Può essere valorizzato solo se il valore di CodiceDestinatario è uguale a ‘0000000’", + "default": "" + } + }, + "required": ["IdTrasmittente", "ProgressivoInvio", "FormatoTrasmissione", "CodiceDestinatario"] + }, + "CedentePrestatore": { + "type": "object", + "title": "Dati del Cedente / Prestatore del bene / servizio", + "properties": { + "DatiAnagrafici": { + "type": "object", + "title": "Dati anagrafici del cedente/prestatore", + "properties": { + "IdFiscaleIVA": { + "title": "Dati identificativi ai fini IVA del soggetto cedente/prestatore", + "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice del paese assegnante l’identificativo fiscale al soggetto cedente/prestatore", + "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto cedente/prestatore (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + }, + "required": ["IdPaese", "IdCodice"] + }, + "Anagrafica": { + "type": "object", + "title": "Anagrafica", + "description": "Il campo Denominazione è in alternativa ai campi Nome e Cognome", + "properties": { + "Denominazione": { + "type": "string", + "title": "Ditta, denominazione o ragione sociale del cedente/prestatore (compilare nei casi di persona non fisica)", + "description": "Questo campo è in alternativa ai campi Nome e Cognome", + "default": "", + "minLength": 1, + "maxLength": 80, + "examples": [ + "ALPHA SRL" + ] + }, + "Nome": { + "type": "string", + "title": "Nome del cedente/prestatore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", + "maxLength": 60 + }, + "Cognome": { + "type": "string", + "title": "Cognome del cedente/prestatore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", + "maxLength": 60 + } + }, + "minProperties": 1, + "additionalProperties": "false" + }, + "RegimeFiscale": { + "type": "string", + "title": "Regime fiscale del cedente/prestatore", + "description": "RF01: Regime ordinario; RF02: Regime dei contribuenti minimi; RF03: Regime delle nuove iniziative produttive; RF04: Agricoltura e attività connesse e pesca; RF05: Vendita sali e tabacchi; RF06: Commercio dei fiammiferi; RF07: Editoria; RF08: Gestione di servizi di telefonia pubblica; RF09: Rivendita di documenti di trasporto pubblico e di sosta; RF10: Intrattenimenti, giochi e altre attività; RF11: Agenzie di viaggi e turismo; RF12: Agriturismo; RF13: Vendite a domicilio; RF14: Rivendita di beni usati, di oggetti d'arte, d'antiquariato o da collezione; RF15: Agenzie di vendite all'asta di oggetti d'arte, antiquariato o da collezione; RF16: IVA per cassa P.A.; RF17: IVA per cassa; RF19: Regime forfettario; RF18: Altro", + "pattern": "^RF[0-9]{2}$", + "default": "", + "examples": [ + "RF19" + ] + } + }, + "additionalProperties": { + "CodiceFiscale": { + "type": "string", + "pattern": "^[A-Z0-9]{11,16}$" + }, + "AlboProfessionale": { + "type": "string", + "maxLength": "60" + }, + "ProvinciaAlbo": { + "type": "string", + "title": "Sigla della provincia di iscrizione all'abo professionale", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroIscrizioneAlbo": { + "type": "string", + "maxLength": "60" + }, + "DataIscrizioneAlbo": { + "type": "string", + "title": "Data di iscrizione all'albo professionale", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + } + }, + "required": ["IdFiscaleIVA", "Anagrafica", "RegimeFiscale"] + }, + "Sede": { + "type": "object", + "title": "Sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo del cedente/prestatore: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIALE ROMA 543" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "07100" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "SASSARI" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "IT", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + }, + "required": ["Indirizzo", "CAP", "Comune", "Nazione"] + } + }, + "additionalProperties": { + "StabileOrganizzazione": { + "type": "object", + "title": "Compilare obbligatoriamente solo se il cedente/prestatore è un soggetto non residente ed effettua la transazione oggetto del documento tramite stabile organizzazione", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo della stabile organizzazione del del cedente/prestatore: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIALE ROMA 543" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "07100" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "SASSARI" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "IT", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + }, + "required": ["Indirizzo", "CAP", "Comune", "Nazione"] + }, + "IscrizioneREA": { + "type": "object", + "title": "Compilare obbligatoriamente solo per società soggette al vincolo dell’iscrizione nel registro delle imprese ai sensi dell’art. 2250 del codice civile", + "properties": { + "Ufficio": { + "type": "string", + "title": "Sigla della provincia ove ha sede l'Ufficio del Registro delle Imprese presso il quale è registrata la società", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroREA": { + "type": "string", + "title": "Numero di repertorio con il quale la società è iscritta nel Registro delle Imprese", + "default": "", + "maxLength": 20 + }, + "CapitaleSociale": { + "type": "string", + "title": "Capitale sociale effettivamente versato quale risulta esistente dall’ultimo bilancio della società", + "description": "Questo campo va compilato nei soli casi di società di capitali (SpA, SApA, SRL)", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$" + }, + "SocioUnico": { + "type": "string", + "title": "Se la società si componge di un unico socio o di più soci", + "description": "Questo elemento è valorizzato nei casi di società per azioni e a responsabilità limitata; SU: socio unico, SM: più soci", + "pattern": "^(SU|SM)$" + }, + "StatoLiquidazione": { + "title": "Se la società si trova in stato di liquidazione oppure no", + "description": "LS: in liquidazione, LN: non in liquidazione", + "pattern": "^L(S|N)$" + } + } + }, + "Contatti":{}, + "RiferimentoAmministrazione": { + "type": "string", + "title": "Eventuale riferimento utile al destinatario per automatizzare la gestione amministrativa dell’operazione in fattura", + "default": "", + "maxLength": 20 + } + }, + "required": ["DatiAnagrafici", "Sede"] + }, + "CessionarioCommittente": { + "type": "object", + "title": "Dati del Cessionario / Committente", + "properties": { + "DatiAnagrafici": { + "type": "object", + "title": "Dati anagrafici del cessionario/committente", + "properties": { + "Anagrafica": { + "type": "object", + "properties": { + "Denominazione": { + "type": "string", + "title": "Ditta, denominazione o ragione sociale del cessionario/committente (compilare nei casi di persona non fisica)", + "description": "Questo campo è in alternativa ai campi Nome e Cognome", + "default": "", + "minLength": 1, + "maxLength": 80, + "examples": [ + "AMMINISTRAZIONE BETA" + ] + }, + "Nome": { + "type": "string", + "title": "Nome del cessionario/committente (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", + "maxLength": 60 + }, + "Cognome": { + "type": "string", + "title": "Cognome del cessionario/committente (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", + "maxLength": 60 + } + }, + "minProperties": 1, + "additionalProperties": "false" + } + }, + "additionalProperties": { + "IdFiscaleIVA": { + "title": "Dati identificativi ai fini IVA del cessionario/committente; compilare in alternativa non esclusiva a quella del Codice Fiscale (cioè può non essere compilato se è compilato il Codice Fiscale)", + "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice del paese assegnante l’identificativo fiscale al soggetto cessionario/committente", + "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto cessionario/committente (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + }, + "required": ["IdPaese", "IdCodice"] + }, + "CodiceFiscale": { + "type": "string", + "title": "Codice Fiscale del cessionario/committente; compilare in alternativa non esclusiva ai Dati identificativi ai fini IVA (può non essere compilato se sono presenti i Dati identificativi)", + "default": "", + "pattern": "^[A-Z0-9]{11,16}$", + "examples": [ + "09876543210" + ] + } + }, + "required": ["Anagrafica"] + }, + "Sede": { + "type": "object", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo del cessionario/committente: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIA TORINO 38-B" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "00145" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "ROMA" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espresso secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, ", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "RM" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + }, + "required": ["Indirizzo", "CAP", "Comune", "Nazione"] + } + }, + "additionalProperties": false, + "required": ["DatiAnagrafici", "Sede"] + } + }, + "additionalProperties": { + "RappresentanteFiscale": {}, + "TerzoIntermediarioOSoggettoEmittente": {}, + "SoggettoEmittente": {} + }, + "required": ["DatiTrasmissione", "CedentePrestatore", "CessionarioCommittente"] + }, + "FatturaElettronicaBody": { + "type": "array", + "title": "Dati Generali e Contabili", + "minItems": 1, + "items": { + "title": "Corpo della Fattura Elettronica", + "type": "object", + "properties": { + "DatiGenerali": { + "type": "object", + "title": "Dati Generali", + "properties": { + "DatiGeneraliDocumento": { + "title": "Dati Generali del documento", + "type": "object", + "properties": { + "TipoDocumento": { + "type": "string", + "title": "Tipologia del documento oggetto della trasmissione", + "description": "TD01: Fattura, TD02: Acconto / anticipo su fattura, TD03: Acconto / anticipo su parcella, TD04: Nota di credito, TD05: Nota di debito, TD06: Parcella", + "default": "", + "pattern": "^TD[0-9]{2}$", + "examples": [ + "TD01" + ] + }, + "Divisa": { + "type": "string", + "title": "Valuta utilizzata per l'indicazione degli importi", + "description": "Espresso secondo lo standard ISO 4217 alpha-3:2001 (https://it.wikipedia.org/wiki/ISO_4217#Codici_attivi), esempi: EUR, USD, CHF, GBP, CZK ...", + "default": "", + "pattern": "^[A-Z]{3}$", + "examples": [ + "EUR" + ] + }, + "Data": { + "type": "string", + "title": "Data del documento", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "Numero": { + "type": "string", + "title": "Numero progressivo attribuito dal cedente/prestatore al documento", + "minLength": 1, + "maxLength": 20, + "default": "", + "examples": [ + "123" + ] + } + }, + "additionalProperties": { + "Causale": { + "type": "array", + "title": "Descrizione della causale del documento", + "items": { + "type": "string", + "title": "Causale", + "default": "", + "minLength": 1, + "maxLength": 200, + "examples": [ + "LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS", + "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" + ] + } + }, + "DatiCassaPrevidenziale": { + "type": "array", + "title": "Dati cassa previdenziale", + "items": { + "type": "object", + "title": "Cassa previdenziale", + "properties": { + "TipoCassa": { + "type": "string", + "title": "Cassa di previdenza della categoria professionale di appartenenza", + "description": "TC01: Cassa Nazionale Previdenza e Assistenza Avvocati e Procuratori Legali, TC02: Cassa Previdenza Dottori Commercialisti, TC03: Cassa Previdenza e Assistenza Geometri, TC04: Cassa Nazionale Previdenza e Assistenza Ingegneri e Architetti Liberi Professionisti, TC05: Cassa Nazionale del Notariato, TC06: Cassa Nazionale Previdenza e Assistenza Ragionieri e Periti Commerciali, TC07: Ente Nazionale Assistenza Agenti e Rappresentanti di Commercio (ENASARCO), TC08: Ente Nazionale Previdenza e Assistenza Consulenti del Lavoro (ENPACL), TC09: Ente Nazionale Previdenza e Assistenza Medici (ENPAM), TC10: Ente Nazionale Previdenza e Assistenza Farmacisti (ENPAF), TC11: Ente Nazionale Previdenza e Assistenza Veterinari (ENPAV), TC12: Ente Nazionale Previdenza e Assistenza Impiegati dell'Agricoltura (ENPAIA), TC13: Fondo Previdenza Impiegati Imprese di Spedizione e Agenzie Marittime, TC14: Istituto Nazionale Previdenza Giornalisti Italiani (INPGI), TC15: Opera Nazionale Assistenza Orfani Sanitari Italiani (ONAOSI), TC16: Cassa Autonoma Assistenza Integrativa Giornalisti Italiani (CASAGIT), TC17: Ente Previdenza Periti Industriali e Periti Industriali Laureati (EPPI), TC18: Ente Previdenza e Assistenza Pluricategoriale (EPAP), TC19: Ente Nazionale Previdenza e Assistenza Biologi (ENPAB), TC20: Ente Nazionale Previdenza e Assistenza Professione Infermieristica (ENPAPI), TC21: Ente Nazionale Previdenza e Assistenza Psicologi (ENPAP), TC22: INPS", + "pattern": "TC[0-9]{2}" + }, + "AlCassa": { + "type": "string", + "title": "Aliquota contributiva prevista per la cassa di previdenza", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,3}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + }, + "ImportoContributoCassa": { + "type": "string", + "title": "Importo del contributo relativo alla cassa di previdenza della categoria professionale", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}$" + }, + "AliquotaIVA": { + "type": "string", + "title": "Aliquota IVA applicata al contributo cassa previdenziale; nel caso di non applicabilità, il campo deve essere impostato a 0.00", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,2}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + } + }, + "additionalProperties": { + "ImponibileCassa": { + "type": "string", + "title": "Importo totale del volume di affari sul quale occorre applicare il contributo di cassa previdenziale", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}$" + }, + "Ritenuta": { + "type": "string", + "title": "Indica se il contributo cassa è soggetto a ritenuta", + "description": "RT01: Ritenuta di acconto persone fisiche, RT02: Ritenuta di acconto persone giuridiche", + "pattern": "^RT[0-9]{2}$" + + }, + "Natura": { + "type": "string", + "title": "Codice che esprime la natura della non imponibilità del contributo cassa", + "description": "N1: Escluse ex. art. 15, N2: Non soggette, N3: Non Imponibili, N4: Esenti, N5: Regime del margine, N6: Inversione contabile (reverse charge), N7: IVA assolta in altro stato UE", + "pattern": "^N[0-9]{1}$", + "default": "", + "examples": [ + "N1" + ] + }, + "RiferimentoAmministrazione": { + "type": "string", + "title": "Eventuale riferimento utile al destinatario per automatizzare la gestione amministrativa dell’operazione in fattura", + "default": "", + "maxLength": 20 + } + }, + "required": ["TipoCassa", "AlCassa", "ImportoContributoCassa", "AliquotaIVA"] + } + }, + "ScontoMaggiorazione": { + "type": "array", + "title": "Sconto o maggiorazione", + "items": {} + }, + "DatiRitenuta": {}, + "DatiBollo": {}, + "ImportoTotaleDocumento": {}, + "Arrotondamento": {}, + "Art73": { + "type": "string", + "title": "Indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72 (ciò consente al cedente/prestatore l'emissione nello stesso anno di più documenti aventi stesso numero)", + "pattern": "^SI$" + } + }, + "required": ["TipoDocumento", "Divisa", "Data", "Numero"] + } + }, + "additionalProperties": { + "DatiTrasporto": { + "type": "object", + "title": "Dati relativi al trasporto", + "additionalProperties": { + "DatiAnagraficiVettore": { + "type": "object", + "title": "Dati anagrafici del vettore", + "properties": { + "IdFiscaleIVA": { + "title": "Dati identificativi ai fini IVA del soggetto vettore", + "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice del paese assegnante l’identificativo fiscale al soggetto vettore", + "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto vettore (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + } + }, + "Anagrafica": { + "type": "object", + "title": "Anagrafica", + "description": "Il campo Denominazione è in alternativa ai campi Nome e Cognome", + "properties": { + "Denominazione": { + "type": "string", + "title": "Ditta, denominazione o ragione sociale del vettore (compilare nei casi di persona non fisica)", + "description": "Questo campo è in alternativa ai campi Nome e Cognome", + "default": "", + "minLength": 1, + "maxLength": 80, + "examples": [ + "ALPHA SRL" + ] + }, + "Nome": { + "type": "string", + "title": "Nome del vettore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", + "maxLength": 60 + }, + "Cognome": { + "type": "string", + "title": "Cognome del vettore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", + "maxLength": 60 + } + }, + "additionalProperties": "false" + } + }, + "additionalProperties": { + "CodiceFiscale": { + "type": "string", + "title": "numero di codice fiscale del vettore", + "pattern": "^[A-Z0-9]{11,16}$" + }, + "NumeroLicenzaGuida": { + "type": "string", + "title": "Numero identificativo della licenza di guida (esempio: numero patente) del vettore", + "maxLength": 20 + } + }, + "required": ["IdFiscaleIVA", "Anagrafica"] + }, + "MezzoTrasporto": { + "type": "string", + "maxLength": 80 + }, + "CausaleTrasporto": { + "type": "string", + "maxLength": 100 + }, + "NumeroColli": { + "type": "integer", + "minimum": 1, + "maximum": 9999 + }, + "Descrizione": { + "type": "string", + "maxLength": 100 + }, + "UnitaMisuraPeso": { + "type": "string", + "maxLength": 10 + }, + "PesoLordo": { + "type": "string", + "title": "Peso lordo", + "pattern": "^[0-9]{1,4}\\.[0-9]{1,2}$" + }, + "PesoNetto": { + "type": "string", + "title": "Peso netto", + "pattern": "^[0-9]{1,4}\\.[0-9]{1,2}$" + }, + "DataOraRitiro": { + "type": "string", + "title": "Data e ora di ritiro", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", + "default": "", + "examples": [ + "2002-05-30T09:00:00" + ] + }, + "DataInizioTrasporto": { + "type": "string", + "title": "Data di inizio del trasporto", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-02-18" + ] + }, + "TipoResa": { + "type": "string", + "title": "Tipo di resa", + "description": "Espresso secondo lo standard ICC-Camera di Commercio Internazionale (https://it.wikipedia.org/wiki/Incoterms#I_gruppi_dell%27Incoterms_2000): EXW: Ex Works, FCA: Free Carrier, FAS: Free Alongside Ship, FOB: Free On Board, CFR: Cost and Freight, CIF: Cost, Insurance and Freight, CPT: Carriage Paid To, CIP: Carriage and Insurance Paid to, DAF: Delivered At Frontier, DES: Delivered Ex Ship, DEQ: Delivered Ex Quay, DDU: Delivered Duty Unpaid, DDP: Delivered Duty Paid", + "pattern": "^[A-Z]{3}$" + }, + "IndirizzoResa": { + "type": "object", + "title": "Indirizzo di resa della merce", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo di resa: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIALE ROMA 543" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "07100" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "SASSARI" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "IT", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + } + }, + "DataOraConsegna": { + "type": "string", + "title": "Data e ora di consegna", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", + "default": "", + "examples": [ + "2002-05-30T09:00:00" + ] + } + } + }, + "FatturaPrincipale": { + "type": "object", + "title": "Dati della fattura principale", + "description": "Presente nei casi di fatture per operazioni accessorie emesse dagli ‘autotrasportatori’ per usufruire delle agevolazioni in materia di registrazione e pagamento IVA", + "properties": { + "NumeroFatturaPrincipale": { + "type": "string", + "title": "Numero della fattura relativa al trasporto di beni, da indicare sulle fatture emesse dagli autotrasportatori per certificare le operazioni accessorie", + "minLength": 1, + "maxLength": 20 + }, + "DataFatturaPrincipale": { + "type": "string", + "title": "Data della fattura principale", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", + "default": "", + "examples": [ + "2002-05-30T09:00:00" + ] + } + } + }, + "DatiOrdineAcquisto": { + "type": "array", + "title": "Dati relativi all’ordine di acquisto dal quale scaturisce la cessione/prestazione oggetto del documento fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo dell'ordine di acquisto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data dell'ordine di acquisto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno dell'ordine di acquisto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiContratto": { + "type": "array", + "title": "Dati relativi al contratto dal quale scaturisce la cessione/prestazione oggetto del documento fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo del contratto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data del contratto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno del contratto associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiConvenzione": { + "type": "array", + "title": "Dati relativi alla convenzione collegata alla fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo della convenzione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data della convenzione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno della convenzione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiRicezione": { + "type": "array", + "title": "Dati relativi alla ricezione dei beni/servizi oggetto del documento fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo della ricezione associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data della ricezione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno della ricezione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiFattureCollegate": { + "type": "array", + "title": "Dati relativi alla fattura alla quale si collega il documento in oggetto", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo della fattura associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data della fattura associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno della fattura associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiSAL": { + "type": "array", + "title": "Dati relativi al SAL (Stato Avanzamento Lavori)", + "items": { + "type":"object", + "properties": { + "RiferimentoFase": { + "type": "integer", + "minimum": 1, + "maximum": 999, + "title": "Fase dello stato avanzamento cui la fattura si riferisce", + "default": "", + "examples": [ + 1 + ] + } + } + } + }, + "DatiDDT": { + "type": "array", + "title": "Dati relativi al DDT (Documento di Trasporto", + "description": "Compilare se è presente un documento di trasporto collegato alla fattura, e in caso di fatturazione differita", + "items": { + "type":"object", + "properties": { + "NumeroDDT": { + "type": "string", + "title": "Numero del Documento Di Trasporto", + "maxLength": 20 + }, + "DataDDT": { + "type": "string", + "title": "Data del Documento Di Trasporto", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero della linea o delle linee di dettaglio della fattura alle quali si riferisce il DDT (così come identificato dagli elementi NumeroDDT e DataDDT)", + "description": "nel caso in cui il documento di trasporto si riferisce all’intera fattura, questo elemento non deve essere valorizzato", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + } + } + } + } + }, + "required": ["DatiGeneraliDocumento"] + }, + "DatiBeniServizi": { + "type": "object", + "title": "Dati dei Beni / Servizi", + "properties": { + "DettaglioLinee": { + "type": "array", + "title": "Linea di dettaglio del bene/servizio", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "NumeroLinea": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "title": "Numero identificativo della linea di dettaglio ", + "default": "", + "examples": [ + 1 + ] + }, + "Descrizione": { + "type": "string", + "title": "Natura e qualità del bene/servizio oggetto della cessione/prestazione; può fare anche riferimento ad un precedente documento emesso a titolo di anticipo/acconto", + "default": "", + "minLength": 1, + "maxLength": 1000, + "examples": [ + "DESCRIZIONE DELLA FORNITURA" + ] + }, + "PrezzoUnitario": { + "type": "string", + "title": "Prezzo unitario del bene/servizio; nel caso di beni ceduti a titolo di sconto, premio o abbuono, l'importo indicato rappresenta il \"valore normale\"", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2,8}$", + "default": "", + "examples": [ + "1.00" + ] + }, + "PrezzoTotale": { + "type": "string", + "title": "Importo totale del bene/servizio al netto dell'eventuale sconto", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2,8}$", + "default": "", + "examples": [ + "5.00" + ] + }, + "AliquotaIVA": { + "type": "string", + "title": "Aliquota IVA applicata alla cessione/prestazione; nel caso di non applicabilità, il campo deve essere impostato a 0.00", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,2}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + } + }, + "additionalProperties": { + "TipoCessionePrestazione": { + "type": "string", + "title": "Codice che identifica la tipologia di cessione/prestazione qualora si tratti di sconto, premio, abbuono o spesa accessoria; è quindi valorizzabile soltanto in presenza di questi casi", + "description": "SC: Sconto, PR: Premio. AB: Abbuono, AC: Spesa accessoria", + "pattern": "^SC|PR|AB|AC$" + }, + "Quantita": { + "type": "string", + "title": "Numero di unità cedute/prestate; può non essere valorizzato nei casi in cui la prestazione non sia quantificabile", + "default": "", + "pattern": "^[0-9]{1,12}\\.[0-9]{2,8}$", + "examples": [ + "5.00" + ] + }, + "UnitaMisura": { + "type": "string", + "title": "Unità di misura in cui è espresso il campo Quantità", + "default": "", + "maxLength": 10 + }, + "DataInizioPeriodo": { + "type": "string", + "title": "Data iniziale del periodo di riferimento cui si riferisce l'eventuale servizio prestato", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "DataFinePeriodo": { + "type": "string", + "title": "Data finale del periodo di riferimento cui si riferisce l'eventuale servizio prestato", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "Ritenuta": { + "type": "string", + "title": "Indica se la linea della fattura si riferisce ad una cessione/prestazione soggetta a ritenuta", + "default": "SI", + "pattern": "^SI$" + }, + "Natura": { + "type": "string", + "title": "Codice che esprime la natura delle operazioni che non rientrano tra quelle imponibili o nei casi di inversione contabile", + "description": "N1: Escluse ex. art. 15, N2: Non soggette, N3: Non Imponibili, N4: Esenti, N5: Regime del margine, N6: Inversione contabile (reverse charge), N7: IVA assolta in altro stato UE", + "pattern": "^N[0-9]{1}$", + "default": "", + "examples": [ + "N1" + ] + }, + "RiferimentoAmministrazione": { + "type": "string", + "title": "Eventuale riferimento utile al destinatario per automatizzare la gestione amministrativa dell’operazione in fattura (capitolo di spesa, conto economico ...)", + "default": "", + "maxLength": 20 + }, + "CodiceArticolo": { + "type": "array", + "title": "Codici Articoli", + "items": { + "type": "object", + "title": "Codice Articolo", + "properties": { + "CodiceTipo": { + "type": "string", + "title": "Indica la tipologia di codice articolo (i.e.: TARIC, CPV, EAN, SSC, ...)", + "default": "", + "minLength": 1, + "maxLength": 35 + }, + "CodiceValore": { + "type": "string", + "title": "Valore del codice articolo corrispondente alla tipologia ", + "default": "", + "minLength": 1, + "maxLength": 35 + } + } + } + }, + "AltriDatiGestionali": { + "type": "array", + "title": "Altri dati gestionali", + "items": { + "type": "object", + "title": "Dato gestionale", + "properties": { + "TipoDato": { + "type": "string", + "title": "Codice che identifica la tipologia di informazione", + "default": "", + "minLength": 1, + "maxLength": 10 + }, + "RiferimentoTesto": { + "type": "string", + "title": "Calore alfanumerico riferito alla tipologia di informazione", + "default": "", + "minLength": 1, + "maxLength": 60 + }, + "RiferimentoNumero": { + "type": "string", + "title": "valore numerico riferito alla tipologia di informazione", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2,8}" + }, + "RiferimentoData": { + "type": "string", + "title": "data riferita alla tipologia di informazione", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + } + } + } + }, + "ScontoMaggiorazione": { + "type": "array", + "title": "Sconti e maggiorazioni", + "items": { + "type": "object", + "title": "Sconto / maggiorazione", + "properties": { + "Tipo": { + "type": "string", + "title": "Indica se si tratta di sconto o di maggiorazione", + "description": "SC: sconto. MG: maggiorazione", + "pattern": "^SC|MG$" + } + }, + "additionalProperties": { + "Percentuale": { + "type": "string", + "title": "Percentuale di sconto o di maggiorazione", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,3}\\.[0-9]{2}$", + "default": "", + "examples": [ + "10.00" + ] + }, + "Importo": { + "type": "string", + "title": "Importo dello sconto o della maggiorazione", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}" + } + }, + "required": ["Tipo"] + } + } + }, + "required": ["NumeroLinea", "Descrizione", "PrezzoUnitario", "PrezzoTotale", "AliquotaIVA"] + } + }, + "DatiRiepilogo": { + "type": "array", + "title": "Dati di riepilogo", + "minItems": 1, + "items": { + "type": "object", + "title": "Dati di riepilogo per aliquota", + "description": "Da valorizzare per ogni aliquota IVA e modalità di versamento dell’imposta (scissione dei pagamenti od ordinaria), e/o per ogni natura)", + "properties": { + "AliquotaIVA": { + "type": "string", + "title": "Aliquota IVA applicata alla cessione/prestazione; nel caso di non applicabilità, il campo deve essere impostato a 0.00", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,2}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + }, + "ImponibileImporto": { + "type": "string", + "title": "Valore che rappresenta la base imponibile per le operazioni soggette ad IVA, oppure l’importo per le operazioni che non rientrano tra quelle 'imponibili'", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$", + "default": "", + "examples": [ + "5.00" + ] + }, + "Imposta": { + "type": "string", + "title": "Imposta corrispondente all’applicazione dell’aliquota IVA sulla base imponibile", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$", + "default": "", + "examples": [ + "1.10" + ] + } + }, + "additionalProperties": { + "Natura": { + "type": "string", + "title": "Codice che esprime la natura delle operazioni che non rientrano tra quelle imponibili", + "description": "N1: Escluse ex. art. 15, N2: Non soggette, N3: Non Imponibili, N4: Esenti, N5: Regime del margine, N6: Inversione contabile (reverse charge), N7: IVA assolta in altro stato UE", + "pattern": "^N[0-9]{1}$", + "default": "", + "examples": [ + "N1" + ] + }, + "SpeseAccessorie": { + "type": "string", + "title": "Corrispettivi relativi alle cessioni accessorie, (ad esempio imballaggi etc.) qualora presenti", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}" + }, + "Arrotondamento": { + "type": "string", + "title": "Arrotondamento sull'imponibile o sull’importo, qualora presente", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2,8}" + }, + "EsigibilitaIVA": { + "type": "string", + "title": "Codice che esprime il regime di esigibilità dell’IVA (differita o immediata) o la modalità di versamento dell’imposta (scissione dei pagamenti)", + "description": "D: esigibilità differita, I: esigibilità immediata, S: scissione dei pagamenti", + "pattern": "^D|I|S$", + "default": "", + "examples": [ + "I" + ] + }, + "RiferimentoNormativo": { + "type": "string", + "title": "Normativa di riferimento (campo obbligatorio nei casi di operazioni di cui all’elemento Natura)", + "minLength": 1, + "maxLength": 100 + } + }, + "required": ["AliquotaIVA", "ImponibileImporto", "Imposta"] + } + } + }, + "required": ["DettaglioLinee", "DatiRiepilogo"] + } + }, + "additionalProperties": { + "Allegati": { + "type": "array", + "title": "Allegati", + "items": { + "type": "object", + "title": "Allegato", + "properties": { + "NomeAttachment": { + "type": "string", + "title": "Contiene il nome del documento allegato alla fattura elettronica", + "maxLength": 60 + }, + "Attachment": { + "type": "string", + "title": "Contiene il documento allegato alla fattura elettronica" + } + }, + "additionalProperties": { + "AlgoritmoCompressione": { + "type": "string", + "title": "Algoritmo utilizzato per comprimere l’allegato", + "maxLength": 10 + }, + "FormatoAttachment": { + "type": "string", + "title": "Formato dell’allegato", + "maxLength": 10 + }, + "DescrizioneAttachment": { + "type": "string", + "title": "Descrizione del documento allegato alla fattura elettronica", + "maxLength": 100 + } + }, + "required": ["NomeAttachment", "Attachment"] + } + }, + "DatiVeicoli": {}, + "DatiPagamento": { + "type": "array", + "title": "Dati di pagamento", + "items": { + "type": "object", + "title": "Dato di pagamento", + "properties": { + "CondizioniPagamento": { + "type": "string", + "title": "Codice che identifica le condizioni di pagamento", + "description": "TP01: pagamento a rate, TP02: pagamento completo, TP03: anticipo", + "pattern": "^TP[0-9]{2}$", + "default": "", + "examples": [ + "TP01" + ] + }, + "DettaglioPagamento": { + "type": "object", + "title": "Dettaglio del pagamento", + "properties": { + "ModalitaPagamento": { + "type": "string", + "title": "Codice che identifica le modalità di pagamento", + "description": "MP01: contanti, MP02: assegno, MP03: assegno circolare, MP04: contanti presso Tesoreria, MP05: bonifico, MP06: vaglia cambiario, MP07: bollettino bancario, MP08: carta di pagamento, MP09: RID, MP10: RID utenze, MP11: RID veloce, MP12: Riba, MP13: MAV, MP14: quietanza erario stato, MP15: giroconto su conti di contabilità speciale, MP16: domiciliazione bancaria, MP17: domiciliazione postale, MP18: bollettino di c/c postale, MP19: SEPA Direct Debit, MP20: SEPA Direct Debit CORE, MP21: SEPA Direct Debit B2B, MP22: Trattenuta su somme già riscosse", + "default": "", + "examples": [ + "MP01" + ] + }, + "DataScadenzaPagamento": { + "type": "string", + "title": "Data di scadenza del pagamento", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-02-18" + ] + }, + "ImportoPagamento": { + "type": "string", + "title": "Importo relativo al pagamento", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$", + "default": "", + "examples": [ + "6.10" + ] + } + } + } + } + } + } + }, + "required": ["DatiGenerali", "DatiBeniServizi"] + } + } + }, + "additionalProperties": false, + "required": ["versione", "FatturaElettronicaHeader", "FatturaElettronicaBody"] + } + }, + "additionalProperties": false, + "required": ["FatturaElettronica"] +} diff --git a/flowchart.png b/flowchart.png new file mode 100644 index 0000000..6f52b1d Binary files /dev/null and b/flowchart.png differ diff --git a/flowchart.svg b/flowchart.svg new file mode 100644 index 0000000..5475e9c --- /dev/null +++ b/flowchart.svg @@ -0,0 +1,606 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Files XMLdi esempio + + Files JSONdi esempio + + node-xml2json + aggiustamentimanuali + + jsonschema.net+ aggiustamenti manuali + + Files JSONrandom + + File JSONschema + + json-schema-faker + validazione + validazione + + handlebarstemplating + + Files XMLrandom + + File XSDschema + + validazione + validazione + + diff --git a/package.json b/package.json index b3f70df..3e4d2ef 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "handlebars": "^4.0.11", "jgexml": "^0.3.8", "json-schema": "^0.2.3", + "json-schema-faker": "^0.5.0-rc15", "xml2json": "^0.11.2" } } diff --git a/random/00.json b/random/00.json new file mode 100644 index 0000000..07c490f --- /dev/null +++ b/random/00.json @@ -0,0 +1,228 @@ +{ + "FatturaElettronica": { + "versione": "FPR12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "WV", + "IdCodice": "sunt" + }, + "ProgressivoInvio": "elit adi", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "GHJ5X6" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "CR", + "IdCodice": "adipisicing et reprehenderi" + }, + "Anagrafica": { + "Denominazione": "culpa", + "Nome": "culpa ipsum" + }, + "RegimeFiscale": "RF33" + }, + "Sede": { + "Indirizzo": "magna deserunt ut adipisicing in", + "CAP": "65841", + "Comune": "v", + "Nazione": "RO" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Nome": "e", + "Cognome": "eu Excepteur et" + } + }, + "Sede": { + "Indirizzo": "sint ut nulla", + "CAP": "81678", + "Comune": "nostrud sit nisi", + "Nazione": "GM" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD24", + "Divisa": "KBI", + "Data": "6591-35-44", + "Numero": "laboris in amet p" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 8870, + "Descrizione": "reprehenderit tempor do", + "PrezzoUnitario": "-5352560.81", + "PrezzoTotale": "9783246413.8212443", + "AliquotaIVA": "07.43" + }, + { + "NumeroLinea": 2019, + "Descrizione": "Lorem voluptate aliqua sit", + "PrezzoUnitario": "46.72637523", + "PrezzoTotale": "-66270513642.5390702", + "AliquotaIVA": "6.39" + }, + { + "NumeroLinea": 1349, + "Descrizione": "laboris cupidatat", + "PrezzoUnitario": "42969094018.8571", + "PrezzoTotale": "-869.24158", + "AliquotaIVA": "9.08" + }, + { + "NumeroLinea": 3220, + "Descrizione": "eu id in nostrud exercitation", + "PrezzoUnitario": "940537.38", + "PrezzoTotale": "309431.43193", + "AliquotaIVA": "96.59" + }, + { + "NumeroLinea": 252, + "Descrizione": "eiusmod nostrud ut irure in", + "PrezzoUnitario": "0841860839.88", + "PrezzoTotale": "-167708787.1326", + "AliquotaIVA": "6.87" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "0.93", + "ImponibileImporto": "-49223539259.92", + "Imposta": "4383748027.49" + }, + { + "AliquotaIVA": "5.52", + "ImponibileImporto": "-8210516.29", + "Imposta": "-68468006039.86" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD74", + "Divisa": "NBB", + "Data": "5281-04-38", + "Numero": "sunt ipsum sed veni" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 315, + "Descrizione": "deserunt sit", + "PrezzoUnitario": "4140849.93908567", + "PrezzoTotale": "16273701.87123", + "AliquotaIVA": "29.92" + }, + { + "NumeroLinea": 8344, + "Descrizione": "magna eiusmod tempor laborum", + "PrezzoUnitario": "-2803273.882584", + "PrezzoTotale": "-24.131", + "AliquotaIVA": "3.25" + }, + { + "NumeroLinea": 4852, + "Descrizione": "mollit", + "PrezzoUnitario": "508911.90385154", + "PrezzoTotale": "5062233.472148", + "AliquotaIVA": "3.27" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "1.79", + "ImponibileImporto": "-9741029.54", + "Imposta": "70785256971.01" + }, + { + "AliquotaIVA": "84.79", + "ImponibileImporto": "92756483.72", + "Imposta": "-1020532199.20" + }, + { + "AliquotaIVA": "39.36", + "ImponibileImporto": "-51697612613.95", + "Imposta": "-784.40" + }, + { + "AliquotaIVA": "5.68", + "ImponibileImporto": "001355.38", + "Imposta": "-48480.79" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD85", + "Divisa": "RVM", + "Data": "8927-46-70", + "Numero": "esse" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 6295, + "Descrizione": "sunt ut est", + "PrezzoUnitario": "-4142.9397845", + "PrezzoTotale": "357.70384463", + "AliquotaIVA": "81.31" + }, + { + "NumeroLinea": 2985, + "Descrizione": "sed", + "PrezzoUnitario": "77651488.09642", + "PrezzoTotale": "40841775.0684", + "AliquotaIVA": "1.88" + }, + { + "NumeroLinea": 6152, + "Descrizione": "Lorem in", + "PrezzoUnitario": "59886451.533367", + "PrezzoTotale": "-5.27", + "AliquotaIVA": "73.93" + }, + { + "NumeroLinea": 3307, + "Descrizione": "minim aliqua nulla pariatur", + "PrezzoUnitario": "50827702508.457342", + "PrezzoTotale": "-2.94363", + "AliquotaIVA": "0.53" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "54.77", + "ImponibileImporto": "83332.93", + "Imposta": "95.76" + }, + { + "AliquotaIVA": "2.17", + "ImponibileImporto": "-4712.24", + "Imposta": "1580560945.58" + }, + { + "AliquotaIVA": "2.48", + "ImponibileImporto": "-3894431260.37", + "Imposta": "12890962625.44" + } + ] + } + } + ] + } +} diff --git a/random/00.xml b/random/00.xml new file mode 100644 index 0000000..76655bf --- /dev/null +++ b/random/00.xml @@ -0,0 +1,213 @@ + + + + + + WV + sunt + + elit adi + FPA12 + GHJ5X6 + + + + + CR + adipisicing et reprehenderi + + + culpa + culpa ipsum + + RF33 + + + magna deserunt ut adipisicing in + 65841 + v + RO + + + + + + e + eu Excepteur et + + + + sint ut nulla + 81678 + nostrud sit nisi + GM + + + + + + + TD24 + KBI + 6591-35-44 + laboris in amet p + + + + + 8870 + reprehenderit tempor do + -5352560.81 + 9783246413.8212443 + 07.43 + + + 2019 + Lorem voluptate aliqua sit + 46.72637523 + -66270513642.5390702 + 6.39 + + + 1349 + laboris cupidatat + 42969094018.8571 + -869.24158 + 9.08 + + + 3220 + eu id in nostrud exercitation + 940537.38 + 309431.43193 + 96.59 + + + 252 + eiusmod nostrud ut irure in + 0841860839.88 + -167708787.1326 + 6.87 + + + 0.93 + -49223539259.92 + 4383748027.49 + + + 5.52 + -8210516.29 + -68468006039.86 + + + + + + + TD74 + NBB + 5281-04-38 + sunt ipsum sed veni + + + + + 315 + deserunt sit + 4140849.93908567 + 16273701.87123 + 29.92 + + + 8344 + magna eiusmod tempor laborum + -2803273.882584 + -24.131 + 3.25 + + + 4852 + mollit + 508911.90385154 + 5062233.472148 + 3.27 + + + 1.79 + -9741029.54 + 70785256971.01 + + + 84.79 + 92756483.72 + -1020532199.20 + + + 39.36 + -51697612613.95 + -784.40 + + + 5.68 + 001355.38 + -48480.79 + + + + + + + TD85 + RVM + 8927-46-70 + esse + + + + + 6295 + sunt ut est + -4142.9397845 + 357.70384463 + 81.31 + + + 2985 + sed + 77651488.09642 + 40841775.0684 + 1.88 + + + 6152 + Lorem in + 59886451.533367 + -5.27 + 73.93 + + + 3307 + minim aliqua nulla pariatur + 50827702508.457342 + -2.94363 + 0.53 + + + 54.77 + 83332.93 + 95.76 + + + 2.17 + -4712.24 + 1580560945.58 + + + 2.48 + -3894431260.37 + 12890962625.44 + + + + + diff --git a/random/01.json b/random/01.json new file mode 100644 index 0000000..9a650fe --- /dev/null +++ b/random/01.json @@ -0,0 +1,173 @@ +{ + "FatturaElettronica": { + "versione": "FPR12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "MM", + "IdCodice": "aliqua" + }, + "ProgressivoInvio": "Excepte", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "amet ir" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "LZ", + "IdCodice": "dolore d" + }, + "Anagrafica": { + "Denominazione": "et cupidatat", + "Cognome": "nisi" + }, + "RegimeFiscale": "RF17" + }, + "Sede": { + "Indirizzo": "in nostrud mollit est a", + "CAP": "59221", + "Comune": "labore proident fugiat", + "Nazione": "JY" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Denominazione": "nulla laborum anim", + "Cognome": "velit" + } + }, + "Sede": { + "Indirizzo": "anim ullamco", + "CAP": "17273", + "Comune": "cupidatat", + "Nazione": "CE" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD99", + "Divisa": "GTL", + "Data": "1948-02-43", + "Numero": "ea occaecat" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 7835, + "PrezzoUnitario": "-802017.4611921", + "PrezzoTotale": "-91554.07795994", + "AliquotaIVA": "342.96" + }, + { + "Descrizione": "eiusmod ", + "PrezzoUnitario": "313135607.41", + "PrezzoTotale": "52878025.1544", + "AliquotaIVA": "4.60" + }, + { + "NumeroLinea": 3977, + "Quantita": "8656.49289", + "PrezzoUnitario": "-99.627", + "PrezzoTotale": "4.42" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "2.17", + "ImponibileImporto": "-45702394811.04", + "Imposta": "-820007.71", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "06.00", + "Natura": "N3", + "ImponibileImporto": "450125700.45", + "Imposta": "-1760616.57" + }, + { + "Natura": "N6", + "ImponibileImporto": "-79.87", + "Imposta": "-515746.29", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "3.08", + "Natura": "N1", + "ImponibileImporto": "00647065177.90", + "EsigibilitaIVA": "I" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD27", + "Divisa": "ZJS", + "Data": "8986-28-53", + "Numero": "veni" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Descrizione": "aliquip", + "Quantita": "07.50667959", + "PrezzoUnitario": "-9531.1947798", + "PrezzoTotale": "06436375.1904356" + }, + { + "Descrizione": "incididunt ex eu magna laboris", + "Quantita": "07189829.18441273", + "PrezzoUnitario": "2155248.02040551", + "PrezzoTotale": "299223.53" + }, + { + "Quantita": "17.8752", + "PrezzoUnitario": "-720732873.20", + "PrezzoTotale": "-1622.4777485", + "AliquotaIVA": "08.73" + }, + { + "NumeroLinea": 9199, + "Descrizione": "exercitation tempor", + "PrezzoUnitario": "84368.56890609", + "AliquotaIVA": "204.64" + }, + { + "NumeroLinea": 2148, + "Quantita": "087150.332", + "PrezzoUnitario": "-84.67969072", + "AliquotaIVA": "86.80" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "066.21", + "ImponibileImporto": "-043366.47", + "Imposta": "2.53", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "26.85", + "ImponibileImporto": "-48.64", + "Imposta": "6346299.13", + "EsigibilitaIVA": "S" + }, + { + "Natura": "N2", + "ImponibileImporto": "-971393503.58", + "Imposta": "43650204076.99", + "EsigibilitaIVA": "S" + } + ] + } + } + ] + } +} diff --git a/random/01.xml b/random/01.xml new file mode 100644 index 0000000..f51d42f --- /dev/null +++ b/random/01.xml @@ -0,0 +1,176 @@ + + + + + + MM + aliqua + + Excepte + FPA12 + amet ir + + + + + LZ + dolore d + + + et cupidatat + nisi + + RF17 + + + in nostrud mollit est a + 59221 + labore proident fugiat + JY + + + + + + + nulla laborum anim + velit + + + + anim ullamco + 17273 + cupidatat + CE + + + + + + + TD99 + GTL + 1948-02-43 + ea occaecat + + + + + 7835 + + -802017.4611921 + -91554.07795994 + 342.96 + + + + eiusmod + 313135607.41 + 52878025.1544 + 4.60 + + + 3977 + + 8656.49289 + -99.627 + 4.42 + + + + 2.17 + -45702394811.04 + -820007.71 + D + + + 06.00 + 450125700.45 + -1760616.57 + + + + + -79.87 + -515746.29 + S + + + 3.08 + 00647065177.90 + + I + + + + + + + TD27 + ZJS + 8986-28-53 + veni + + + + + + aliquip + 07.50667959 + -9531.1947798 + 06436375.1904356 + + + + + incididunt ex eu magna laboris + 07189829.18441273 + 2155248.02040551 + 299223.53 + + + + + + 17.8752 + -720732873.20 + -1622.4777485 + 08.73 + + + 9199 + exercitation tempor + 84368.56890609 + + 204.64 + + + 2148 + + 087150.332 + -84.67969072 + + 86.80 + + + 066.21 + -043366.47 + 2.53 + S + + + 26.85 + -48.64 + 6346299.13 + S + + + + -971393503.58 + 43650204076.99 + S + + + + + diff --git a/random/02.json b/random/02.json new file mode 100644 index 0000000..83191ba --- /dev/null +++ b/random/02.json @@ -0,0 +1,317 @@ +{ + "FatturaElettronica": { + "versione": "FPA12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "RI", + "IdCodice": "incididunt deserunt" + }, + "ProgressivoInvio": "ipsum i", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "quis d" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "IJ", + "IdCodice": "laborum ex eli" + }, + "Anagrafica": { + "Denominazione": "id consequat", + "Nome": "aliqua id est" + }, + "RegimeFiscale": "RF31" + }, + "Sede": { + "Indirizzo": "Lorem irure", + "CAP": "48484", + "Comune": "velit Ut", + "Nazione": "JH" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Denominazione": "dolore commodo ex sit", + "Cognome": "laborum aliqua proident" + } + }, + "Sede": { + "Indirizzo": "elit ut in", + "CAP": "77182", + "Comune": "sint", + "Nazione": "AT" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD15", + "Divisa": "WNE", + "Data": "5410-34-19", + "Numero": "qui id" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Quantita": "4828300298.70668957", + "PrezzoUnitario": "30654210497.1495", + "PrezzoTotale": "-095.05194158", + "AliquotaIVA": "75.47" + }, + { + "NumeroLinea": 5264, + "Descrizione": "id amet cillum sed", + "Quantita": "463838.8331", + "PrezzoUnitario": "1386.0467" + }, + { + "NumeroLinea": 6293, + "Quantita": "736009380571.20", + "PrezzoUnitario": "041231159.563878", + "AliquotaIVA": "54.59" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "98.49", + "Natura": "N2", + "ImponibileImporto": "31.63", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "89.61", + "ImponibileImporto": "5.93", + "Imposta": "-6374.38", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "98.54", + "ImponibileImporto": "-64.60", + "Imposta": "7775717100.79", + "EsigibilitaIVA": "I" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD22", + "Divisa": "BDY", + "Data": "4738-14-43", + "Numero": "veniam esse et m" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 5499, + "Quantita": "933472544.6616166", + "PrezzoTotale": "783494.51459", + "AliquotaIVA": "6.88" + }, + { + "Quantita": "187241787020.64221", + "PrezzoUnitario": "72577291736.180109", + "PrezzoTotale": "36318.85", + "AliquotaIVA": "07.34" + }, + { + "Descrizione": "ut cillum", + "Quantita": "8.233412", + "PrezzoUnitario": "-882881.868818", + "AliquotaIVA": "6.19" + }, + { + "NumeroLinea": 324, + "Quantita": "050018.0325508", + "PrezzoUnitario": "47570180747.8097567", + "AliquotaIVA": "6.04" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "763.25", + "ImponibileImporto": "-97643092389.39", + "Imposta": "-93095075770.61", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "725.63", + "Natura": "N1", + "ImponibileImporto": "4367.17", + "EsigibilitaIVA": "S" + }, + { + "Natura": "N3", + "ImponibileImporto": "4.92", + "Imposta": "-41.75", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "12.41", + "Natura": "N0", + "ImponibileImporto": "1694270.20", + "Imposta": "132625568.73" + }, + { + "AliquotaIVA": "339.73", + "ImponibileImporto": "-72481.10", + "Imposta": "-1631344.81", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD40", + "Divisa": "WIO", + "Data": "8341-15-31", + "Numero": "mollit off" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 2147, + "Descrizione": "irure consectetur", + "PrezzoUnitario": "-3739122427.60487470", + "PrezzoTotale": "1271584288.55564" + }, + { + "Descrizione": "adipisicing ut", + "Quantita": "3.260", + "PrezzoTotale": "917542300.5084", + "AliquotaIVA": "07.87" + }, + { + "Descrizione": "aliqua consequat enim", + "PrezzoUnitario": "-736220.89", + "PrezzoTotale": "-59900.23", + "AliquotaIVA": "85.56" + }, + { + "NumeroLinea": 5038, + "Quantita": "50.2919083", + "PrezzoUnitario": "654.83", + "PrezzoTotale": "95.418469" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "6.54", + "ImponibileImporto": "98504578499.22", + "Imposta": "8166181.81", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "76.53", + "Natura": "N3", + "ImponibileImporto": "7746677676.39", + "Imposta": "354972955.38" + }, + { + "AliquotaIVA": "16.40", + "Natura": "N7", + "Imposta": "-7402881921.34", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD64", + "Divisa": "DLT", + "Data": "0442-26-39", + "Numero": "id irure sed" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 5084, + "Descrizione": "magna in labore", + "Quantita": "206598481086.31631", + "PrezzoTotale": "-53869364.6334" + } + ], + "DatiRiepilogo": [ + { + "Natura": "N0", + "ImponibileImporto": "-95027401.42", + "Imposta": "080686104.85", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "89.97", + "Natura": "N7", + "ImponibileImporto": "-4994384.54", + "EsigibilitaIVA": "S" + }, + { + "Natura": "N7", + "ImponibileImporto": "-77178078.29", + "Imposta": "4962479733.74", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "103.38", + "ImponibileImporto": "63.24", + "Imposta": "-697.32", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD72", + "Divisa": "ADK", + "Data": "6461-08-97", + "Numero": "adipisicing" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Descrizione": "id", + "Quantita": "28103958.63", + "PrezzoUnitario": "-5293328843.56745936", + "PrezzoTotale": "-582227.4230" + }, + { + "NumeroLinea": 4566, + "Descrizione": "pariatur veniam fugiat", + "Quantita": "51.646589", + "PrezzoTotale": "-7819.8195611" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "44.31", + "Natura": "N8", + "ImponibileImporto": "-3013269590.74", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "10.15", + "Natura": "N3", + "ImponibileImporto": "9719819.58", + "Imposta": "-2545.29" + } + ] + } + } + ] + } +} diff --git a/random/02.xml b/random/02.xml new file mode 100644 index 0000000..006b4c1 --- /dev/null +++ b/random/02.xml @@ -0,0 +1,321 @@ + + + + + + RI + incididunt deserunt + + ipsum i + FPA12 + quis d + + + + + IJ + laborum ex eli + + + id consequat + aliqua id est + + RF31 + + + Lorem irure + 48484 + velit Ut + JH + + + + + + + dolore commodo ex sit + laborum aliqua proident + + + + elit ut in + 77182 + sint + AT + + + + + + + TD15 + WNE + 5410-34-19 + qui id + + + + + + + 4828300298.70668957 + 30654210497.1495 + -095.05194158 + 75.47 + + + 5264 + id amet cillum sed + 463838.8331 + 1386.0467 + + + + + 6293 + + 736009380571.20 + 041231159.563878 + + 54.59 + + + 98.49 + 31.63 + + I + + + 89.61 + 5.93 + -6374.38 + D + + + 98.54 + -64.60 + 7775717100.79 + I + + + + + + + TD22 + BDY + 4738-14-43 + veniam esse et m + + + + + 5499 + + 933472544.6616166 + + 783494.51459 + 6.88 + + + + + 187241787020.64221 + 72577291736.180109 + 36318.85 + 07.34 + + + + ut cillum + 8.233412 + -882881.868818 + + 6.19 + + + 324 + + 050018.0325508 + 47570180747.8097567 + + 6.04 + + + 763.25 + -97643092389.39 + -93095075770.61 + I + + + 725.63 + 4367.17 + + S + + + + 4.92 + -41.75 + D + + + 12.41 + 1694270.20 + 132625568.73 + + + + 339.73 + -72481.10 + -1631344.81 + S + + + + + + + TD40 + WIO + 8341-15-31 + mollit off + + + + + 2147 + irure consectetur + -3739122427.60487470 + 1271584288.55564 + + + + + adipisicing ut + 3.260 + + 917542300.5084 + 07.87 + + + + aliqua consequat enim + -736220.89 + -59900.23 + 85.56 + + + 5038 + + 50.2919083 + 654.83 + 95.418469 + + + + 6.54 + 98504578499.22 + 8166181.81 + D + + + 76.53 + 7746677676.39 + 354972955.38 + + + + 16.40 + + -7402881921.34 + S + + + + + + + TD64 + DLT + 0442-26-39 + id irure sed + + + + + 5084 + magna in labore + 206598481086.31631 + + -53869364.6334 + + + + + -95027401.42 + 080686104.85 + I + + + 89.97 + -4994384.54 + + S + + + + -77178078.29 + 4962479733.74 + I + + + 103.38 + 63.24 + -697.32 + S + + + + + + + TD72 + ADK + 6461-08-97 + adipisicing + + + + + + id + 28103958.63 + -5293328843.56745936 + -582227.4230 + + + + 4566 + pariatur veniam fugiat + 51.646589 + + -7819.8195611 + + + + 44.31 + -3013269590.74 + + I + + + 10.15 + 9719819.58 + -2545.29 + + + + + + diff --git a/random/03.json b/random/03.json new file mode 100644 index 0000000..9d7e508 --- /dev/null +++ b/random/03.json @@ -0,0 +1,179 @@ +{ + "FatturaElettronica": { + "versione": "FPA12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "BU", + "IdCodice": "ullamco aute" + }, + "ProgressivoInvio": "aliquip e", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "nostrud" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "SF", + "IdCodice": "ex dolore" + }, + "Anagrafica": { + "Nome": "laborum Ut ex est", + "Cognome": "non officia nostrud in" + }, + "RegimeFiscale": "RF89" + }, + "Sede": { + "Indirizzo": "Lorem in adipisicing cupidatat qui", + "CAP": "71501", + "Comune": "culpa", + "Nazione": "TX" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Nome": "id Lorem mollit pro", + "Cognome": "ad" + } + }, + "Sede": { + "Indirizzo": "culpa deserunt cillum Dui", + "CAP": "84423", + "Comune": "adipisicing in ", + "Nazione": "BU" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD17", + "Divisa": "LPV", + "Data": "9933-98-48", + "Numero": "officia mo" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 7036, + "Descrizione": "consectetur officia laboris ad fugiat", + "Quantita": "57935.0068", + "PrezzoTotale": "95264762439.21580378" + }, + { + "NumeroLinea": 2766, + "Quantita": "405869.59", + "PrezzoUnitario": "198702.921", + "AliquotaIVA": "18.06" + }, + { + "NumeroLinea": 6860, + "Descrizione": "Ut officia", + "PrezzoUnitario": "7441.8496", + "AliquotaIVA": "3.58" + }, + { + "Descrizione": "labore commodo sed elit ad", + "Quantita": "70854942827.957368", + "PrezzoTotale": "6461.9687137", + "AliquotaIVA": "427.75" + }, + { + "Descrizione": "incididunt ad reprehenderit dolore", + "PrezzoUnitario": "-67658767.89406817", + "PrezzoTotale": "0308759.000311", + "AliquotaIVA": "056.84" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "5.78", + "Natura": "N3", + "ImponibileImporto": "-032.96", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "0.89", + "ImponibileImporto": "-4347019620.05", + "Imposta": "107581674.37", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "9.83", + "Natura": "N4", + "Imposta": "88053701.51", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD10", + "Divisa": "KWY", + "Data": "8881-46-46", + "Numero": "elit aliqu" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 5118, + "Quantita": "45843259.758413", + "PrezzoTotale": "-798856807.01705", + "AliquotaIVA": "1.91" + }, + { + "NumeroLinea": 4348, + "Descrizione": "elit ex sit consectetur", + "Quantita": "217018.5214", + "PrezzoUnitario": "1189130.24095677" + }, + { + "NumeroLinea": 8501, + "Descrizione": "sit eu Ut sunt", + "PrezzoUnitario": "-3036.41882551", + "AliquotaIVA": "5.34" + }, + { + "Descrizione": "qui dolore dolor ea elit", + "Quantita": "2.674678", + "PrezzoUnitario": "0550.960", + "PrezzoTotale": "-61771549273.150" + }, + { + "NumeroLinea": 9866, + "Quantita": "62983.644713", + "PrezzoUnitario": "2144249602.297", + "AliquotaIVA": "74.39" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "1.92", + "Natura": "N9", + "Imposta": "-88057514091.45", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "8.80", + "ImponibileImporto": "-1777268.02", + "Imposta": "113904898.29", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "4.60", + "ImponibileImporto": "416.89", + "Imposta": "-27.17", + "EsigibilitaIVA": "D" + } + ] + } + } + ] + } +} diff --git a/random/03.xml b/random/03.xml new file mode 100644 index 0000000..960e1ea --- /dev/null +++ b/random/03.xml @@ -0,0 +1,186 @@ + + + + + + BU + ullamco aute + + aliquip e + FPA12 + nostrud + + + + + SF + ex dolore + + + laborum Ut ex est + non officia nostrud in + + RF89 + + + Lorem in adipisicing cupidatat qui + 71501 + culpa + TX + + + + + + + id Lorem mollit pro + ad + + + + culpa deserunt cillum Dui + 84423 + adipisicing in + BU + + + + + + + TD17 + LPV + 9933-98-48 + officia mo + + + + + 7036 + consectetur officia laboris ad fugiat + 57935.0068 + + 95264762439.21580378 + + + + 2766 + + 405869.59 + 198702.921 + + 18.06 + + + 6860 + Ut officia + 7441.8496 + + 3.58 + + + + labore commodo sed elit ad + 70854942827.957368 + + 6461.9687137 + 427.75 + + + + incididunt ad reprehenderit dolore + -67658767.89406817 + 0308759.000311 + 056.84 + + + 5.78 + -032.96 + + I + + + 0.89 + -4347019620.05 + 107581674.37 + I + + + 9.83 + + 88053701.51 + S + + + + + + + TD10 + KWY + 8881-46-46 + elit aliqu + + + + + 5118 + + 45843259.758413 + + -798856807.01705 + 1.91 + + + 4348 + elit ex sit consectetur + 217018.5214 + 1189130.24095677 + + + + + 8501 + sit eu Ut sunt + -3036.41882551 + + 5.34 + + + + qui dolore dolor ea elit + 2.674678 + 0550.960 + -61771549273.150 + + + + 9866 + + 62983.644713 + 2144249602.297 + + 74.39 + + + 1.92 + + -88057514091.45 + D + + + 8.80 + -1777268.02 + 113904898.29 + D + + + 4.60 + 416.89 + -27.17 + D + + + + + diff --git a/random/04.json b/random/04.json new file mode 100644 index 0000000..392f58b --- /dev/null +++ b/random/04.json @@ -0,0 +1,311 @@ +{ + "FatturaElettronica": { + "versione": "FPR12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "KG", + "IdCodice": "esse quis" + }, + "ProgressivoInvio": "labore occ", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "sed cu" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "WR", + "IdCodice": "sed" + }, + "Anagrafica": { + "Nome": "si", + "Cognome": "fugiat dolor" + }, + "RegimeFiscale": "RF73" + }, + "Sede": { + "Indirizzo": "incididunt Lorem", + "CAP": "45852", + "Comune": "Ut nisi", + "Nazione": "VX" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Denominazione": "lab", + "Cognome": "i" + } + }, + "Sede": { + "Indirizzo": "deserunt dolore ", + "CAP": "27295", + "Comune": "consequat ut", + "Nazione": "ZP" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD92", + "Divisa": "TMO", + "Data": "2418-22-62", + "Numero": "exer" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 827, + "Descrizione": "tempor dolore sit", + "PrezzoTotale": "-9558803.183", + "AliquotaIVA": "986.10" + }, + { + "Descrizione": "reprehenderit est ut incididunt proident", + "PrezzoUnitario": "-8.728", + "PrezzoTotale": "0700.94", + "AliquotaIVA": "2.65" + }, + { + "NumeroLinea": 323, + "Quantita": "525319802072.7168830", + "PrezzoUnitario": "8710616.2733", + "AliquotaIVA": "4.24" + }, + { + "Descrizione": "anim in", + "PrezzoUnitario": "4495299853.47176598", + "PrezzoTotale": "-388190867.998", + "AliquotaIVA": "8.09" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "2.28", + "ImponibileImporto": "-632.01", + "Imposta": "-888993359.99", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "310.88", + "Natura": "N5", + "Imposta": "-46716580153.00", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "9.34", + "Natura": "N1", + "ImponibileImporto": "1355936231.77", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "143.03", + "Natura": "N6", + "ImponibileImporto": "051195.98", + "EsigibilitaIVA": "I" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD61", + "Divisa": "XDI", + "Data": "6153-56-37", + "Numero": "laborum vel" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 2952, + "Descrizione": "in ex id dolor Excepteur", + "PrezzoUnitario": "-0978157664.57", + "PrezzoTotale": "6116.80" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "1.28", + "ImponibileImporto": "-08336.82", + "Imposta": "70246992.67", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "86.49", + "Natura": "N2", + "Imposta": "-973935419.71", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "2.86", + "Natura": "N5", + "ImponibileImporto": "-7312885.12", + "Imposta": "-61125.08" + }, + { + "AliquotaIVA": "3.07", + "Natura": "N4", + "ImponibileImporto": "-62853826.35", + "EsigibilitaIVA": "D" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD40", + "Divisa": "NYV", + "Data": "9796-17-57", + "Numero": "reprehenderit al" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Quantita": "106891996.95336741", + "PrezzoUnitario": "5765.935658", + "PrezzoTotale": "-107393592.01605", + "AliquotaIVA": "485.82" + }, + { + "Descrizione": "in", + "PrezzoUnitario": "8406577502.95", + "PrezzoTotale": "82323.857", + "AliquotaIVA": "90.09" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "2.32", + "Natura": "N1", + "ImponibileImporto": "0971766.13", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "492.36", + "ImponibileImporto": "3.72", + "Imposta": "5189.12", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "168.09", + "ImponibileImporto": "-1.39", + "Imposta": "9875963.38", + "EsigibilitaIVA": "I" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD35", + "Divisa": "ISV", + "Data": "9613-43-99", + "Numero": "sunt minim ipsum" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 3316, + "Quantita": "31010.17859317", + "PrezzoUnitario": "0715678.310198", + "AliquotaIVA": "47.84" + }, + { + "Descrizione": "ut id dolor", + "PrezzoUnitario": "-8105.3945", + "PrezzoTotale": "30.82", + "AliquotaIVA": "45.16" + }, + { + "Descrizione": "aliqua adipisicing in dolor ut", + "PrezzoUnitario": "66.923", + "PrezzoTotale": "-01222998.400", + "AliquotaIVA": "7.63" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "53.47", + "Natura": "N9", + "ImponibileImporto": "69.82", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "596.52", + "ImponibileImporto": "24583164.51", + "Imposta": "0268784.75", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "8.51", + "Natura": "N2", + "ImponibileImporto": "0047163013.81", + "EsigibilitaIVA": "I" + }, + { + "Natura": "N2", + "ImponibileImporto": "-5452378.37", + "Imposta": "3851.76", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "5.58", + "Natura": "N7", + "Imposta": "17.62", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD90", + "Divisa": "RDH", + "Data": "1866-39-39", + "Numero": "dolor" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 2827, + "Descrizione": "deserunt culpa", + "Quantita": "357.5298", + "PrezzoUnitario": "-5223964.3092" + }, + { + "Descrizione": "est laborum", + "Quantita": "151141.662890", + "PrezzoUnitario": "1.37453969", + "PrezzoTotale": "-6880.594728" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "6.71", + "Natura": "N9", + "ImponibileImporto": "-7910.93", + "Imposta": "-5705472.75" + }, + { + "Natura": "N7", + "ImponibileImporto": "9891409068.78", + "Imposta": "223592.59", + "EsigibilitaIVA": "S" + } + ] + } + } + ] + } +} diff --git a/random/04.xml b/random/04.xml new file mode 100644 index 0000000..552cdec --- /dev/null +++ b/random/04.xml @@ -0,0 +1,306 @@ + + + + + + KG + esse quis + + labore occ + FPA12 + sed cu + + + + + WR + sed + + + si + fugiat dolor + + RF73 + + + incididunt Lorem + 45852 + Ut nisi + VX + + + + + + + lab + i + + + + deserunt dolore + 27295 + consequat ut + ZP + + + + + + + TD92 + TMO + 2418-22-62 + exer + + + + + 827 + tempor dolore sit + + -9558803.183 + 986.10 + + + + reprehenderit est ut incididunt proident + -8.728 + 0700.94 + 2.65 + + + 323 + + 525319802072.7168830 + 8710616.2733 + + 4.24 + + + + anim in + 4495299853.47176598 + -388190867.998 + 8.09 + + + 2.28 + -632.01 + -888993359.99 + S + + + 310.88 + + -46716580153.00 + D + + + 9.34 + 1355936231.77 + + S + + + 143.03 + 051195.98 + + I + + + + + + + TD61 + XDI + 6153-56-37 + laborum vel + + + + + 2952 + in ex id dolor Excepteur + -0978157664.57 + 6116.80 + + + + 1.28 + -08336.82 + 70246992.67 + I + + + 86.49 + + -973935419.71 + S + + + 2.86 + -7312885.12 + -61125.08 + + + + 3.07 + -62853826.35 + + D + + + + + + + TD40 + NYV + 9796-17-57 + reprehenderit al + + + + + + + 106891996.95336741 + 5765.935658 + -107393592.01605 + 485.82 + + + + in + 8406577502.95 + 82323.857 + 90.09 + + + 2.32 + 0971766.13 + + I + + + 492.36 + 3.72 + 5189.12 + S + + + 168.09 + -1.39 + 9875963.38 + I + + + + + + + TD35 + ISV + 9613-43-99 + sunt minim ipsum + + + + + 3316 + + 31010.17859317 + 0715678.310198 + + 47.84 + + + + ut id dolor + -8105.3945 + 30.82 + 45.16 + + + + aliqua adipisicing in dolor ut + 66.923 + -01222998.400 + 7.63 + + + 53.47 + 69.82 + + I + + + 596.52 + 24583164.51 + 0268784.75 + D + + + 8.51 + 0047163013.81 + + I + + + + -5452378.37 + 3851.76 + I + + + 5.58 + + 17.62 + S + + + + + + + TD90 + RDH + 1866-39-39 + dolor + + + + + 2827 + deserunt culpa + 357.5298 + -5223964.3092 + + + + + + est laborum + 151141.662890 + 1.37453969 + -6880.594728 + + + + 6.71 + -7910.93 + -5705472.75 + + + + + 9891409068.78 + 223592.59 + S + + + + + diff --git a/random/05.json b/random/05.json new file mode 100644 index 0000000..52a481b --- /dev/null +++ b/random/05.json @@ -0,0 +1,149 @@ +{ + "FatturaElettronica": { + "versione": "FPR12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "XL", + "IdCodice": "anim enim culp" + }, + "ProgressivoInvio": "aliqu", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "aliqua " + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "YO", + "IdCodice": "offi" + }, + "Anagrafica": { + "Denominazione": "ut Ut dolor", + "Cognome": "Excepteur ipsum sit laboris laborum" + }, + "RegimeFiscale": "RF13" + }, + "Sede": { + "Indirizzo": "enim sed non fugiat", + "CAP": "34960", + "Comune": "ea incididunt qui enim", + "Nazione": "PR" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Denominazione": "veniam Lorem dolore do comm", + "Nome": "nostrud dolor magna et" + } + }, + "Sede": { + "Indirizzo": "cupidatat velit ", + "CAP": "28924", + "Comune": "fugiat dolor", + "Nazione": "UL" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD88", + "Divisa": "NJE", + "Data": "2148-41-34", + "Numero": "e" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 3561, + "Descrizione": "ut pariatur", + "PrezzoUnitario": "-91.8944", + "AliquotaIVA": "919.30" + }, + { + "NumeroLinea": 8496, + "Quantita": "7.41989353", + "PrezzoTotale": "446476967.2163", + "AliquotaIVA": "14.30" + } + ], + "DatiRiepilogo": [ + { + "Natura": "N8", + "ImponibileImporto": "1158.60", + "Imposta": "85642038941.33", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "68.91", + "ImponibileImporto": "0.39", + "Imposta": "-457.74", + "EsigibilitaIVA": "S" + }, + { + "Natura": "N7", + "ImponibileImporto": "644.37", + "Imposta": "934847468.93", + "EsigibilitaIVA": "D" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD30", + "Divisa": "JMY", + "Data": "1743-95-75", + "Numero": "sit deserunt" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 3244, + "Descrizione": "occaecat", + "Quantita": "4618959.19956973", + "PrezzoUnitario": "9454312183.193629" + }, + { + "NumeroLinea": 7139, + "Descrizione": "sed cupidatat sint", + "PrezzoTotale": "85.594268", + "AliquotaIVA": "5.96" + }, + { + "NumeroLinea": 2440, + "Descrizione": "dolore magna", + "Quantita": "63.590885", + "AliquotaIVA": "522.26" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "2.55", + "Natura": "N5", + "ImponibileImporto": "-48284023105.17", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "2.03", + "Natura": "N5", + "Imposta": "-42963779557.43", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "87.34", + "Natura": "N0", + "Imposta": "-9881154869.73", + "EsigibilitaIVA": "S" + } + ] + } + } + ] + } +} diff --git a/random/05.xml b/random/05.xml new file mode 100644 index 0000000..95c9237 --- /dev/null +++ b/random/05.xml @@ -0,0 +1,147 @@ + + + + + + XL + anim enim culp + + aliqu + FPA12 + aliqua + + + + + YO + offi + + + ut Ut dolor + Excepteur ipsum sit laboris laborum + + RF13 + + + enim sed non fugiat + 34960 + ea incididunt qui enim + PR + + + + + + + veniam Lorem dolore do comm + nostrud dolor magna et + + + + cupidatat velit + 28924 + fugiat dolor + UL + + + + + + + TD88 + NJE + 2148-41-34 + e + + + + + 3561 + ut pariatur + -91.8944 + + 919.30 + + + 8496 + + 7.41989353 + + 446476967.2163 + 14.30 + + + + 1158.60 + 85642038941.33 + D + + + 68.91 + 0.39 + -457.74 + S + + + + 644.37 + 934847468.93 + D + + + + + + + TD30 + JMY + 1743-95-75 + sit deserunt + + + + + 3244 + occaecat + 4618959.19956973 + 9454312183.193629 + + + + + 7139 + sed cupidatat sint + + 85.594268 + 5.96 + + + 2440 + dolore magna + 63.590885 + + + 522.26 + + + 2.55 + -48284023105.17 + + I + + + 2.03 + + -42963779557.43 + S + + + 87.34 + + -9881154869.73 + S + + + + + diff --git a/random/06.json b/random/06.json new file mode 100644 index 0000000..79002b8 --- /dev/null +++ b/random/06.json @@ -0,0 +1,275 @@ +{ + "FatturaElettronica": { + "versione": "FPA12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "QP", + "IdCodice": "do cupidata" + }, + "ProgressivoInvio": "in", + "FormatoTrasmissione": "FPR12", + "CodiceDestinatario": "adipis" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "RS", + "IdCodice": "ad" + }, + "Anagrafica": { + "Denominazione": "est dolor nisi occaecat nostrud", + "Cognome": "nostrud dolor irure" + }, + "RegimeFiscale": "RF24" + }, + "Sede": { + "Indirizzo": "anim", + "CAP": "21703", + "Comune": "minim ", + "Nazione": "XE" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Denominazione": "vo", + "Nome": "E" + } + }, + "Sede": { + "Indirizzo": "dolore laborum fugiat commodo", + "CAP": "41319", + "Comune": "aliqui", + "Nazione": "DU" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD77", + "Divisa": "WYB", + "Data": "7804-77-61", + "Numero": "sint laboris eiu" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Descrizione": "commodo aute aliquip", + "Quantita": "3.5999934", + "PrezzoTotale": "-87981.126125", + "AliquotaIVA": "717.53" + }, + { + "NumeroLinea": 699, + "Descrizione": "cupidatat officia", + "PrezzoUnitario": "-219792956.77", + "AliquotaIVA": "6.37" + }, + { + "NumeroLinea": 2239, + "Descrizione": "commodo enim nostrud ad", + "PrezzoUnitario": "-08.46702930", + "PrezzoTotale": "0685142108.9153112" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "1.24", + "Natura": "N5", + "ImponibileImporto": "-672874.45", + "Imposta": "656471.09" + }, + { + "Natura": "N2", + "ImponibileImporto": "2674.71", + "Imposta": "77835348144.58", + "EsigibilitaIVA": "D" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD75", + "Divisa": "FQL", + "Data": "7169-38-59", + "Numero": "anim veniam" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 7124, + "Descrizione": "minim commodo esse dolor", + "PrezzoTotale": "518514620.85", + "AliquotaIVA": "05.73" + }, + { + "NumeroLinea": 5270, + "PrezzoUnitario": "-516543.551", + "PrezzoTotale": "-998860.847195", + "AliquotaIVA": "930.14" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "46.03", + "ImponibileImporto": "663295.75", + "Imposta": "-2838734601.13", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "335.15", + "ImponibileImporto": "-256824154.42", + "Imposta": "3465043518.67", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD15", + "Divisa": "NTN", + "Data": "2617-43-20", + "Numero": "eu" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Descrizione": "nisi nulla", + "PrezzoUnitario": "-2586272911.84", + "PrezzoTotale": "567.4324758", + "AliquotaIVA": "674.16" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "99.86", + "Natura": "N1", + "ImponibileImporto": "47.03", + "EsigibilitaIVA": "I" + }, + { + "Natura": "N5", + "ImponibileImporto": "3031118389.29", + "Imposta": "39022660.70", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD86", + "Divisa": "ZOU", + "Data": "2686-38-51", + "Numero": "su" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Quantita": "0989531.7685", + "PrezzoUnitario": "261.95", + "PrezzoTotale": "957.784980", + "AliquotaIVA": "8.01" + }, + { + "Descrizione": "nulla", + "Quantita": "303172.675050", + "PrezzoUnitario": "-053914.88820", + "AliquotaIVA": "7.23" + }, + { + "NumeroLinea": 4590, + "Descrizione": "do non Excepteur", + "PrezzoTotale": "8.8691", + "AliquotaIVA": "26.28" + } + ], + "DatiRiepilogo": [ + { + "Natura": "N4", + "ImponibileImporto": "70.30", + "Imposta": "-600277.11", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "8.96", + "Natura": "N5", + "ImponibileImporto": "-54.28", + "Imposta": "0.57" + }, + { + "Natura": "N1", + "ImponibileImporto": "67822.62", + "Imposta": "827.59", + "EsigibilitaIVA": "S" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD42", + "Divisa": "TUM", + "Data": "5987-34-56", + "Numero": "culpa qui" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 7618, + "Quantita": "53785895114.82968", + "PrezzoTotale": "-38660568.76", + "AliquotaIVA": "7.27" + }, + { + "Descrizione": "reprehenderit quis ex", + "Quantita": "86899434.0553872", + "PrezzoUnitario": "-83.858", + "AliquotaIVA": "5.61" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "86.72", + "Natura": "N9", + "Imposta": "5263599323.63", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "9.05", + "ImponibileImporto": "-1433705461.66", + "Imposta": "466.07", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "315.94", + "Natura": "N3", + "ImponibileImporto": "-7203436.38", + "Imposta": "-4.65" + }, + { + "Natura": "N4", + "ImponibileImporto": "1681.62", + "Imposta": "527264.65", + "EsigibilitaIVA": "D" + } + ] + } + } + ] + } +} diff --git a/random/06.xml b/random/06.xml new file mode 100644 index 0000000..2670af3 --- /dev/null +++ b/random/06.xml @@ -0,0 +1,269 @@ + + + + + + QP + do cupidata + + in + FPR12 + adipis + + + + + RS + ad + + + est dolor nisi occaecat nostrud + nostrud dolor irure + + RF24 + + + anim + 21703 + minim + XE + + + + + + + vo + E + + + + dolore laborum fugiat commodo + 41319 + aliqui + DU + + + + + + + TD77 + WYB + 7804-77-61 + sint laboris eiu + + + + + + commodo aute aliquip + 3.5999934 + + -87981.126125 + 717.53 + + + 699 + cupidatat officia + -219792956.77 + + 6.37 + + + 2239 + commodo enim nostrud ad + -08.46702930 + 0685142108.9153112 + + + + 1.24 + -672874.45 + 656471.09 + + + + + 2674.71 + 77835348144.58 + D + + + + + + + TD75 + FQL + 7169-38-59 + anim veniam + + + + + 7124 + minim commodo esse dolor + + 518514620.85 + 05.73 + + + 5270 + + -516543.551 + -998860.847195 + 930.14 + + + 46.03 + 663295.75 + -2838734601.13 + S + + + 335.15 + -256824154.42 + 3465043518.67 + S + + + + + + + TD15 + NTN + 2617-43-20 + eu + + + + + + nisi nulla + -2586272911.84 + 567.4324758 + 674.16 + + + 99.86 + 47.03 + + I + + + + 3031118389.29 + 39022660.70 + S + + + + + + + TD86 + ZOU + 2686-38-51 + su + + + + + + + 0989531.7685 + 261.95 + 957.784980 + 8.01 + + + + nulla + 303172.675050 + -053914.88820 + + 7.23 + + + 4590 + do non Excepteur + + 8.8691 + 26.28 + + + + 70.30 + -600277.11 + I + + + 8.96 + -54.28 + 0.57 + + + + + 67822.62 + 827.59 + S + + + + + + + TD42 + TUM + 5987-34-56 + culpa qui + + + + + 7618 + + 53785895114.82968 + + -38660568.76 + 7.27 + + + + reprehenderit quis ex + 86899434.0553872 + -83.858 + + 5.61 + + + 86.72 + + 5263599323.63 + S + + + 9.05 + -1433705461.66 + 466.07 + S + + + 315.94 + -7203436.38 + -4.65 + + + + + 1681.62 + 527264.65 + D + + + + + diff --git a/random/07.json b/random/07.json new file mode 100644 index 0000000..d645abd --- /dev/null +++ b/random/07.json @@ -0,0 +1,259 @@ +{ + "FatturaElettronica": { + "versione": "FPR12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "NC", + "IdCodice": "est et v" + }, + "ProgressivoInvio": "velit ips", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "labore" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "VB", + "IdCodice": "esse" + }, + "Anagrafica": { + "Denominazione": "in culpa ipsum", + "Nome": "aute laborum reprehenderit ea" + }, + "RegimeFiscale": "RF27" + }, + "Sede": { + "Indirizzo": "Excepteur ad se", + "CAP": "91733", + "Comune": "nostrud ad", + "Nazione": "DB" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Nome": "culpa minim pariatur", + "Cognome": "officia sunt ut magn" + } + }, + "Sede": { + "Indirizzo": "anim incididunt", + "CAP": "53584", + "Comune": "ipsum ullamco", + "Nazione": "XQ" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD21", + "Divisa": "HBJ", + "Data": "6963-43-67", + "Numero": "ex laboris consecte" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Descrizione": "irure in sunt exercitation", + "PrezzoUnitario": "07650451.858258", + "PrezzoTotale": "-2.6991", + "AliquotaIVA": "82.87" + }, + { + "NumeroLinea": 4409, + "Descrizione": "enim occaecat", + "Quantita": "6544474401.6364", + "PrezzoTotale": "6825810.42679" + }, + { + "NumeroLinea": 8557, + "Descrizione": "ad", + "PrezzoTotale": "-694884.83555032", + "AliquotaIVA": "67.40" + }, + { + "NumeroLinea": 7080, + "Quantita": "14.627311", + "PrezzoTotale": "7472537071.7966359", + "AliquotaIVA": "84.59" + }, + { + "NumeroLinea": 7708, + "Descrizione": "esse sit qui aliquip", + "PrezzoUnitario": "-85279549.021747", + "AliquotaIVA": "83.08" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "3.10", + "Natura": "N6", + "ImponibileImporto": "-6.15", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "947.45", + "Natura": "N9", + "ImponibileImporto": "-62768160447.54", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "649.57", + "Natura": "N2", + "Imposta": "-36.88", + "EsigibilitaIVA": "I" + }, + { + "Natura": "N0", + "ImponibileImporto": "11908.61", + "Imposta": "-549178630.55", + "EsigibilitaIVA": "D" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD83", + "Divisa": "GPI", + "Data": "6118-34-78", + "Numero": "Du" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "Descrizione": "quis labore", + "Quantita": "62583.58844401", + "PrezzoUnitario": "-28667.203", + "AliquotaIVA": "2.58" + }, + { + "NumeroLinea": 35, + "Descrizione": "ipsum Lorem", + "PrezzoUnitario": "3194962.01", + "PrezzoTotale": "-92793084701.509" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "04.30", + "Natura": "N9", + "ImponibileImporto": "-20115762.79", + "Imposta": "-62196.81" + }, + { + "AliquotaIVA": "05.51", + "Natura": "N6", + "ImponibileImporto": "51687.64", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "0.36", + "Natura": "N7", + "Imposta": "3358013.90", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "38.23", + "Natura": "N9", + "Imposta": "77.06", + "EsigibilitaIVA": "I" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD40", + "Divisa": "LZO", + "Data": "5062-19-00", + "Numero": "commodo laboru" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 8962, + "Descrizione": "esse consequat ut elit", + "Quantita": "55505414326.483494", + "AliquotaIVA": "17.08" + }, + { + "NumeroLinea": 1142, + "Descrizione": "ad velit nostrud ex", + "PrezzoUnitario": "-9222097.48", + "PrezzoTotale": "7.626" + }, + { + "NumeroLinea": 7896, + "Descrizione": "minim ", + "Quantita": "7846849049.13652277", + "PrezzoUnitario": "-94501332102.45773654" + } + ], + "DatiRiepilogo": [ + { + "Natura": "N8", + "ImponibileImporto": "8067.77", + "Imposta": "-85652197401.21", + "EsigibilitaIVA": "S" + }, + { + "Natura": "N4", + "ImponibileImporto": "-9645.64", + "Imposta": "-9730.44", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "7.45", + "Natura": "N7", + "ImponibileImporto": "95156435589.52", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "049.20", + "ImponibileImporto": "-60.00", + "Imposta": "-09175510.93", + "EsigibilitaIVA": "I" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD00", + "Divisa": "ECT", + "Data": "3450-01-51", + "Numero": "sint quis est et" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 3588, + "Descrizione": "ex non pariatur", + "PrezzoUnitario": "9.93405", + "PrezzoTotale": "-181.93" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "87.80", + "Natura": "N5", + "ImponibileImporto": "-3.94", + "EsigibilitaIVA": "S" + } + ] + } + } + ] + } +} diff --git a/random/07.xml b/random/07.xml new file mode 100644 index 0000000..da82439 --- /dev/null +++ b/random/07.xml @@ -0,0 +1,257 @@ + + + + + + NC + est et v + + velit ips + FPA12 + labore + + + + + VB + esse + + + in culpa ipsum + aute laborum reprehenderit ea + + RF27 + + + Excepteur ad se + 91733 + nostrud ad + DB + + + + + + + culpa minim pariatur + officia sunt ut magn + + + + anim incididunt + 53584 + ipsum ullamco + XQ + + + + + + + TD21 + HBJ + 6963-43-67 + ex laboris consecte + + + + + + irure in sunt exercitation + 07650451.858258 + -2.6991 + 82.87 + + + 4409 + enim occaecat + 6544474401.6364 + + 6825810.42679 + + + + 8557 + ad + + -694884.83555032 + 67.40 + + + 7080 + + 14.627311 + + 7472537071.7966359 + 84.59 + + + 7708 + esse sit qui aliquip + -85279549.021747 + + 83.08 + + + 3.10 + -6.15 + + D + + + 947.45 + -62768160447.54 + + S + + + 649.57 + + -36.88 + I + + + + 11908.61 + -549178630.55 + D + + + + + + + TD83 + GPI + 6118-34-78 + Du + + + + + + quis labore + 62583.58844401 + -28667.203 + + 2.58 + + + 35 + ipsum Lorem + 3194962.01 + -92793084701.509 + + + + 04.30 + -20115762.79 + -62196.81 + + + + 05.51 + 51687.64 + + I + + + 0.36 + + 3358013.90 + I + + + 38.23 + + 77.06 + I + + + + + + + TD40 + LZO + 5062-19-00 + commodo laboru + + + + + 8962 + esse consequat ut elit + 55505414326.483494 + + + 17.08 + + + 1142 + ad velit nostrud ex + -9222097.48 + 7.626 + + + + 7896 + minim + 7846849049.13652277 + -94501332102.45773654 + + + + + + 8067.77 + -85652197401.21 + S + + + + -9645.64 + -9730.44 + S + + + 7.45 + 95156435589.52 + + S + + + 049.20 + -60.00 + -09175510.93 + I + + + + + + + TD00 + ECT + 3450-01-51 + sint quis est et + + + + + 3588 + ex non pariatur + 9.93405 + -181.93 + + + + 87.80 + -3.94 + + S + + + + + diff --git a/random/08.json b/random/08.json new file mode 100644 index 0000000..7e53b11 --- /dev/null +++ b/random/08.json @@ -0,0 +1,125 @@ +{ + "FatturaElettronica": { + "versione": "FPR12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "IO", + "IdCodice": "eu esse exercitation" + }, + "ProgressivoInvio": "offici", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "id ull" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "ZB", + "IdCodice": "cons" + }, + "Anagrafica": { + "Denominazione": "id fugiat", + "Cognome": "reprehenderit et enim" + }, + "RegimeFiscale": "RF10" + }, + "Sede": { + "Indirizzo": "eiusm", + "CAP": "31889", + "Comune": "in est", + "Nazione": "JU" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Denominazione": "eu labore adipisicing ex", + "Cognome": "consectetur ea eius" + } + }, + "Sede": { + "Indirizzo": "in non Lorem veniam", + "CAP": "90982", + "Comune": "enim sed consectetur Duis", + "Nazione": "SC" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD75", + "Divisa": "LCE", + "Data": "1581-16-43", + "Numero": "fugi" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 9260, + "Descrizione": "ex", + "Quantita": "39.74", + "AliquotaIVA": "26.51" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "012.10", + "Natura": "N6", + "ImponibileImporto": "362.31", + "Imposta": "2589379966.31" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD27", + "Divisa": "KKB", + "Data": "5856-04-11", + "Numero": "co" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 1288, + "Descrizione": "magna eiusmod minim", + "PrezzoUnitario": "-62057982.2929572", + "AliquotaIVA": "45.94" + }, + { + "NumeroLinea": 7735, + "Descrizione": "proident consequat laboris minim eu", + "PrezzoUnitario": "-47034.3141212", + "PrezzoTotale": "-8023.0887" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "79.96", + "Natura": "N4", + "ImponibileImporto": "-5263002.69", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "9.53", + "Natura": "N1", + "Imposta": "29150.12", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "200.98", + "Natura": "N9", + "ImponibileImporto": "-4896720.15", + "EsigibilitaIVA": "S" + } + ] + } + } + ] + } +} diff --git a/random/08.xml b/random/08.xml new file mode 100644 index 0000000..fb2e7f9 --- /dev/null +++ b/random/08.xml @@ -0,0 +1,119 @@ + + + + + + IO + eu esse exercitation + + offici + FPA12 + id ull + + + + + ZB + cons + + + id fugiat + reprehenderit et enim + + RF10 + + + eiusm + 31889 + in est + JU + + + + + + + eu labore adipisicing ex + consectetur ea eius + + + + in non Lorem veniam + 90982 + enim sed consectetur Duis + SC + + + + + + + TD75 + LCE + 1581-16-43 + fugi + + + + + 9260 + ex + 39.74 + + + 26.51 + + + 012.10 + 362.31 + 2589379966.31 + + + + + + + + TD27 + KKB + 5856-04-11 + co + + + + + 1288 + magna eiusmod minim + -62057982.2929572 + + 45.94 + + + 7735 + proident consequat laboris minim eu + -47034.3141212 + -8023.0887 + + + + 79.96 + -5263002.69 + + S + + + 9.53 + + 29150.12 + I + + + 200.98 + -4896720.15 + + S + + + + + diff --git a/random/09.json b/random/09.json new file mode 100644 index 0000000..cdd4871 --- /dev/null +++ b/random/09.json @@ -0,0 +1,185 @@ +{ + "FatturaElettronica": { + "versione": "FPR12", + "FatturaElettronicaHeader": { + "DatiTrasmissione": { + "IdTrasmittente": { + "IdPaese": "AG", + "IdCodice": "do ullamco" + }, + "ProgressivoInvio": "elit ", + "FormatoTrasmissione": "FPA12", + "CodiceDestinatario": "estmini" + }, + "CedentePrestatore": { + "DatiAnagrafici": { + "IdFiscaleIVA": { + "IdPaese": "RZ", + "IdCodice": "esse ad m" + }, + "Anagrafica": { + "Denominazione": "nostrud", + "Cognome": "deserunt qui" + }, + "RegimeFiscale": "RF15" + }, + "Sede": { + "Indirizzo": "esse sunt quis au", + "CAP": "97135", + "Comune": "occaecat esse", + "Nazione": "QN" + } + }, + "CessionarioCommittente": { + "DatiAnagrafici": { + "Anagrafica": { + "Denominazione": "ullamco ame", + "Cognome": "tempor amet occaecat" + } + }, + "Sede": { + "Indirizzo": "enim sint exercitation", + "CAP": "46747", + "Comune": "velit eiusmod mollit laborum qui", + "Nazione": "SF" + } + } + }, + "FatturaElettronicaBody": [ + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD53", + "Divisa": "ZMY", + "Data": "4624-10-56", + "Numero": "quis dolore conse" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 4552, + "Descrizione": "cupidatat magna consectetur ipsum officia", + "PrezzoUnitario": "-4.09557", + "PrezzoTotale": "3.917560" + }, + { + "NumeroLinea": 7807, + "Descrizione": "anim in", + "PrezzoTotale": "-52690.58", + "AliquotaIVA": "858.23" + }, + { + "NumeroLinea": 9406, + "Descrizione": "sit", + "PrezzoUnitario": "341974.707", + "AliquotaIVA": "9.95" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "15.56", + "ImponibileImporto": "3176.34", + "Imposta": "-7261.16", + "EsigibilitaIVA": "I" + }, + { + "AliquotaIVA": "11.41", + "Natura": "N3", + "ImponibileImporto": "-086.40", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "79.56", + "ImponibileImporto": "-7853.63", + "Imposta": "909475645.54", + "EsigibilitaIVA": "I" + }, + { + "Natura": "N8", + "ImponibileImporto": "-017053939.19", + "Imposta": "6775.62", + "EsigibilitaIVA": "D" + }, + { + "Natura": "N5", + "ImponibileImporto": "-951439692.05", + "Imposta": "-62544898343.03", + "EsigibilitaIVA": "D" + } + ] + } + }, + { + "DatiGenerali": { + "DatiGeneraliDocumento": { + "TipoDocumento": "TD15", + "Divisa": "VHO", + "Data": "0808-54-41", + "Numero": "dolor" + } + }, + "DatiBeniServizi": { + "DettaglioLinee": [ + { + "NumeroLinea": 3337, + "PrezzoUnitario": "73624120618.06", + "PrezzoTotale": "-5088152.98", + "AliquotaIVA": "15.52" + }, + { + "NumeroLinea": 3814, + "PrezzoUnitario": "4.319865", + "PrezzoTotale": "-95448194.4267", + "AliquotaIVA": "045.92" + }, + { + "NumeroLinea": 9553, + "Quantita": "7.4540038", + "PrezzoTotale": "-65.573119", + "AliquotaIVA": "1.76" + }, + { + "Quantita": "3088.85", + "PrezzoUnitario": "-179903.16", + "PrezzoTotale": "393531950.678", + "AliquotaIVA": "0.08" + } + ], + "DatiRiepilogo": [ + { + "AliquotaIVA": "454.72", + "Natura": "N5", + "ImponibileImporto": "-398.64", + "EsigibilitaIVA": "S" + }, + { + "AliquotaIVA": "986.75", + "ImponibileImporto": "-64002264829.92", + "Imposta": "-5759891579.08", + "EsigibilitaIVA": "D" + }, + { + "Natura": "N7", + "ImponibileImporto": "136.87", + "Imposta": "-11797820477.42", + "EsigibilitaIVA": "D" + }, + { + "AliquotaIVA": "21.26", + "Natura": "N6", + "ImponibileImporto": "-3136898679.28", + "EsigibilitaIVA": "D" + }, + { + "Natura": "N4", + "ImponibileImporto": "-9286.51", + "Imposta": "-65.53", + "EsigibilitaIVA": "I" + } + ] + } + } + ] + } +} diff --git a/random/09.xml b/random/09.xml new file mode 100644 index 0000000..d8ada35 --- /dev/null +++ b/random/09.xml @@ -0,0 +1,184 @@ + + + + + + AG + do ullamco + + elit + FPA12 + estmini + + + + + RZ + esse ad m + + + nostrud + deserunt qui + + RF15 + + + esse sunt quis au + 97135 + occaecat esse + QN + + + + + + + ullamco ame + tempor amet occaecat + + + + enim sint exercitation + 46747 + velit eiusmod mollit laborum qui + SF + + + + + + + TD53 + ZMY + 4624-10-56 + quis dolore conse + + + + + 4552 + cupidatat magna consectetur ipsum officia + -4.09557 + 3.917560 + + + + 7807 + anim in + + -52690.58 + 858.23 + + + 9406 + sit + 341974.707 + + 9.95 + + + 15.56 + 3176.34 + -7261.16 + I + + + 11.41 + -086.40 + + D + + + 79.56 + -7853.63 + 909475645.54 + I + + + + -017053939.19 + 6775.62 + D + + + + -951439692.05 + -62544898343.03 + D + + + + + + + TD15 + VHO + 0808-54-41 + dolor + + + + + 3337 + + 73624120618.06 + -5088152.98 + 15.52 + + + 3814 + + 4.319865 + -95448194.4267 + 045.92 + + + 9553 + + 7.4540038 + + -65.573119 + 1.76 + + + + + 3088.85 + -179903.16 + 393531950.678 + 0.08 + + + 454.72 + -398.64 + + S + + + 986.75 + -64002264829.92 + -5759891579.08 + D + + + + 136.87 + -11797820477.42 + D + + + 21.26 + -3136898679.28 + + D + + + + -9286.51 + -65.53 + I + + + + + diff --git a/samples/IT01234567890_FPA01.json b/samples/IT01234567890_FPA01.json index 3981199..2572f8c 100644 --- a/samples/IT01234567890_FPA01.json +++ b/samples/IT01234567890_FPA01.json @@ -59,35 +59,43 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiContratto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "123", - "Data": "2016-09-01", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiConvenzione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "456", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiRicezione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "789", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiContratto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "123", + "Data": "2016-09-01", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiConvenzione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "456", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiRicezione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "789", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], "DatiTrasporto": { "DatiAnagraficiVettore": { "IdFiscaleIVA": { @@ -104,7 +112,7 @@ "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "DESCRIZIONE DELLA FORNITURA", "Quantita": "5.00", "PrezzoUnitario": "1.00", @@ -112,21 +120,25 @@ "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "5.00", - "Imposta": "1.10", - "EsigibilitaIVA": "I" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "5.00", + "Imposta": "1.10", + "EsigibilitaIVA": "I" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP01", - "DataScadenzaPagamento": "2017-02-18", - "ImportoPagamento": "6.10" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP01", + "DataScadenzaPagamento": "2017-02-18", + "ImportoPagamento": "6.10" + } } - } + ] } ] } diff --git a/samples/IT01234567890_FPA02.json b/samples/IT01234567890_FPA02.json index e111256..8214132 100644 --- a/samples/IT01234567890_FPA02.json +++ b/samples/IT01234567890_FPA02.json @@ -59,35 +59,43 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiContratto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "123", - "Data": "2016-09-01", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiConvenzione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "456", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiRicezione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "789", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiContratto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "123", + "Data": "2016-09-01", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiConvenzione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "456", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiRicezione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "789", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], "DatiTrasporto": { "DatiAnagraficiVettore": { "IdFiscaleIVA": { @@ -104,7 +112,7 @@ "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI", "Quantita": "5.00", "PrezzoUnitario": "1.00", @@ -112,7 +120,7 @@ "AliquotaIVA": "22.00" }, { - "NumeroLinea": "2", + "NumeroLinea": 2, "Descrizione": "FORNITURE VARIE PER UFFICIO", "Quantita": "10.00", "PrezzoUnitario": "2.00", @@ -120,21 +128,25 @@ "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "25.00", - "Imposta": "5.50", - "EsigibilitaIVA": "D" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "25.00", + "Imposta": "5.50", + "EsigibilitaIVA": "D" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP01", - "DataScadenzaPagamento": "2017-02-30", - "ImportoPagamento": "30.50" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP01", + "DataScadenzaPagamento": "2017-02-28", + "ImportoPagamento": "30.50" + } } - } + ] } ] } diff --git a/samples/IT01234567890_FPA03.json b/samples/IT01234567890_FPA03.json index a869d81..115f366 100644 --- a/samples/IT01234567890_FPA03.json +++ b/samples/IT01234567890_FPA03.json @@ -59,35 +59,43 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiContratto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "123", - "Data": "2012-09-01", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiConvenzione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "456", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiRicezione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "789", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiContratto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "123", + "Data": "2012-09-01", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiConvenzione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "456", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiRicezione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "789", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], "DatiTrasporto": { "DatiAnagraficiVettore": { "IdFiscaleIVA": { @@ -104,7 +112,7 @@ "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI", "Quantita": "5.00", "PrezzoUnitario": "1.00", @@ -112,7 +120,7 @@ "AliquotaIVA": "22.00" }, { - "NumeroLinea": "2", + "NumeroLinea": 2, "Descrizione": "FORNITURE VARIE PER UFFICIO", "Quantita": "10.00", "PrezzoUnitario": "2.00", @@ -120,21 +128,25 @@ "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { + "DatiRiepilogo": [ + { "AliquotaIVA": "22.00", - "ImponibileImporto": "25.00", - "Imposta": "5.50", - "EsigibilitaIVA": "I" - } + "ImponibileImporto": "25.00", + "Imposta": "5.50", + "EsigibilitaIVA": "I" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP01", - "DataScadenzaPagamento": "2017-02-18", - "ImportoPagamento": "30.50" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP01", + "DataScadenzaPagamento": "2017-02-18", + "ImportoPagamento": "30.50" + } } - } + ] }, { "DatiGenerali": { @@ -148,61 +160,73 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "85666", - "NumItem": "1", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiContratto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "321", - "Data": "2016-09-01", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiConvenzione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "654", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiRicezione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "987", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - } + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "85666", + "NumItem": "1", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiContratto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "321", + "Data": "2016-09-01", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiConvenzione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "654", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiRicezione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "987", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ] }, "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "PRESTAZIONE DEL SEGUENTE SERVIZIO PROFESSIONALE: LA DESCRIZIONE DELLA PRESTAZIONE PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI", "PrezzoUnitario": "2000.00", "PrezzoTotale": "2000.00", "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "2000.00", - "Imposta": "440.00", - "EsigibilitaIVA": "I" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "2000.00", + "Imposta": "440.00", + "EsigibilitaIVA": "I" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP19", - "DataScadenzaPagamento": "2017-02-20", - "ImportoPagamento": "2440.00" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP19", + "DataScadenzaPagamento": "2017-02-20", + "ImportoPagamento": "2440.00" + } } - } + ] } ] } diff --git a/samples/IT01234567890_FPR01.json b/samples/IT01234567890_FPR01.json index cddb34c..56b8cf6 100644 --- a/samples/IT01234567890_FPR01.json +++ b/samples/IT01234567890_FPR01.json @@ -60,19 +60,23 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1" - }, - "DatiContratto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "123", - "Data": "2012-09-01", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1" + } + ], + "DatiContratto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "123", + "Data": "2012-09-01", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], "DatiTrasporto": { "DatiAnagraficiVettore": { "IdFiscaleIVA": { @@ -89,7 +93,7 @@ "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "DESCRIZIONE DELLA FORNITURA", "Quantita": "5.00", "PrezzoUnitario": "1.00", @@ -97,21 +101,25 @@ "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "5.00", - "Imposta": "1.10", - "EsigibilitaIVA": "I" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "5.00", + "Imposta": "1.10", + "EsigibilitaIVA": "I" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP01", - "DataScadenzaPagamento": "2015-01-30", - "ImportoPagamento": "6.10" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP01", + "DataScadenzaPagamento": "2015-01-30", + "ImportoPagamento": "6.10" + } } - } + ] } ] } diff --git a/samples/IT01234567890_FPR02.json b/samples/IT01234567890_FPR02.json index 404fd9b..d585074 100644 --- a/samples/IT01234567890_FPR02.json +++ b/samples/IT01234567890_FPR02.json @@ -60,11 +60,13 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1" - }, + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1" + } + ], "DatiTrasporto": { "DatiAnagraficiVettore": { "IdFiscaleIVA": { @@ -81,7 +83,7 @@ "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI", "Quantita": "5.00", "PrezzoUnitario": "1.00", @@ -89,7 +91,7 @@ "AliquotaIVA": "22.00" }, { - "NumeroLinea": "2", + "NumeroLinea": 2, "Descrizione": "FORNITURE VARIE PER UFFICIO", "Quantita": "10.00", "PrezzoUnitario": "2.00", @@ -97,21 +99,25 @@ "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "25.00", - "Imposta": "5.50", - "EsigibilitaIVA": "D" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "25.00", + "Imposta": "5.50", + "EsigibilitaIVA": "D" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP01", - "DataScadenzaPagamento": "2015-01-30", - "ImportoPagamento": "30.50" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP01", + "DataScadenzaPagamento": "2015-01-30", + "ImportoPagamento": "30.50" + } } - } + ] } ] } diff --git a/samples/IT01234567890_FPR03.json b/samples/IT01234567890_FPR03.json index 15b0160..8421fba 100644 --- a/samples/IT01234567890_FPR03.json +++ b/samples/IT01234567890_FPR03.json @@ -60,11 +60,13 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1" - }, + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1" + } + ], "DatiTrasporto": { "DatiAnagraficiVettore": { "IdFiscaleIVA": { @@ -81,7 +83,7 @@ "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI", "Quantita": "5.00", "PrezzoUnitario": "1.00", @@ -89,7 +91,7 @@ "AliquotaIVA": "22.00" }, { - "NumeroLinea": "2", + "NumeroLinea": 2, "Descrizione": "FORNITURE VARIE PER UFFICIO", "Quantita": "10.00", "PrezzoUnitario": "2.00", @@ -97,21 +99,25 @@ "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "27.00", - "Imposta": "5.95", - "EsigibilitaIVA": "I" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "27.00", + "Imposta": "5.95", + "EsigibilitaIVA": "I" + } + ] }, - "DatiPagamento": { + "DatiPagamento": [ + { "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP01", - "DataScadenzaPagamento": "2015-01-30", - "ImportoPagamento": "32.95" + "DettaglioPagamento": { + "ModalitaPagamento": "MP01", + "DataScadenzaPagamento": "2015-01-30", + "ImportoPagamento": "32.95" + } } - } + ] }, { "DatiGenerali": { @@ -125,37 +131,43 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1" - } + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1" + } + ] }, "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "PRESTAZIONE DEL SEGUENTE SERVIZIO PROFESSIONALE: LA DESCRIZIONE DELLA PRESTAZIONE PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI", "PrezzoUnitario": "2000.00", "PrezzoTotale": "2000.00", "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "2000.00", - "Imposta": "440.00", - "EsigibilitaIVA": "I" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "2000.00", + "Imposta": "440.00", + "EsigibilitaIVA": "I" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP19", - "DataScadenzaPagamento": "2015-01-28", - "ImportoPagamento": "2440.00" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP19", + "DataScadenzaPagamento": "2015-01-28", + "ImportoPagamento": "2440.00" + } } - } + ] } ] } diff --git a/www/IT01234567890_FPA01.json b/www/IT01234567890_FPA01.json index 3981199..2572f8c 100644 --- a/www/IT01234567890_FPA01.json +++ b/www/IT01234567890_FPA01.json @@ -59,35 +59,43 @@ "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" ] }, - "DatiOrdineAcquisto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "66685", - "NumItem": "1", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiContratto": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "123", - "Data": "2016-09-01", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiConvenzione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "456", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, - "DatiRicezione": { - "RiferimentoNumeroLinea": "1", - "IdDocumento": "789", - "NumItem": "5", - "CodiceCUP": "123abc", - "CodiceCIG": "456def" - }, + "DatiOrdineAcquisto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "66685", + "NumItem": "1", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiContratto": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "123", + "Data": "2016-09-01", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiConvenzione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "456", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], + "DatiRicezione": [ + { + "RiferimentoNumeroLinea": [1], + "IdDocumento": "789", + "NumItem": "5", + "CodiceCUP": "123abc", + "CodiceCIG": "456def" + } + ], "DatiTrasporto": { "DatiAnagraficiVettore": { "IdFiscaleIVA": { @@ -104,7 +112,7 @@ "DatiBeniServizi": { "DettaglioLinee": [ { - "NumeroLinea": "1", + "NumeroLinea": 1, "Descrizione": "DESCRIZIONE DELLA FORNITURA", "Quantita": "5.00", "PrezzoUnitario": "1.00", @@ -112,21 +120,25 @@ "AliquotaIVA": "22.00" } ], - "DatiRiepilogo": { - "AliquotaIVA": "22.00", - "ImponibileImporto": "5.00", - "Imposta": "1.10", - "EsigibilitaIVA": "I" - } + "DatiRiepilogo": [ + { + "AliquotaIVA": "22.00", + "ImponibileImporto": "5.00", + "Imposta": "1.10", + "EsigibilitaIVA": "I" + } + ] }, - "DatiPagamento": { - "CondizioniPagamento": "TP01", - "DettaglioPagamento": { - "ModalitaPagamento": "MP01", - "DataScadenzaPagamento": "2017-02-18", - "ImportoPagamento": "6.10" + "DatiPagamento": [ + { + "CondizioniPagamento": "TP01", + "DettaglioPagamento": { + "ModalitaPagamento": "MP01", + "DataScadenzaPagamento": "2017-02-18", + "ImportoPagamento": "6.10" + } } - } + ] } ] } diff --git a/www/fatturaPA_1.2.hbs b/www/fatturaPA_1.2.hbs new file mode 100644 index 0000000..0fa3ba9 --- /dev/null +++ b/www/fatturaPA_1.2.hbs @@ -0,0 +1,358 @@ + + + + {{#with FatturaElettronica.FatturaElettronicaHeader.DatiTrasmissione}} + + + {{IdTrasmittente.IdPaese}} + {{IdTrasmittente.IdCodice}} + + {{ProgressivoInvio}} + {{FormatoTrasmissione}} + {{#if CodiceDestinatario}} + {{CodiceDestinatario}} + {{/if}} + {{#if ContattiTrasmittente}} + + {{#if ContattiTrasmittente.Telefono}} + {{ContattiTrasmittente.Telefono}} + {{/if}} + {{#if ContattiTrasmittente.Email}} + {{ContattiTrasmittente.Email}} + {{/if}} + + {{/if}} + {{#if PECDestinatario}} + {{PECDestinatario}} + {{/if}} + + {{/with}} + {{#with FatturaElettronica.FatturaElettronicaHeader.CedentePrestatore}} + + + + {{DatiAnagrafici.IdFiscaleIVA.IdPaese}} + {{DatiAnagrafici.IdFiscaleIVA.IdCodice}} + + + {{#if DatiAnagrafici.Anagrafica.Denominazione}} + {{DatiAnagrafici.Anagrafica.Denominazione}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Nome}} + {{DatiAnagrafici.Anagrafica.Nome}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Cognome}} + {{DatiAnagrafici.Anagrafica.Cognome}} + {{/if}} + + {{DatiAnagrafici.RegimeFiscale}} + {{#if DatiAnagrafici.CodiceFiscale}} + {{DatiAnagrafici.CodiceFiscale}} + {{/if}} + {{#if AlboProfessionale}} + {{DatiAnagrafici.AlboProfessionale}} + {{/if}} + {{#if DatiAnagrafici.ProvinciaAlbo}} + {{DatiAnagrafici.ProvinciaAlbo}} + {{/if}} + {{#if DatiAnagrafici.NumeroIscrizioneAlbo}} + {{DatiAnagrafici.NumeroIscrizioneAlbo}} + {{/if}} + {{#if DatiAnagrafici.DataIscrizioneAlbo}} + {{DatiAnagrafici.DataIscrizioneAlbo}} + {{/if}} + + + {{Sede.Indirizzo}} + {{Sede.CAP}} + {{Sede.Comune}} + {{#if Sede.Provincia}} + {{Sede.Provincia}} + {{/if}} + {{Sede.Nazione}} + {{#if Sede.NumeroCivico}} + {{Sede.NumeroCivico}} + {{/if}} + + + {{/with}} + {{#with FatturaElettronica.FatturaElettronicaHeader.CessionarioCommittente}} + + + {{#if DatiAnagrafici.CodiceFiscale}} + {{DatiAnagrafici.CodiceFiscale}} + {{/if}} + + {{#if DatiAnagrafici.Anagrafica.Denominazione}} + {{DatiAnagrafici.Anagrafica.Denominazione}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Nome}} + {{DatiAnagrafici.Anagrafica.Nome}} + {{/if}} + {{#if DatiAnagrafici.Anagrafica.Cognome}} + {{DatiAnagrafici.Anagrafica.Cognome}} + {{/if}} + + + + {{Sede.Indirizzo}} + {{Sede.CAP}} + {{Sede.Comune}} + {{#if Sede.Provincia}} + {{Sede.Provincia}} + {{/if}} + {{Sede.Nazione}} + {{#if Sede.NumeroCivico}} + {{Sede.NumeroCivico}} + {{/if}} + + + {{/with}} + + {{#each FatturaElettronica.FatturaElettronicaBody}} + + + {{#with DatiGenerali.DatiGeneraliDocumento}} + + {{TipoDocumento}} + {{Divisa}} + {{Data}} + {{Numero}} + {{#each Causale}} + {{this}} + {{/each}} + + {{/with}} + {{#each DatiGenerali.DatiOrdineAcquisto}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiContratto}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiConvenzione}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiRicezione}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#each DatiGenerali.DatiFattureCollegate}} + + {{#each RiferimentoNumeroLinea}} + {{this}} + {{/each}} + {{IdDocumento}} + {{#if Data}} + {{Data}} + {{/if}} + {{#if NumItem}} + {{NumItem}} + {{/if}} + {{#if CodiceCUP}} + {{CodiceCUP}} + {{/if}} + {{#if CodiceCIG}} + {{CodiceCIG}} + {{/if}} + {{#if CodiceCommessaConvenzione}} + {{CodiceCommessaConvenzione}} + {{/if}} + + {{/each}} + {{#if DatiGenerali.DatiTrasporto}} + {{#with DatiGenerali.DatiTrasporto}} + + + + {{DatiAnagraficiVettore.IdFiscaleIVA.IdPaese}} + {{DatiAnagraficiVettore.IdFiscaleIVA.IdCodice}} + + + {{#if DatiAnagraficiVettore.Anagrafica.Denominazione}} + {{DatiAnagraficiVettore.Anagrafica.Denominazione}} + {{/if}} + {{#if DatiAnagraficiVettore.Anagrafica.Nome}} + {{DatiAnagraficiVettore.Anagrafica.Nome}} + {{/if}} + {{#if DatiAnagraficiVettore.Anagrafica.Cognome}} + {{DatiAnagraficiVettore.Anagrafica.Cognome}} + {{/if}} + + + {{DataOraConsegna}} + + {{/with}} + {{/if}} + + + {{#each DatiBeniServizi.DettaglioLinee}} + + {{NumeroLinea}} + {{Descrizione}} + {{#if Quantita}} + {{Quantita}} + {{/if}} + {{PrezzoUnitario}} + {{PrezzoTotale}} + {{AliquotaIVA}} + {{#if TipoCessionePrestazione}} + {{TipoCessionePrestazione}} + {{/if}} + {{#if UnitaMisura}} + {{UnitaMisura}} + {{/if}} + {{#if DataInizioPeriodo}} + {{DataInizioPeriodo}} + {{/if}} + {{#if DataFinePeriodo}} + {{DataFinePeriodo}} + {{/if}} + {{#if Ritenuta}} + {{Ritenuta}} + {{/if}} + {{#if Natura}} + {{Natura}} + {{/if}} + {{#if RiferimentoAmministrazione}} + {{RiferimentoAmministrazione}} + {{/if}} + {{#each CodiceArticolo}} + + {{CodiceTipo}} + {{CodiceValore}} + + {{/each}} + {{#each AltriDatiGestionali}} + + {{TipoDato}} + {{#if RiferimentoTesto}} + {{RiferimentoTesto}} + {{/if}} + {{#if RiferimentoNumero}} + {{RiferimentoNumero}} + {{/if}} + {{#if RiferimentoData}} + {{RiferimentoData}} + {{/if}} + + {{/each}} + {{#each ScontoMaggiorazione}} + + {{/each}} + + {{/each}} + {{#each DatiBeniServizi.DatiRiepilogo}} + + {{AliquotaIVA}} + {{ImponibileImporto}} + {{Imposta}} + {{#if Natura}} + {{Natura}} + {{/if}} + {{#if SpeseAccessorie}} + {{SpeseAccessorie}} + {{/if}} + {{#if Arrotondamento}} + {{Arrotondamento}} + {{/if}} + {{#if EsigibilitaIVA}} + {{EsigibilitaIVA}} + {{/if}} + {{#if RiferimentoNormativo}} + {{RiferimentoNormativo}} + {{/if}} + + {{/each}} + + {{#each DatiPagamento}} + + {{CondizioniPagamento}} + + {{DettaglioPagamento.ModalitaPagamento}} + {{DettaglioPagamento.DataScadenzaPagamento}} + {{DettaglioPagamento.ImportoPagamento}} + + + {{/each}} + + {{/each}} + diff --git a/www/fatturaPA_1.2_schema.json b/www/fatturaPA_1.2_schema.json new file mode 100644 index 0000000..f1140a3 --- /dev/null +++ b/www/fatturaPA_1.2_schema.json @@ -0,0 +1,1723 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2", + "title": "Fattura Elettronica v 1.2", + "description": "Schema JSON per la Fattura Elettronica Italiana", + "type": "object", + "definitions": {}, + "properties": { + "FatturaElettronica": { + "title": "Fattura Elettronica Italiana", + "type": "object", + "properties": { + "versione": { + "type": "string", + "title": "Versione documento", + "description": "FPR12: Fattura tra Privati, FPA12: Fattura verso Pubblica Amministrazione", + "pattern": "^FP(A|R)12$", + "default": "FPA12" + }, + "FatturaElettronicaHeader": { + "title": "Intestazione della Fattura Elettronica", + "type": "object", + "properties": { + "DatiTrasmissione": { + "title": "Dati per il recapito del documento elettronico", + "type": "object", + "properties": { + "IdTrasmittente": { + "title": "Identificativo fiscale del soggetto trasmittente", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice della nazione assegnante l’identificativo fiscale al soggetto trasmittente", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto trasmittente (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + }, + "required": ["IdPaese", "IdCodice"] + }, + "ProgressivoInvio": { + "title": "Progressivo che il soggetto trasmittente attribuisce al file che inoltra al Sistema di Interscambio per una propria finalità di identificazione univoca", + "type": "string", + "minLength": 1, + "maxLength": 10, + "default": "", + "examples": [ + "00001" + ] + }, + "FormatoTrasmissione": { + "type": "string", + "title": "Codice identificativo del tipo di trasmissione che si sta effettuando e del relativo formato", + "pattern": "^FP(A|R)12$", + "default": "", + "examples": [ + "FPA12" + ] + }, + "CodiceDestinatario": { + "type": "string", + "title": "Identifica il soggetto al quale è destinata la fattura", + "description": "Per PA: Codice Ufficio (6 caratteri, vedi https://www.indicepa.gov.it/). Per fatturazione verso privati, codice del canale di ricezione accreditato nel Sistema di Interscambio (7 caratteri) oppure ‘0000000’ se riceve tramite PEC", + "pattern": "^[A-Z0-9]{6,7}$", + "default": "", + "examples": [ + "AAAAAA" + ] + } + }, + "additionalProperties": { + "ContattiTrasmittente": { + "Telefono": { + "type": "string", + "title": "Contatto telefonico fisso / mobile", + "default": "", + "minLength": 5, + "maxLength": 12 + }, + "Email": { + "type": "email", + "title": "Indirizzo di posta elettronica", + "default": "" + } + }, + "PECDestinatario": { + "type": "email", + "title": "indirizzo di Posta Elettronica Certificata al quale viene recapitata la fattura; viene valorizzato nei soli casi di destinatario diverso da Pubblica Amministrazione, qualora il destinatario utilizzi il canale PEC per ricevere le fatture.Può essere valorizzato solo se il valore di CodiceDestinatario è uguale a ‘0000000’", + "default": "" + } + }, + "required": ["IdTrasmittente", "ProgressivoInvio", "FormatoTrasmissione", "CodiceDestinatario"] + }, + "CedentePrestatore": { + "type": "object", + "title": "Dati del Cedente / Prestatore del bene / servizio", + "properties": { + "DatiAnagrafici": { + "type": "object", + "title": "Dati anagrafici del cedente/prestatore", + "properties": { + "IdFiscaleIVA": { + "title": "Dati identificativi ai fini IVA del soggetto cedente/prestatore", + "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice del paese assegnante l’identificativo fiscale al soggetto cedente/prestatore", + "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto cedente/prestatore (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + }, + "required": ["IdPaese", "IdCodice"] + }, + "Anagrafica": { + "type": "object", + "title": "Anagrafica", + "description": "Il campo Denominazione è in alternativa ai campi Nome e Cognome", + "properties": { + "Denominazione": { + "type": "string", + "title": "Ditta, denominazione o ragione sociale del cedente/prestatore (compilare nei casi di persona non fisica)", + "description": "Questo campo è in alternativa ai campi Nome e Cognome", + "default": "", + "minLength": 1, + "maxLength": 80, + "examples": [ + "ALPHA SRL" + ] + }, + "Nome": { + "type": "string", + "title": "Nome del cedente/prestatore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", + "maxLength": 60 + }, + "Cognome": { + "type": "string", + "title": "Cognome del cedente/prestatore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", + "maxLength": 60 + } + }, + "minProperties": 1, + "additionalProperties": "false" + }, + "RegimeFiscale": { + "type": "string", + "title": "Regime fiscale del cedente/prestatore", + "description": "RF01: Regime ordinario; RF02: Regime dei contribuenti minimi; RF03: Regime delle nuove iniziative produttive; RF04: Agricoltura e attività connesse e pesca; RF05: Vendita sali e tabacchi; RF06: Commercio dei fiammiferi; RF07: Editoria; RF08: Gestione di servizi di telefonia pubblica; RF09: Rivendita di documenti di trasporto pubblico e di sosta; RF10: Intrattenimenti, giochi e altre attività; RF11: Agenzie di viaggi e turismo; RF12: Agriturismo; RF13: Vendite a domicilio; RF14: Rivendita di beni usati, di oggetti d'arte, d'antiquariato o da collezione; RF15: Agenzie di vendite all'asta di oggetti d'arte, antiquariato o da collezione; RF16: IVA per cassa P.A.; RF17: IVA per cassa; RF19: Regime forfettario; RF18: Altro", + "pattern": "^RF[0-9]{2}$", + "default": "", + "examples": [ + "RF19" + ] + } + }, + "additionalProperties": { + "CodiceFiscale": { + "type": "string", + "pattern": "^[A-Z0-9]{11,16}$" + }, + "AlboProfessionale": { + "type": "string", + "maxLength": "60" + }, + "ProvinciaAlbo": { + "type": "string", + "title": "Sigla della provincia di iscrizione all'abo professionale", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroIscrizioneAlbo": { + "type": "string", + "maxLength": "60" + }, + "DataIscrizioneAlbo": { + "type": "string", + "title": "Data di iscrizione all'albo professionale", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + } + }, + "required": ["IdFiscaleIVA", "Anagrafica", "RegimeFiscale"] + }, + "Sede": { + "type": "object", + "title": "Sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo del cedente/prestatore: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIALE ROMA 543" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "07100" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "SASSARI" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "IT", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + }, + "required": ["Indirizzo", "CAP", "Comune", "Nazione"] + } + }, + "additionalProperties": { + "StabileOrganizzazione": { + "type": "object", + "title": "Compilare obbligatoriamente solo se il cedente/prestatore è un soggetto non residente ed effettua la transazione oggetto del documento tramite stabile organizzazione", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo della stabile organizzazione del del cedente/prestatore: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIALE ROMA 543" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "07100" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "SASSARI" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "IT", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + }, + "required": ["Indirizzo", "CAP", "Comune", "Nazione"] + }, + "IscrizioneREA": { + "type": "object", + "title": "Compilare obbligatoriamente solo per società soggette al vincolo dell’iscrizione nel registro delle imprese ai sensi dell’art. 2250 del codice civile", + "properties": { + "Ufficio": { + "type": "string", + "title": "Sigla della provincia ove ha sede l'Ufficio del Registro delle Imprese presso il quale è registrata la società", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroREA": { + "type": "string", + "title": "Numero di repertorio con il quale la società è iscritta nel Registro delle Imprese", + "default": "", + "maxLength": 20 + }, + "CapitaleSociale": { + "type": "string", + "title": "Capitale sociale effettivamente versato quale risulta esistente dall’ultimo bilancio della società", + "description": "Questo campo va compilato nei soli casi di società di capitali (SpA, SApA, SRL)", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$" + }, + "SocioUnico": { + "type": "string", + "title": "Se la società si componge di un unico socio o di più soci", + "description": "Questo elemento è valorizzato nei casi di società per azioni e a responsabilità limitata; SU: socio unico, SM: più soci", + "pattern": "^(SU|SM)$" + }, + "StatoLiquidazione": { + "title": "Se la società si trova in stato di liquidazione oppure no", + "description": "LS: in liquidazione, LN: non in liquidazione", + "pattern": "^L(S|N)$" + } + } + }, + "Contatti":{}, + "RiferimentoAmministrazione": { + "type": "string", + "title": "Eventuale riferimento utile al destinatario per automatizzare la gestione amministrativa dell’operazione in fattura", + "default": "", + "maxLength": 20 + } + }, + "required": ["DatiAnagrafici", "Sede"] + }, + "CessionarioCommittente": { + "type": "object", + "title": "Dati del Cessionario / Committente", + "properties": { + "DatiAnagrafici": { + "type": "object", + "title": "Dati anagrafici del cessionario/committente", + "properties": { + "Anagrafica": { + "type": "object", + "properties": { + "Denominazione": { + "type": "string", + "title": "Ditta, denominazione o ragione sociale del cessionario/committente (compilare nei casi di persona non fisica)", + "description": "Questo campo è in alternativa ai campi Nome e Cognome", + "default": "", + "minLength": 1, + "maxLength": 80, + "examples": [ + "AMMINISTRAZIONE BETA" + ] + }, + "Nome": { + "type": "string", + "title": "Nome del cessionario/committente (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", + "maxLength": 60 + }, + "Cognome": { + "type": "string", + "title": "Cognome del cessionario/committente (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", + "maxLength": 60 + } + }, + "minProperties": 1, + "additionalProperties": "false" + } + }, + "additionalProperties": { + "IdFiscaleIVA": { + "title": "Dati identificativi ai fini IVA del cessionario/committente; compilare in alternativa non esclusiva a quella del Codice Fiscale (cioè può non essere compilato se è compilato il Codice Fiscale)", + "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice del paese assegnante l’identificativo fiscale al soggetto cessionario/committente", + "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto cessionario/committente (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + }, + "required": ["IdPaese", "IdCodice"] + }, + "CodiceFiscale": { + "type": "string", + "title": "Codice Fiscale del cessionario/committente; compilare in alternativa non esclusiva ai Dati identificativi ai fini IVA (può non essere compilato se sono presenti i Dati identificativi)", + "default": "", + "pattern": "^[A-Z0-9]{11,16}$", + "examples": [ + "09876543210" + ] + } + }, + "required": ["Anagrafica"] + }, + "Sede": { + "type": "object", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo del cessionario/committente: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIA TORINO 38-B" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "00145" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "ROMA" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espresso secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, ", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "RM" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + }, + "required": ["Indirizzo", "CAP", "Comune", "Nazione"] + } + }, + "additionalProperties": false, + "required": ["DatiAnagrafici", "Sede"] + } + }, + "additionalProperties": { + "RappresentanteFiscale": {}, + "TerzoIntermediarioOSoggettoEmittente": {}, + "SoggettoEmittente": {} + }, + "required": ["DatiTrasmissione", "CedentePrestatore", "CessionarioCommittente"] + }, + "FatturaElettronicaBody": { + "type": "array", + "title": "Dati Generali e Contabili", + "minItems": 1, + "items": { + "title": "Corpo della Fattura Elettronica", + "type": "object", + "properties": { + "DatiGenerali": { + "type": "object", + "title": "Dati Generali", + "properties": { + "DatiGeneraliDocumento": { + "title": "Dati Generali del documento", + "type": "object", + "properties": { + "TipoDocumento": { + "type": "string", + "title": "Tipologia del documento oggetto della trasmissione", + "description": "TD01: Fattura, TD02: Acconto / anticipo su fattura, TD03: Acconto / anticipo su parcella, TD04: Nota di credito, TD05: Nota di debito, TD06: Parcella", + "default": "", + "pattern": "^TD[0-9]{2}$", + "examples": [ + "TD01" + ] + }, + "Divisa": { + "type": "string", + "title": "Valuta utilizzata per l'indicazione degli importi", + "description": "Espresso secondo lo standard ISO 4217 alpha-3:2001 (https://it.wikipedia.org/wiki/ISO_4217#Codici_attivi), esempi: EUR, USD, CHF, GBP, CZK ...", + "default": "", + "pattern": "^[A-Z]{3}$", + "examples": [ + "EUR" + ] + }, + "Data": { + "type": "string", + "title": "Data del documento", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "Numero": { + "type": "string", + "title": "Numero progressivo attribuito dal cedente/prestatore al documento", + "minLength": 1, + "maxLength": 20, + "default": "", + "examples": [ + "123" + ] + } + }, + "additionalProperties": { + "Causale": { + "type": "array", + "title": "Descrizione della causale del documento", + "items": { + "type": "string", + "title": "Causale", + "default": "", + "minLength": 1, + "maxLength": 200, + "examples": [ + "LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS", + "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" + ] + } + }, + "DatiCassaPrevidenziale": { + "type": "array", + "title": "Dati cassa previdenziale", + "items": { + "type": "object", + "title": "Cassa previdenziale", + "properties": { + "TipoCassa": { + "type": "string", + "title": "Cassa di previdenza della categoria professionale di appartenenza", + "description": "TC01: Cassa Nazionale Previdenza e Assistenza Avvocati e Procuratori Legali, TC02: Cassa Previdenza Dottori Commercialisti, TC03: Cassa Previdenza e Assistenza Geometri, TC04: Cassa Nazionale Previdenza e Assistenza Ingegneri e Architetti Liberi Professionisti, TC05: Cassa Nazionale del Notariato, TC06: Cassa Nazionale Previdenza e Assistenza Ragionieri e Periti Commerciali, TC07: Ente Nazionale Assistenza Agenti e Rappresentanti di Commercio (ENASARCO), TC08: Ente Nazionale Previdenza e Assistenza Consulenti del Lavoro (ENPACL), TC09: Ente Nazionale Previdenza e Assistenza Medici (ENPAM), TC10: Ente Nazionale Previdenza e Assistenza Farmacisti (ENPAF), TC11: Ente Nazionale Previdenza e Assistenza Veterinari (ENPAV), TC12: Ente Nazionale Previdenza e Assistenza Impiegati dell'Agricoltura (ENPAIA), TC13: Fondo Previdenza Impiegati Imprese di Spedizione e Agenzie Marittime, TC14: Istituto Nazionale Previdenza Giornalisti Italiani (INPGI), TC15: Opera Nazionale Assistenza Orfani Sanitari Italiani (ONAOSI), TC16: Cassa Autonoma Assistenza Integrativa Giornalisti Italiani (CASAGIT), TC17: Ente Previdenza Periti Industriali e Periti Industriali Laureati (EPPI), TC18: Ente Previdenza e Assistenza Pluricategoriale (EPAP), TC19: Ente Nazionale Previdenza e Assistenza Biologi (ENPAB), TC20: Ente Nazionale Previdenza e Assistenza Professione Infermieristica (ENPAPI), TC21: Ente Nazionale Previdenza e Assistenza Psicologi (ENPAP), TC22: INPS", + "pattern": "TC[0-9]{2}" + }, + "AlCassa": { + "type": "string", + "title": "Aliquota contributiva prevista per la cassa di previdenza", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,3}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + }, + "ImportoContributoCassa": { + "type": "string", + "title": "Importo del contributo relativo alla cassa di previdenza della categoria professionale", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}$" + }, + "AliquotaIVA": { + "type": "string", + "title": "Aliquota IVA applicata al contributo cassa previdenziale; nel caso di non applicabilità, il campo deve essere impostato a 0.00", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,2}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + } + }, + "additionalProperties": { + "ImponibileCassa": { + "type": "string", + "title": "Importo totale del volume di affari sul quale occorre applicare il contributo di cassa previdenziale", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}$" + }, + "Ritenuta": { + "type": "string", + "title": "Indica se il contributo cassa è soggetto a ritenuta", + "description": "RT01: Ritenuta di acconto persone fisiche, RT02: Ritenuta di acconto persone giuridiche", + "pattern": "^RT[0-9]{2}$" + + }, + "Natura": { + "type": "string", + "title": "Codice che esprime la natura della non imponibilità del contributo cassa", + "description": "N1: Escluse ex. art. 15, N2: Non soggette, N3: Non Imponibili, N4: Esenti, N5: Regime del margine, N6: Inversione contabile (reverse charge), N7: IVA assolta in altro stato UE", + "pattern": "^N[0-9]{1}$", + "default": "", + "examples": [ + "N1" + ] + }, + "RiferimentoAmministrazione": { + "type": "string", + "title": "Eventuale riferimento utile al destinatario per automatizzare la gestione amministrativa dell’operazione in fattura", + "default": "", + "maxLength": 20 + } + }, + "required": ["TipoCassa", "AlCassa", "ImportoContributoCassa", "AliquotaIVA"] + } + }, + "ScontoMaggiorazione": { + "type": "array", + "title": "Sconto o maggiorazione", + "items": {} + }, + "DatiRitenuta": {}, + "DatiBollo": {}, + "ImportoTotaleDocumento": {}, + "Arrotondamento": {}, + "Art73": { + "type": "string", + "title": "Indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72 (ciò consente al cedente/prestatore l'emissione nello stesso anno di più documenti aventi stesso numero)", + "pattern": "^SI$" + } + }, + "required": ["TipoDocumento", "Divisa", "Data", "Numero"] + } + }, + "additionalProperties": { + "DatiTrasporto": { + "type": "object", + "title": "Dati relativi al trasporto", + "additionalProperties": { + "DatiAnagraficiVettore": { + "type": "object", + "title": "Dati anagrafici del vettore", + "properties": { + "IdFiscaleIVA": { + "title": "Dati identificativi ai fini IVA del soggetto vettore", + "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", + "type": "object", + "properties": { + "IdPaese": { + "type": "string", + "title": "Codice del paese assegnante l’identificativo fiscale al soggetto vettore", + "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "", + "examples": [ + "IT" + ] + }, + "IdCodice": { + "title": "Numero di identificazione fiscale del soggetto vettore (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", + "type": "string", + "minLength": 1, + "maxLength": 28, + "default": "", + "examples": [ + "01234567890" + ] + } + } + }, + "Anagrafica": { + "type": "object", + "title": "Anagrafica", + "description": "Il campo Denominazione è in alternativa ai campi Nome e Cognome", + "properties": { + "Denominazione": { + "type": "string", + "title": "Ditta, denominazione o ragione sociale del vettore (compilare nei casi di persona non fisica)", + "description": "Questo campo è in alternativa ai campi Nome e Cognome", + "default": "", + "minLength": 1, + "maxLength": 80, + "examples": [ + "ALPHA SRL" + ] + }, + "Nome": { + "type": "string", + "title": "Nome del vettore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", + "maxLength": 60 + }, + "Cognome": { + "type": "string", + "title": "Cognome del vettore (compilare nei casi di persona fisica)", + "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", + "maxLength": 60 + } + }, + "additionalProperties": "false" + } + }, + "additionalProperties": { + "CodiceFiscale": { + "type": "string", + "title": "numero di codice fiscale del vettore", + "pattern": "^[A-Z0-9]{11,16}$" + }, + "NumeroLicenzaGuida": { + "type": "string", + "title": "Numero identificativo della licenza di guida (esempio: numero patente) del vettore", + "maxLength": 20 + } + }, + "required": ["IdFiscaleIVA", "Anagrafica"] + }, + "MezzoTrasporto": { + "type": "string", + "maxLength": 80 + }, + "CausaleTrasporto": { + "type": "string", + "maxLength": 100 + }, + "NumeroColli": { + "type": "integer", + "minimum": 1, + "maximum": 9999 + }, + "Descrizione": { + "type": "string", + "maxLength": 100 + }, + "UnitaMisuraPeso": { + "type": "string", + "maxLength": 10 + }, + "PesoLordo": { + "type": "string", + "title": "Peso lordo", + "pattern": "^[0-9]{1,4}\\.[0-9]{1,2}$" + }, + "PesoNetto": { + "type": "string", + "title": "Peso netto", + "pattern": "^[0-9]{1,4}\\.[0-9]{1,2}$" + }, + "DataOraRitiro": { + "type": "string", + "title": "Data e ora di ritiro", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", + "default": "", + "examples": [ + "2002-05-30T09:00:00" + ] + }, + "DataInizioTrasporto": { + "type": "string", + "title": "Data di inizio del trasporto", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-02-18" + ] + }, + "TipoResa": { + "type": "string", + "title": "Tipo di resa", + "description": "Espresso secondo lo standard ICC-Camera di Commercio Internazionale (https://it.wikipedia.org/wiki/Incoterms#I_gruppi_dell%27Incoterms_2000): EXW: Ex Works, FCA: Free Carrier, FAS: Free Alongside Ship, FOB: Free On Board, CFR: Cost and Freight, CIF: Cost, Insurance and Freight, CPT: Carriage Paid To, CIP: Carriage and Insurance Paid to, DAF: Delivered At Frontier, DES: Delivered Ex Ship, DEQ: Delivered Ex Quay, DDU: Delivered Duty Unpaid, DDP: Delivered Duty Paid", + "pattern": "^[A-Z]{3}$" + }, + "IndirizzoResa": { + "type": "object", + "title": "Indirizzo di resa della merce", + "properties": { + "Indirizzo": { + "type": "string", + "title": "Indirizzo di resa: via / piazza / ... nome e (opzionale) numero civico", + "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "VIALE ROMA 543" + ] + }, + "CAP": { + "type": "string", + "title": "Codice di Avviamento Postale", + "default": "", + "pattern": "^[0-9]{5}$", + "examples": [ + "07100" + ] + }, + "Comune": { + "type": "string", + "title": "Comune", + "default": "", + "minLength": 1, + "maxLength": 60, + "examples": [ + "SASSARI" + ] + }, + "Nazione": { + "type": "string", + "title": "Codice della nazione", + "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", + "pattern": "^[A-Z]{2}$", + "default": "IT", + "examples": [ + "IT" + ] + } + }, + "additionalProperties": { + "Provincia": { + "type": "string", + "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia)", + "default": "", + "pattern": "^[A-Z]{2}$", + "examples": [ + "SS" + ] + }, + "NumeroCivico": { + "type": "string", + "title": "Numero civico (se non è già indicato nel campo Indirizzo)", + "minLength": 1, + "maxLength": 8 + } + } + }, + "DataOraConsegna": { + "type": "string", + "title": "Data e ora di consegna", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", + "default": "", + "examples": [ + "2002-05-30T09:00:00" + ] + } + } + }, + "FatturaPrincipale": { + "type": "object", + "title": "Dati della fattura principale", + "description": "Presente nei casi di fatture per operazioni accessorie emesse dagli ‘autotrasportatori’ per usufruire delle agevolazioni in materia di registrazione e pagamento IVA", + "properties": { + "NumeroFatturaPrincipale": { + "type": "string", + "title": "Numero della fattura relativa al trasporto di beni, da indicare sulle fatture emesse dagli autotrasportatori per certificare le operazioni accessorie", + "minLength": 1, + "maxLength": 20 + }, + "DataFatturaPrincipale": { + "type": "string", + "title": "Data della fattura principale", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", + "default": "", + "examples": [ + "2002-05-30T09:00:00" + ] + } + } + }, + "DatiOrdineAcquisto": { + "type": "array", + "title": "Dati relativi all’ordine di acquisto dal quale scaturisce la cessione/prestazione oggetto del documento fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo dell'ordine di acquisto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data dell'ordine di acquisto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno dell'ordine di acquisto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiContratto": { + "type": "array", + "title": "Dati relativi al contratto dal quale scaturisce la cessione/prestazione oggetto del documento fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo del contratto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data del contratto associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno del contratto associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiConvenzione": { + "type": "array", + "title": "Dati relativi alla convenzione collegata alla fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo della convenzione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data della convenzione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno della convenzione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiRicezione": { + "type": "array", + "title": "Dati relativi alla ricezione dei beni/servizi oggetto del documento fattura", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo della ricezione associato alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data della ricezione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno della ricezione associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiFattureCollegate": { + "type": "array", + "title": "Dati relativi alla fattura alla quale si collega il documento in oggetto", + "items": { + "type":"object", + "properties": { + "IdDocumento": { + "type": "string", + "title": "Identificativo della fattura associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero identificativo della linea di dettaglio ", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + }, + "Data": { + "type": "string", + "title": "Data della fattura associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "NumItem": { + "type": "string", + "title": "Identificativo della singola linea all'interno della fattura associata alla fattura o alla linea/linee di fattura indicate nell’elemento RiferimentoNumeroLinea", + "maxLength": 20 + }, + "CodiceCommessaConvenzione": { + "type": "string", + "title": "Codice della commessa o della convenzione collegata alla fattura", + "maxLength": 100 + }, + "CodiceCUP": { + "type": "string", + "title": "Codice CUP (Codice Unitario Progetto): codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico", + "maxLength": 15 + }, + "CodiceCIG": { + "type": "string", + "title": ": Codice CIG (Codice Identificativo della Gara)", + "maxLength": 20 + } + }, + "required": ["IdDocumento"], + "additionalProperties": false + } + }, + "DatiSAL": { + "type": "array", + "title": "Dati relativi al SAL (Stato Avanzamento Lavori)", + "items": { + "type":"object", + "properties": { + "RiferimentoFase": { + "type": "integer", + "minimum": 1, + "maximum": 999, + "title": "Fase dello stato avanzamento cui la fattura si riferisce", + "default": "", + "examples": [ + 1 + ] + } + } + } + }, + "DatiDDT": { + "type": "array", + "title": "Dati relativi al DDT (Documento di Trasporto", + "description": "Compilare se è presente un documento di trasporto collegato alla fattura, e in caso di fatturazione differita", + "items": { + "type":"object", + "properties": { + "NumeroDDT": { + "type": "string", + "title": "Numero del Documento Di Trasporto", + "maxLength": 20 + }, + "DataDDT": { + "type": "string", + "title": "Data del Documento Di Trasporto", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "RiferimentoNumeroLinea": { + "type": "array", + "title": "Numero della linea o delle linee di dettaglio della fattura alle quali si riferisce il DDT (così come identificato dagli elementi NumeroDDT e DataDDT)", + "description": "nel caso in cui il documento di trasporto si riferisce all’intera fattura, questo elemento non deve essere valorizzato", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "default": "", + "examples": [ + 1 + ] + } + } + } + } + } + }, + "required": ["DatiGeneraliDocumento"] + }, + "DatiBeniServizi": { + "type": "object", + "title": "Dati dei Beni / Servizi", + "properties": { + "DettaglioLinee": { + "type": "array", + "title": "Linea di dettaglio del bene/servizio", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "NumeroLinea": { + "type": "integer", + "minimum": 1, + "maximum": 9999, + "title": "Numero identificativo della linea di dettaglio ", + "default": "", + "examples": [ + 1 + ] + }, + "Descrizione": { + "type": "string", + "title": "Natura e qualità del bene/servizio oggetto della cessione/prestazione; può fare anche riferimento ad un precedente documento emesso a titolo di anticipo/acconto", + "default": "", + "minLength": 1, + "maxLength": 1000, + "examples": [ + "DESCRIZIONE DELLA FORNITURA" + ] + }, + "PrezzoUnitario": { + "type": "string", + "title": "Prezzo unitario del bene/servizio; nel caso di beni ceduti a titolo di sconto, premio o abbuono, l'importo indicato rappresenta il \"valore normale\"", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2,8}$", + "default": "", + "examples": [ + "1.00" + ] + }, + "PrezzoTotale": { + "type": "string", + "title": "Importo totale del bene/servizio al netto dell'eventuale sconto", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2,8}$", + "default": "", + "examples": [ + "5.00" + ] + }, + "AliquotaIVA": { + "type": "string", + "title": "Aliquota IVA applicata alla cessione/prestazione; nel caso di non applicabilità, il campo deve essere impostato a 0.00", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,2}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + } + }, + "additionalProperties": { + "TipoCessionePrestazione": { + "type": "string", + "title": "Codice che identifica la tipologia di cessione/prestazione qualora si tratti di sconto, premio, abbuono o spesa accessoria; è quindi valorizzabile soltanto in presenza di questi casi", + "description": "SC: Sconto, PR: Premio. AB: Abbuono, AC: Spesa accessoria", + "pattern": "^SC|PR|AB|AC$" + }, + "Quantita": { + "type": "string", + "title": "Numero di unità cedute/prestate; può non essere valorizzato nei casi in cui la prestazione non sia quantificabile", + "default": "", + "pattern": "^[0-9]{1,12}\\.[0-9]{2,8}$", + "examples": [ + "5.00" + ] + }, + "UnitaMisura": { + "type": "string", + "title": "Unità di misura in cui è espresso il campo Quantità", + "default": "", + "maxLength": 10 + }, + "DataInizioPeriodo": { + "type": "string", + "title": "Data iniziale del periodo di riferimento cui si riferisce l'eventuale servizio prestato", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "DataFinePeriodo": { + "type": "string", + "title": "Data finale del periodo di riferimento cui si riferisce l'eventuale servizio prestato", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + }, + "Ritenuta": { + "type": "string", + "title": "Indica se la linea della fattura si riferisce ad una cessione/prestazione soggetta a ritenuta", + "default": "SI", + "pattern": "^SI$" + }, + "Natura": { + "type": "string", + "title": "Codice che esprime la natura delle operazioni che non rientrano tra quelle imponibili o nei casi di inversione contabile", + "description": "N1: Escluse ex. art. 15, N2: Non soggette, N3: Non Imponibili, N4: Esenti, N5: Regime del margine, N6: Inversione contabile (reverse charge), N7: IVA assolta in altro stato UE", + "pattern": "^N[0-9]{1}$", + "default": "", + "examples": [ + "N1" + ] + }, + "RiferimentoAmministrazione": { + "type": "string", + "title": "Eventuale riferimento utile al destinatario per automatizzare la gestione amministrativa dell’operazione in fattura (capitolo di spesa, conto economico ...)", + "default": "", + "maxLength": 20 + }, + "CodiceArticolo": { + "type": "array", + "title": "Codici Articoli", + "items": { + "type": "object", + "title": "Codice Articolo", + "properties": { + "CodiceTipo": { + "type": "string", + "title": "Indica la tipologia di codice articolo (i.e.: TARIC, CPV, EAN, SSC, ...)", + "default": "", + "minLength": 1, + "maxLength": 35 + }, + "CodiceValore": { + "type": "string", + "title": "Valore del codice articolo corrispondente alla tipologia ", + "default": "", + "minLength": 1, + "maxLength": 35 + } + } + } + }, + "AltriDatiGestionali": { + "type": "array", + "title": "Altri dati gestionali", + "items": { + "type": "object", + "title": "Dato gestionale", + "properties": { + "TipoDato": { + "type": "string", + "title": "Codice che identifica la tipologia di informazione", + "default": "", + "minLength": 1, + "maxLength": 10 + }, + "RiferimentoTesto": { + "type": "string", + "title": "Calore alfanumerico riferito alla tipologia di informazione", + "default": "", + "minLength": 1, + "maxLength": 60 + }, + "RiferimentoNumero": { + "type": "string", + "title": "valore numerico riferito alla tipologia di informazione", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2,8}" + }, + "RiferimentoData": { + "type": "string", + "title": "data riferita alla tipologia di informazione", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-01-18" + ] + } + } + } + }, + "ScontoMaggiorazione": { + "type": "array", + "title": "Sconti e maggiorazioni", + "items": { + "type": "object", + "title": "Sconto / maggiorazione", + "properties": { + "Tipo": { + "type": "string", + "title": "Indica se si tratta di sconto o di maggiorazione", + "description": "SC: sconto. MG: maggiorazione", + "pattern": "^SC|MG$" + } + }, + "additionalProperties": { + "Percentuale": { + "type": "string", + "title": "Percentuale di sconto o di maggiorazione", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,3}\\.[0-9]{2}$", + "default": "", + "examples": [ + "10.00" + ] + }, + "Importo": { + "type": "string", + "title": "Importo dello sconto o della maggiorazione", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}" + } + }, + "required": ["Tipo"] + } + } + }, + "required": ["NumeroLinea", "Descrizione", "PrezzoUnitario", "PrezzoTotale", "AliquotaIVA"] + } + }, + "DatiRiepilogo": { + "type": "array", + "title": "Dati di riepilogo", + "minItems": 1, + "items": { + "type": "object", + "title": "Dati di riepilogo per aliquota", + "description": "Da valorizzare per ogni aliquota IVA e modalità di versamento dell’imposta (scissione dei pagamenti od ordinaria), e/o per ogni natura)", + "properties": { + "AliquotaIVA": { + "type": "string", + "title": "Aliquota IVA applicata alla cessione/prestazione; nel caso di non applicabilità, il campo deve essere impostato a 0.00", + "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", + "pattern": "^[0-9]{1,2}\\.[0-9]{2}$", + "default": "", + "examples": [ + "22.00" + ] + }, + "ImponibileImporto": { + "type": "string", + "title": "Valore che rappresenta la base imponibile per le operazioni soggette ad IVA, oppure l’importo per le operazioni che non rientrano tra quelle 'imponibili'", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$", + "default": "", + "examples": [ + "5.00" + ] + }, + "Imposta": { + "type": "string", + "title": "Imposta corrispondente all’applicazione dell’aliquota IVA sulla base imponibile", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$", + "default": "", + "examples": [ + "1.10" + ] + } + }, + "additionalProperties": { + "Natura": { + "type": "string", + "title": "Codice che esprime la natura delle operazioni che non rientrano tra quelle imponibili", + "description": "N1: Escluse ex. art. 15, N2: Non soggette, N3: Non Imponibili, N4: Esenti, N5: Regime del margine, N6: Inversione contabile (reverse charge), N7: IVA assolta in altro stato UE", + "pattern": "^N[0-9]{1}$", + "default": "", + "examples": [ + "N1" + ] + }, + "SpeseAccessorie": { + "type": "string", + "title": "Corrispettivi relativi alle cessioni accessorie, (ad esempio imballaggi etc.) qualora presenti", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2}" + }, + "Arrotondamento": { + "type": "string", + "title": "Arrotondamento sull'imponibile o sull’importo, qualora presente", + "pattern": "-?[0-9]{1,11}\\.[0-9]{2,8}" + }, + "EsigibilitaIVA": { + "type": "string", + "title": "Codice che esprime il regime di esigibilità dell’IVA (differita o immediata) o la modalità di versamento dell’imposta (scissione dei pagamenti)", + "description": "D: esigibilità differita, I: esigibilità immediata, S: scissione dei pagamenti", + "pattern": "^D|I|S$", + "default": "", + "examples": [ + "I" + ] + }, + "RiferimentoNormativo": { + "type": "string", + "title": "Normativa di riferimento (campo obbligatorio nei casi di operazioni di cui all’elemento Natura)", + "minLength": 1, + "maxLength": 100 + } + }, + "required": ["AliquotaIVA", "ImponibileImporto", "Imposta"] + } + } + }, + "required": ["DettaglioLinee", "DatiRiepilogo"] + } + }, + "additionalProperties": { + "Allegati": { + "type": "array", + "title": "Allegati", + "items": { + "type": "object", + "title": "Allegato", + "properties": { + "NomeAttachment": { + "type": "string", + "title": "Contiene il nome del documento allegato alla fattura elettronica", + "maxLength": 60 + }, + "Attachment": { + "type": "string", + "title": "Contiene il documento allegato alla fattura elettronica" + } + }, + "additionalProperties": { + "AlgoritmoCompressione": { + "type": "string", + "title": "Algoritmo utilizzato per comprimere l’allegato", + "maxLength": 10 + }, + "FormatoAttachment": { + "type": "string", + "title": "Formato dell’allegato", + "maxLength": 10 + }, + "DescrizioneAttachment": { + "type": "string", + "title": "Descrizione del documento allegato alla fattura elettronica", + "maxLength": 100 + } + }, + "required": ["NomeAttachment", "Attachment"] + } + }, + "DatiVeicoli": {}, + "DatiPagamento": { + "type": "array", + "title": "Dati di pagamento", + "items": { + "type": "object", + "title": "Dato di pagamento", + "properties": { + "CondizioniPagamento": { + "type": "string", + "title": "Codice che identifica le condizioni di pagamento", + "description": "TP01: pagamento a rate, TP02: pagamento completo, TP03: anticipo", + "pattern": "^TP[0-9]{2}$", + "default": "", + "examples": [ + "TP01" + ] + }, + "DettaglioPagamento": { + "type": "object", + "title": "Dettaglio del pagamento", + "properties": { + "ModalitaPagamento": { + "type": "string", + "title": "Codice che identifica le modalità di pagamento", + "description": "MP01: contanti, MP02: assegno, MP03: assegno circolare, MP04: contanti presso Tesoreria, MP05: bonifico, MP06: vaglia cambiario, MP07: bollettino bancario, MP08: carta di pagamento, MP09: RID, MP10: RID utenze, MP11: RID veloce, MP12: Riba, MP13: MAV, MP14: quietanza erario stato, MP15: giroconto su conti di contabilità speciale, MP16: domiciliazione bancaria, MP17: domiciliazione postale, MP18: bollettino di c/c postale, MP19: SEPA Direct Debit, MP20: SEPA Direct Debit CORE, MP21: SEPA Direct Debit B2B, MP22: Trattenuta su somme già riscosse", + "default": "", + "examples": [ + "MP01" + ] + }, + "DataScadenzaPagamento": { + "type": "string", + "title": "Data di scadenza del pagamento", + "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "default": "", + "examples": [ + "2017-02-18" + ] + }, + "ImportoPagamento": { + "type": "string", + "title": "Importo relativo al pagamento", + "pattern": "^-?[0-9]{1,11}\\.[0-9]{2}$", + "default": "", + "examples": [ + "6.10" + ] + } + } + } + } + } + } + }, + "required": ["DatiGenerali", "DatiBeniServizi"] + } + } + }, + "additionalProperties": false, + "required": ["versione", "FatturaElettronicaHeader", "FatturaElettronicaBody"] + } + }, + "additionalProperties": false, + "required": ["FatturaElettronica"] +} diff --git a/www/fatturaPA_1.2_schema_semplificato.json b/www/fatturaPA_1.2_schema_semplificato.json deleted file mode 100644 index e24187b..0000000 --- a/www/fatturaPA_1.2_schema_semplificato.json +++ /dev/null @@ -1,933 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2", - "title": "Fattura Elettronica v 1.2", - "description": "Schema JSON per la Fattura Elettronica Italiana", - "type": "object", - "definitions": {}, - "properties": { - "FatturaElettronica": { - "title": "Fattura Elettronica Italiana", - "type": "object", - "properties": { - "versione": { - "type": "string", - "title": "Versione documento", - "description": "FPR12: Fattura tra Privati, FPA12: Fattura verso Pubblica Amministrazione", - "pattern": "^FPA|R12$", - "default": "FPA12" - }, - "FatturaElettronicaHeader": { - "title": "Intestazione della Fattura Elettronica", - "type": "object", - "properties": { - "DatiTrasmissione": { - "title": "Dati per il recapito del documento elettronico", - "type": "object", - "properties": { - "IdTrasmittente": { - "title": "Identificativo fiscale del soggetto trasmittente", - "type": "object", - "properties": { - "IdPaese": { - "type": "string", - "title": "Codice della nazione assegnante l’identificativo fiscale al soggetto trasmittente", - "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", - "pattern": "^[A-Z]{2}$", - "default": "", - "examples": [ - "IT" - ] - }, - "IdCodice": { - "title": "Numero di identificazione fiscale del soggetto trasmittente (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", - "type": "string", - "minLength": 1, - "maxLength": 28, - "default": "", - "examples": [ - "01234567890" - ] - } - } - }, - "ProgressivoInvio": { - "title": "Progressivo che il soggetto trasmittente attribuisce al file che inoltra al Sistema di Interscambio per una propria finalità di identificazione univoca", - "type": "string", - "minLength": 1, - "maxLength": 10, - "default": "", - "examples": [ - "00001" - ] - }, - "FormatoTrasmissione": { - "type": "string", - "title": "Codice identificativo del tipo di trasmissione che si sta effettuando e del relativo formato.", - "minLength": 5, - "maxLength": 5, - "default": "", - "examples": [ - "FPA12" - ] - }, - "CodiceDestinatario": { - "type": "string", - "title": "Identifica il soggetto al quale è destinata la fattura.", - "description": "Per PA: Codice Ufficio (6 caratteri, vedi https://www.indicepa.gov.it/). Per fatturazione verso privati, codice del canale di ricezione accreditato nel Sistema di Interscambio (7 caratteri) oppure ‘0000000’ se riceve tramite PEC.", - "minLength": 6, - "maxLength": 7, - "default": "", - "examples": [ - "AAAAAA" - ] - } - }, - "additionalProperties": { - "ContattiTrasmittente": { - "Telefono": { - "type": "string", - "title": "Contatto telefonico fisso / mobile", - "default": "", - "minLength": 5, - "maxLength": 12 - }, - "Email": { - "type": "email", - "title": "Indirizzo di posta elettronica", - "default": "" - } - }, - "PECDestinatario": { - "type": "email", - "title": "indirizzo di Posta Elettronica Certificata al quale viene recapitata la fattura; viene valorizzato nei soli casi di destinatario diverso da Pubblica Amministrazione, qualora il destinatario utilizzi il canale PEC per ricevere le fatture.Può essere valorizzato solo se il valore di CodiceDestinatario è uguale a ‘0000000’", - "default": "" - } - }, - "required": ["IdTrasmittente", "ProgressivoInvio", "FormatoTrasmissione", "CodiceDestinatario"] - }, - "CedentePrestatore": { - "type": "object", - "title": "Dati del Cedente / Prestatore del bene / servizio", - "properties": { - "DatiAnagrafici": { - "type": "object", - "properties": { - "IdFiscaleIVA": { - "title": "Dati identificativi ai fini IVA del soggetto cedente/prestatore", - "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", - "type": "object", - "properties": { - "IdPaese": { - "type": "string", - "title": "Codice del paese assegnante l’identificativo fiscale al soggetto cedente/prestatore", - "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", - "pattern": "^[A-Z]{2}$", - "default": "", - "examples": [ - "IT" - ] - }, - "IdCodice": { - "title": "Numero di identificazione fiscale del soggetto cedente/prestatore (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", - "type": "string", - "minLength": 1, - "maxLength": 28, - "default": "", - "examples": [ - "01234567890" - ] - } - } - }, - "Anagrafica": { - "type": "object", - "title": "Anagrafica", - "description": "Il campo Denominazione è in alternativa ai campi Nome e Cognome", - "properties": { - "Denominazione": { - "type": "string", - "title": "Ditta, denominazione o ragione sociale del cedente/prestatore (compilare nei casi di persona non fisica)", - "description": "Questo campo è in alternativa ai campi Nome e Cognome", - "default": "", - "minLength": 1, - "maxLength": 80, - "examples": [ - "ALPHA SRL" - ] - }, - "Nome": { - "type": "string", - "title": "Nome del cedente/prestatore (compilare nei casi di persona fisica)", - "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", - "maxLength": 60 - }, - "Cognome": { - "type": "string", - "title": "Cognome del cedente/prestatore (compilare nei casi di persona fisica)", - "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", - "maxLength": 60 - } - }, - "additionalProperties": "false" - }, - "RegimeFiscale": { - "type": "string", - "title": "Regime fiscale del cedente/prestatore", - "description": "RF01: Regime ordinario; RF02: Regime dei contribuenti minimi; RF03: Regime delle nuove iniziative produttive; RF04: Agricoltura e attività connesse e pesca; RF05: Vendita sali e tabacchi; RF06: Commercio dei fiammiferi; RF07: Editoria; RF08: Gestione di servizi di telefonia pubblica; RF09: Rivendita di documenti di trasporto pubblico e di sosta; RF10: Intrattenimenti, giochi e altre attività; RF11: Agenzie di viaggi e turismo; RF12: Agriturismo; RF13: Vendite a domicilio; RF14: Rivendita di beni usati, di oggetti d'arte, d'antiquariato o da collezione; RF15: Agenzie di vendite all'asta di oggetti d'arte, antiquariato o da collezione; RF16: IVA per cassa P.A.; RF17: IVA per cassa; RF19: Regime forfettario; RF18: Altro", - "pattern": "^RF[0-9]{2}$", - "default": "", - "examples": [ - "RF19" - ] - } - }, - "additionalProperties": { - "CodiceFiscale": { - "type": "string", - "pattern": "^[A-Z0-9]{11,16}$" - }, - "AlboProfessionale": { - "type": "string", - "maxLength": "60" - }, - "ProvinciaAlbo": { - "type": "string", - "title": "Sigla della provincia di iscrizione all'abo professionale", - "default": "", - "pattern": "^[A-Z]{2}$", - "examples": [ - "SS" - ] - }, - "NumeroIscrizioneAlbo": { - "type": "string", - "maxLength": "60" - }, - "DataIscrizioneAlbo": { - "title": "Data di iscrizione all'albo professionale", - "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", - "default": "", - "examples": [ - "2017-01-18" - ] - } - }, - "required": ["IdFiscaleIVA", "Anagrafica", "RegimeFiscale"] - }, - "Sede": { - "type": "object", - "title": "Sede legale per le società e del domicilio fiscale per le ditte individuali e i lavoratori autonomi", - "properties": { - "Indirizzo": { - "type": "string", - "title": "Indirizzo del cedente/prestatore: via / piazza / ... nome e (opzionale) numero civico", - "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", - "default": "", - "minLength": 1, - "maxLength": 60, - "examples": [ - "VIALE ROMA 543" - ] - }, - "CAP": { - "type": "string", - "title": "Codice di Avviamento Postale", - "default": "", - "pattern": "^[0-9]{5}$", - "examples": [ - "07100" - ] - }, - "Comune": { - "type": "string", - "title": "Comune", - "default": "", - "minLength": 1, - "maxLength": 60, - "examples": [ - "SASSARI" - ] - }, - "Nazione": { - "type": "string", - "title": "Codice della nazione", - "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", - "pattern": "^[A-Z]{2}$", - "default": "IT", - "examples": [ - "IT" - ] - } - }, - "additionalProperties": { - "Provincia": { - "type": "string", - "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia).", - "default": "", - "pattern": "^[A-Z]{2}$", - "examples": [ - "SS" - ] - }, - "NumeroCivico": { - "type": "string", - "title": "Numero civico (se non è già indicato nel campo Indirizzo)", - "minLength": 1, - "maxLength": 8 - } - } - } - }, - "additionalProperties": false, - "required": ["DatiAnagrafici", "Sede"] - }, - "CessionarioCommittente": { - "type": "object", - "title": "Dati del Cessionario / Committente", - "properties": { - "DatiAnagrafici": { - "type": "object", - "properties": { - "IdFiscaleIVA": { - "title": "Dati identificativi ai fini IVA del cessionario/committente; compilare in alternativa non esclusiva a quella del Codice Fiscale (cioè può non essere compilato se è compilato il Codice Fiscale)", - "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", - "type": "object", - "properties": { - "IdPaese": { - "type": "string", - "title": "Codice del paese assegnante l’identificativo fiscale al soggetto cessionario/committente", - "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", - "pattern": "^[A-Z]{2}$", - "default": "", - "examples": [ - "IT" - ] - }, - "IdCodice": { - "title": "Numero di identificazione fiscale del soggetto cessionario/committente (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", - "type": "string", - "minLength": 1, - "maxLength": 28, - "default": "", - "examples": [ - "01234567890" - ] - } - } - }, - "CodiceFiscale": { - "type": "string", - "title": "Codice Fiscale del cessionario/committente; compilare in alternativa non esclusiva ai Dati identificativi ai fini IVA (può non essere compilato se sono presenti i Dati identificativi)", - "default": "", - "pattern": "^[A-Z0-9]{11,16}$", - "examples": [ - "09876543210" - ] - }, - "Anagrafica": { - "type": "object", - "properties": { - "Denominazione": { - "type": "string", - "title": "Ditta, denominazione o ragione sociale del cessionario/committente (compilare nei casi di persona non fisica)", - "description": "Questo campo è in alternativa ai campi Nome e Cognome", - "default": "", - "minLength": 1, - "maxLength": 80, - "examples": [ - "AMMINISTRAZIONE BETA" - ] - }, - "Nome": { - "type": "string", - "title": "Nome del cessionario/committente (compilare nei casi di persona fisica)", - "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", - "maxLength": 60 - }, - "Cognome": { - "type": "string", - "title": "Cognome del cessionario/committente (compilare nei casi di persona fisica)", - "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", - "maxLength": 60 - } - }, - "additionalProperties": "false" - } - } - }, - "Sede": { - "type": "object", - "properties": { - "Indirizzo": { - "type": "string", - "title": "Indirizzo del cessionario/committente: via / piazza / ... nome e numero civico", - "default": "", - "minLength": 1, - "maxLength": 60, - "examples": [ - "VIA TORINO 38-B" - ] - }, - "CAP": { - "type": "string", - "title": "Codice di Avviamento Postale", - "default": "", - "pattern": "^[0-9]{5}$", - "examples": [ - "00145" - ] - }, - "Comune": { - "type": "string", - "title": "Comune", - "default": "", - "minLength": 1, - "maxLength": 60, - "examples": [ - "ROMA" - ] - }, - "Provincia": { - "type": "string", - "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia).", - "default": "", - "pattern": "^[A-Z]{2}$", - "examples": [ - "RM" - ] - }, - "Nazione": { - "type": "string", - "title": "Codice della nazione", - "description": "Espresso secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, ", - "pattern": "^[A-Z]{2}$", - "default": "", - "examples": [ - "IT" - ] - } - } - } - }, - "additionalProperties": false, - "required": ["DatiAnagrafici", "Sede"] - } - }, - "additionalProperties": false, - "required": ["DatiTrasmissione", "CedentePrestatore", "CessionarioCommittente"] - }, - "FatturaElettronicaBody": { - "type": "array", - "title": "Dati Generali e Contabili", - "minItems": 1, - "items": { - "title": "Corpo della Fattura Elettronica", - "type": "object", - "properties": { - "DatiGenerali": { - "type": "object", - "title": "Dati Generali", - "properties": { - "DatiGeneraliDocumento": { - "title": "Dati Generali del documento", - "type": "object", - "properties": { - "TipoDocumento": { - "type": "string", - "title": "Tipologia del documento oggetto della trasmissione", - "description": "TD01: Fattura, TD02: Acconto / anticipo su fattura, TD03: Acconto / anticipo su parcella, TD04: Nota di credito, TD05: Nota di debito, TD06: Parcella", - "default": "", - "pattern": "^TD[0-9]{2}$", - "examples": [ - "TD01" - ] - }, - "Divisa": { - "type": "string", - "title": "Valuta utilizzata per l'indicazione degli importi", - "description": "Espresso secondo lo standard ISO 4217 alpha-3:2001 (https://it.wikipedia.org/wiki/ISO_4217#Codici_attivi), es.: EUR, USD, CHF, GBP, CZK ...", - "default": "", - "pattern": "^[A-Z]{3}$", - "examples": [ - "EUR" - ] - }, - "Data": { - "type": "string", - "title": "Data del documento", - "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", - "default": "", - "examples": [ - "2017-01-18" - ] - }, - "Numero": { - "type": "string", - "title": "Numero progressivo attribuito dal cedente/prestatore al documento", - "minLength": 1, - "maxLength": 20, - "default": "", - "examples": [ - "123" - ] - }, - "Causale": { - "type": "array", - "title": "Descrizione della causale del documento", - "items": { - "type": "string", - "default": "", - "minLength": 1, - "maxLength": 200, - "examples": [ - "LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS", - "SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB" - ] - } - } - } - } - }, - "additionalProperties": { - "DatiTrasporto": { - "type": "object", - "title": "Dati relativi al trasporto", - "additionalProperties": { - "DatiAnagraficiVettore": { - "type": "object", - "title": "Dati anagrafici del vettore", - "properties": {}, - "additionalProperties": { - "IdFiscaleIVA": { - "title": "Dati identificativi ai fini IVA del soggetto vettore", - "description": "Partita IVA italiana per i soggetti residenti in Italia e per quelli esteri operanti in Italia (identificati attraverso una Stabile Organizzazione oppure mediante un rappresentante fiscale o ancora direttamente), oppure identificativo fiscale assegnato dall’autorità del proprio paese per i soggetti non residenti)", - "type": "object", - "properties": { - "IdPaese": { - "type": "string", - "title": "Codice del paese assegnante l’identificativo fiscale al soggetto vettore", - "description": "Sigla della nazione espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", - "pattern": "^[A-Z]{2}$", - "default": "", - "examples": [ - "IT" - ] - }, - "IdCodice": { - "title": "Numero di identificazione fiscale del soggetto vettore (per i soggetti stabiliti nel territorio dello Stato Italiano corrisponde al Codice Fiscale; per i non residenti si fa riferimento all’identificativo fiscale assegnato dall’autorità del paese di residenza)", - "type": "string", - "minLength": 1, - "maxLength": 28, - "default": "", - "examples": [ - "01234567890" - ] - } - } - }, - "Anagrafica": { - "type": "object", - "title": "Anagrafica", - "description": "Il campo Denominazione è in alternativa ai campi Nome e Cognome", - "properties": { - "Denominazione": { - "type": "string", - "title": "Ditta, denominazione o ragione sociale del vettore (compilare nei casi di persona non fisica)", - "description": "Questo campo è in alternativa ai campi Nome e Cognome", - "default": "", - "minLength": 1, - "maxLength": 80, - "examples": [ - "ALPHA SRL" - ] - }, - "Nome": { - "type": "string", - "title": "Nome del vettore (compilare nei casi di persona fisica)", - "description": "Questo campo va compilato insieme al Cognome ed è in alternativa al campo Denominazione", - "maxLength": 60 - }, - "Cognome": { - "type": "string", - "title": "Cognome del vettore (compilare nei casi di persona fisica)", - "description": "Questo campo va compilato insieme al Nome ed è in alternativa al campo Denominazione", - "maxLength": 60 - } - }, - "additionalProperties": "false" - } - }, - "additionalProperties": { - "CodiceFiscale": { - "type": "string", - "title": "numero di codice fiscale del vettore", - "pattern": "^[A-Z0-9]{11,16}$" - }, - "NumeroLicenzaGuida": { - "type": "string", - "title": "Numero identificativo della licenza di guida (es. numero patente) del vettore", - "maxLength": 20 - } - }, - "required": ["IdFiscaleIVA", "Anagrafica"] - }, - "MezzoTrasporto": { - "type": "string", - "maxLength": 80 - }, - "CausaleTrasporto": { - "type": "string", - "maxLength": 100 - }, - "NumeroColli": { - "type": "integer", - "minimum": 1, - "maximum": 9999 - }, - "Descrizione": { - "type": "string", - "maxLength": 100 - }, - "UnitaMisuraPeso": { - "type": "string", - "maxLength": 10 - }, - "PesoLordo": { - "type": "string", - "title": "Peso lordo", - "pattern": "^[0-9]{1,4}.[0-9]{1,2}$" - }, - "PesoNetto": { - "type": "string", - "title": "Peso netto", - "pattern": "^[0-9]{1,4}.[0-9]{1,2}$" - }, - "DataOraRitiro": { - "type": "string", - "title": "Data e ora di ritiro", - "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", - "default": "", - "examples": [ - "2002-05-30T09:00:00" - ] - }, - "DataInizioTrasporto": { - "type": "string", - "title": "Data di inizio del trasporto", - "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", - "default": "", - "examples": [ - "2017-02-18" - ] - }, - "TipoResa": { - "type": "string", - "title": "Tipo di resa", - "description": "Espresso secondo lo standard ICC-Camera di Commercio Internazionale (https://it.wikipedia.org/wiki/Incoterms#I_gruppi_dell%27Incoterms_2000): EXW: Ex Works, FCA: Free Carrier, FAS: Free Alongside Ship, FOB: Free On Board, CFR: Cost and Freight, CIF: Cost, Insurance and Freight, CPT: Carriage Paid To, CIP: Carriage and Insurance Paid to, DAF: Delivered At Frontier, DES: Delivered Ex Ship, DEQ: Delivered Ex Quay, DDU: Delivered Duty Unpaid, DDP: Delivered Duty Paid", - "pattern": "^[A-Z]{3}$" - }, - "IndirizzoResa": { - "type": "object", - "title": "Indirizzo di resa della merce", - "properties": { - "Indirizzo": { - "type": "string", - "title": "Indirizzo di resa: via / piazza / ... nome e (opzionale) numero civico", - "description": "Il numero civico può anche essere indicato separatamente nel campo apposito", - "default": "", - "minLength": 1, - "maxLength": 60, - "examples": [ - "VIALE ROMA 543" - ] - }, - "CAP": { - "type": "string", - "title": "Codice di Avviamento Postale", - "default": "", - "pattern": "^[0-9]{5}$", - "examples": [ - "07100" - ] - }, - "Comune": { - "type": "string", - "title": "Comune", - "default": "", - "minLength": 1, - "maxLength": 60, - "examples": [ - "SASSARI" - ] - }, - "Nazione": { - "type": "string", - "title": "Codice della nazione", - "description": "Espressa secondo lo standard ISO 3166-1 alpha-2 code (https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2), es: Italia: IT, Francia: FR, Svizzera: CH, San Marino: SM, Città del Vaticano: VA, Austria: AT, Slovenia: SI", - "pattern": "^[A-Z]{2}$", - "default": "IT", - "examples": [ - "IT" - ] - } - }, - "additionalProperties": { - "Provincia": { - "type": "string", - "title": "Sigla della provincia di appartenenza del comune (da compilare nei soli casi di sede in Italia).", - "default": "", - "pattern": "^[A-Z]{2}$", - "examples": [ - "SS" - ] - }, - "NumeroCivico": { - "type": "string", - "title": "Numero civico (se non è già indicato nel campo Indirizzo)", - "minLength": 1, - "maxLength": 8 - } - } - }, - "DataOraConsegna": { - "type": "string", - "title": "Data e ora di consegna", - "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DDThh:mm:ss", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$", - "default": "", - "examples": [ - "2002-05-30T09:00:00" - ] - } - } - }, - "FatturaPrincipale": { - "type": "object", - "title": "Dati della fattura principale", - "description": "Presente nei casi di fatture per operazioni accessorie emesse dagli ‘autotrasportatori’ per usufruire delle agevolazioni in materia di registrazione e pagamento IVA" - }, - "DatiOrdineAcquisto": { - "type": "array", - "title": "Dati relativi all’ordine di acquisto dal quale scaturisce la cessione/prestazione oggetto del documento fattura" - }, - "DatiContratto": { - "type": "array", - "title": "Dati relativi al contratto dal quale scaturisce la cessione/prestazione oggetto del documento fattura" - }, - "DatiConvenzione": { - "type": "array", - "title": "Dati relativi alla convenzione collegata alla fattura" - }, - "DatiRicezione": { - "type": "array", - "title": "Dati relativi alla ricezione dei beni/servizi oggetto del documento fattura" - }, - "DatiFattureCollegate": { - "type": "array", - "title": "Dati relativi alla fattura alla quale si collega il documento in oggetto" - }, - "DatiSAL": { - "type": "array", - "title": "Dati relativi al SAL (Stato Avanzamento Lavori)" - }, - "DatiDDT": { - "type": "array", - "title": "Dati relativi al DDT (Documento di Trasporto", - "description": "Compilare se è presente un documento di trasporto collegato alla fattura, e in caso di fatturazione differita" - } - }, - "required": ["DatiGeneraliDocumento"] - }, - "DatiBeniServizi": { - "type": "object", - "title": "Dati dei Beni / Servizi", - "properties": { - "DettaglioLinee": { - "type": "array", - "title": "Linea di dettaglio del bene/servizio", - "items": { - "type": "object", - "properties": { - "NumeroLinea": { - "type": "string", - "title": "Nmero identificativo della linea di dettaglio ", - "default": "", - "examples": [ - "1" - ] - }, - "Descrizione": { - "type": "string", - "title": "Natura e qualità del bene/servizio oggetto della cessione/prestazione; può fare anche riferimento ad un precedente documento emesso a titolo di anticipo/acconto", - "default": "", - "minLength": 1, - "maxLength": 1000, - "examples": [ - "DESCRIZIONE DELLA FORNITURA" - ] - }, - "Quantita": { - "type": "string", - "title": "Numero di unità cedute/prestate; può non essere valorizzato nei casi in cui la prestazione non sia quantificabile", - "default": "", - "pattern": "^[0-9]{1,12}.[0-9]{2,8}$", - "examples": [ - "5.00" - ] - }, - "PrezzoUnitario": { - "type": "string", - "title": "Prezzo unitario del bene/servizio; nel caso di beni ceduti a titolo di sconto, premio o abbuono, l'importo indicato rappresenta il \"valore normale\"", - "pattern": "^[-]?[0-9]{1,11}.[0-9]{2,8}$", - "default": "", - "examples": [ - "1.00" - ] - }, - "PrezzoTotale": { - "type": "string", - "title": "Importo totale del bene/servizio al netto dell'eventuale sconto", - "pattern": "^[-]?[0-9]{1,11}.[0-9]{2,8}$", - "default": "", - "examples": [ - "5.00" - ] - }, - "AliquotaIVA": { - "type": "string", - "title": "Aliquota IVA applicata alla cessione/prestazione; nel caso di non applicabilità, il campo deve essere impostato a 0.00", - "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", - "pattern": "^[0-9]{1,3}.[0-9]{2}$", - "default": "", - "examples": [ - "22.00" - ] - } - } - } - }, - "DatiRiepilogo": { - "type": "object", - "title": "Datidi riepilogo", - "description": "Da valorizzare per ogni aliquota IVA e modalità di versamento dell’imposta (scissione dei pagamenti od ordinaria), e/o per ogni natura)", - "properties": { - "AliquotaIVA": { - "type": "string", - "title": "Aliquota IVA applicata alla cessione/prestazione; nel caso di non applicabilità, il campo deve essere impostato a 0.00", - "description": "Espressa in percentuale con due decimali separati dall'intero con il carattere '.' (punto)", - "pattern": "^[0-9]{1,3}.[0-9]{2}$", - "default": "", - "examples": [ - "22.00" - ] - }, - "Natura": { - "type": "string", - "title": "Codice che esprime la natura delle operazioni che non rientrano tra quelle imponibili", - "description": "N1: Escluse ex. art. 15, N2: Non soggette, N3: Non Imponibili, N4: Esenti, N5: Regime del margine, N6: Inversione contabile (reverse charge), N7: IVA assolta in altro stato UE", - "pattern": "^N[0-9]{1}$", - "default": "", - "examples": [ - "N1" - ] - }, - "ImponibileImporto": { - "type": "string", - "title": "Valore che rappresenta la base imponibile per le operazioni soggette ad IVA, oppure l’importo per le operazioni che non rientrano tra quelle 'imponibili'", - "pattern": "^[-]?[0-9]{1,11}.[0-9]{2}$", - "default": "", - "examples": [ - "5.00" - ] - }, - "Imposta": { - "type": "string", - "title": "Imposta corrispondente all’applicazione dell’aliquota IVA sulla base imponibile", - "pattern": "^[-]?[0-9]{1,11}.[0-9]{2}$", - "default": "", - "examples": [ - "1.10" - ] - }, - "EsigibilitaIVA": { - "type": "string", - "title": "Codice che esprime il regime di esigibilità dell’IVA (differita o immediata) o la modalità di versamento dell’imposta (scissione dei pagamenti)", - "description": "D: esigibilità differita, I: esigibilità immediata, S: scissione dei pagamenti", - "pattern": "^D|I|S$", - "default": "", - "examples": [ - "I" - ] - } - } - } - } - }, - "DatiPagamento": { - "type": "object", - "title": "Dati di pagamento", - "properties": { - "CondizioniPagamento": { - "type": "string", - "title": "Codice che identifica le condizioni di pagamento", - "description": "TP01: pagamento a rate, TP02: pagamento completo, TP03: anticipo", - "pattern": "^TP[0-9]{2}$", - "default": "", - "examples": [ - "TP01" - ] - }, - "DettaglioPagamento": { - "type": "object", - "title": "Dettaglio del pagamento", - "properties": { - "ModalitaPagamento": { - "type": "string", - "title": "Codice che identifica le modalità di pagamento", - "description": "MP01: contanti, MP02: assegno, MP03: assegno circolare, MP04: contanti presso Tesoreria, MP05: bonifico, MP06: vaglia cambiario, MP07: bollettino bancario, MP08: carta di pagamento, MP09: RID, MP10: RID utenze, MP11: RID veloce, MP12: Riba, MP13: MAV, MP14: quietanza erario stato, MP15: giroconto su conti di contabilità speciale, MP16: domiciliazione bancaria, MP17: domiciliazione postale, MP18: bollettino di c/c postale, MP19: SEPA Direct Debit, MP20: SEPA Direct Debit CORE, MP21: SEPA Direct Debit B2B, MP22: Trattenuta su somme già riscosse", - "default": "", - "examples": [ - "MP01" - ] - }, - "DataScadenzaPagamento": { - "type": "string", - "title": "Data di scadenza del pagamento", - "description": "Rappresentata secondo il formato ISO 8601:2004 (https://it.wikipedia.org/wiki/ISO_8601), con la seguente precisione: YYYY-MM-DD", - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", - "default": "", - "examples": [ - "2017-02-18" - ] - }, - "ImportoPagamento": { - "type": "string", - "title": "Importo relativo al pagamento", - "pattern": "^[-]?[0-9]{1,11}.[0-9]{2}$", - "default": "", - "examples": [ - "6.10" - ] - } - } - } - } - } - }, - "additionalProperties": false, - "required": ["DatiGenerali", "DatiBeniServizi", "DatiPagamento"] - } - } - }, - "additionalProperties": false, - "required": ["versione", "FatturaElettronicaHeader", "FatturaElettronicaBody"] - } - }, - "additionalProperties": false, - "required": ["FatturaElettronica"] -} diff --git a/www/index.html b/www/index.html index 978a78c..b636328 100644 --- a/www/index.html +++ b/www/index.html @@ -11,49 +11,21 @@

Editor semplice per fattura elettronica

-

-
     
- - - diff --git a/xmldsig-core-schema.xsd b/xmldsig-core-schema.xsd new file mode 100644 index 0000000..df126b3 --- /dev/null +++ b/xmldsig-core-schema.xsd @@ -0,0 +1,318 @@ + + + + + + ]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yarn.lock b/yarn.lock index 599d477..bf77f25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6,6 +6,10 @@ version "1.1.0-beta.2" resolved "https://registry.yarnpkg.com/@json-editor/json-editor/-/json-editor-1.1.0-beta.2.tgz#0fbd3f65701fac2763710fb39e24f25865acf507" +JSONSelect@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -18,6 +22,12 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + async@^1.4.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -26,6 +36,10 @@ bindings@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -37,6 +51,10 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +cjson@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.2.1.tgz#73cd8aad65d9e1505f9af1744d3b79c1527682a5" + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -45,10 +63,98 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + +debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + decamelize@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +deep-extend@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +deref@^0.7.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/deref/-/deref-0.7.3.tgz#3ef3fc3cbc149b2f999b6bc051451c08c13c8bc2" + dependencies: + deep-extend "^0.5.0" + +drange@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/drange/-/drange-1.0.2.tgz#a7390ad5869c6f69eabdc42e0a5b516bd100966e" + +ebnf-parser@~0.1.9: + version "0.1.10" + resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" + +escodegen@0.0.21: + version "0.0.21" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-0.0.21.tgz#53d652cfa1030388279458a5266c5ffc709c63c3" + dependencies: + esprima "~1.0.2" + estraverse "~0.0.4" + optionalDependencies: + source-map ">= 0.1.2" + +escodegen@^1.8.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.10.0.tgz#f647395de22519fbd0d928ffcf1d17e0dec2603e" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@1.0.x, esprima@~1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-0.0.4.tgz#01a0932dfee574684a598af5a67c3bf9b6428db2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +format-util@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.3.tgz#032dca4a116262a12c43f4c3ec8566416c5b2d95" + handlebars@^4.0.11: version "4.0.11" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" @@ -81,6 +187,26 @@ jgexml@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/jgexml/-/jgexml-0.3.8.tgz#f2d75f1f8b4a5f31e74c6d343cf2fe8229c4cf4e" +jison-lex@0.2.x: + version "0.2.1" + resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.2.1.tgz#ac4b815e8cce5132eb12b5dfcfe8d707b8844dfe" + dependencies: + lex-parser "0.1.x" + nomnom "1.5.2" + +jison@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.13.tgz#9041707d62241367f58834532b9f19c2c36fac78" + dependencies: + JSONSelect "0.4.0" + cjson "~0.2.1" + ebnf-parser "~0.1.9" + escodegen "0.0.21" + esprima "1.0.x" + jison-lex "0.2.x" + lex-parser "~0.1.3" + nomnom "1.5.2" + joi@^13.1.2: version "13.4.0" resolved "https://registry.yarnpkg.com/joi/-/joi-13.4.0.tgz#afc359ee3d8bc5f9b9ba6cdc31b46d44af14cecc" @@ -89,10 +215,45 @@ joi@^13.1.2: isemail "3.x.x" topo "3.x.x" +js-yaml@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-faker@^0.5.0-rc15: + version "0.5.0-rc15" + resolved "https://registry.yarnpkg.com/json-schema-faker/-/json-schema-faker-0.5.0-rc15.tgz#1b60ebf898c783d30296536755f5885eddb13d29" + dependencies: + deref "^0.7.1" + json-schema-ref-parser "^5.0.0" + jsonpath "^1.0.0" + randexp "^0.4.5" + tslib "^1.7.1" + +json-schema-ref-parser@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-5.0.3.tgz#5a8a7b4c865f840ee637c7a5f076421988eb8292" + dependencies: + call-me-maybe "^1.0.1" + debug "^3.1.0" + js-yaml "^3.11.0" + ono "^4.0.3" + json-schema@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" +jsonpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.0.0.tgz#45cd9d4c4d0d6825d90bd7e40f83f1182b13dd07" + dependencies: + esprima "1.2.2" + jison "0.4.13" + static-eval "2.0.0" + underscore "1.7.0" + kind-of@^3.0.2: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -103,6 +264,17 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lex-parser@0.1.x, lex-parser@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" + longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -111,6 +283,10 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + nan@^2.3.5: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" @@ -122,6 +298,19 @@ node-expat@^2.3.15: bindings "^1.2.1" nan "^2.3.5" +nomnom@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" + dependencies: + colors "0.5.x" + underscore "1.1.x" + +ono@^4.0.3: + version "4.0.5" + resolved "https://registry.yarnpkg.com/ono/-/ono-4.0.5.tgz#bc62740493a5c1c08b2c21e60cbb0e5c56ab7de2" + dependencies: + format-util "^1.0.3" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -129,20 +318,50 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" +optionator@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + punycode@2.x.x: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" +randexp@^0.4.5: + version "0.4.9" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.9.tgz#327326358e190c685c2069e1f9b45c5190c517b2" + dependencies: + drange "^1.0.0" + ret "^0.2.0" + repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" +ret@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" +"source-map@>= 0.1.2": + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" @@ -153,12 +372,36 @@ source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +static-eval@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.0.tgz#0e821f8926847def7b4b50cda5d55c04a9b13864" + dependencies: + escodegen "^1.8.1" + topo@3.x.x: version "3.0.0" resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.0.tgz#37e48c330efeac784538e0acd3e62ca5e231fe7a" dependencies: hoek "5.x.x" +tslib@^1.7.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + uglify-js@^2.6: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" @@ -172,6 +415,14 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +underscore@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" + +underscore@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -184,6 +435,10 @@ wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + xml2json@^0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/xml2json/-/xml2json-0.11.2.tgz#70ddd234fd7818312cc58455cab8457b5bcc7c52"