Invio files XML attraverso FTP

ciao, finalmente ho terminato il mio software per generare correttamente le fatture elettroniche dagli archivi del mio programma.
L’ho scritto ovviamente in C#.
Volevo sapere se è complesso e come fare eventualmente per sottoscrivermi al sistema SdI e inviarle attraverso la modalità FTP che , tra quelle automatizzate, mi sembra quella meno problematica, evitando quindi di dover caricare manualmente il file sul sito di AdE Fatture e Corrispettivi.
Grazie saluti

dicono che sia molto complesso

https://www.agenziaentrate.gov.it/wps/file/Nsilib/Nsi/Schede/Comunicazioni/Dati+Fatture+(c.d.+nuovo+spesometro)/Specifiche+tecniche+Dati+Fatture+(c.d.+nuovo+spesometro)/st+Accreditamento+e+richiesta+codici+destinatario/Accreditamento%2Be%2Brichiesta%2Bcodici%2Bdestinatario_v1.0.pdf

secondo me la cosa più complessa non è l’accreditamento, ma la firma in formato PKCS#7 e la cifratura. Si parla di imbustatura conforme allo standard PKCS#7 v 1.5, nelle modalità “signedData” ed “envelopedData” (standard misto S/MIME, con busta di firma e cifratura conforme PKCS#7 v.1.5, con codifica in formato DER).
mi date qualche ragguaglio in merito e dove reperire classi e/o esempi C# .NET ? Grazie

guarda che la firma e la cifratura le fai banalmente chiamando openssl mediante System.Diagnostics.Process, i comandi per fare la firma e l’encription sono ben descritti nella procedura fornita da SDI,
tuttavia sappi che per l’accreditamento serve:
IP statico
Linea affidabile, ad esempio fibra, meglio ancora se con link ridondanti.

La firma digitale è solamente difficile per le fatture PA dove le fatture devono essere firmate con una firma qualificata e allora farlo programmaticamente può non essere semplice.

1 Mi Piace

Se devi solo inviare le fatture (e non riceverle), l’invio attraverso web service (servizio SDICoop) è probabilmente più semplice (e affidabile), perché non richiede la configurazione di un server (che sia sftp o web). Usando C# è abbastanza facile fare chiamate SOAP partendo dal wsdl (bisogna fare attenzione ad alcuni parametri di configurazione, ma ci qui dei topic con esempi di chi l’ha già fatto).

Spiego meglio cosa intendo col fatto che SDICoop è più affidabile.
Con il servizio SDIFTP, è il SdI che si collega al tuo server per prelevare le fatture. A giudicare dalle discussioni qui nel forum, ci sono stati parecchi problemi, tipo che il SdI non si collegava per prelevare le fatture, oppure lo faceva, ma poi finivano nel nulla.
Col servizio SDICoop, sei tu che ti colleghi al loro web service per inviarle. Noi siamo accreditati con SDICoop e finora non ci sono mai capitati errori durante l’invio.
Ogni tanto il SdI aveva dei momenti di lentezza in cui ci metteva tanto a consegnare le fatture o le notifiche (ma questo vale anche per l’FTP), ma l’invio al web service non ha mai dato problemi.

1 Mi Piace

Beh allora il modo più rapido è inviarle via PEC… ed interrogare la cartella IMAP per le notifiche…

Il problema vero non era almeno nel mio caso il prelievo ma le notifiche. Negli stessi giorni in cui gli utenti del servizio SDIFTP lamentavano problemi anche gli utenti del servizio SDICOOP lamentavano problemi relativi alle notifiche…
Attualmente sembra che la situazione sia rientrata, aspettiamo il fine mese per capire se il sistema SDI nel suo complesso è stato dimensionato correttamente…

Mi rispondo da solo. Oggi è meglio se non scrivo sul forum perché continuo a dire cavolate.
Anche se ti limiti all’invio delle fatture con SDICoop devi comunque mettere un web service sul tuo server per poter ricevere le notifiche. Serve preferibilmente un indirizzo IP dedicato (perché devi usare il certificato che ti forniscono loro, e il loro client non supporta SNI).

Prima che ti avventuri nell’accreditare un canale, credo sia bene tu ti legga qui quanto Sogei ci stia facendo “sclerare”. :joy: