Nuovi servizi per quadratura e reinoltro (SDICoop)

Contattata sogei, sembra che in questi casi basti cambiare il nome del csv ed inviare nuovamente la richiesta di fornitura e stavolta ho ricevuto le notifiche richieste.

Ciao,
sto cercando di implementare il servizio di quadratura per recuperare i dati persi tra la scadenza dei vecchi certificati e l’arrivo dei nuovi, ma ho dei problemi nella decodifica dei file zip di Scarico Report Quadratura. Riesco a salvare uno zip apparentemente corretto, ma non a estrarne il contenuto (tramite 7zip) a causa di “errore nei dati” (“termine dei dati inatteso” e “sono presenti dati oltre la fine del payload dei dati”). Qualche suggerimento?
Grazie

Non saprei, io tutti questi problemi con i file ZIP non li ho, usando gli strumenti sotto Linux (unzip da linea di comando, oppure il supporto built-in di KDE) non ho alcun problema e se faccio il test degli archivi è tutto OK.
Assicurati di estrarre correttamente il file ZIP dalla risposta del web service o prova con qualche altro scompattatore…

Il problema è che sto cercando di ampliare l’interfaccia esistente scritta in nodejs (con modulo SOAP) e non riesco ad ottenere dei dati coerenti, non vorrei dover cambiare piattaforma e ripartire da zero :grimacing:

Non ho esperienza di nodejs… la libreria che usi supporta MTOM?
In ogni caso, se con lo stesso stack tecnologico ricevi ed estrai correttamente le fatture, dovresti riuscire a fare la stessa cosa anche con gli ZIP ricevuti dai flussi di quadratura/reinoltro. Il formato di trasmissione è il medesimo.

Idem, ho risolto decomprimendo manualmente senza librerie esterne. Il codice è in php ma magari ti fai un idea:

$LFA = unpack( "Vsig/vver/vflag/vmeth/vmodt/vmodd/Vcrc/Vcsize/Vsize/vnamelen/vexlen",
    substr( $zipFile, 0, 30 ) );

$zipCSize = $LFA['csize']; // vuoto!
$csvCRC32 = $LFA['crc']; // vuoto!
  
//# Central Directory File Header 0x02014b50
$CDFHoffset = strpos( $zipFile, "\x50\x4b\x01\x02" );
$CDFH = unpack( "Vsig/vverby/vverex/vflag/vmeth/vmodt/vmodd/Vcrc/Vcsize/Vsize/vnamelen/vexlen", 
substr( $zipFile, $CDFHoffset, 46 ) );

$zipCSize = $CDFH['csize'];
$csvCRC32 = $CDFH['crc'];

$filename = substr( $zipFile, 30, $CDFH['namelen'] );

//# Estrae file csv
$csvFile = gzinflate( substr( $zipFile, 30 + $LFA['namelen'] + $LFA['exlen'], $zipCSize ) );

if( crc32( $csvFile ) ===  $zipCRC32 ){
  // Failure
}

Questo mi evita anche di salvare file a destra e a manca.

1 Mi Piace

Risolto, ho dovuto specificare “encoding: binary” nella richiesta perché la libreria SOAP effettuava automaticamente una conversione in utf8 che alterava il codice binario.
Grazie!

Riporto in vita un vecchio post dato che la domanda è relativa al funzionamento delle api di quadratura.

tramite le api è possibile :

  • scaricare un report delle fatture ricevute e le fatture ricevute (non scaricate)
  • scaricare il report delle notifiche legate alle fatture inviate e scaricare le notifiche.

quello che mancherebbe è scaricare le fatture che si hanno inoltrato.

in merito ho trovato questo

dove al punto 1.3.2 esiste “Servizio di scarico massivo → File massivi fatture”

Avete mai provato ad usarlo ?
E’ possibile usarlo solo su delega nonostante la richiesta venga dal canale che ha trasmesso le fatture?

non ho trovato molte indicazioni in merito.

Onestamente non mi sono mai posto il problema, perché le fatture che ho inoltrato si dà per presupposto che io le abbia: tu le elimini una volta, dopo averle inviate?

no, tutto quello che invio lo conservo sia sul db dove vengono generate , che sul db che fa da tramite con SDI.
ma con i blocchi di pasquetta , i vari rallentamenti di SDI ed i click compulsivi di chi preme INVIA ho una fattura il cui hash non mi corrisponde e volevo verificarla.

Ma se un povero tapino volesse tirar fuori le notifiche delle fatture più vecchie di 3 settimane si attacca al c***o?
C’è un modo per farsi rimandare le notifiche non consegnate?

A quanto ne so io, “sì” alla prima domanda e “no” alla seconda…

1 Mi Piace

Eccellente :confused:
Non c’è modo neanche contattandoli direttamente?

Tra non so se è un problema mio o dello SDI di concorrenza sulle chiamate per rimandare le notifiche ma ogni volta che faccio una richiesta di rimandarmi un numero sostanziale di notifiche me ne viene inviato solo un sottoinsieme casuale.
A furia di richiamare il servizio per dirgli di rimandare le notifiche che si sono perse si fa presto a raggiungere il limite giornaliero di richieste.

Altra cosa fantastica è quando si raggiunge il limite di RichiestaReinoltroFlussoTrasmissioneRequest sono riuscito solo una volta a vedere l’errore “Raggiunto numero massimo di richieste al giorno” con ListaErroriDettaglio vuoto.
Le altre volte mi da “PARAMETRI DI INPUT NON VALIDI” anche se i parametri sono corretti perchè avevo già fatto chiamate identiche in precedenza e il giorno dopo stranamente lo stesso invio funziona.

Ho quindi il sospetto che venga segnalato l’errore sbagliato quando si raggiunge il limite giornaliero.

no,
dovresti usare qualche crawler usando le credenziali del cassetto fiscale del cliente per estrapolare i dati direttamente dall’agenzia delle entrate (o qualcosa di simile)

Aggiornamento!

Ho aperto un ticket a SOGEI e mi hanno richiamato per offrirmi la possibilità di estendere la ricerca passata delle notifiche a 3 mesi anziché 3 settimane visto che non abbiamo una grossa mole di fatture.

Effettivamente oggi mi sono accorto che sono in grado di fare ricerche più indietro nel tempo.
Oggi per esempio ho richiesto con successo le notifiche dal 2023-06-15 al 2023-06-25 usando il servizio quadratura-flusso-trasmissione

Tenete presente che l’apertura ai 3 mesi precedenti è solo una cosa temporanea che si disattiva automaticamente dopo altri 3 mesi credo.
Se si vuole riattivare in seguito basta ricontattare SOGEI e effettuare nuovamente la richiesta.

Altra informazione che può esservi utile, da quando mi hanno contattato a quando hanno attivato l’estensione al range di ricerca sono passati 6 giorni.

Interessante… per noi sarebbe utilissimo… però se ogni volta va fatta richiesta è una rottura, anche perché mi chiedo se te l’hanno fatto come favore “ad personam” o se è prevista come politica standard…

Alcuni anni fa quando ho avuto un problema di questo tipo (forse allora non c’erano neppure i flussi di quadratura, però so che loro potevano rifare gli invii da assistenza, se volevano…) mi hanno sostanzialmente risposto che dovevo attaccarmi… E mi sarebbe bastato poter tornare indietro di un mesetto circa…

Mi ha detto che non sono il primo ad averlo chiesto ed è una procedura che hanno già fatto per venire in contro a questa esigenza.
E’ vero che è una rottura e ci mettono circa una settimana dalla richiesta per aumentare il range ma sicuramente è meglio di niente.

Buongiorno a tutti,
stiamo provando a sviluppare i servizi di quadratura e reinoltro.
Per quanto riguarda il reinoltro nessun problema, una volta chiamato il servizio passando gli identificativi, riceviamo entro qualche minuto la fattura/notifica su nostro ws.
Per la quadratura invece, effettuiamo la richiesta e ci viene ritornato l’id del report, ma quando cerchiamo di scaricarlo, ci viene restituito costantemente SR01 in Elaborazione, anche a distanza di due giorni.
Succede anche a voi? Consigli a riguardo?

C’è solo da aspettare. Penso sia un caso eccezionale due giorni, in genere basta aspettare qualche minuto o, nel peggiore dei casi, mi è capitato di aspettare penso un’ora.

Segnalo che dopo 3 giorni finalmente sono riuscito a scaricare il report di quadratura. Meglio tardi che mai.