Open nardil opened 1 year ago
Il servizio verra' implementato utilizzando l'openapi aggiornato alla versione SANP 3.5.0.
Con ogni probabilità sara' necessario prevedere nella configurazione dell'intermediario la URL di erogazione del servizio. E' stato richiesto a pagoPA un chiarimento in merito per individuare le URL reali di UAT ed Esercizio
Scelte implementative:
inviatoAca
di tipo boolean che indica se l'avviso e' stato spedito all'archivio centralizzato. Il valore da impostare per tutte le pendenze gia' presenti in archivio e' true
. Al momento del caricamento di una pendenza viene assegnato il valore false
, se l'invio all'archivio va a buon fine il valore diventa true
. Quando una pendenza in stato non eseguito viene modificata nei campi importo
e/o data scadenza
allora il valore del campo inviatoAca
viene impostato a false
e l'avviso verra' nuovamente inviato all'archivio.inviatoAca=true
.stato=NON_ESEGUITO && inviatoAca=false
, per ogni avviso da spedire viene schedulato un thread che si occupa della spedizione e della gestione dell'esito della chiamata verso PagoPA.E' stata fatta una richiesta di chiarimento a https://github.com/pagopa/pagopa-api/issues/909 con le seguenti richieste (per ognuna e' indicata l'attuale implementazione in GovPay):
Pagamento multibeneficiario NON viene inviato l'avviso di pagamento.
Mi aspetto sempre 201 Created.
La richiesta di aggiornamento di un avviso viene fatta se si riscontra la modifica di data scadenza o importo, in tal caso tutti i campi vengono inviati con eventuali i valori modificati.
Vengono chiuse le posizioni inviando una richiesta con importo = 0 al momento della ricezione della ricevuta.
Con il rilascio delle SANP 3.6.0 sono stati definiti tutti i punti per la gestione degli avvisi da inviare ad ACA:
Ogni EC, al momento delle creazione di una nuova posizione debitoria, deve effettuare il censimento della stessa sull’ACA tramite la paCreatePosition; grazie alla proprietà di idempotenza, per mezzo della stessa API è possibile aggiornare la posizione.
Fase di censimento
La richiesta di creazione di una nuova posizione giunge all’ACA per mezzo della paCreatePosition, fornendo in input i seguenti dati:
ACA effettua una verifica semantica e integra le informazioni della posizione:
Posizioni multibeneficiario
Anche le posizioni debitorie multibeneficiario devono essere inviate all'ACA, con le accortezze di seguito descritte:
Fase di aggiornamento
E’ obbligatorio effettuare un aggiornamento della posizione debitoria richiamando la summenzionata API paCreatePosition nei seguenti casi:
La chiamata deve essere fatta contestualmente alla modifica effettuata sull'archivio dell'EC.
Ogni volta che viene eseguito un aggiornamento della posizione debitoria, la piattaforma aggiorna in automatico anche l’informazione dell'IBAN di accredito recuperandolo dal backoffice pagoPA.
Fase di annullamento
E' obbligatorio nel caso di posizione annullata o sostituita con una nuova effettuare l’annullamento della posizione debitoria richiamando la summenzionata API paCreatePosition.
La chiamata deve essere fatta contestualmente alla modifica effettuata sull'archivio dell'EC.
L’annullamento può essere effettuato esclusivamente impostando il valore del campo amount a zero.
Fase di chiusura
Nel caso di posizione debitoria pagata dal debitore tramite canali diversi dalla piattafroma pagoPA è necessario richiamare la summenzionata API paCreatePosition per effettuare la chiusura della stessa.
La chiusura può essere effettuata esclusivamente impostando il valore del campo amount a zero.
Come indicato nella Issue pagopa/pagopa-api#909: Lo stato della posizione viene aggiornata in automatico solo in caso di pagamento. In questa fase la piattaforma riesce ad intercettare l'esito del pagamento e in caso di esito positivo chiude in autonomia la posizione.
@nardil Si e' deciso di introdurre in parallelo all'ACA anche il supporto ai servizi GPD.
In entrambi i casi e' previsto l'invio della posizione debitoria agli archivi centralizzati. L'invio della posizione verso ACA e' automatico e contestuale al caricamento della posizione su GovPay. L'invio della posizione verso GPD esclude l'invio automatico verso ACA.
Per richiedere l'invio verso GPD e' necessario indicarlo esplicitamente al momento del caricamento di una pendenza.
Per la gestione degli invii e' necessario aggiungere alla tabella versamenti la colonna inviatoGPD di tipo boolean che indica se la pendenza e' stato spedito all'ACA o al GPD. Il valore da impostare per tutte le pendenze gia' presenti in archivio e' false (invio ACA).
Al momento del caricamento di una pendenza viene assegnato il valore false a meno che non venga richiesto l'invio GPD.
Aggiungere la colonna di tipo datetime dataInvioGPD
che si utilizza per decidere quali pendenze inviare.
Le pendenze per cui dataUltimoAggiornamento > dataInvioGPD
dovranno essere inviate.
@nardil Revisione 02/02/2024
E' stato deciso al momento di non implementare il supporto al GPD.
Le modifiche da realizzare nel progetto GovPay sono le seguenti:
versamenti
le colonne data_ultima_modifica_aca
e data_ultima_comunicazione_aca
data_ultima_modifica_aca
contiene l'informazione di quando e' stata effettuata l'ultima modifica ai dati da spedire verso ACA. Il valore presente in questa colonna verra' modificato quando in fase di aggiornamento della pendenza si verifica una delle seguenti situazioni: annullamento o modifica dell'importo o della data scadenza.data_ultima_comunicazione_aca
contiene l'informazione relativa all'ultima spedizione effettuata con successo verso ACAv_versamenti_aca
che contiene tutti i dati necessari per la creazione dei messaggi da spedire verso ACA raccogliendo le pendenze da spedire v.stato = 'NON_ESEGUITO' and v.data_ultima_comunicazione_aca < v.data_ultima_modifica_aca
Allineare il batch di alimentazione ACA alle SANP 3.7.0.
L'ultima versione prevede di fornire all'ACA anche un conto di accredito su cui riversare i fondi riscossi. Questo implica che in caso di multi-beneficiario ne vada individuato uno tra quelli indicati. Come policy interna, verra' selezionato il primo iban tra quelli dell'EC.
OpenPoint: In caso tutti gli importi siano attestati a beneficiari diversi dall'EC, quale conto scegliere?
Necessità: pagoPA richiede la pubblicazione degli avvisi sull'archivio centralizzato (https://docs.pagopa.it/circolare-pagopa/dettaglio-interventi/archivio-centralizzato-avvisi) come archivio di fallback qualora i servizi dell'Ente non siano disponibili.
Note: Il servizio verra' specificato nelle SANP 3.4.0 non ancora pubblicate.
Presumibilmente saranno predisposte delle api per caricare gli estremi dell'avviso con cui i PSP possano effettuare la riscossione in caso di indisponibilità dei servizi dell'Ente. L'implementazione dovrà essere trasparente nei casi di caricamento nell'APA.
Nota: chiarire l'eventualità di pagamento di un importo non aggiornato.