Download fatture da cassetto fiscale

Salve a tutti,
come prima cosa mi scuso se l’argomento è stato più volte affrontato ma dalla ricerca nei post non ho trovato nulla di preciso al riguardo.

Vorrei sapere, ed eventualmente avere le indicazioni di dove trovare la documentazione relativa, se esiste la possibilità di collegarsi al cassetto fiscale tramite API/WS per scaricare le fatture presenti tramite l’utilizzo delle credenziali utente.

Grazie in anticipo

1 Mi Piace

Nessuna api pubblica, ma con questo script in python puoi scaricare le fatture ricevute e metadati.

GitHub - claudiopizzillo/FeCscraper: Scraper for Sogei's Fatture e Corrispettivi service. .

Con una piccola modifica puoi anche scaricare emesse.

Se analizzi il codice trovi le api esposte dall’AdE.

1 Mi Piace

Ciao come potremmo integrare il login spid?

Grazie mille, di grande aiuto!

Buongiorno a tutti, utilizzando lo script di Claudio (che è da ringraziare mille volte) mi appare questo problema.
File “C:\Users.…\AppData\Local\Programs\Python\Python310\lib\json\decoder.py”, line 355, in raw_decode raise JSONDecodeError(“Expecting value”, s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Sono novizio di python e quindi non so se l’errore dipende da una installazione sbagliata (esempio directory di lavoro). @ClaudioP puo’ aiutarmi ? Grazie

E’ davvero assurdo che non vengano messe a disposizione delle API documentate da parte di Sogei per tutte quelle attività di consultazione e di conciliazione coi sistemi aziendali di gestione dei flussi di fatturazione. Lo SPID da questo punto di vista impone dei paletti importanti, ma non è impossibile prevedere modalità di autenticazione differenti comunque sicure (OAuth o Keys/Secret) utilizzabili solo per l’accesso via WS. Ma di assurdità varie l’intero meccanismo della FE italiana ne è pieno zeppo.

Quoto me lo chiedo anche io, come usare lo script loggandosi con lo SPID

Lo SPID non è obbligatorio per chi ha la p.iva o è incaricato, quindi l’intera platea degli utilizzatori del portale Fatture&Corrispettivi. Tali soggetti possono tutt’ora chiedere e ottenere le credenziali Fisconline, seppur con qualche resistenza da parte degli uffici. Volendo comunque accedere tramite SPID, per esempio se i webservice non sono usati in un processo in background ma sono integrati in una UI, è possibile passare effettuare il login via SPID in un browser / webview e poi passare il cookie di sessione allo script / webservice. In quelli che ho realizzato io è presente questa feature.

Buongiorno, sto provando ad utilizzare lo script offerto, ma mi viene restituito un messaggio di errore ‘Adesione ai servizi AdE non riuscita: uscita.’. Possibili soluzioni e/o cause? Grazie in anticipo.

Qualcuno ha idea di come fanno questi ad offrire accesso via API al Cassetto Fiscale?
Perché promettono proprio tutto quello che è stato chiesto da OP e che tutti noi consideriamo impossibile usando soltanto gli strumenti messi a disposizione da AdE

Il background sottostante è sempre base scraping. Sull’accesso via SPID automatizzato (che offrono anche altre API similari) ci sono dubbi sulla legalità.

1 Mi Piace

Non dovrebbero esserci problemi di legalità nemmeno con l’accesso via SPID, poiché l’utente esegue comunque manualmente l’autenticazione a due fattori (tramite SMS, notifica push o simili) e il trasferimento della sessione allo scraper è conseguenza di un’azione dell’utente, che vale come consenso esplicito.

Anzi, con l’accesso via SPID lo scraper non vede mai le credenziali e l’utente può terminare la sessione da remoto in qualsiasi momento, quindi da un punto di vista legale lo trovo anche meglio dell’accesso con credenziali Fisconline, solo più scomodo per determinati casi d’uso.

Per normativa SPID è necessaria la selezione dell’IDP via SPID button ecc… Parlo per quei servizi che memorizzano user e password dell’utente e chiedono solo l’OTP, senza effettuare tutta la procedura corretta per l’autenticazione SPID.

1 Mi Piace

Buongiorno,
Ho provato ad individuare le api, in modo da poter scaricare anche le transfrontaliere ricevute, oltre le emesse, ma non sono riuscito ad individuarle.
Dove posso trovarle?
Colgo l’occasione per ringraziarla infinitamente per l’aiuto nel pubblicare il codice

Nel frattempo ho trovato.
Nella riga di codice … cons/cons-services/re/
fe/emesse (fatture emesse)
fe/ricevute (fatture ricevute)
mc/ (fatture a disposizione)
ft/emesse (estere emesse)
ft/ricevute (estere ricevute)

Buongiorno, sto utilizzando con successo FeCScraper per le fatture ricevute.
Un grazie infinito per lo script python messo a disposizione!!!

Ho un problema, vorrei scaricare le transfrontaliere.
Ho provato a cambiare l’indirizzo da:
cons-services/rs/fe/ricevute/dal/'+Dal+'/al/'+Al+'/ricerca/ricezione
a
cons-services/rs/ft/ricevute/dal/'+Dal+'/al/'+Al+'/ricerca/ricezione
ma ottengo errore 404

Qualche suggerimento?
E problema analogo per le messe a disposizione.

Ancora grazie

Risolto con script presi da un fork di FeCScraper:

  • per messe a disposizione:
    cons-services/rs/fe/mc/dal/'+Dal+'/al/'+Al+'?v=
  • per transfrontaliere:
    cons-services/rs/ft/ricevute/dal/'+Dal+'/al/'+Al+'?v=

Chiedo scusa se riesumo il thread: sto studiando la fattibilità di un’applicazione che in un suo modulo scarichi le fe dal cassetto fiscale. Mi pare di aver capito che l’accesso al cassetto via credenziali è ancora consentito per titolari di partita iva (professionisti e imprese) ma secondo il Codice dell’Amministrazione Digitale dovrebbe scomparire. Sul sito dell’AE si legge un decreto attuativo che però evidentemente non è ancora stato emanato. Qualcuno ha notizie su questo punto?
Grazie in anticipo per le eventuali risposte.

Buongiorno
con il codice riportato di seguito che è la parte dopo le istruzioni per entrare su “Fatture e Corrispettivi “ con le proprie credenziali, riesco ad arrivare alla pagina dove inserire le date per la consultazione delle fatture ricevute, da qui non riesco ad andare avanti per poter scaricare i file xml delle fatture, qualcuno sa indicarmi le istruzioni da inserire? Grazie.

Dim URLConsultazioneFEFiltro As String
URLConsultazioneFEFiltro = “Fatture elettroniche e altri dati IVA” & UnixTime & “#/fatture/ricevute”
WebClient.Open “GET”, URLConsultazioneFEFiltro, False
WebClient.setRequestHeader “Content-Type”, “application/x-www-form-UrlEncoded”
WebClient.setRequestHeader “Cookie”, “agree=True”
WebClient.Send

Dim URLConsultazioneFERange As String
URLConsultazioneFERange = URLConsultazioneFEFiltro & “/dal/” & “01/04/2023” & “/al/” & “31/05/2023” & “/ricerca/ricezione?v=” & UnixTime

WebClient.Open “GET”, URLConsultazioneFERange, False
WebClient.setRequestHeader “Content-Type”, “application/json”
WebClient.setRequestHeader “x-token”, “b0bd30fb97de8d2d274580456baa174c2f976dfb10ceed7e20d60a08a494a”
WebClient.setRequestHeader “x-b2bcookie”, “5513ca11abc1b664ec3790acd9e036d0a71376373f72e3dcbf49ae67bf987f8”
WebClient.setRequestHeader “accept”, “application/json, text/plain, /
WebClient.Send

Dim xmlDoc As DOMDocument60
Set xmlDoc = New MSXML2.DOMDocument60
Dim Node, I, tables, Nodexml
xmlDoc.async = False
xmlDoc.validateOnParse = False
xmlDoc.SetProperty “ProhibitDTD”, False
xmlDoc.LoadXML (WebClient.responseText)
MsgBox WebClient.Status