Fatturazione elettronica xml e invio SDI

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
ciao, 'scrivere' l'xml, putroppo, è il minimo dei problemi.
questo è il codice che uso per sistema ts
PHP:
$xml=new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><precompilata
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="730_precompilata.xsd"></precompilata>');

    $opzionale1 = $xml->addChild('opzionale1', 'text');
    $opzionale2 = $xml->addChild('opzionale2', 'text');
    $opzionale3 = $xml->addChild('opzionale3', 'text');

    $proprietario = $xml->addChild('proprietario');
    $codiceRegione = $proprietario->addChild("codiceRegione",$datiStruttura[0]);
    $codiceAsl = $proprietario->addChild("codiceAsl",$datiStruttura[1]);
    $codiceSSA = $proprietario->addChild("codiceSSA",$datiStruttura[2]);
etc etc ed alla fine

PHP:
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
$ilfile=[percorso e nome del file senza estensione]
$filexml=$ilfile.".xml";
error_log("salvo il file ".$filexml, 0);
$dom->save($filexml);

come vedi è abbastanza semplice, ovviamente cambiando tag ed i dati

il problema qui è che oltre alla trasmissione bisogna tenere aperto un canale per la ricezione dei messaggi di trasmissione (accettazione, rifiuto etc) dei file di consegna e per la ricezione delle fatture in arrivo.

Cmq se il grande marino è disponibile si potrebbe tentare
 

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
'scrivere' l'xml, putroppo, è il minimo dei problemi
In verità se si invia via PEC basta solo fare l'XML.

Tranne modifiche in parlamento sembra ufficiale:
Ade ha scritto:
L’obbligo di fattura elettronica, introdotto dalla Legge di Bilancio 2018, vale sia nel caso in cui la cessione del bene o la prestazione di servizio è effettuata tra due operatori Iva (operazioni B2B, cioè Business to Business ), sia nel caso in cui la cessione/prestazione è effettuata da un operatore Iva verso un consumatore finale (operazioni B2C, cioè Business to Consumer ).
e
Per tutte le fatture elettroniche inviate a privati (altri operatori Iva o consumatori finali), il SdI accetta anche file non firmati digitalmente. Nel caso in cui, però, il file della fattura elettronica sia firmato digitalmente, il SdI esegue controlli sulla validità del certificato di firma.
 

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
51
Discussione molto interessante, grazie per le molteplici risposte che avete dato alle mie ultra-molteplici domande :):):).
Per cui, se ho capito bene :
  1. creo l'XML (non c'è l'obbligo di firmarlo digitalmente)
  2. lo spedisco attraverso PEC
e fin qui va tutto bene, ma poi per la conservazione ? Basta tenerlo in un server/cloud ? O ne serve uno in particolare ? Basta tenerlo nel proprio PC ?
 
Ultima modifica:

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
Pnesavo di aver fatto un file xml di prova conforme prelevando dai dati in csv e quindi l'ho dato in pasto all'AdE su 'Controllare la FatturaPA - Questa funzionalità consente di effettuare su ogni file FatturaPA i controlli formali necessari per garantire il corretto inoltro al destinatario'. ovviamente sbagliavo visto che mi da errore a parte gli errori 3xx per il CF e Partita IVA di prova:
File non conforme al formato (nella descrizione del messaggio è riportata lâ¬"indicazione puntuale della non conformità ) - Invalid content was found starting with element 'AliquotaIVA'. One of '{EsigibilitaIVA, RiferimentoNormativo}' is expected. riga: 62 - colonna: 17 Verificare che il file inviato sia conforme al formato previsto 00200

Secondo il tabellare:
2.2.2.7 <EsigibilitaIVA> L'elemento esprime il momento nel quale l'IVA diventa esigibile (immediata ai sensi dell'Art. 6 comma 5 del DPR 633 1972, oppure differita) oppure il fatto che le modalità di versamento dell'imposta sono differenti da quelle ordinarie (scissione dei pagamenti) - Obbligatorietà e occorrenze <0.1> (<A.B> A = 0 elemento non obbligatorio A = 1 elemento obbligatorio) quindi non sembra obbligatorio
2.2.2.8 <RiferimentoNormativo> Norma di riferimento (nei casi in cui l'elemento informativo 2.2.2.2 <Natura> è valorizzato) peccato che non ho messo l'elemento <Natura> - Obbligatorietà e occorrenze <0.1>

Ho provato a mettere <EsigibilitaIVA> a Immediata : niente.
File non conforme al formato (nella descrizione del messaggio è riportata lâ¬"indicazione puntuale della non conformità ) - Invalid content was found starting with element 'AliquotaIVA'. One of '{RiferimentoNormativo}' is expected. riga: 62 - colonna: 17 Verificare che il file inviato sia conforme al formato previsto 00200

Quindi in realtà sono obbligatori tutti e due anche se il tabellare dice di no?

Basta tenerlo in un server/cloud ? O ne serve uno in particolare ? Basta tenerlo nel proprio PC ?
Assolutamente no. Se lo mandi allo sdi via PEC dovrebbe conservarlo direttamente l'AdE visto che 'è possibile attivare il servizio gratuito di conservazione elettronica' dell'AdE stessa che bisogna attivare.

AdE ha scritto:
Il processo di conservazione elettronica a norma è usualmente fornito da operatori privati certificati facilmente individuabili in internet; tuttavia, l’Agenzia delle Entrate mette gratuitamente a disposizione un servizio di conservazione elettronica a norma per tutte le fatture emesse e ricevute elettronicamente attraverso il Sistema di Interscambio.
 
  • Like
Reactions: joomeph

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
51
Assolutamente no. Se lo mandi allo sdi via PEC dovrebbe conservarlo direttamente l'AdE visto che 'è possibile attivare il servizio gratuito di conservazione elettronica' dell'AdE stessa che bisogna attivare.

Perfetto, questa è una ulteriore conferma per me che il gigante ha partorito un topolino.
Per ciò che riguarda i nodi dell'XML me li devo ancora guardare, per cui in questo momento non ne sò nulla.
Credo però di aver letto su una guida che le obbligatorietà le hanno cambiate.
Ho visto che esiste un Codice per ogni azienda che viene assegnato credo dall'AdE, quello, per esempio, si deve richiedere ?
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
Scusate ma forse il mio non è un intervento pertinente!
Ma usare dei servizi o dei software già pronti non si eviterebbe tanti problemi?
 

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
Ma usare dei servizi o dei software già pronti non si eviterebbe tanti problemi?
Servizi o software già pronti, a parte quelli dell'AdE (c'è anche una app), sono quasi sempre a pagamento e comunque in qualche maniera bisogna interfacciare il proprio gestionale, che devi comunque continuare ad utilizzare visto che devi dare una copia cartacea a chi te la richiede, con il servizio / software quindi devi comunque fare un lavoro di esportazione: a questo punto esporti direttamente in xml, mandi via pec e non devi pagare terzi per un servizio che puoi fare da solo. alcuni servizi che ho testato hanno più bug del mio script oppure devi mettere i dati via web con username e password: allora meglio utilizzare quello diretto dell'AdE

per me poi c'è anche un fatto di privacy. se per obbligo bisogna mandarlo all'AdE non ci puoi fare nulla.
darli ad un terzo che non sai esattamente cosa faccia dei tuoi dati e di quelli dei tuoi clienti è una scelta sicuramente che faranno in molti. io personalmente non vorrei farla e non lo consiglierei.
imho :)
 
  • Like
Reactions: joomeph

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
51
Scusate ma forse il mio non è un intervento pertinente!
Ma usare dei servizi o dei software già pronti non si eviterebbe tanti problemi?

Per quello che mi riguarda ho già dei software che fatturano (cioè sviluppati da me) e non posso dire ai miei 'clienti' : veditela da solo, paga un servizio terzo e fatti le fatture a mano inserendo dati che già hai nel tuo DB. Come ora creo i PDF, è semplicissimo creare l'XML sapendo in quali nodi mettere i dati ed inviarlo via PEC. Il 'cliente' non deve far nulla, e soprattutto non deve pagare nulla perchè l'aggiornamento è gratis, essendo per manutenzione ordinaria.

No, perchè poi si parla di privacy, ma intanto con quei servizi a pagamento di cui parli, riempi un database che non è il tuo, di dati di decine, centinaia, e forse migliaia di aziende, perchè si è vero che lo usi tu, ma si trova su un server loro. Chi ti assicura che quando tu smetti di pagare, loro cancellano tutto ? NESSUNO.
E se pure qualcuno me lo assicurasse, non ci crederei lo stesso. :)
 
Ultima modifica:
  • Like
Reactions: ziovanja

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
il mio script linux funziona, sostanzialmente non sono altro che echo e calcoli con bc, e quindi stavo riprendendo con lo script in php ma mi succede una cosa particolare: mi si raddoppiano gli elementi quando sono dentro alla if()! sto provando ad usare $xml=new SimpleXMLElement. forse non va bene SimpleXMLElement

PHP:
$DatiTrasmissione = $FatturaElettronicaHeader->addChild('DatiTrasmissione');

$IdTrasmittente = $DatiTrasmissione->addChild('IdTrasmittente');
$IdTrasmittente->addChild('IdCodice', '01234567890');
$IdTrasmittente->addChild('IdPaese', 'IT');

$DatiTrasmissione->addChild('ProgressivoInvio', '00001');
$DatiTrasmissione->addChild('FormatoTrasmissione', 'FPR12');

$file = fopen('cli_001.txt', "r");
while( !feof($file) )
    {
    $row = fgets($file);
    $col = explode(";", $row);
   $v_CodiceDestinatario = $col[0];
   ...
   $DatiTrasmissione->addChild('CodiceDestinatario', $v_CodiceDestinatario);
   ...
   }
fclose($file);

print ($xml->asXML('test.xml'));

e mi esce
Codice:
<DatiTrasmissione>
<IdTrasmittente>
  <IdCodice>01234567890</IdCodice>
  <IdPaese>IT</IdPaese>
</IdTrasmittente>
<ProgressivoInvio>00001</ProgressivoInvio>
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>0000000</CodiceDestinatario>
<CodiceDestinatario/>
</DatiTrasmissione>

Da dove viene fuori il 2° <CodiceDestinatario/> ? Se continuo mi si raddoppiano tutti. idee?
 

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
51
Controlla il file cli_001.txt
Cmq non vedo che bisogno c'è di usare simpleXML quando puoi scrivere l'XML direttamente da php senza classi.
Lunedì ti posto un po' di codice ;)
 

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
Controlla il file cli_001.txt
grazie della risposta ma il file va bene, infatti ha perfettamente caricato CodiceDestinatario con il dato corretto ovvero '0000000'
Codice:
0000000;;;PROVAX00X00X000Y
peccato che ha aggiunto un <CodiceDestinatario/> totalmente inutile e anche sbagliato come sintassi
simpleXML? perchè anche lo snippet per il 730 era stato fatto con quello e ha funzionato alla perfezione.
anche io pensavo di usare un'altro metodo visto che la fattura elettronica utilizza i namespaces che non vengono gestiti bene da simpleXML
 

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
51
Eccomi, scusa il ritardo ma ho avuto molto da fare ieri.
Ecco come scrivere un XML in puro php. Lo so, è un pò spartano, ma questo metodo non sbaglia mai.

Codice:
$txt = "";
$filename = 'fattura.xml';

$miofile = fopen($filename, "w") or die("Unable to open file!");
$txt  = '<?xml version="1.0" encoding="utf-8"?>'."\n"; //QUESTO VA CAMBIATO CON LE SPECIFICHE DELLA FATTURA ELETTRONICA
$txt .= '<nodopadre>'."\n";
$txt .= "\t".'<nodofiglio>'.$VALORENODOFIGLIO.'</nodofiglio>'."\n";
$txt .= "\t".'<nodopadre2>'."\n";
$txt .= "\t\t".'<nodofiglio2>'.$VALORENODOFIGLIO2.'</nodofiglio2>'."\n";
$txt .= "\t".'</nodopadre2>'."\n";
$txt .= </nodopadre>'."\n";
fwrite($miofile, $txt);
fclose($miofile);

provo a spiegare, ma credo sia talmente facile che non ce ne sarebbe nemmeno bisogno :
dopo aver dichiarato la variabile txt vuota e il nome del file (in questo caso nella stessa root del file php che stai scrivendo),
nella prima riga creo il file con il nome fattura.xml
nella seconda riga scrivo l'intestazione dell'xml
dalla terza riga inizio a scrivere i nodi iniziando dal primo padre ed usando \n per il line feed e \t per dargli il TAB per cui :
il primo nodo è a capo riga, il primo figlio ha un tab come pure il padre2 ed il secondo figlio ha 2 tab.
con fwrite scrivo la variavile txt nel file e chiudo con fclose.
Niente di più semplice.

N.B. : i TAB e i LINE FEED sono divisi con il . altrimenti potrebbero NON FUNZIONARE CORRETTAMENTE

Mentre il vero problema nasce nell'inviare una PEC da PHP, ma ho già risolto.
 
Ultima modifica:

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
Se vi interessa questo è il codice che ho usato per creare il file xml della fattura (è una ricevuta sanitaria, ovvero esente iva e con marca da bollo)
la verifica ha dato esito positivo senza alcun errore
Ho messo tra parentesi quadre i dati da cambiare.

il blocco righe puo' essere ripetuto n volte

Nota sulla seguente riga:
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader', '' , '');

facendo semplicemente
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader');
ogni riga successiva aggiunta con addChild avrebbe come namespace p:
es:
<p:DatiTrasmissione>
<p:IdTrasmittente>

facendo invece
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader', '' , '');
il namespace diventa vuoto e soltanto nelle prime righe child della root verrà scritto xmlns=""
, ovvero solo in:
<FatturaElettronicaHeader xmlns="">
<FatturaElettronicaBody xmlns="">

il comando
preg_replace('/xmlns=""\s?/', '', $xml->asXML())

rimuove tutti gli xmlns="" prima di stampare l'xml



PHP:
//*********
//
// il nome FILE deve essere IT[PARTITAIVA]_[CONTATORE]  CONTATORE=CHAR(5) ES: 00001
//
//*********

$xml=new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><p:FatturaElettronica versione="FPR12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd"></p:FatturaElettronica>',LIBXML_NOERROR, FALSE, 'p', FALSE);

// *************
// HEADER
// *************
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader', '' , ''); //il namespace ora sarà  xmlns="" che verrà rimosso alla fine
    $DatiTrasmissione = $FatturaElettronicaHeader->addChild('DatiTrasmissione');
        $IdTrasmittente = $DatiTrasmissione->addChild('IdTrasmittente');
        $IdPaese = $IdTrasmittente->addChild('IdPaese','IT');
        $IdCodice =$IdTrasmittente->addChild('IdCodice','[PARTITAIVA]');

        $ProgressivoInvio = $DatiTrasmissione->addChild('ProgressivoInvio', '[PROGRESSIVO]'); // cambiare: formato alfanumerico; lunghezza massima di 10 caratteri.
        $FormatoTrasmissione = $DatiTrasmissione->addChild('FormatoTrasmissione', 'FPR12'); //cambiare
        $CodiceDestinatario  = $DatiTrasmissione->addChild('CodiceDestinatario', '0000000'); //cambiare  char(6) PA oppure char(7) altri

    //    $PECDestinatario = $DatiTrasmissione->addChild('PECDestinatario');

    $CedentePrestatore = $FatturaElettronicaHeader->addChild('CedentePrestatore');
        $DatiAnagrafici = $CedentePrestatore->addChild('DatiAnagrafici');
            $IdFiscaleIVA = $DatiAnagrafici->addChild('IdFiscaleIVA');
                    $IdPaese  = $IdFiscaleIVA->addChild('IdPaese', 'IT');
                    $IdCodice = $IdFiscaleIVA->addChild('IdCodice', '[PARTITAIVA]');

            $Anagrafica = $DatiAnagrafici->addChild('Anagrafica');
                    $Denominazione = $Anagrafica->addChild('Denominazione', '[RAGIONE SOCIALE]');
            $RegimeFiscale = $DatiAnagrafici->addChild('RegimeFiscale', '[REGIMEFISCALE]'); //verificare

        $Sede = $CedentePrestatore->addChild('Sede');
            $Indirizzo = $Sede->addChild('Indirizzo', '[INDIRIZZO]');
            $CAP = $Sede->addChild('CAP', '[CAP]');
            $Comune =  $Sede->addChild('Comune' , '[COMUNE]');
            $Provincia = $Sede->addChild('Provincia', '[PROV]');
            $Nazione = $Sede->addChild('Nazione', 'IT');
       

       
    $CessionarioCommittente = $FatturaElettronicaHeader->addChild('CessionarioCommittente');
        $DatiAnagrafici = $CessionarioCommittente->addChild('DatiAnagrafici');
            $CodiceFiscale = $DatiAnagrafici->addChild('CodiceFiscale', $pivacf);
            $Anagrafica = $DatiAnagrafici->addChild('Anagrafica');
                $Denominazione = $Anagrafica ->addChild('Denominazione', $cognomenome);

        $Sede = $CessionarioCommittente->addChild('Sede');
            $Indir = $Sede->addChild('Indirizzo', $Indirizzo);
            $CAP_2 = $Sede->addChild('CAP', $cap);
            $Comune = $Sede->addChild('Comune', $citta);
            $Provincia =$Sede->addChild('Provincia', $prov);
            $Nazione_2 = $Sede->addChild('Nazione', $nazione); // controllare se italiano o no!!!!
// *************
// FINE HEADER
// *************

// *************      
// BODY
// *************

//TESTATA BODY
   
$FatturaElettronicaBody = $xml->addChild('FatturaElettronicaBody', '' , '');
    $DatiGenerali = $FatturaElettronicaBody->addChild('DatiGenerali');
        $DatiGeneraliDocumento = $DatiGenerali->addChild('DatiGeneraliDocumento');
            //TipoDocumento:
            //TD01 Fattura
            //TD02 Acconto/Anticipo su fattura
            //TD03 Acconto/Anticipo su parcella
            //TD04 Nota di Credito
            //TD05 Nota di Debito
            //TD06 Parcella
            //TD20 Autofattura  
            $TipoDocumento = $DatiGeneraliDocumento->addChild('TipoDocumento', '[TIPODOCUMENTO]'); //modificare
            $Divisa = $DatiGeneraliDocumento->addChild('Divisa','EUR');
            $Data = $DatiGeneraliDocumento->addChild('Data', '[DATAFATTURA]');
            $Numero = $DatiGeneraliDocumento->addChild('Numero', '[N_FATTURA]');
            $DatiBollo = $DatiGeneraliDocumento->addChild('DatiBollo');
                $BolloVirtuale = $DatiBollo->addChild('BolloVirtuale', 'SI');
                $ImportoBollo = $DatiBollo->addChild('ImportoBollo', '[BOLLO]'); // usare  number_format($bollo, 2);
   
// DETTAGLIO FATTURA
$DatiBeniServizi = $FatturaElettronicaBody->addChild('DatiBeniServizi');


// *************  
//RIGHE FATTURA  
//BLOCCO DA RIPETERE PER OGNI RIGA
// *************
        $DettaglioLinee = $DatiBeniServizi->addChild('DettaglioLinee');
            $NumeroLinea = $DettaglioLinee->addChild('NumeroLinea', '[N_RIGA]');
            $Descrizione = $DettaglioLinee->addChild('Descrizione', 'DESCRIZIONE]');
            $Quantita = $DettaglioLinee->addChild('Quantita', '[QTA]'); //[number_format($qta, 2);
            $PrezzoUnitario = $DettaglioLinee->addChild('PrezzoUnitario', '[PREZZO_U]'); // number_format($prezzo, 2);
            $PrezzoTotale = $DettaglioLinee->addChild('PrezzoTotale', '[TOTALE_RIGA]'); //number_format($totale, 2));
            $AliquotaIVA = $DettaglioLinee->addChild('AliquotaIVA', '0.00');
            //Natura:
            //N1 escluse ex art.15
            //N2 non soggette
            //N3 non imponibili
            //N4 esenti
            //N5 regime del margine / IVA non esposta in fattura
            //N6 inversione contabile (per le operazioni in reverse charge
            //   ovvero nei casi di autofatturazione per acquisti extra UE
            //   di servizi ovvero per importazioni di beni nei soli casi
            //   previsti)
            //N7 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, teleradiodiffusione
            //   ed elettronici ex art. 7-sexies lett. f, g,
            //   DPR 633/72 e art. 74-sexies, DPR 633/72)
            $Natura = $DettaglioLinee->addChild('Natura', 'N4');
// *************
// FINE RIGHE/A
// *************


// *************
//RIEPILOGO      
// *************      
$DatiRiepilogo = $DatiBeniServizi->addChild('DatiRiepilogo');
    $AliquotaIVA = $DatiRiepilogo->addChild('AliquotaIVA', '0.00');
    $Natura = $DatiRiepilogo->addChild('Natura', 'N4');
    $ImponibileImporto = $DatiRiepilogo->addChild('ImponibileImporto', '[IMPONIBILE]'); //number_format(($cassain-$bollo), 2));
    $Imposta = $DatiRiepilogo->addChild('Imposta', '0.00');
    $RiferimentoNormativo=$DatiRiepilogo->addChild('RiferimentoNormativo', 'Esente da IVA ai sensi dell\'art. 10 comma 1,  n.18 del DPR 633/72 e successive modifiche');
       
// FINE DETTAGLIO FATTURA

// *************
// FINE BODY
// *************
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML(preg_replace('/xmlns=""\s?/', '', $xml->asXML()));
$dom->save('[PERCORSO]/[NOMEFILE_CONTATORE].xml');
 
Ultima modifica:
  • Like
Reactions: joomeph

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
51
Bel lavoro Rudycox, solo che sarebbe opportuno a questo punto spiegare a tutti :
cosa è il regime fiscale e dove si trova, il formato trasmissione, in che formato scrivere le date e cosa è la natura.
;)
 

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
i dettagli si trovano tutti nei documenti messi a disposizione dalla agenzia delle entrate all'indirizzo:
http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm

Direi che è fondamentale consultare:
e visionare anche la struttura degli xml di esempio che più si adattano alla propria esigenza.

Gli esempi sono per fatture "standard", per adattarli alle proprie esigenze vanno assolutamente consultati i doc sopra.

se non si fa così direi che è impossibile

alla fine validare il proprio xml con lo strumento apposito: http://sdi.fatturapa.gov.it/SdI2FatturaPAWeb/AccediAlServizioAction.do?pagina=controlla_fattura
 

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
51
Si si, dicevo solo di spiegare quei 4 punti a chi non sapeva i link, ma hai fatto meglio a metterli.
Perfetto
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
vorrei solo suggerire di fare attenzione alle fatture PA (pubblica amministrazione), rispetto alle PR (privati)

qui trovate quello che mi sembra il "portale" più aggiornato con la documentazione (spero) ultima
https://assistenza.agenziaentrate.g...ew,Kb=FattElettr_UIKIT,t=startup.tem,Company={01B847AC-1BB9-4912-B3C2-81EC51E6FD8F}

per ora ho scelto la strada manuale installando l'applicazione per pc messa a disposizione dall'AdE che genera il file xml e pdf

ma sto anch'io lavorando per creare xml

Mentre il vero problema nasce nell'inviare una PEC da PHP, ma ho già risolto.
se ci fai partecipi della tua soluzione è un passo avanti per la gestione automatica

grazie ragazzi
 

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
Se vi interessa questo è il codice per l'invio a mezzo PEC usando phpmailer attraverso SMTP di Aruba.
Attenzione a che sistema operativo usate. Se windows dovete usare la classe per windows altrimenti non invia in ssl

Io non ho ancora effettuato invii al SDI, se qualcuno lo ha già fatto, puo' cortesemente indicarmi cosa viene risposto?
Suppongo arrivi una pec di risposta, ma con degli allegati o solo testo?

PHP:
require_once("../class/class.phpmailer_windows.php");
include("../class/class.smtp.php");
//error_reporting(E_ALL);
date_default_timezone_set('Europe/Rome');


 $mail = new PHPMailer;
 //***Enable SMTP debugging.
//    $mail->SMTPDebug = 2;
//    $mail->Debugoutput = 'html';
//***

    $mail->isSMTP();
     $mail->Host = 'smtps.pec.aruba.it';//gethostbyname('smtps.pec.aruba.it');
     $mail->SMTPAuth = true;
    
    //Provide username and password     
    $mail->Username = '[nomeutente]';
    $mail->Password = '[password]';

    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;

    $mail->From = '[indirizzoPEC_mittente]'; 
    $mail->FromName = '[ilVsNome]';
    $mail->addAddress('[indirizzoPEC_destinatario]');
    $mail->isHTML(true);
    $mail->Subject = "trasmissione n. ####"; //$Subject;
    $mail->Body = "invio fattura n. ###x##"; //  $Body;
    $mail->AltBody = "This is the plain text version of the email content";
    $mail->addAttachment('[percorso_completo_e nomefile.xml]');
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    }
    else {
           echo 'Mail Sent Successfully';
    }
 
  • Like
Reactions: fratt and joomeph

Acrobata

Nuovo Utente
13 Nov 2018
1
0
1
Buongiorno a tutti,
sono il responsabile dell'area amministrativa di un'azienda industriale che utilizza PANTHERA ERP
Con l'imminente obbligo della fattura elettronica tra privati, il distributore del software ci ha proposto l'implementazione dei moduli fatturazione elettronica e conservazione che permetterebbe che ci permetterebbe di raccogliere tutti i dati necessari alla fatturazione elettronica B2B direttamente in anagrafica, di generare e firmare digitalmente fatture in XML e di inviarle automaticamente all’Agenzia delle Entrate, di gestire le notifiche di accettazione o di scarto dello SdI e di gestire analogamente il ciclo di fatturazione passiva.
Sarebbe inoltre possibile appoggiarsi ai loro servizi in outsourcing per dimenticare gli oneri e le responsabilità della conservazione per 10 anni.
Il problema è che i costi da sostenere per suddetta implementazione sono notevoli:
circa 2.560,00 euro per la licenza d'uso con successivo canone annuale ricorrente di 512,00 euro; 540,00 per l'accreditamento allo SDI; 800,00 di canone annuale ricorrente per la conservazione sostitutiva e 385,00 quale costo annuale per l'invio di 5.000,00 documenti e per finire 1500,00/2000,00 euro per le attività di "modellazione" da parte del consulente applicativo.
Sicuramente la soluzione migliore per gestire la fatturazione elettronica con circa 3.500,00 fatture emesse e ricevute è il modulo integrato in Panthera Erp, che consente la gestione del ciclo passivo e attivo della fatturazione elettronica da e verso SDI direttamente dall'applicativo stesso e in modo totalmente trasparente ma tale funzionalità aggiuntiva ci è sembrata proposta ad un costo eccessivo.
Qualcuno dei presenti nel Forum può esprimere il proprio parere o la propria esperienza ?
Grazie
 

Ezio88

Nuovo Utente
19 Gen 2016
8
0
1
Buongiorno a tutti e bel lavoro con gli script (anche se io ne sto già usando uno mio per il gestionale che ho sviluppato su CakePHP).
Una domanda tecnica sul formato, a cui non ho ancora risposta: Ma nel campo AliquotaIVA del riepilogo delle righe quale aliquota devo inserire se ho aliquote differenti a seconda della riga? Non capisco perché abbiano messo quel campo se c'è già l'indicazione di AliquotaIVA per ogni riga (quindi è già calcolabile la tassazione).
Da quello che ho letto so che quel parametro non può essere diverso dalle aliquote indicate per le righe, ma ci sono anche controlli di valore che impongono che il valore sia legato al campo Imposta.

Quindi se ho una voce al 10% di iva e una al 22% cosa metterò in DatiRipilogo.AliquotaIVA?
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Php e fatturazione elettronica PHP 0
P Mailchimp Fatturazione Email Marketing 0
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
F Fatturazione Importo netto + Tasse PHP 5
N BoxBilling.it - Software Gestione Clienti e la fatturazione CMS (Content Management System) 0
N Software Fatturazione Altri Annunci 0
0 azienda per fatturazione Leggi, Normative e Fisco 0
I posta elettronica offline Posta Elettronica 0
M Continua da "posta elettronica" - Configurazione email php su servizio hosting PHP 2
marino51 l'invio della posta elettronica ed il servizio offerto da vari provider Posta Elettronica 0
S Cerco programmatore ( cambi di moneta elettronica multi-valuta ) E-Commerce 1
M Posta elettronica Libero su iPhone Adsl e Connettività 1
Y Creare un sito di bilgietteria elettronica PHP 1
Web Designer Art. 616 C.P.: Violazione, sottrazione e soppressione di corrispondenza elettronica Leggi, Normative e Fisco 0
Web Designer Posta elettronica: utilizzo e normative Leggi, Normative e Fisco 2
P copilazione file xlm per posta elettronica XML 0
A [vendo] e-commerce elettronica Compravendita siti e domini 1
D Droid Conception: La mia Musica musica elettronica in 'Constant Evolution'.. Presenta il tuo Sito 0
borgo italia PEC: Posta Elettronica Certificata Posta Elettronica 5
W Pianeta-Cellulari.Com: telefoni cellulari ed elettronica delle migliori marche Presenta il tuo Sito 0
N Acquisto di una lavagna elettronica Hardware 0
webbetto Archiviazione e Gestione Elettronica Discussioni Varie 0
peppoweb Posta elettronica gratuita anche per Google Discussioni Varie 0
G Aiutino x posta elettronica Posta Elettronica 2
L Help problemi con la posta elettronica Posta Elettronica 4
peppoweb Il 20 e 21 settembre Exporadio Elettronica, a Rimini Discussioni Varie 0
peppoweb Una carta elettronica per i servizi on-line delle PA Discussioni Varie 0
peppoweb Carta Identità elettronica: Governo e produttori per standard unico Discussioni Varie 0
peppoweb Microsoft presenta una soluzione per la "Posta Elettronica Certificata" Sicurezza e Virus 0
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
B Da XML a TXT x4 XML 0
B ciclare file xml con PHP PHP 1
P Rimozione automatica url da sitemap.xml con PHP PHP 1
P Modifica con PHP di un node in una sitemap xml PHP 0
M modificare un file .XML da database Sql PHP 13
T Da xsd a xml ed inserimento dati in excel XML 0
C Problema con dati meteo xml XML 1
R Cerco esperto XML Offerte e Richieste di Lavoro e/o Collaborazione 0
E [PHP] creare temporary table per dati da xml PHP 2
G XML raccolta brani XML 1
P [CERCO] Webmaster per cataloghi prodotti csv/xml Offerte e Richieste di Lavoro e/o Collaborazione 3
S aggiornare valore di un elemento xml con php PHP 8
G Errore Cannot read property 'childNodes' of undefined per mancanza nodo nel file xml XML 6
A [PHP] Prelievo dati da xml online. PHP 9
L XML zip XML 3
L [PHP] parsing xml PHP 1
J XML e css XML 0
P Importazione dati da file xml in db mysql con php PHP 17
F Parsing in PHP non legge tutto il file XML XML 2
A SERP ballerine e interventi manuali sitemap.xml SEO e Posizionamento 2

Discussioni simili