Table of contents
Best practices
The creditor creates an outstanding debt position in the payment archives and associates it with a notice number. In the current version of the software, payment is made with a single payment.
During the intermediate phases of the payment, the creditor must not change the status of the position, which always remains “open”. The pagoPA platform will manage the intermediate statuses, the creditor will change the debt position to the “paid” status only if the payment is successful.
In this case, the position is fully settled, there is therefore a single “paid” payment associated with the debt position.
Starting with version 2.0.0 of SACI, the chapter “Format of the payment description “ was removed. For the completion of this item, refer directly to paragraph 7.1 of the guidelines.
It is recommended not to insert personal data and/or specific data in the payment description.
During the verification phase, the creditor is always required to update the payment amount.
The verification request always takes place via the primitive paVerifyPaymentNotice, both in the case of verificaBollettino as well as in the case of verifyPaymentNotice, also because the creditor does not know which primitive triggered the verification.
The creditor must always respond with a single payment option and always indicate with the parameter allCCP whether or not the debt position can be associated with all the postal current accounts:
- allCCP = true: the option can be associated with all postal current accounts;
- allCCP = false: the option cannot be associated with all postal current accounts.
Activation phase
During the activation phase, the creditor is always required to update the payment amount.
The platform uses the transferType parameter to request the following from the creditor for each individual transfer:
- The postal current accounts (if available) with the parameter_transferType=POSTAL;_
- any current account, at the discretion of the creditor, if the transferType is not indicated.
The parameter retentionDate is currently ignored by the pagoPA platform.
The parameter lastPayment is currently ignored by the pagoPA platform.
The parameter paymentNote, in the case of Payment at the EC’s frontend, is populated with the value entered by the creditor in the idCart contained in the redirect_._POST
PA postal payment slip
If the creditor has at least one postal current account for the collections, the PA postal payment slip must also be included in the payment notice, in this case the following cases are possible:
- in the https://github.com/pagopa/devportal-docs/blob/docs/from-gitbook/docs/DG2lpjf4Y5u7ZRFE7CyZ/use-cases/pagamento-di-un-avviso-presso-psp.md process if the parameter transferType of the request of paGetPayment is POSTAL, the IBAN of the postal current account must be associated with the transfer with idTransfer = 1;
- for the other payment processes, if the parameter transferType of the request of the paGetPaymentV2 is PAGOPA the EC must associate a metadata with key IBANAPPOGGIO to all transfers of the notice for the management of the Alternative Current Account and must enter a postal current account IBAN for each transfer in the IBAN tag, that is in the value of the metadata with key IBANAPPOGGIO.
If the response to the paSendRT that puts the status of the receipt to NOTICE_PENDING (timeout, response error, cannot be reached), the receipt is inserted in a queue to be submitted again to the creditor.
With the primitive paSendRT, the node tries to resubmit the receipt in question:
- if a receipt is resubmitted and its status is final it is removed from the queue;
- if a receipt is resubmitted but its status remains not final (NOTICE_PENDING), it is left in the queue and the counter for the retry number is increased.
When the final retry number is reached (it is a platform configuration parameter), the process stops and the element remains in the queue, and it is possible to restart the retry process by sending a request to support at PagoPA S.p.A.\
Tell us what you think
For clarifications on implementation specifications, such as SACI and SANP, you can open an issue on GitHub