pagoPA e riuso nella pubblica amministrazione: l’esperienza CNR

Marco Spasiano
Developers Italia
Published in
5 min readOct 5, 2022

di Gasparro Gianfranco, Spasiano Marco

PagoPA è la piattaforma digitale nazionale che consente ai cittadini di effettuare pagamenti in modo più naturale, veloce e moderno verso la Pubblica Amministrazione ed altri soggetti che forniscono servizi al cittadino, e che solleva le amministrazioni dai costi e dai ritardi dei metodi di incasso tradizionali.

Il Sistema pagoPA è stato realizzato dall’Agenzia per l’Italia Digitale (AgID) in attuazione dell’art. 5 del CAD, ed il suo modello di funzionamento fa riferimento ai principi del “Four Corners model” definito dall’European Payment Council che è riportato nella figura sottostante

Architettura pagoPA

pagoPA si pone quindi quale facilitatore del colloquio tra i vari soggetti coinvolti nei pagamenti verso la Pubblica Amministrazione ed è definito con un processo strutturato e determinato.

Tra le pubbliche amministrazioni il CNR, Consiglio Nazionale delle Ricerche, è un Ente pubblico di ricerca nazionale con competenze multidisciplinari. Fondato nel 1923, ha il compito di realizzare progetti di ricerca scientifica nei principali settori della conoscenza e di applicarne i risultati per lo sviluppo del Paese, promuovendo l’innovazione, l’internazionalizzazione del “sistema ricerca”. Le attività vengono svolte attraverso un patrimonio di risorse umane di circa 8.500 dipendenti operanti su tutto il territorio nazionale, di cui oltre 7.000 impegnati in ricerca e attività di supporto alla ricerca. La rete scientifica è costituita da 88 Istituti di ricerca e da sette Dipartimenti per aree macro-tematiche. Un contributo importante arriva dalle collaborazioni, anche internazionali, con i ricercatori delle Università e delle imprese.

Vista la complessità e la multidisciplinarietà dell’ente il CNR ha da diversi anni costituito un team di sviluppo software dell’ufficio ICT, che ha intrapreso con convinzione la scelta di pubblicare gli applicativi sviluppati “in-house” sul portale del riuso della pubblica amministrazione, esempi sono SIGLA, Selezioni Online, ePAS, Scrivania Digitale, Parco Auto, Telefonia Mobile.

Il CNR, essendo un ente che non fornisce servizi direttamente ai cittadini, non era stato interessato all’implementazione dell’integrazione con il sistema pagoPA. Nel 2021 però, a seguito di alcune richieste pervenute da parte di alcuni clienti ha deciso di adeguare i propri sistemi predisponendosi ad accettare pagamenti pagoPA.

Gli uffici coinvolti nella fase di analisi delle possibili soluzioni da adottare sono stati:

  • L’ufficio Bilancio, tra le cui competenze rientra la gestione del conto di tesoreria del CNR ed i rapporti con l’istituto cassiere;
  • L’ufficio ICT, che implementa e gestisce il software SIGLA, Sistema Informativo Contabile dell’ente, presente nel catalogo del riuso.

Inizialmente è stato scelto l’utilizzo del solo modello 3 per accettare i pagamenti con pagoPA.

L’ufficio ICT ha preso visione della documentazione tecnica di pagoPA, presente all’interno della sezione Piattaforme all’interno del portale https://developers.italia.it

https://developers.italia.it/it/pagopa

Successivamente si è organizzato un incontro con l’istituto cassiere per capire le modalità di gestione dell’integrazione con pagoPA ed i servizi offerti nell’ambito del contratto che lega il CNR alla banca.

A seguito di questa riunione è emersa una richiesta economica da parte dell’istituto cassiere che avrebbe implementato una parte dei servizi occorrenti all’integrazione con il sistema pagoPA, il resto delle modifiche doveva essere implementato in SIGLA da parte dell’ufficio ICT.

A fronte della richiesta economica da parte della banca, è stato necessario prendere una scelta tra:

  • Accettare l’offerta della banca e procedere alle modifiche su SIGLA per gestire gli avvisi di pagamento pagoPA ed ai test di integrazione con i servizi per pagoPA offerti dall’istituto cassiere;
  • Implementare, da parte dell’ufficio ICT, l’integrazione con il sistema pagoPA e la gestione in SIGLA degli avvisi di pagamento pagoPA;
  • Verificare se i servizi offerti dalla banca, fossero presenti sul catalogo del riuso.

L’ufficio ICT ha verificato sul catalogo del riuso la presenza di un software in grado di fornire i servizi di integrazione a pagoPA offerti dall’istituto cassiere e che fungesse da middleware tra pagoPA e SIGLA.

Nel catalogo del riuso è presente la soluzione GovPay, gateway di integrazione alla piattaforma di pagamento pagoPA sviluppato e pubblicato dalla società Link.it s.r.l.

Dai dati presenti sul portale del riuso sono subito emersi alcuni fondamentali dati statistici:

  • Vitalità del progetto all’82%;
  • Stabilità dello sviluppo;
  • La buona documentazione fornita a corredo per l’installazione e per la configurazione;
  • La possibile integrazione con altre applicazioni attraverso API REST

Queste informazioni sono state di estremo interesse ed hanno veicolato la scelta verso l’approfondimento della soluzione, l’utilizzo di GovPay e l’integrazione a SIGLA per la comunicazione con il sistema pagoPA.

Abbiamo poi contribuito con una pull request su GitHub alla distribuzione della piattaforma GovPay tramite l’utilizzo di Docker, mettendo quindi a disposizione della community open source la nostra esperienza di utilizzo.

Analizzando nel dettaglio l’integrazione tra SIGLA e GovPay sono emersi i seguenti elementi:

Comunicazione da SIGLA a GovPay:

  • Invio delle informazioni relative all’avviso di pagamento da creare;
  • Richiesta della produzione del file pdf dell’avviso di pagamento;
  • Richiesta della produzione del file pdf della ricevuta telematica relativa all’attestazione del pagamento eseguito;
  • Riconciliazione dell’incasso avvenuto con la giornaliera di cassa dell’istituto cassiere.

Abbiamo deciso di creare un “REST client” di SIGLA verso GovPay e per fare questo abbiamo utilizzato il software Open Source OpenFeign, in modo da poterlo integrare anche in altri software dell’ente.

Abbiamo impostato nel file di configurazione yml di SIGLA le seguenti proprietà per la connessione a GovPay, come da buona prassi per evitare di avere nel codice sorgente i riferimenti di indirizzi e dati di accesso ad altri applicativi:

pagopa:
govpay:
base_url: http://govpay.test.si.cnr.it/govpay
usernameApp: *******
passwordApp: *******

ed abbiamo creato la ”interface” che contiene le chiamate alle REST esposte da GovPay.

Infine abbiamo creato la classe Service che include la configurazione con cui SIGLA invoca le REST di GovPay e che si occupa di invocare le chiamate a Govpay attraverso il client citato in precedenza.

Comunicazione da GovPay a SIGLA:

  • Richiesta di verifica della validità e degli estremi dell’avviso di pagamento che il cliente si accinge a pagare attraverso pagoPA ;
  • Notifica del pagamento effettuato attraverso il sistema pagoPA.

Govpay invoca il gestionale dell’ente creditore per chiedere informazioni ed aggiornare i dati relativi ai vari avvisi di pagamento.

Era necessario quindi esporre delle API REST in SIGLA per le comunicazioni da Govpay.

Usando la specifica JAVA JAX-RS, adatta allo sviluppo di applicazioni RESTful, abbiamo creato le interfacce che abbiamo implementato con le relative classi per gestire la logica di SIGLA per le 2 richieste.

API Rest

Conclusioni

La soluzione scelta ha portato i seguenti vantaggi:

  • Risparmio da parte dell’ente rispetto all’offerta economica dell’istituto cassiere;
  • Risparmio di tempo sia nello sviluppo dell’integrazione con il nodoSPC per la comunicazione con il sistema pagoPA, e sia nei test di comunicazione con il sistema pagoPA;
  • Acquisizione di competenze relativamente al dominio pagoPA, sia da un punto di visto tecnico che funzionale, in modo da poter essere indipendenti per eventuali future implementazioni.

--

--