Pagamenti parziali e compatibilità con .NET

Per un mio cliente che sta diventando partner tecnologico per gli enti, stiamo implementando l’integrazione con PagoPA del loro portale. Ci sono alcune domande a cui non siamo riusciti a dare risposta leggendo la documentazione tecnica, spero possiate dipanare voi la matassa.

  1. Loro sviluppano in C# con framework .NET, dato che hanno avuto problemi di interoperabilità con WebServices scritti in Java (mi hanno fatto l’esempio dell’ACI), volevano assicurarsi che ci fosse questo tipo di compatibiilità

  2. Ci sono dei casi in cui loro ammettono pagamenti parziali dell’importo sugli avvisi, e casi in cui invece devono accettare il pagamento solo per la cifre totale. È possibile ad esempio che in caso di pignoramenti ricevano solo una parte per indisponibilità della somma totale. In generale però ammettono solo pagamenti per l’intera somma. È possibile indicare in nodoInviaCarrelloRPT l’indicazione che un pagamento può o non può essere parziale?

  3. Ci sono delle linee guida su come comportarsi con pagamenti per cui non si accetta il pagamento parziale ma ci può essere una compensazione tramite F24 (che, per quanto capisco, non passa attraverso pagoPA)? Esempio, per pagare la tassa X, potrei aver pagato una parte tramite F24 e voler pagare il restante tramite pagoPA, ma il sistema non può sapere dell’F24 se non anche mesi dopo.

Grazie in anticipo,
Fulvio

1 Mi Piace

Ho ancora bisogno di una risposta per i punti 1 e 3, ma credo di aver trovato una strategia per il 2. In caso di pagamenti iniziati sul portale dell’ente, posso far selezionare anche una cifra inferiore per permettere il pagamento parziale. In caso di pagamenti iniziati da PSP (sportelli poste, sito della banca, etc.) ritorno l’errore PAA_ATTIVA_RPT_IMPORTO_NON_VALIDO per i pagamenti per cui voglio il pagamento della cifra intera mentre posso accettare una cifra inferiore per pagamenti parziali.
A questo punto mi sorge però la domanda: è ammissimile il pagamento di un IUV in più versamenti in date diverse? Non sto parlando di rateizzazione, ma nel caso di un pagamento per un pignoramento, il recupero della somma totale può avvenire in tempi diversi, quindi se ho un avviso per 1000 euro, ma mi vengono pagati prima 500 euro e poi la restante somma in data successiva, è possibile utilizzare lo stesso IUV poiché il pagamento precedente non è stato totale?

Grazie in anticipo,
Fulvio

1 Mi Piace

Ciao @fulvioesposito

non ho esperienza con l’integrazione ai servizi pagoPA con client sviluppati con .NET, ma mi risulta che i WSDL dei servizi pagoPA siano conformi alle linee guida di interoperabilità WS-I, il che dovrebbe dovrebbe darti un certo grado di confidenza

Quello di poter versare al PSP un’importo diverso a quanto indicato nella RPT, qualora fosse consentito dalle specifiche, non e’ sicuramente una feature standard visto che non ho mai trovato questa possibilità’ nella mia esperienza da utente, quindi dovresti trovare modo di sapere l’eventuale importo parziale già in fase di definizione della RPT.

Nel caso del modello ad iniziativa Ente, come hai suggerito tu, e’ semplice poiché da portale puoi eventualmente chiedere quanto l’utente intende versare prima di costruire e inviare la RPT.

Nel caso del modello ad iniziativa PSP, mi sembra di ricordare della possibilità di indicare in fase di verifica l’importo 0 che verrebbe interpretato dal PSP come importo da chiedere all’utente, ma al momento non trovo riferimenti nelle specifiche a questo use case, quindi prendilo solo come spunto di approfondimento.

La gestione della posizione debitoria e’ a carico dell’Ente. Fin quando non e’ chiusa, sia da portale che tramite Avviso, non mi sembra ci siano vincoli da specifica nel consentirne il pagamento più volte se ancora c’e’ un importo dovuto, ma e’ un use case che non ho avuto occasione di testare.

Ciao per il punto 1 ho avuto dei problemi con il caricamento di un wsdl, se hai lo stesso problema ti posso mandare i punti da modificare.

Ciao Lorenzo,
grazie mille per le risposte, sei stato utilissimo. In realtà dato che per i pagamenti ad iniziativa del PSP dobbiamo gestire anche il caso di maggiorazioni oltre una certa data, come ad esempio per le multe, penso faremo una gestione per cuia seconda del tipo di avviso restituiamo l’errore di importo non congruo nei casi che vogliamo con la causale che spiega la motivazione del cambio di importo piuttosto che lasciar scegliere direttamente all’utente. Anche perché da quel che capisco l’errore di importo non congruo si può restituire in fase di attivazione (paaAttivaRPT) e non di verifica (paaVerificaRTP), almeno stando alla documentazione.
Dato che non conosco il comportamento dei PSP, nel caso di importo non congruo cosa succede? Danno la possibilità all’utente di decidere di impostare l’importo come ritornato dall’ente in paaAttivaRPT o bisogna a quel punto stampare un nuovo avviso con importo maggiorato?

Ciao Andrea,
stiamo iniziando lo sviluppo proprio in questi giorni, ancora non ho provato l’importazione. Ma se mi giri qualche indicazione in più ti sarei grato! :slight_smile:

io ho avuto questo problema.

La variazione di importo di un pagamento dovuto e’ un caso d’uso gestito in pagoPA: in fase di verifica del pagamento in attesa, l’EC comunica l’importo eventualmente variato che il PSP dovrà riscuotere. Una volta che il PSP ha riscosso il dovuto, procede all’attivazione l’RPT comunicando contestualmente quanto riscosso (che corrispondera’ all’importo indicato in precedenza).

Qualora l’importo richiesto in fase di attivazione non corrisponda a quanto dovuto per l’erogazione del servizio, puoi rifiutare la richiesta con l’errore PAA_ATTIVA_RPT_IMPORTO_NON_VALIDO.

Volevo precisare che quella che ho descritto sopra e’ la modalità standard di gestione del pagamento modello 3 da parte del PSP. Indipendentemente dalle possibili varianti che il PSP può realizzare, la gestione lato EC rimane sempre la stessa.

Buongiorno @fulvioesposito

Mi chiedevo se non fosse possibile gestire la casistica da te indicata, nel caso di pagamenti da Portale dell’EC, sfruttando le rate: si potrebbe pensare di generare dinamicamente delle rate, qualora l’utente non voglia pagare l’importo totale al momento. In tal modo, creando IUV diversi, eviteresti eventuali problemi nella gestione del codice IUV stesso.
Ad esempio, l’utente potrebbe avere un avviso da pagare di 1000 Euro, con un proprio codice IUV. Qualora, effettuando il pagamento, voglia pagare 100 euro, potresti creare una copia del pagamento, ma con IUV diverso, indicando nella causale il pagamento a cui è legato. Contestualmente, modificheresti l’importo del pagamento originario in 900 Euro (operazione ammissibile).
Non so se come strategia risulta troppo contorta :slight_smile:

Ciao Michele,
grazie per il suggerimento. Avevamo pensato a questa possibilità, ma devo dire che se è possibile pagare lo stesso IUV con più pagamenti in tempi diversi modificandone l’importo di volta in volta credo sia più semplice. Se chi paga non passa per il portale ha a disposizione solo l’avviso con IUV originario. Se è uno dei casi in cui può pagare parzialmente (ad esempio un terzo che riscuote crediti per un pignoramento riuscito a recuperare il 50% della somma) semplicemente inserisce i dati e viene abilitato a pagare una cifra inferiore. Se devo generare un nuovo IUV, devo contestualmente inviargli un nuovo avviso allungando i tempi. Quindi direi e più comodo per tutti perseguire la prima strada. O forse c’è qualche dettaglio nel tuo ragionamento che mi sfugge ?